PascalABCNETУказание: для каждой задачи создайте алгоритм и программу. Заполните...

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

PascalABCNET

Указание: для каждой задачи создайте алгоритм и программу. Заполните одномерный числовой массив D(15) случайными целыми числами в интервале [-20; 18]. Выведите значения элементов массива сначала в столбик, а затем в строку, причем на каждый элемент отведите 4 позиции. Ответ каждой задачи следует выводить с новой строки и с пояснительным текстом. Кроме того, следует каждый раз производить пвывод массива на экран, если в нем произошли изменения: перестановка, замена, изменение значения элементов и т.д.

Задание 1. Найдите отдельное количество отрицательных и положительных элементов массива.
Задание 2. Найдите произведение элементов, имеющих значение меньше -2 (минус два).
Задание 3. Найдите максимальный элемент массива из элементов, стоящих на местах, номера которых кратны пяти.
Задание 4. Замените отрицательные элементы, стоящие на нечётных местах на последний элемент массива.
Задание 5. Если в массиве имеются нулевые элементы, то найдите сумму элементов массива, имеющих значение, кратное трем, иначе выведите на экран положительные элементы массива.
Задание 6*. Найдите в массиве элементы, кратные 12, и вывести на экран их номера. Если таких элементов нет, то выведите сообщение об этом на экран.
Задание 7*. Выведите на экран одномерный массив, раскрасив в нем красным цветом кратные 12 элементы.


Информатика (57 баллов) | 41 просмотров
0

А в каком программном средстве это делать, чтобы что-то красным цветом раскрашивать?

0

Отредактировал.

Дан 1 ответ
0 голосов
Правильный ответ

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);<br>    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];<br>    Writeln('Задание 2');
    Writeln('Произведение элементов, меньших -2: ',p)
  end;
  {
  Задание 3. Найдите максимальный элемент массива из элементов,
  стоящих на местах, номера которых кратны пяти.
  }
  begin
    var dmax:integer;
    i:=10; dmax:=d[5];
    while i<=n do begin<br>      if dmax      i+=5
    end;
    Writeln('Задание 3');
    Writeln('Максимальный элемент массива из элементов,');
    Writeln('стоящих на местах с номером, кратным 5: ',dmax)
  end;
  {
  Задание 4. Замените отрицательные элементы,
  стоящие на нечётных местах на последний элемент массива
  }
  i:=1;
  while i<=n do begin<br>    if d[i]<0 then d[i]:=d[n];<br>    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.

(142k баллов)