Последовательность из N произвольных целых чисел.

pum998

Дана последовательность из N произвольных целых чисел. Написать программу, которая определяет, сколько в этой последовательности отрицательных чисел, кратных 7 (написать на трех видах цикла For, While, Repeat)
1 ответ

pum998

pum998, если задание было понято мной правильно, то можно как-то так. Turbo Pascal под рукой нет, так что проверить не на чем, но работать вроде должно. P.S. Числа генерируются случайным образом, если нужен ввод вручную с клавиатуры - доработайте
program MyProg;
 
type mas=array[1..100] of Integer;
 
var  n: Integer; a: mas;
 
function GenMass (n:Integer):mas;
var i: Integer; a:mas;
begin
  Randomize;
  for i := 1 to n do
     a[i]:= random(200)-100;
  GenMass:= a;
end;
 
procedure Vyvod (a: mas; n: Integer);
var i: Integer;
begin
  Writeln('Массив:');
  Writeln;
  for i := 1 to n do
    Write(a[i], ' ');
   Writeln;
end;
 
procedure With_For(a: mas; n: Integer);
var i, k: Integer;
begin
   k:=0;
   for i := 1 to n do
     if (a[i]<0) and (a[i] mod 7 = 0) then
         inc(k);
    Writeln('С помощью FOR : ', k);
    Writeln;
end;
 
procedure With_While(a: mas; n: Integer);
var i, k: Integer;
begin
   k:=0; i:=1;
   While i <= n do
   begin
     if (a[i]<0) and (a[i] mod 7 = 0) then
         inc(k);
         inc(i);
   end;
    Writeln('С помощью WHILE : ', k);
    Writeln;
end;
 
procedure With_Repeat(a: mas; n: Integer);
var i, k: Integer;
begin
   k:=0; i:=1;
   Repeat
     if (a[i]<0) and (a[i] mod 7 = 0) then
         inc(k);
         inc(i);
   Until i > n;
    Writeln('С помощью REPEAT : ', k);
    Writeln;
end;
 
begin
  Write('Задайте количество элементов: ');
  Readln(n);
  a:= GenMass(n);
  Vyvod (a, n);
  Writeln;
  Writeln('Количество отрицательных чисел, кратных 7:');
  Writeln;
  With_For (a, n);
  With_While (a, n);
  With_Repeat (a, n);
  Readln;
end.