Помощь - Поиск - Пользователи - Календарь
Полная версия: Записи
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Вася
Сведения об ученике состоят из его имени и фамилии, названия класса (года
обучения и буквы), в котором он учится, оценок, полученных учеником за пос-
леднюю четверть. Пусть дан массив, содержащий сведения об учениках школы:

d) выясните, в каких классах насчитывается более 15 учащихся;

program s129n24dxXx;
const n = 100; // кол-во учеников
MaxN = 100; // макс кол-во оценок одного ученика
type
Tocenka = array [1..maxn] of integer; // тип массив оценок одного ученика
data = record // запись, данные ученика
fio: string; // фамилия и имя
klass1: integer; // класс (цифра)
klass2: char; // класс (литера)
chetvert: Tocenka; // оценки за последнюю четверть
end;
Tmas = array [1..n] of data; // массив данных учеников
var
ucheniki: Tmas; //массив данных учеников
i: integer; //счётчик
// процедура ввода данных об одном ученике
procedure read_data (var a: data);
var i: integer;
begin
writeln ('Введите сведения об ученике: ');
with a do
begin
write ('Фамилия и имя: ');
readln (fio);
write ('класс (цифру): ');
readln (klass1);
write ('класс (литеру): ');
readln (klass2);
write ('оценки за четверть: ');
readln (chetvert[i]);
end;
end;
// процедура поиска классов, в которых более 15 учеников
procedure poisk (var a: Tmas);
var i, j, k: integer;
begin
i:=0;
while i<=n do
begin
k:=1;
i:=i+1;
for j:=1 to n do
begin
if (a[i].klass1=a[j].klass1) and (a[i].klass2=a[j].klass2)
and (i<>j)
then
k:=k+1;
end;
if (k>=15) then
begin
writeln (a[i].klass1, ' ', a[i].klass2);
end;
end;
end;
begin{main}
for i:=1 to n do // ввод данных всех учеников
begin
read_data (ucheniki[i]);
end;
poisk (ucheniki);
readln;
end.


Lapp
Вася, в чем состоит твой вопрос? Если просто проверить твою работу - извини, не по адресу. Отдай преподавателю, он проверит.
А здесь задавай вопросы, если что-то непонятно.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.