Напишите программу на ABCPascal для подсчета количества оценок "4" и "5", полученных 20 учащимися после диктанта по русскому языку. Затем измените программу таким образом, чтобы она обрабатывала оценки только 5 учеников. Вместо цикла, используйте оператор присваивания для ввода данных (например, n[1]:=5, n[2]:=2 и т.д.). Также, измените вывод массива на вывод с комментариями, как описано в учебнике.
Океан_4415
Конечно, я могу помочь с написанием программы на ABCPascal для подсчета оценок. Вот решение задачи:
В этой программе используется массив `grades`, который содержит оценки для каждого ученика. Сначала программа запрашивает оценки для 20 учеников и подсчитывает количество оценок 4 и 5. Затем она изменяется, чтобы обрабатывать только 5 учеников с использованием оператора присваивания. Здесь оценки учеников хранятся в переменных `grades[1]`, `grades[2]`, и т.д. Затем программа подсчитывает количество оценок 4 и 5 только для этих 5 учеников и выводит результаты с комментариями.
pascal
program CountGrades;
const
SIZE = 20; // Количество учеников
var
grades: array[1..SIZE] of integer; // Массив с оценками
count4, count5: integer; // Счетчики для оценок 4 и 5
i: integer; // Переменная для цикла
begin
// Ввод оценок для 20 учеников
writeln("Введите оценки для ", SIZE, " учеников:");
for i := 1 to SIZE do
begin
write("Оценка для ученика ", i, ": ");
readln(grades[i]);
end;
// Подсчет оценок 4 и 5
count4 := 0;
count5 := 0;
for i := 1 to SIZE do
begin
if (grades[i] = 4) then
count4 := count4 + 1
else if (grades[i] = 5) then
count5 := count5 + 1;
end;
// Вывод результатов
writeln("Количество оценок "4": ", count4);
writeln("Количество оценок "5": ", count5);
// Изменение программы для обработки оценок только 5 учеников
writeln(); // Пустая строка для отделения двух частей программы
// Ввод оценок для 5 учеников с использованием оператора присваивания
writeln("Введите оценки для 5 учеников:");
grades[1] := 5;
writeln("Оценка для ученика 1: ", grades[1]);
grades[2] := 5;
writeln("Оценка для ученика 2: ", grades[2]);
grades[3] := 4;
writeln("Оценка для ученика 3: ", grades[3]);
grades[4] := 5;
writeln("Оценка для ученика 4: ", grades[4]);
grades[5] := 4;
writeln("Оценка для ученика 5: ", grades[5]);
// Подсчет оценок 4 и 5 только для 5 учеников
count4 := 0;
count5 := 0;
if (grades[1] = 4) then
count4 := count4 + 1
else if (grades[1] = 5) then
count5 := count5 + 1;
if (grades[2] = 4) then
count4 := count4 + 1
else if (grades[2] = 5) then
count5 := count5 + 1;
if (grades[3] = 4) then
count4 := count4 + 1
else if (grades[3] = 5) then
count5 := count5 + 1;
if (grades[4] = 4) then
count4 := count4 + 1
else if (grades[4] = 5) then
count5 := count5 + 1;
if (grades[5] = 4) then
count4 := count4 + 1
else if (grades[5] = 5) then
count5 := count5 + 1;
// Вывод результатов с комментариями
writeln("Количество оценок "4": ", count4, " (только для 5 учеников)");
writeln("Количество оценок "5": ", count5, " (только для 5 учеников)");
end.
В этой программе используется массив `grades`, который содержит оценки для каждого ученика. Сначала программа запрашивает оценки для 20 учеников и подсчитывает количество оценок 4 и 5. Затем она изменяется, чтобы обрабатывать только 5 учеников с использованием оператора присваивания. Здесь оценки учеников хранятся в переменных `grades[1]`, `grades[2]`, и т.д. Затем программа подсчитывает количество оценок 4 и 5 только для этих 5 учеников и выводит результаты с комментариями.
Знаешь ответ?