Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 13.04.2009, 17:41   #1 (permalink)
Tamerlaan_Sg
Новичок
 
Регистрация: 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.
Огромное спасибо
Tamerlaan_Sg вне форума   Ответить с цитированием

Старый 13.04.2009, 17:41
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

На данный момент на форуме имеются схожие топики

Помогите, пожалуйста, решить задачу. Паскаль
Помогите, пожалуйста, с Паскалем. Процедуры-массивы

Старый 13.04.2009, 22:12   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 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.
Vladimir_S вне форума   Ответить с цитированием
Старый 13.04.2009, 22:35   #3 (permalink)
Tamerlaan_Sg
Новичок
 
Регистрация: 26.03.2009
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Огромное Вам спасибо
Tamerlaan_Sg вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 06:00.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.