В таблице Dat хранятся оценки (по десятибалльной шкале) студента по программированию за 8 прошедших с начала учебы семестров (Dat[1] -оценка за первый семестр, Dat[2] - оценка за второй семестр и т.д.). Определите что будет напечатано в результате выполнения следующего алгоритма:
Var k,m, term: integer;
Dat: array[1..8] of integer;
begin
Dat[1]:= 7 ; Dat[2]:= 7 ; Dat[3]:=6 ; Dat[4]:= 8 ;
Dat[5]:=4 ; Dat[6]:= 5; Dat[7]:= 4; Dat[8]:= 7;
term:=1; m:=Dat[1];
for k:=2 to 8 do
begin if Dat[k] < m then
begin m:=Dat[k]; term:=k
end end
write (term); end.
Ответы
Программа ищет номер семестра, в котором у студента была самая низкая оценка (если такая оценка встречается более одного раза, то берётся первый найденный номер).
В результате работы программы будет напечатано:
5
(в пятом семестре у студента впервые была четвёрка)
Ответ:5
PS Кстати, в предпоследней строке две ошибки: нужно ставить точку с запятой после "end":
...
begin if Dat[k] < m then
begin m:=Dat[k]; term:=k
end; end;
write (term); end.