Тема: Записи в Pascal(Record)
Завдання:
Ввести інформацію про групу студентів(прізвище,ініціали,набір предметів).
Набір предметів це масив який містить інформацію про назву предмету та оцінку(лише одну) з даного предмету.
Кожен учень може містити різну кількість предметів.
Вивести на екран табличку з інформацією про студентів,предметів які вони вивчають,та оцінку з кожного предмету.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
Subject=record
NofS:string; //name of the subject(предмет)
ANote:real; //mark(оцінка)
end;
Student=record
SName:string; //(прізвише студента)
Initials:string; //(П.І.Б)
Sub:array[1..10] of subject;//(предмет,який вивчає даний студент)
end;
var
S:array[1..25] of student;
n,i:integer;
begin
Write('Enter count of students=');//(кількість студентів)
Readln(n);
for i := 1 to n do//(цикл введення даних)
begin
write('Student ',i,' has surname= ');
readln(S[i].SName);
write('initials of the ',S[i].SName,'= ');
readln(S[i].Initials);
Write(S[i].SName,' Studying subject= ');
readln(S[i].Sub[i].NofS);
Write(' and has the following marks=');
readln(S[i].Sub[i].ANote);
end;
for i := 1 to n do//(цикл виведення даних)
begin
with S[i] do
writeln(Sname,' ',Initials,' ',Sub[i].NofS,' ',Sub[i].ANote:0:2);
end;
readln;
readln;
end.
Проблема:
Як кожному студенту надати певну кількість предметів.
Пробував ввести цикл:
begin
Write('Enter count of students');//(кількість студентів)
Readln(n);
for i := 1 to n do//(цикл введення даних)
begin
write('Student ',i,' has surname= ');
readln(S[i].SName);
write('initials of the ',S[i].SName,'= ');
readln(S[i].Initials);
Writeln('Count of subjects=');
Readln(a); for b :=1 to a do
begin
Write(S[i].SName,' Studying subject= ');
readln(S[i].Sub[i].NofS);
Write(' and has the following marks=');
readln(S[i].Sub[i].ANote);
end;
end;
for i := 1 to n do//(цикл виведення даних)
begin
with S[i] do
writeln(Sname,' ',Initials,' ',Sub[i].NofS,' ',Sub[i].ANote:0:2);
end;
readln;
readln;
end.
Але програма запам'ятовує лише останній предмет.
Дякую.