• СРОЧНО! 40 БАЛЛОВ! Паскаль, информатика
    1) Дан массив из 10-ти случайных чисел. Напечатать его и определить сумму элементов, стоящих на нечетных местах.
    2) Дан массив из 10-ти случайных чисел. Напечатать его и определить, есть ли в массиве два соседних четных элемента

Ответы 7

  • А не подскажите, как выйти из цикла, если мы нашли 2 соседних чётных числа (т.е. значение n сменилось)?
  • Либо, как у меня по break, либо сделать цикл вида while/repeat
  • Можно ещё добавить цикл - repeat, ну смысла добавлять его не было, ведь от того что проверятся пару лишних элементов массива ничего не изменится)
    • Автор:

      warren71
    • 6 лет назад
    • 0
  • А если массив размером в 100 000 элементов? Мы же алгоритм рассматриваем, а не конкретную задачу.
    • Автор:

      brunohunt
    • 6 лет назад
    • 0
  • Этим как раз и отличаются решения школьников от решений профессиональных программистов: школьник пишет программу под решение конкретной задачи, а профессионалу лень каждый раз программы переписывать и он делает общее решение с тем, чтобы "малой кровью" приспособить его к любым изменившимся условиям.
  • const  n=10;var  x:array[1..n] of integer;  i,s:integer;  found:boolean;begin  { инициализация массива }  Randomize;  Writeln('Элементы массива');  for i:=1 to n do  begin    x[i]:=Random(50);    Write(x[i]:3);  end;  Writeln;  { задание 1 }  s:=0; i:=1;  while i<=n do  begin s:=s+x[i]; i:=i+2 end;  Writeln('Cумма элементов на нечетных местах равна ',s);  { задание 2 }  for i:=1 to n-1 do  begin    found:=(x[i] mod 2 = 0) and (x[i+1] mod 2 = 0);    if found then break  end;  if found then Writeln ('Пара соседних четных элементов: ',x[i],', ',x[i+1])  else Writeln('Нет пары соседних четных элементов')end.Тестовое решение:Элементы массива  3 11 42 38 36 47  8 15 15 13Cумма элементов на нечетных местах равна 104Пара соседних четных элементов: 42, 38
  • 1) var a:array[1..10] of integer;i,n:integer;beginn:=0;write ('Массив: ');for i:=1 to 10 dobegina[i]:=random(10);if i mod 2 <> 0 then n:=n+a[i];end;for i:=1 to 10 dobeginwrite (a[i],' ');end;writeln;writeln ('Сумма элементов стоящих на нечётных местах = ',n);end.2)var a:array[0..10] of integer;i,n:integer;beginn:=0;write ('Массив: ');for i:=1 to 10 dobegina[i]:=random(10);write (a[i],' ');end;repeati:=1;if (a[i] mod 2 = 0) and (a[i-1] mod 2 =0) then n:=1;i:=i+1;until n=1;WRITELN;if n<>0 then writeln ('Есть') else writeln ('Нету');end.
    • Автор:

      jane2
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years