Собрать в файле g сведения о лучших учениках школы
Дан файл f, содержащий сведения об учениках. Сведения об ученике состоят из его имени и фамилии и названия класса (года обучения и буквы), в котором он учится и отметки полученные учеником в последней четверти. Собрать в файле g сведения о лучших учениках школы, т.е. об учениках, не имеющих отметок ниже 4 и по сумме баллов не уступающих другим ученикам своего и параллельных классов.
|
Ответ традиционный: тыц!
|
Попробовал сделать по шаблону, но не знаю как сделать вывод нескольких учеников и как вывести сумму баллов
|
Цитата:
|
Наверно самый идиотский набросок, ну как то так
var f: text; Lastname: string; Name: string; Klass: string; Mark:integer; n,i,k: integer; begin assign(f,filename); reset(f); writeln('Ученик:'); k := 0; readln(f,n); for i := 1 to n do begin readln(Lastname); readln(Name); readln(Klass); readln(Mark); if (Mark > 4) then {} begin if Mark = then close(f); readkey; end. |
Нет-нет, такие задачи решаются через тип "запись" ("record") и организацию массива записей. Кроме того, я просил Вас показать, как Вы представляете себе вид исходного файла. Чтобы было видно где, что и в каком порядке расположено.
Кроме того, если Вы используете команду Readkey, то будьте любезны поставить в начале uses CRT; , потому что это команда модуля CRT. |
Вот есть еще такой
const N=4; var Student:Array[1..N] of Record Lastname:string; Name:string; Klass:Word; Mark:Word; end; i,i0:integer; Rate:integer; Begin Rate:=4; For i:=1 to N do With Student[i] do begin Writeln(i,' Ученик'); Write('Фамилия: '); Readln(Lastname); Write('Имя: '); Readln(Name) ; Write('Класс: '); Readln(Klass); Write('Оценка: '); Readln(Mark); Writeln; If Mark>Rate then begin i0:=i; Rate:=Mark; end; end; Writeln('Лучшиие ученики:'); With Student[i0] do begin Writeln('Name: ',Name); Writeln('Lastname: ',Lastname); Writeln('Klass: ',Klass); Writeln('Mark: ',Mark); end; readln; End. это опираясь на тему в первом сообщении |
Цитата:
Код:
Type Тогда можно будет продолжить. Но только завтра. А если указанный перечень так и не появится, то - извините, ничем не могу помочь. |
1 Ученик
Фамилия: Иванов Имя: Иван Класс: 5А Оценка: 5 2 Ученик Фамилия: Петров Имя: Петр Класс: 9В Оценка: 4 3 Ученик Фамилия: Соколов Имя: Алексей Класс: 6А Оценка: 3 4 Ученик Фамилия: Козлов Имя: Олег Класс: 5А Оценка: 5 Единственное ни как не могу сообразить, как сделать несколько оценок (которые получены за четверть) |
Сразу скажу: с таким файлом работать ОЧЕНЬ трудно. Предлагаю такой вариант:
Иванов Иван 5А 5 4 3 4 3 5 Петров Петр 9В 4 4 3 4 3 3 и т.д. Количество оценок целесообразно задать в виде константы (напр. Nm = 6). Как их считать - поясню. Но не сегодня. |
Часовой пояс GMT +4, время: 20:35. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.