|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
13.04.2009, 17:41 | #1 (permalink) |
Новичок
Регистрация: 26.03.2009
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Паскаль, массивы, функции. Помогите, пожалуйста!
Задача состоит в том, чтобы в массиве, состоящем из 15 элементов найти максимальную и минимальную разницу между соседними элементами массива(массив после сортировки). Поиск нужно вывести в отдельную функцию. при этом для нахождения разницы не использовать дополнительно масиивы. Собственно задача, на основе который нужно все это сделать ниже: Код:
program mas1; const N=15; VAR MAS:ARRAY[1..N] OF INTEGER; I,M,P:INTEGER; BEGIN FOR I:=1 TO N DO BEGIN MAS[I]:=RANDOM(1000); WRITE(MAS[I],' '); END; FOR I:=1 TO (N-1) DO BEGIN FOR M:=1 TO N DO BEGIN IF MAS[I]>MAS[M] THEN BEGIN P:=MAS[I]; MAS[I]:=MAS[M]; MAS[M]:=P; END; END; END; WRITELN; FOR I:=1 TO N DO WRITE(MAS[I],' '); READLN; END. |
13.04.2009, 17:41 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
На данный момент на форуме имеются схожие топики Помогите, пожалуйста, решить задачу. Паскаль Помогите, пожалуйста, с Паскалем. Процедуры-массивы |
13.04.2009, 22:12 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Пожалуйста:
program mas2; TYPE AR=ARRAY[1..15] OF INTEGER; VAR MAS:AR; I,M,P:INTEGER; FUNCTION Find_Max(MF:AR):INTEGER; VAR Max,i:INTEGER; BEGIN Max:=0; FOR i:=1 TO 14 DO IF ABS(MF[i]-MF[i+1])>Max THEN Max:=ABS(MF[i]-MF[i+1]); Find_Max:=Max; END; FUNCTION Find_Min(MF:AR):INTEGER; VAR Min,i:INTEGER; BEGIN Min:=32767; FOR i:=1 TO 14 DO IF ABS(MF[i]-MF[i+1])<Min THEN Min:=ABS(MF[i]-MF[i+1]); Find_Min:=Min; END; BEGIN Randomize; FOR I:=1 TO 15 DO BEGIN MAS[i]:=RANDOM(1000); WRITE(MAS[i]:6); END; FOR i:=1 TO 14 DO BEGIN FOR M:=1 TO 15 DO BEGIN IF MAS[i]>MAS[M] THEN BEGIN P:=MAS[i]; MAS[i]:=MAS[M]; MAS[M]:=P; END; END; END; WRITELN; FOR I:=1 TO 15 DO WRITE(MAS[i]:6); WRITELN; WRITELN('Maximum difference = ', Find_Max(MAS)); WRITELN('Minimum difference = ', Find_Min(MAS)); READLN; END. |
13.04.2009, 22:35 | #3 (permalink) |
Новичок
Регистрация: 26.03.2009
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Огромное Вам спасибо
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|