Помощь - Поиск - Пользователи - Календарь
Полная версия: массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ut.scorpion
Помогите найти ошибку в программе (программа выводит на дисплей данные только последнего абитуриента).
Вот условие: Программа должна запросить ввод: количества студентов в группе (5<=n>=10), название 4-х дисциплин, по которым сдавались экзамены и обеспечивать ввод данных о каждом студенте: ФИО, результаты сдачи каждого экзамена, определить количество студентов со средним баллом не ниже 3.5, фамилия которых начинается с заданной буквы (от А до Я) и вывести сведения о количестве таких студентов, ФИО студентов и их средний балл.

А так же помогите разобраться как ввести условие, чтобы выводились сведения о студентах фамилия которых начиналась с заданной буквы(от А до Я)

program kurs;

type T=record
fio: string[55];
ocn: array[1..4] of integer
end;
var spisok: t;
kol: integer;
N: integer;
srbal:real;
I,J: integer;
begin kol:=0;
writeln('ВВедите число абитуриентов, сдававших экзамены');
readln (N);
writeln('итоги экзаменов');
for i:=1 to N do
with Spisok do begin
write('введите фио ');
readln(Fio);
write('введите оценки ');
readln(ocn[1], ocn[2], ocn[3], ocn[4]);
for j:=1 to 4 do
srbal:=(ocn[1]+ocn[2]+ocn[3]+ocn[4])/4;
end;
writeln;
writeln('Итоги экзаменов');
writeln('№':2, 'Студент':4, 'Русский язык':12, 'Математика':8, 'Физика':8, 'информатика':12);
with spisok do begin
for i:=1 to n do begin
write(i:2, fio);
for j:=1 to 4 do
write(ocn[j]:8);
writeln;
end;
readln;

end;
end.

М
используй теги

klem4
у тебя не правильно организована база, тип переменой spisok должен быть array of T, а не T

например:

spisok: array [1..10] of T; // инфа о 10ти студентах
дальше это все надо обрабатывать в цикле от 1 до 10, работая с spisok[i].

Добавлено через 1 мин.
Зачем кстати тему продублировал ? Больше так не делай, старю тему удаляю.
ut.scorpion
Добавлено через 1 мин.
Зачем кстати тему продублировал ? Больше так не делай, старю тему удаляю.
[/quote]
Извиняюсь.
Вот сделал как ты и говорил (spisok: array[1..10] of t)
но ни чего не изменилось

program kurs;

type T=record
fio: string[55];
ocn: array[1..4] of integer
end;
var spisok: array[1..10] of t;
kol: integer;
N: integer;
srbal:real;
I,J: integer;
begin kol:=0;
writeln('ВВедите число абитуриентов, сдававших экзамены');
readln (N);
writeln('итоги экзаменов');
for i:=1 to N do
with Spisok[i] do begin
write('введите фио ');
readln(Fio);
write('введите оценки ');
readln(ocn[1], ocn[2], ocn[3], ocn[4]);
for j:=1 to 4 do
srbal:=(ocn[1]+ocn[2]+ocn[3]+ocn[4])/4;
end;
writeln;
writeln('Итоги экзаменов');
writeln('№':2, 'Студент':4, 'Русский язык':12, 'Математика':8, 'Физика':8, 'информатика':12, 'Средний балл':12);
with spisok[i] do begin
for i:=1 to n do begin
write(i:2, fio);
for j:=1 to 4 do
write(ocn[j]:8);
write(srbal:12:1);
writeln;
end;
readln;

end;
end.

volvo
...
writeln('Итоги экзаменов');
writeln('№':2, 'Студент':4, 'Русский язык':12, 'Математика':8, 'Физика':8, 'информатика':12, 'Средний балл':12);
for i:=1 to n do
with spisok[i] do begin { <--- Сначала узнаем I, потом присоединяем через With }
write(i:2, fio);
for j:=1 to 4 do write(ocn[j]:8);
write(srbal:12:1);
writeln;
end;
ut.scorpion
Спасибо. Еще немножко подкоректировал и все заработало.
Теперь буду разбираться с условием вывода информации об абитуриенте с заданной буквы и набранным средним количеством баллов...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.