Задача 7 Урок 15

Задача 7 Урок 15

Заполните массив целых чисел (длиной 8 элементов) случайными значениями от -5 до 5.
Сохраните все неотрицательные числа первого массива во второй массив
и выведете этот второй массив на экран (если количество сохраненных чисел во втором массиве меньше, чем его длина, то выведете только их, не обходя неинициализированные яйчейки).

var a : array [1..8] of integer;
b : array [1..8] of integer;
i,c: integer;
procedure arr(qq:integer);
var min,max,d: integer;
begin
randomize();
min:= -5;
max:= 5;
d:= 1;

for i:=low(b) to high(b) do
begin
  b[i] := min + random(max - min + 1);
end;

for i:= low(b) to high(b) do
begin
  if(b[i]>0) then
  begin
    a[d]:=b[i];
    d:= d+1;
  end;
end;
end;

begin
arr(c);
for i:= low(a) to high(a) do
begin
  write(a[i], ' ');
end;
readln();
end.
vedro-compota's picture

форматирование

_____________
матфак вгу и остальная классика =)

var a : array [1..8] of integer;
    b : array [1..8] of integer;
    i,c: integer;
procedure arr(qq:integer);
var min,max,d: integer;
begin
  randomize();
  min:= -5;
  max:= 5;
  d:= 1;
  for i:=low(b) to high(b) do
  begin
    b[i] := min + random(max - min + 1);
    write(b[i], ' ');
  end;

  for i:= low(b) to high(b) do
  begin
    if(b[i]>0) then
    begin
      a[d]:=b[i];
      d:= d+1;
    end;
  end;
end;

begin
  arr(c);
  writeln();
  for i:= low(a) to high(a) do
    write(a[i], ' ');
  readln();
end.
1 -2 0 5 3 5 3 5
1 5 3 5 3 5 0 0
vedro-compota's picture

  1. вынести генерацию в отдельную процедуру
  2. не использовать глобальные переменные

_____________
матфак вгу и остальная классика =)

var a,b : array [1..8] of integer;
    i: integer;
procedure rand();
var min,max: integer;
begin
  randomize();
  min:= -5;
  max:= 5;
  for i:=low(b) to high(b) do
  begin
    b[i] := min + random(max - min + 1);
    write(b[i], ' ');
  end;
end;

procedure arr();
var d: integer;
begin
  rand();
  d:= 1;
  for i:= low(b) to high(b) do
  begin
    if(b[i]>0) then
    begin
      a[d]:=b[i];
      d:= d+1;
    end;
  end;
end;

begin
  arr();
  writeln();
  for i:= low(a) to high(a) do
    write(a[i], ' ');
  readln();
end.
vedro-compota's picture

глобальные переменные все еще используются

_____________
матфак вгу и остальная классика =)

type qq = array[1..8] of integer;
var a,b : qq;
i,d: integer;
procedure rand(var b1: qq);
var min,max: integer;
begin
  randomize();
  min:= -5;
  max:= 5;
  for i:=low(b1) to high(b1) do
  begin
    b1[i] := min + random(max - min + 1);
  end;
end;

begin
  rand(b);
  d:= 1;
  for i:= low(b) to high(b) do
  begin
    write(b[i], ' '); //вывод 1 массива
    if(b[i]>0) then // и сразу заносим во второй нужное
    begin
      a[d]:=b[i];
      d:= d+1;
    end;
  end;
  writeln();

  for i:= low(a) to high(a) do
  begin
    write(a[i], ' '); //вывод 2 массива
  end;
readln();
end.