задачи на рекурсию и записи, помогите плз |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
задачи на рекурсию и записи, помогите плз |
буян |
Сообщение
#1
|
Гость |
огромная порсьба помочь решить задачи:
:molitva: 1) Написать рекурсивную функцию, которая находит минимальный элемент в матрице (двумерном массиве). 2) Создать файл в котором содержится информация троих учащихся (фамилия,имя,телефон,средние оценки по предметам). Вывести на экран фамилию и имя учащегося с максимальной и минимальной оценкой, использовать тип запись. |
APAL |
Сообщение
#2
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
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(& #39;Фамилия Имя ученика с минимальной оцен кой ',MinOc:4:2,' : ',MinName); Writeln(& #39;Фамилия Имя ученика с максимальной оце нкой ',MaxOc:4:2,' : ',MaxName) End; Begin Assign(f,FileName); For i:=1 to MaxUchenik do EnterData(i); Writeln; ViewMinMaxOcenka; End. Не исключаю некоторых опечаток и неточностей... будут вопросы - задавай. -------------------- |
APAL |
Сообщение
#3
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
1)
Здесь я не очень понял куда "приладить" рекурсию... -------------------- |
Guest |
Сообщение
#4
|
Гость |
СПАСИБО ОГРОМНЕЙШЕЕ !!!!!!!!!!!!!!!!!!!!!!
никогда не забуду. выручили ! еще раз спасибо ! |
APAL |
Сообщение
#5
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Что, неужели работает? И ни одной ошибки/опечатки?
Я же не проверял.... удивительно! -------------------- |
Текстовая версия | 23.12.2024 19:45 |