dalilkadyrkulov
09.06.2021 22:43

Объясните, ! паскаль. решение есть, просто не пойму одну деталь!

звучит так:

дан массив, содержащий 70 неотрицательных целых чисел. опишите на одном из языков

программирования алгоритм, позволяющий найти и вывести наименьшую нечётную сумму двух

соседних элементов массива. гарантируется, что в массиве есть соседние элементы с нечётной суммой.

исходные данные объявлены так, как показано ниже. запрещается использовать переменные, не

описанные ниже, но разрешается не использовать часть из них.

непонятно: почему мы пишем " (x=0) or " (т.е. почему именно нуля, почему именно такое действие)

const

n = 70;

var

a: array [1..n] of integer;

i,j,x,y: integer;

begin

for i : = 1 to n do

readln(a[i]);

for i : = 1 to (n-1) do

if ((a[i] + a[i+1]) mod 2 = 1) then

if (x = 0)or(x > a[i] + a[i+1]) then

x : = a[i] + a[i+1];

write(x);

end.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ксения1361
19.05.2020 10:28
Program RANETKI_ZNANIJA;const n=5;m=6; //размерность 5 на 6 (5 строк 6 столбцов)var a:array[1..n,1..m]of integer; //объявляешь двумерный массив 5 на 6    i,j,max:integer; //i и j - счетчики, max - максимальное числоbeginwriteln('Матрица:');for i:=1 to n do //цикл с вложенным циклом для заполнения массива случайными числами begin  for j:=1 to m do   begin    a[i,j]:=random(50); //заполняешь элементы массива числами от 0 до 50    write(a[i,j]:4); // :4 означает четыре пробела между числами   end;  writeln; //переход на новую строку end;writeln; //окончательный переход на новую строку{макс в строках}for i:=1 to n do begin  max:=a[i,1]; //присваиваешь переменной max значение элемента i-тая строка, первый столбец  for j:=1 to m do   begin    if a[i,j]>max then max:=a[i,j]; //сравниваешь каждый элемент массива с числом max                                    //если элемента массива больше чем max, то присваиваешь max этот элемент   end;  writeln('В строке ',i,' макс=',max); //выводишь номер строки и значение max end;{макс в столбцах}for j:=1 to m do // ОБРАТИ ВНИМАНИЕ что этот тот же цикл что и предыдущий, то теперь вместо j стоит i, а вместо i стоит j begin  max:=a[1,j];   for i:=1 to n do   begin    if a[i,j]>max then max:=a[i,j];   end;  writeln('В столбце ',j,' макс=',max); end;readln;end.
0,0(0 оценок)
Ответ:
meriko2
04.10.2020 08:16
1. Современное решение

// PascalABC.NET 3.2, сборка 1437 от 03.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var min:=a.Min;
  a.Transform(x->x<0?x*min:x); a.Println
end.

Пример
n= 15
-34 7 0 -48 4 42 35 14 -47 6 -29 43 46 40 -18
1632 7 0 2304 4 42 35 14 2256 6 1392 43 46 40 864

2. Популярное до сих пор в школах решение на TurboPascal 7.01 (1983г.)

uses Crt;
const
  nn=100;
var
  i,n,min:integer;
  a:array[1..nn] of integer;
begin
  ClrScr;
  Randomize;
  Write('n='); Read(n);
  min:=100;
  for i:=1 to n do begin
    a[i]:=Random(101)-50;
    Write(a[i],' ');
    if a[i]<min then min:=a[i]
    end;
  Writeln;
  for i:=1 to n do
    if a[i]<0 then a[i]:=a[i]*min;
  for i:=1 to n do
    Write(a[i],' ');
  Writeln;
  ReadKey
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота