![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
буян |
![]()
Сообщение
#1
|
Гость ![]() |
огромная порсьба помочь решить задачи:
:molitva: 1) Написать рекурсивную функцию, которая находит минимальный элемент в матрице (двумерном массиве). 2) Создать файл в котором содержится информация троих учащихся (фамилия,имя,телефон,средние оценки по предметам). Вывести на экран фамилию и имя учащегося с максимальной и минимальной оценкой, использовать тип запись. |
![]() ![]() |
APAL |
![]()
Сообщение
#2
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
2)
Не тестировал - кодил прямо здесь... Код Const MaxPredmet = 6; MaxUchenik = 3; FileName = 'Data.dat'; Type String16 = String[16]; NameT = Record F,I : String16; End; danT = Record Name : NameT; Phone : String16; Ocen : Array [1..MaxPredmet] of Real; End; Var i,j : Byte; f : File of DanT; dan : DanT; Procedure EnterData(k : Byte); Begin Write('Фамилия ученика № ',k,' : '); Readln(Dan.name.F); Write('Имя ученика № ',k,' : '); Readln(Dan.name.I); Write('Телефон ученика № ',k,' : '); Readln(Dan.Phone); For j:=1 to MaxPredmet do Begin Write('Средняя оценка учиника № ',k,' по предмету № ',j,' : '); Readln(Dan.Ocen[j]); End; Reset(f); Write(f,Dan); Close(f); End; Procedure ViewMinMaxOcenka; Var MinName, MaxName : String; MinOc, MaxOc : Real; Function FindMinOc : Real; Begin j:=Dan.Ocen[1]; For i:=2 to MaxPredmet do If j>Dan.Ocen[i] then j:=Dan.Ocen[i]; FindMinOc:=j; End; Function FindMaxOc : Real; Begin j:=Dan.Ocen[1]; For i:=2 to MaxPredmet do If j<Dan.Ocen[i] then j:=Dan.Ocen[i]; FindMinOc:=j; End; Begin Reset(f); Read(f,dan); MinName:=Dan.name.f+' '+Dan.name.i; MaxName:=MinName; MinOc:=FindMinOc; MaxOc:=FindMaxOc; While not EOF(f) do Begin Read(f,Dan); If FindMinOc<MinOc then Begin MinName:=Dan.name.f+' '+Dan.name.i; MinOc:=FindMinOc; End; If FindMaxOc>MaxOc then Begin MaxName:=Dan.name.f+' '+Dan.name.i; MaxOc:=FindMaxOc; End; End; Close(f); Writeln('Фамилия Имя ученика с минимальной оценкой ',MinOc:4:2,' : ',MinName); Writeln('Фамилия Имя ученика с максимальной оценкой ',MaxOc:4:2,' : ',MaxName) End; Begin Assign(f,FileName); For i:=1 to MaxUchenik do EnterData(i); Writeln; ViewMinMaxOcenka; End. Не исключаю некоторых опечаток и неточностей... будут вопросы - задавай. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 1:43 |