IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задачи на рекурсию и записи, помогите плз
буян
сообщение 19.12.2004 6:30
Сообщение #1


Гость






огромная порсьба помочь решить задачи:
:molitva:
1) Написать рекурсивную функцию, которая находит минимальный элемент в матрице (двумерном массиве).
2) Создать файл в котором содержится информация троих учащихся (фамилия,имя,телефон,средние оценки по предметам). Вывести на экран фамилию и имя учащегося с максимальной и минимальной оценкой, использовать тип запись.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
APAL
сообщение 19.12.2004 14:35
Сообщение #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('Фамилия Имя ученика с минимальной оценкой ',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.

Не исключаю некоторых опечаток и неточностей... будут вопросы - задавай.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2025 1:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"