• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль, массивы, функции. Помогите, пожалуйста!

Tamerlaan_Sg

Ученик
Регистрация
26 Мар 2009
Сообщения
11
Реакции
0
Баллы
0
Паскаль, массивы, функции. Помогите, пожалуйста!

Доброго всем времени суток. Помогите пожалуйста с задачей на массивы и функции в паскале.
Задача состоит в том, чтобы в массиве, состоящем из 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.

Огромное спасибо
 
Пожалуйста:

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-MF[i+1])>Max THEN Max:=ABS(MF-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-MF[i+1])<Min THEN Min:=ABS(MF-MF[i+1]);
Find_Min:=Min;
END;

BEGIN
Randomize;
FOR I:=1 TO 15 DO
BEGIN
MAS:=RANDOM(1000);
WRITE(MAS:6);
END;
FOR i:=1 TO 14 DO
BEGIN
FOR M:=1 TO 15 DO
BEGIN
IF MAS>MAS[M] THEN
BEGIN
P:=MAS;
MAS:=MAS[M];
MAS[M]:=P;
END;
END;
END;
WRITELN;
FOR
I:=1 TO 15 DO
WRITE(MAS:6);
WRITELN;
WRITELN('Maximum difference = ', Find_Max(MAS));
WRITELN('Minimum difference = ', Find_Min(MAS));
READLN;
END.
 
Назад
Сверху