Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2015, 16:12   #1
kostyan199731
 
Регистрация: 18.03.2015
Сообщений: 9
По умолчанию Я сделал прогу, но мне сказали сделать 2 подпрограммы. Я чет не понял как сделать. Помогите, пожалуйста!

Ввести массив A(n). Найти максимум и минимум в массиве. Наибольшим по модулю
значением (из максимума и минимума) заменить последний элемент в массиве. Массив
вывести на печать. Подпрограммы: ввод массива, поиск максимального, поиск
минимального, замена, вывод массива

Я сделал прогу, но мне сказали сделать 2 подпрограммы. Я чет не понял как сделать. Помогите, пожалуйста!
Код:
program sem2;
var
  a:array [1..50] of real;
 n,i:integer;
  min1,max1,x:real;

PROCEDURE VVOD(var  n,i:integer);
  begin
  writeln('Введите число n компонент  массива');
  readln(n);
  
  writeln('Введите элементы массивов');
  for i:=1 to n do 
  begin
      begin
        writeln('Введите элемент A[',i,']  массива');
        readln(A[i]);
      end;
  end;
  end;

procedure maximum(var  n,i:integer; min1,max1,x: real);
  begin
    begin
      
      min1:=A[1];
      for i:=1 to n do
        if A[i]>min1 then
          min1:=A[i];
   
    end;
    if max1<max1 then
      x:=min1
    else
      x:=max1;
      writeln(min1,' ', max1,' ', x);
  end;

procedure zamena(var  n,i:integer; x: real);
  begin
  for i:=1 to n do
    begin
    if A[i]<0 then
      A[i]:=x;
    end;
  end;

procedure vivod(var  n,i:integer);
  begin
  Writeln('Полученный  массив:');
    begin 
      for i:=1 to n do    
        write(a[i]:4);
        writeln;      
    end;
 
  end;
BEGIN
vvod(n,i);
maximum(n,i,min1,max1,x);
zamena(n,i,x);
vivod(n,i);
  
END.

Последний раз редактировалось Stilet; 25.06.2015 в 16:18.
kostyan199731 вне форума Ответить с цитированием
Старый 25.06.2015, 16:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Дык у тебя есть 4 подпрограммы. Как бы все красиво... Препод чего хочет чтоб ты их сократил в две?
Я бы на твоем месте уточнил, ибо похоже он бабос с тебя требует такими заданиями...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2015, 16:23   #3
kostyan199731
 
Регистрация: 18.03.2015
Сообщений: 9
По умолчанию

Деньги она точно не требует. Просто давно проверяла, и я не помню, что именно говорила, но у меня написано, 2 подпрограммы надо, верней написано просто- 2 подпрограммы. А завтра уже сдавать надо. Я хз что делать=/
kostyan199731 вне форума Ответить с цитированием
Старый 25.06.2015, 16:42   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну сделай так:
Код:
program sem2;
var
  a:array [1..50] of real;

  min1,max1,x:real;

PROCEDURE VV(var n:integer;const OutPut:Boolean);
var  i:integer;
  begin
 if output then begin
  Writeln('Полученный  массив:');
    begin 
      for i:=1 to n do    
        write(a[i]:4);
        writeln;      
    end;
  exit;
 end;

  writeln('Введите число n компонент  массива');
  readln(n);
  
  writeln('Введите элементы массивов');
  for i:=1 to n do 
  begin
      begin
        writeln('Введите элемент A[',i,']  массива');
        readln(A[i]);
      end;
  end;
  end;

procedure calc(n:integer);
var n,i:integer; min1,max1,x: real
  begin
    begin
      
      min1:=A[1];
      for i:=1 to n do
        if A[i]>min1 then
          min1:=A[i];
   
    end;
    if max1<max1 then
      x:=min1
    else
      x:=max1;
      writeln(min1,' ', max1,' ', x);
  
  for i:=1 to n do
    begin
    if A[i]<0 then
      A[i]:=x;
    end;
  end;


BEGIN
vv(n,false);
calc(n);
vv(n,true);
 readln; 
END.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2015, 17:00   #5
kostyan199731
 
Регистрация: 18.03.2015
Сообщений: 9
По умолчанию

спасибо большое)
kostyan199731 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
решить с использованием рекурсивной подпрограммы. помогите пожалуйста ваще ни че не понял st1m Паскаль, Turbo Pascal, PascalABC.NET 2 02.04.2009 15:31