![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Вася |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 27 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сведения об ученике состоят из его имени и фамилии, названия класса (года
обучения и буквы), в котором он учится, оценок, полученных учеником за пос- леднюю четверть. Пусть дан массив, содержащий сведения об учениках школы: 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.
|
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 10:42 |