КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Текст программы
Алгоритм Должен содержать следующие шаги:
a) Цикл расчета числа элементов, меньших " i -го". Перед циклом ki делаем равным не нулю, а единице, т.к. после подсчета числа элементов, меньших данного, его выходной номер должен стать на единицу больше этого числа. b) Поиск места в выходном массиве, для рассматриваемого элемента. Если найденное место уже занято, следует двигаться дальше по массиву, пока не встретится незанятое место. Этот процесс необходим, если в сортируемом ряду несколько одинаковых чисел, претендующих, на одно и тоже место.
При оформлении лабораторной работы, алгоритм следует изобразить в форме блок-схемы.
PROGRAM SortNum; { Программа Лабораторной работы N 5 Вариант N 31. А.Я.Умненькая, ст. гр. Я-007 } VAR M,N,Jmin,i,j,i1,ki: integer; Amin,Pr: real; A: array [1..7,1..7] of real; B: array [1..7] of real; Fin,Fout: text; LABEL Vvod_M, Vvod_N; BEGIN { Открытие входного и выходного файлов } assign(Fout,'UMNIK5.RES'); rewrite(Fout); assign(Fin,'D:\LAB1\DATF.TXT'); reset(Fin); { Ввод количества строк массива } Vvod_M: writeln ('Введите число строк массива'); readln(M); if (M < 2) or (M > 7) then begin writeln('Недопустимое значение!'); goto Vvod_M; end; { Ввод количества столбцов массива } Vvod_N: writeln ('Введите число столбцов массива'); readln(N); if (N < 2) or (N > 7) then begin writeln('Недопустимое значение!'); goto Vvod_N; end; { заполнение массива числами из файла } for i:=1 to M do for j:=1 to N do read(Fin,A[i,j]); { Закрытие входного файла } close(Fin); { Распечатка исходного массива } Writeln(Fout,' Исходный массив из ',M,'x',N, ' элементов'); for i:=1 to M do begin for j:=1 to N do Write(Fout,A[i,j]:8:2); {печать текущей строки } Writeln(Fout); end; Writeln(Fout); { Поиск столбца с минимальным элементом } Amin:= A[1,1]; Jmin:= 1; for i:=1 to M do for j:=1 to N do if A[i,j] < Amin then begin Amin:= A[i,j]; Jmin:= j; end; { Определение признака незанятого места } Pr:= Amin - 1.0; { Очистка выходного массива } for i:=1 to M do B[i]:= Pr; { сортировка "Jmin-го" столбца в выходной файл пересчетом } for i:= 1 to M do begin ki:= 1; for i1:=1 to M do if A[i1,Jmin] < A[i,Jmin] then ki:= ki+1; { сдвиг дальше, если элемент уже занят } while B[ki] <> Pr do ki:= ki+1; B[ki]:= A[i,Jmin]; end; { Печать номера столбца c минимальным элементом } Writeln(Fout,'Результаты работы':30); Writeln(Fout); Writeln(Fout,' Минимальный элемент находится в ', Jmin,' столбце'); { Печать отсортированного массива } Writeln(Fout,'Сортированный массив':30); for i:=1 to M do Write(Fout,B[i]:8:2); Writeln(Fout); { Закрытие выходного файла } close(Fout); END.
Дата добавления: 2014-11-06; Просмотров: 314; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |