![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
*alt |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задача.
Создайте файл. В каждом курсе найдите гркппу (группы), в которой больше всего отличников. Проблема заключается в том, что не очень понимаю как осуществить поиск Вот мой код, только процедура PROCESS не сделана..... Код const n = 10; //сессии m = 2; //экзамены type //Запись сведений об экзамене ekzamen = record pred: string[10]; ocen: byte; end; Te = array [1..n,1..m] of ekzamen; student = record fio: string[40]; nkurs: 0..10; ngrup: char; uspev: te; form: char; end; fs = file of student; var fstud: fs; name, pr: string; st: student; ek: ekzamen; i, j, k, nk: integer; S: real; procedure create; //Создание файла const esc='N'; var name: string; f: fs; st: student; ek: ekzamen; c: string; k,i,j: integer; begin write ('Введите название : '); readln (name); assignfile (f, name); rewrite (f); repeat write ('ФИО: '); readln (st.fio); write ('Номер Курса: '); readln (st.nkurs); write ('Номер группы: '); readln (st.ngrup); writeln ('---------------------'); writeln ('Введите усеваемость: '); for i:=1 to 2*st.nkurs do for j:=1 to m do begin write ('Введите предмет: '); readln (st.uspev[i,j].pred); write ('Введите оценку: '); readln (st.uspev[i,j].ocen); end; writeln ('---------------------'); write ('Форма обучения (Д/Б): '); readln (st.form); write(f,st); writeln ('Закончить - "N", Продолжить Enter'); readln (c); until c = esc; closefile (f); end; procedure print; var f: fs; st: student; ek: ekzamen; begin write ('Имя файла: '); readln (name); assignfile (f, name); reset (f); while not eof(f) do begin read (f, st); with st do begin writeln ('ФИО> ',fio); writeln ('Курс> ',nkurs); writeln ('№ Группы> ',ngrup); for i:=1 to 2*st.nkurs do for j:=1 to m do begin writeln ('Предмет> ',st.uspev[i,j].pred,' Оценка> ',st.uspev[i,j].ocen); end; writeln ('Форма>',form); end; end; closefile (f); end; {ТУТ НАДО ЧЕГО-НИБУДЬ НАПИСАТЬ!!!!!} procedure process; var name: string; f: fs; st: student; k,i,j: integer; s: real; begin write ('Имя файла: '); readln (name); assignfile (f, name); reset (f); closefile (f); end; begin {main} {меню} repeat writeln ('****************'); writeln ('1 - Создать'); writeln ('2 - Печать'); writeln ('3 - Обработка'); writeln ('0 - Выход'); writeln ('****************'); write (' Введите цифру >> '); readln (k); if (k<>0) then begin case k of 1 : create; 2 : print; 3 : process; end;{case} end; until k = 0; end.{main} |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 14:43 |