1. В массиве из 17 элементов, заполненном случайными целыми двузначными числами, заменить...

0 голосов
37 просмотров

1. В массиве из 17 элементов, заполненном случайными целыми двузначными числами, заменить элементы, равные 50, нулями. Сколько произведено замен?
2. В массиве из 17 элементов, заполненном случайными целыми двузначными числами, подсчитать количество элементов, равных 50.
Pascal


Информатика (49 баллов) | 37 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1579 от 18.11.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(17,42,65); a.Println;
  var k:=a.Where(t->t=50).Count; // кол-во элементов =50 - задание 2
  Writeln('Кол-во элементов, равных 50: ',k);
  a.Transform(t->t=50?0:t); a.Println // замена и вывод - задание 1
end.

Пример
65 45 55 47 50 44 45 43 50 51 44 43 56 45 65 51 65
Кол-во элементов, равных 50: 2
65 45 55 47 0 44 45 43 0 51 44 43 56 45 65 51 65
(150k баллов)
0 голосов

1)
var
  arr: array[1..17] of smallint;
  k, i: smallint;

begin
  randomize();
  k := 0;
  write('Массив до замены:    ');
  for i := 1 to 17 do
  begin
    arr[i] := random(10, 99);
    write(arr[i], ' ');
  end;
  writeln();
  write('Массив после замены: ');
  for i := 1 to 17 do
  begin
    if arr[i] = 50 then begin
      arr[i] := 0;
      k := k + 1;
      write(' ');  //эта строка только для оформления вывода, она необязательна
    end;
    write(arr[i], ' ');
  end;
  writeln();
  writeln('Кол-во замененных элементов: ', k);
end.

2)
var
  arr: array[1..17] of smallint;
  k, i: smallint;

begin
  randomize();
  k := 0;
  write('Массив до замены: ');
  for i := 1 to 17 do
  begin
    arr[i] := random(10, 99);
    write(arr[i], ' ');
    if arr[i] = 50 then k := k + 1;
  end;
  writeln();
  writeln('Кол-во элементов, равных 50-ти: ', k);
end.

(720 баллов)