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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2013, 07:41   #1
19enf
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 2
По умолчанию Переделать программу с использованием функции(есть наработки)

Паскаль АБЦ.
Нужно реализовать эту программу через функцию.

Код:
 program lab6_2;
var
  a:array[1..5] of integer; 
  i, n, max, m: integer; 
 
begin
  write('массив -> ');
  for i := 1 to 5 do 
  begin
    read(a[i]);
    if a[i] < 0 then begin inc(n) ;inc(m); 
    end;
    if (a[i] >= 0) or (i = 5) then  
    begin
      if m > max then max := m;
      m := 0;
    end;
  end;
  writeln('Кол-во отерицательных чисел=', n);
  writeln('Максимальное число подряд следующих отрицательных чисел =', max);
end.
Написал пока что только, что он считает отрицательные числа в функции, но не совсем верно. Не знаю что не так.

Код:
 program lab8_2;
uses crt;
var
a:array[1..5] of integer;
i,d,q:integer;


FUNCTION otricat(q:integer):integer;
var i:integer;
begin
for i := 1 to 5 do 
  begin
    readln(a[i]);
    if a[i] < 0 then begin inc(q) ;
otricat:=q;    
end;end;end;

begin
   for i:=1 to 5 do;
   writeln('массив -> ');
   read(a[i]);
   d:=otricat(d);
   writeln('Кол-во отерицательных чисел=', d);
   readln;
end.
19enf вне форума Ответить с цитированием
Старый 16.01.2013, 08:44   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
FUNCTION otricat:integer;
var i:integer;
q:integer;
begin
q:=0;
for i := 1 to 5 do
    if a[i] < 0 then inc(q) ;
otricat:=q;
end;
Использование
Код:
for i:=1 to 5 do Readln(a[i]);
writeln('Кол-во отрицательных чисел=', otricat);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 16.01.2013, 21:26   #3
19enf
Новичок
Джуниор
 
Регистрация: 16.01.2013
Сообщений: 2
По умолчанию

а максимальное кол-во подряд идущих отриц чисел в этой же функции делать или как?

Код:
program lab8_2;
uses crt;

var a:array[1..1000] of integer;
    i,n,r:integer;
    
FUNCTION otricat(q:integer):integer;
var i:integer;
begin 
    q:=0;
    for i:=1 to n do begin
      if a[i] < 0 then begin
        inc(q);
      end;end;  
otricat:=q;
end;

begin
     writeln('введите размер массива');  
     read(n);
     writeln('введите массив');
     for i:=1 to n do
     read(a[i]);
     r:=otricat(n);
     writeln('кол-во отриц чисел= ',r);
end.
19enf вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать с использованием функции Camelot_2012 Паскаль, Turbo Pascal, PascalABC.NET 1 02.05.2012 22:57
Переделать программу, есть предложение? heroii2009 C++ Builder 1 14.03.2012 22:44
переделать программу под процедуры и функции graf890 Помощь студентам 0 21.02.2011 20:41
Паскаль. переделать программу под процедцры и функции graf890 Помощь студентам 1 21.02.2011 10:39
Pascal, наработки есть. Otre4eHHbIu Помощь студентам 1 24.12.2009 08:43