Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Halva
24 / 24 / 2
Регистрация: 02.11.2008
Сообщений: 118
1

Нужна помощь в указании формальных параметров в процедурах

15.11.2008, 23:39. Просмотров 659. Ответов 1
Метки нет (Все метки)

Проблема в том, что никак не могу понять как указывать формальные параметры при задании процедуры и как потом вызывать эту процедуру с этими параметрами.

Суть этой задачи в том, что необходимо задать процедуры:

1) Одна Вводит массив
2) Вторая выводит
3) Третья Сортирует введенный массив по убыванию
4) Четвертая Сортирует по возрастанию

Можно с пояснениями, пожалуйста.

Вот что я пробовал писать.

Код
uses Crt;
procedure P;
const
    n = 5;
type
    mas = array[1..n] of real;
var
    M : mas;
    B : real;
    i,j : Integer;
begin

    Writeln ('Введите элементы массива:');
    for i:=1 to n do Read (M[i]);
    Readln;

    for j:=n downto 2 do
        for i:=1 to j-1 do
            if M[i] > M[i+1] then
            begin
                B := M[i];
                M[i] := M[i+1];
                M[i+1] := B
            end;

    Writeln ('Отсортированный массив по возрастанию:');
    for i:=1 to n do Write (M[i]:8:0);
    Writeln;
end;
  procedure D;
  const
    n = 5;
type
    mas = array[1..n] of real;
var
    M : mas;
    B : real;
    i,j : Integer;
begin

    Writeln ('Введите элементы массива:');
    for i:=1 to n do Read (M[i]);
    Readln;

    for j:=n downto 2 do
        for i:=1 to j-1 do
            if M[i] < M[i+1] then
            begin
                B := M[i];
                M[i] := M[i+1];
                M[i+1] := B
            end;

    Writeln ('Отсортированный массив по убыванию:');
    for i:=1 to n do Write (M[i]:8:0);
    Writeln;
end;
begin
P;
D;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2008, 23:39
Ответы с готовыми решениями:

Взаимодействие формальных и фактических параметров в процедурах
Взаимодействие формальных и фактических параметров в процедурах

Использование формальных массивов в процедурах
Составить процедуру, исходными данными которой является матрица А из n строк и...

Составить программу с использованием формальных массивов в процедурах
Составить программу, исходными данными которой является матрица А из n строк и...

Нужна помощь.
Доброе время суток. Я первый раз сижу в паскале и не могу решить задачи по...

Нужна помощь
Как можно в Паскале округлить до десятка. т.е у меня есть например, 5.58 а мне...

1
Puporev
Модератор
54678 / 42099 / 29068
Регистрация: 18.05.2008
Сообщений: 99,341
16.11.2008, 15:39 2
Код
uses Crt;
type mas = array[1..100] of real; //тип объявляем раньше процедур
procedure Vvod(n:integer; var M:mas); //ввод данных, входной параметр-размер массива, можно этой процедурой вводить несколько массивов разной длины, выходной параметр-сам массив
var i:integer;
begin
writeln ('Введите элементы массива:');
for i:=1 to n do
   begin
    write('M[',i,']=');
    readln(M[i]);
   end;
end;
procedure Vyvod(n:integer; var M:mas); //тоже
var i:integer;
begin
for i:=1 to n do
write(M[i]:6:2);
writeln;
end;
procedure SortUb(n:integer;var M:mas);// сортировка по убыванию, параметры те же
var i,j:integer;
    B:real;  //если массив типа real, то и буфер для обмена при сортировке тоже real
begin
for j:=n downto 2 do
for i:=1 to j-1 do
if M[i]<M[i+1] then
   begin
     B := M[i];
     M[i] := M[i+1];
     M[i+1] := B
   end;
end;
procedure SortVoz(n:integer;var M:mas);//сортировка по возрастанию
var i,j:integer;
    B:real;
begin
for j:=n downto 2 do
for i:=1 to j-1 do
if M[i]>M[i+1] then
   begin
     B := M[i];
     M[i] := M[i+1];
     M[i+1] := B
   end;
end;
var a:mas; //раздел переменных основной программы
    m:integer;
begin
clrscr;
write('Razmer massiva m=');
readln(m);
Vvod(m,a);
clrscr;
writeln('Исходный массив:');
Vyvod(m,a);
SortUb(m,a);
Writeln ('Отсортированный массив по убыванию:');
Vyvod(m,a);
SortVoz(m,a);
Writeln ('Отсортированный массив по возрастанию:');
Vyvod(m,a);
readln
end.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2008, 15:39

нужна помощь народ
Даны x, y, z. Найти: min(sqr(x)+sqr(y), sqr(y)+sqr(z))-4.

люди нужна помощь
Пусть значения переменных х и у равны, соответственно, 0,3 и -0,2. Какие...

Паскаль нужна помощь
Помогите пожалуйста с задачей в Паскале, я учусь на программиста, нам задают...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru