Неверный код:
program n9;
var v2,v3,v4,v5,i,st: integer;
m: array[1..20] of integer;
begin
st:= 20;
writeln('Количество учеников: ',st);
for i:= 1 to 20 do
begin
write('Введите оценку ',i,' ученика: ');
readln(m[i]);
if m[i] == 2 then v2:= v2 + m[i];
if m[i] == 3 then v3:= v3 + m[i];
if m[i] == 4 then v4:= v4 + m[i];
if m[i] == 5 then v5:= v5 + m[i];
end;
end.
Верный код:
program n9;
var v2,v3,v4,v5,i, КОЛИЧЕСТВО УЧЕНИКОВ В ЦИФРАХ integer;
m: array[1..20] of integer;
begin
st:= 20;
writeln
for i:= 1 to 20 do
begin
write
readln(m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ]);
if m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ] == 2 then v2:= v2 + m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ];
if m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ] == 3 then v3:= v3 + m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ];
if m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ] == 4 then v4:= v4 + m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ];
if m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ] == 5 then v5:= v5 + m[ОЦЕНКА УЧЕНИКА В ЦИФРАХ];
end;
end.
Объяснение:
Не знаю какой язык ЯП, поэтому:
Допустим у тебя не список, а массив, по сути то же самое
Создаёшь второй массив той же длинный
Заполняешь его нулями через for
Снова пишешь цикл for по первому массиву, через оператор if проверяешь делиться ли число на 3. Если не делится пишешь условие что во второй массив засовываешь число.
Делаешь третий цикл for, и если число не равно нулю то записываешь в третий массив, с использованием continue, иначе делаешь break.
2) Опять делаешь массив for, и если число меньше семи выводишь, иначе делаешь break.
d. w:=d div 7;
Объяснение:
w:=d div 7; строка не верна так как она делит введенное число на 7 без остатка , например 1 день это понедельник то 1/7=0,14 1 div 7 = 0
а понедельник выводиться если значение =1
если день 14 div 7 = 2 должно быть воскресенье , а выводиться ’вторник’
Чтоб программа работала верно строку w:=d div 7; заменить на
while d>7 do
begin
d:=d-7;
end;
w:=d;