Pascalabcnet указание: для каждой создайте алгоритм и программу. заполните одномерный числовой массив d(15) случайными целыми числами в интервале [-20; 18]. выведите значения элементов массива сначала в столбик, а затем в строку, причем на каждый элемент отведите 4 позиции. ответ каждой следует выводить с новой строки и с пояснительным текстом. кроме того, следует каждый раз производить пвывод массива на экран, если в нем произошли изменения: перестановка, замена, изменение значения элементов и т.д. 1. найдите отдельное количество отрицательных и положительных элементов массива. 2. найдите произведение элементов, имеющих значение меньше -2 (минус два). 3. найдите максимальный элемент массива из элементов, стоящих на местах, номера которых кратны пяти. 4. замените отрицательные элементы, стоящие на нечётных местах на последний элемент массива. 5. если в массиве имеются нулевые элементы, то найдите сумму элементов массива, имеющих значение, кратное трем, иначе выведите на экран положительные элементы массива. 6*. найдите в массиве элементы, кратные 12, и вывести на экран их номера. если таких элементов нет, то выведите сообщение об этом на экран. 7*. выведите на экран одномерный массив, раскрасив в нем красным цветом кратные 12 элементы.

maksdodaruk1 maksdodaruk1    1   30.06.2019 16:50    0

Ответы
помощьнужнв помощьнужнв  24.07.2020 09:39
Const
  n=15;
var
  d:array[1..n] of integer;
  i:integer;
begin
  //Инициализация и вывод
  Randomize;
  Writeln('Исходный массив в столбик:');
  for i:=1 to n do
  begin
    d[i]:=Random(-20,18);
    Writeln(d[i]:4)
  end;
  Writeln('Исходный массив в строку:');
  for i:=1 to n do Write(d[i]:4);
  Writeln;
  {
  Задание 1. Найдите отдельное количество
  отрицательных и положительных элементов массива.
  }
  begin
    var ineg,ipos:integer;
    ineg:=0; ipos:=0;
    for i:=1 to n do
      if d[i]>0 then Inc(ipos)
      else if d[i]<0 then Inc(ineg);
    Writeln('Задание 1');
    Writeln('Количество отрицательных элементов ',ineg,
      ', положительных- ',ipos)
  end;
  {
  Задание 2. Найдите произведение элементов,
  имеющих значение меньше -2
  }
  begin
    var p:integer:=1;
    for i:=1 to n do
      if d[i]<-2 then p*=d[i];
    Writeln('Задание 2');
    Writeln('Произведение элементов, меньших -2: ',p)
  end;
  {
  Задание 3. Найдите максимальный элемент массива из элементов,
  стоящих на местах, номера которых кратны пяти.
  }
  begin
    var dmax:integer;
    i:=10; dmax:=d[5];
    while i<=n do begin
      if dmax<d[i] then dmax:=d[i];
      i+=5
    end;
    Writeln('Задание 3');
    Writeln('Максимальный элемент массива из элементов,');
    Writeln('стоящих на местах с номером, кратным 5: ',dmax)
  end;
  {
  Задание 4. Замените отрицательные элементы,
  стоящие на нечётных местах на последний элемент массива
  }
  i:=1;
  while i<=n do begin
    if d[i]<0 then d[i]:=d[n];
    i+=2
  end;
  Writeln('Задание 4');
  Writeln('Отрицательные элементы, стоящие на нечётных местах,');
  Writeln('заменены последним элементом массива:');
  for i:=1 to n do Write(d[i]:4);
  Writeln;
  {
  Задание 5. Если в массиве имеются нулевые элементы,
  то найдите сумму элементов массива, имеющих значение, кратное трем,
  иначе выведите на экран положительные элементы массива
  }
  begin
    var sum:integer:=0;
    var FlagSum:boolean:=False;
    for i:=1 to n do
    begin
      Flagsum:=(d[i]=0);
      if FlagSum then break
    end;
    Writeln('Задание 5');
    if FlagSum then begin
      for i:=1 to n do
        if (d[i] mod 3)=0 then sum+=d[i];
      Writeln('Сумма элементов, имеющих значение, кратное трем: ',sum)
    end
    else
    begin
      Writeln('Положительные элементы массива:');
      for i:=1 to n do if d[i]>0 then Write(d[i]:4);
      Writeln
    end
  end;
  {
  Задание 6*. Найти в массиве элементы, кратные 12,
  и вывести на экран их номера. Если таких элементов нет,
  то вывести сообщение об этом на экран.
  }
  Writeln('Задание 6*');
  begin
    var k:integer:=0;
    var p:array[1..n] of integer;
    for i:=1 to n do
      if (d[i] mod 12)=0 then begin Inc(k); p[k]:=i end;
    if k>0 then begin
      Writeln('Номера элементов массива, кратных 12:');
      for i:=1 to k do Write(p[i]:3);
      Writeln
    end
    else Writeln('В массиве нет элементов, кратных 12')
  end
end.

Тестовое решение:
Исходный массив в столбик:
 -12
  -5
  -2
  15
 -20
  13
  -4
  -2
  12
  17
  12
  14
   2
   3
 -20
Исходный массив в строку:
 -12  -5  -2  15 -20  13  -4  -2  12  17  12  14   2   3 -20
Задание 1
Количество отрицательных элементов 7, положительных- 8
Задание 2
Произведение элементов, меньших -2: -96000
Задание 3
Максимальный элемент массива из элементов,
стоящих на местах с номером, кратным 5: 17
Задание 4
Отрицательные элементы, стоящие на нечётных местах,
заменены последним элементом массива:
 -20  -5 -20  15 -20  13 -20  -2  12  17  12  14   2   3 -20
Задание 5
Положительные элементы массива:
  15  13  12  17  12  14   2   3
Задание 6*
Номера элементов массива, кратных 12:
  9 11

Задание 7*. Выведите на экран одномерный массив,
раскрасив в нем красным цветом кратные 12 элементы.

uses
  GraphABC;
const
  n=15;
var
  d:array[1..n] of integer;
  i:integer;
begin
  SetWindowSize(800,600);
  Randomize;
  for i:=1 to n do
  begin
    d[i]:=Random(-20,18);
    if (d[i] mod 12)=0 then begin
      SetFontColor(clRed);
      Write(d[i]:4);
      SetFontColor(clBlack)
    end
    else Write(d[i]:4)
  end;
  Writeln
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика