Процедуры и функции, Процедуры и функции |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Процедуры и функции, Процедуры и функции |
NikiTaMoz |
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: 0 |
В одномерном массиве определить максимальное значение. Рассортировать до максимального значения по возрастанию. Результат вывести. Затем рассортировать после максимального значения по возрастанию и снова вывести. А затем рассортировать весь массив и снова вывести.
В программе должны быть и процедуры и функции. Моя Программа: Код Pascal Const n=10; type mas=array[1..n] of integer; var Massiv:mas; max,i,pozicia,j,c:integer; procedure vivod(Massiv:mas); var i:integer; begin for i:=1 to n do write(Massiv[i],' '); writeln; end; begin for i:=1 to n do begin write('Введите ',i,' элемент'); readln(Massiv[i]); end; write('Входной массив '); vivod(Massiv); max:=Massiv[1]; pozicia:=1; for i:=1 to n do if Massiv[i]>max then begin max:=Massiv[i]; pozicia:=i; end; for i:=pozicia-1 downto 2 do for j:=1 to i do if Massiv[j]>Massiv[j+1] then begin c:=Massiv[j]; Massiv[j]:=Massiv[j+1]; Massiv[j+1]:=c; end; write('первое преобразование '); vivod(Massiv); for i:= pozicia+1 to n-1 do for j:=i+1 to n do if Massiv[i]>Massiv[j] then begin c:=Massiv[i]; Massiv[i]:=Massiv[j]; Massiv[j]:=c; end; write('второе преобразование '); vivod(Massiv); for i:=n-1 downto 2 do for j:= 1 to i do if Massiv[j]>Massiv[j+1] then begin c:=Massiv[j]; Massiv[j]:=Massiv[j+1]; Massiv[j+1]:=c; end; write('Итоговое преобразование '); vivod(Massiv); readln; end. Нужно добавить Сортировку в мою программу или написать вашу. |
Федосеев Павел |
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 9 |
По поводу сортировки загляни в FAQ - ссылка выделена красным в верхней части этой страницы. Там есть статьи по работе с массивами и отдельная о сортировках.
Продолжай - будут вопросы - заходи. На период отладки могу порекомендовать типизированные константы (предопределённые массивы). Код type Mas = array [1..n] of integer; const <--------- если у тебя TurboPascal или var <-------- если у тебя FreePascal Massiv: Mas = (1, 5, 6, 3, 0, -1, 4, 100, -300, 500); |
Текстовая версия | 16.06.2024 20:21 |