Anatolevich_Kulikov1229
?>

Что не правильно в этой программе? надо найти среднее арифметическое нечетных чисел. в этой строке (i: =i+1; ) пишет нельзя изменять значение переменной цикла внутри этого цикла program p1; var k: array [1..40] of integer; i, s: integer; sr: real; begin for i: = 1 to 40 do k[i]: = random(21)+0; writeln; for i: = 1 to 40 do write(k[i], ' '); s: =0; i: =0; writeln; for i: = 1 to 40 do if k[i] mod 2=1 then begin s: = s+k[i]; i: =i+1; sr: = s/i; end; write(sr); end.

Информатика

Ответы

shoko-2379
Правильно пишет. В цикле for счётчик индексируется автоматически. Вручную его менять нельзя. В твоем цикле i является счетчиком цикла и одновременно еще и счетчиком нечетных элементов. Это недопустимо. Замени i на j например или другую букву для подсчета количества нечетных элементов.
Yekaterina

Полезные законы:

двойного отрицания: НЕ(НЕ(x)) = xраспределительный: (A v B) & C = A & C v B & Cпереместительный: A & B = B & A, A v B = B v Aзакон де Моргана: HE(A v B) = HE(A) & HE(B)правила операций с константами: A & 1 = A, A v 0 = A

А & В v A & НЕ (В) = A & (B v НЕ(B)) = A & 1 = A

(A v В) & (A v HE (В)) = A & (A v HE(B)) v B & (A v HE(B)) = A & A v A & HE(B) v B & A v B & HE(B) = A v A & HE(B) v A & B v 0 = A & (1 v HE(B) v B) = A & 1 = A

HE(HE(X) v HE(Y)) = HE(HE(X)) & HE(HE(Y)) = X & Y

NikolayGoncharov
Var a: array of integer;
n, sum, max: integer;
 
begin
   sum:=0;
   write('Введите натуральное число n: ');
   readln(n);
   a := new integer[n];
 
  write('Введите действительные числа: ');
  for var i:=0 to a.Length-1 do
    read(a[i] );
   
  write('Сумма равна: ');
  for var i:=0 to a.Length-1 do
    sum:=sum+a[i];
  writeln(sum);  
 
  write('Максимальный элемент равен: ');
  max := a[0];
  for var i:=0 to a.Length-1 do
    if a[i]>max then
    begin
      max := a[i];
    end;
  writeln(max);
 
  write('S = (А1+ А2+ …,+ Аn) + max (А1, А2, …, Аn) = ');
  sum:=sum+max;
  write(sum);
 
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Что не правильно в этой программе? надо найти среднее арифметическое нечетных чисел. в этой строке (i: =i+1; ) пишет нельзя изменять значение переменной цикла внутри этого цикла program p1; var k: array [1..40] of integer; i, s: integer; sr: real; begin for i: = 1 to 40 do k[i]: = random(21)+0; writeln; for i: = 1 to 40 do write(k[i], ' '); s: =0; i: =0; writeln; for i: = 1 to 40 do if k[i] mod 2=1 then begin s: = s+k[i]; i: =i+1; sr: = s/i; end; write(sr); end.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

spikahome
yusinelnik8
Gavrilova2527
sde19755511
Ионов202
oslopovavera
Татьяна_Полулях
Руслан Руденко1262
svetegal
Lesya
danya1509379
Varezka86179
baranovaas
Анна егорович526
evageniy79