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

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

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

> Поиск в записи (файл) [Pascal]
*alt
сообщение 14.11.2007 13:26
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 47
Пол: Мужской

Репутация: -  0  +


Задача.
Создайте файл. В каждом курсе найдите гркппу (группы), в которой больше всего отличников.

Проблема заключается в том, что не очень понимаю как осуществить поиск
Вот мой код, только процедура 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}

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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