В таблице Dat хранятся данные о количестве самолётов, отправляющихся из аэропорта города на юг в первой декаде августа (Dat[1] —
количество самолётов первого числа, Dat[2] — количество самолётов второго числа и т. д.). Определите, что будет напечатано в результате выполнения следующего алгоритма, записанного на трёх алгоритмических языках. Var k, m, day: integer; Dat: array[1...10] of integer; Begin Dat[1] := 2; Dat[2] := 2; Dat[3] := 3; Dat[4] := 3; Dat[5] := 2; Dat[6] := 2; Dat[7] := 5; Dat[8] := 5; Dat[9] := 6; Dat[10] := 6; day:=1; m := Dat[1]; for k := 2 to 10 do if Dat[k] =< m then begin m:= Dat[k]; day := k; end; write(day); End. Объясните пожалуйста по подробнее
Будет напечатан день декады, в который вылетело меньше всего самолетов. Причем если таких дней несколько будет выбран последний из них. В нашем случае это 6. Ниже в программе после // написано пояснение к нижеследующему коду.
Var k, m, day: integer; Dat: array[1...10] of integer; Begin // Здесь определяются значения элементов массиа Dat - количество самолетов за каждый день декады Dat[1] := 2; Dat[2] := 2; Dat[3] := 3; Dat[4] := 3; Dat[5] := 2; Dat[6] := 2; Dat[7] := 5; Dat[8] := 5; Dat[9] := 6; Dat[10] := 6; //переменным день и m присваиваются начальные значения //переменная m предназначена для запоминания промежуточного результата работы алгоритма. day:=1; m := Dat[1]; //организуем цикл в котором каждый (начиная со второго) день сравнивается с текущим значением m в котором фиксируется каждый раз меньшая величина из двух сравниваемых по количеству самолетов for k := 2 to 10 do //если кол-во самолетов в текущий день (Dat[k]) меньше или равно самому меньшему количеству самолетов за предыдущие дни ( мы помним, что m изначально присвоили значение для первого дня)), то значение m меняем на значение Dat[k] и переменной day присваиваем номер этого дня if Dat[k] =< m then begin m:= Dat[k]; day := k; end; //после работы цикла выводим последнее значение day. т.е. номер дня, в котором вылетело меньше всего самолетов write(day); End.
До работы цикла переменной day присваиваем 1 (в конце он будет равен номеру дня- day := k, полученному врез. выполнения программы). Переменной m присваиваем значение 1-го дня=2. Затем начинаем сравнивать значения Dat[k] =< m , начиная с <span>k := 2 до 10, Если условие верно, </span>m: присваиваем значение Dat[k], <span>day := k. 1 шаг Сравниваем </span>Dat[k] =< m (Dat[2]( а это 2)<span>=<2 Да, верно </span>m:=2, <span>day :=2. 2 шаг 3 </span>=< 2 Нет, оставляем m:=2, <span>day :=2 3 шаг 3 </span>=< 2 Нет, m:=2, <span>day :=2 4 шаг 2 </span>=< 2 , да, m:=2, <span>day :=5 5 шаг 2</span> =< 2 , да, m:=2, day :=6<span> 6 шаг 5 </span>=< 2 Нет, m:=2, <span>day :=6 7 шаг </span>5 =< 2 Нет, m:=2, day :=6<span> 8 шаг 6</span> =< 2 Нет, m:=2, day :=6 9 шаг 6 =< 2 Нет, m:=2, day :=6 На экране будет число 6 (<span>write(day))</span>
Program Proverka; var a, b, c, k:integer; begin k:=0; read(a); for c:= 1 to a do begin read(b); if(b > 0) then begin k:=k+1; end; end; if(k mod 3 = 0) then begin write('YES'); end else begin write('NO'); end; end.
const n=12; var i,k,l,o:integer; a:array [1..100] of integer; begin writeln('Введите кол-во осадков: '); for i:=1 to n do begin write('За ', i,'-й месяц: '); readln(a[i]); l:=l+a[i]; if a[i]<30 then inc(o); end; write('О<span>бщее количество осадков за год</span>: ', l,' К<span>оличество засушливых месяцев</span>: ',o); end.