Дан массив Y(11). Составить программу обработки массива: 1. Найти сумму отрицательных...

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

Дан массив Y(11). Составить программу
обработки массива:
1. Найти сумму отрицательных элементов массива среди элементов, стоящих на нечетных местах.
2. Заменить все элементы, стоящие на нечетных местах, значениями их квадратов.
3. Подсчитать количество 1, стоящих на четных местах.
Все это должно быть в одной задаче, решите плиз качественно, даю много баллов.
Ах, да, все это на языке паскаль.


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

что значит "Подсчитать количество 1" ?

0

Количество единиц

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

Const
  n = 11;

var
  x: array[1..n] of integer;
  i, k, d, s: integer;

begin
  Randomize;
  Writeln('Элементы массива');
  k := 0; s := 0;
  for i := 1 to n do
  begin
    d := Random(11) - 5;
    Write(d:3);
    if (i mod 2) = 0 then begin { четное место }
      if d = 1 then Inc(k);
      x[i] := d
    end
    else begin
      if d < 0 then s := s + d;
      x[i] := sqr(d)
    end
  end;
  Writeln;
  Writeln('Результирующий массив');
  for i := 1 to n do Write(x[i]:3);
  Writeln;
  Writeln('Количество единиц на четных местах равно ', k);
  Writeln('Сумма отрицательных элементов на нечетных местах равна ', s)
end.

Тестовое решение:
Элементы массива
 -3  0 -5  1  5  1 -3 -4  5 -3 -2
Результирующий массив
  9  0 25  1 25  1  9 -4 25 -3  4
Количество единиц на четных местах равно 2
Сумма отрицательных элементов на нечетных местах равна -13


(142k баллов)
0 голосов

Var Y: array [1..11] of integer;
var i, sum, n: integer;
begin
randomize;
for i:=1 to 11 do begin 
Y[i]:=-10+random (21); 
write (Y[i], ' '); 
end;
sum:=0;
for i:=1 to 11 do begin 
if (i mod 2<>0) and (Y[i]<0) then sum:=Y[i]+sum; //№1 <br>if i mod 2<>0 then Y[i]:=Y[i]*Y[i]; //№2 
if (i mod 2=0) and (Y[i]=1) then inc (n); //№3
end;
writeln;
writeln ('Сумма =', sum);
writeln ('Количество 1 на четных местах =', n);
end.


image
(1.6k баллов)