Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2013, 20:35   #1
ksenija15reg
Пользователь
 
Регистрация: 03.10.2013
Сообщений: 22
По умолчанию файловый тип данных

Создайте файл, содержащий информацию об учениках:фамилию, класс, количество пропущенных часов. найти ученика с наибольшим количеством пропусков
Код:
program qq;
uses crt;
type
 pupil = record;
 fam:string;
 kl:1..11;
 ch:integer;
 end;
var
f8:file of pupil;
propusk:array [1..20] of pupil;
i,n,f,max:integer;
begin
clrscr;
assign(f8,'inp.txt');
rewrite(f8);
write('vvedite kol-vo uchenikov');
read(n);
 for i:=1 to n do
  begin
   write('familia: ');
   read(propusk[i].fam);
   write('klass: ');
   read(propusk[i].kl);
   write('kol-vo chasov: ');
   read(propusk[i].ch);
  end;
writeln('bolshe vsego propuskov:');
 read(f8);
 for i:=1 to n do
  begin
  max:=-1000;
   if propusk[i].ch > max then max:=propusk[i].ch;
  end;   writeln(propusk[i].fam,', klass ',propusk[i].kl);
  close(f8);
readkey;
end.

Последний раз редактировалось ksenija15reg; 23.12.2013 в 21:01.
ksenija15reg вне форума Ответить с цитированием
Старый 23.12.2013, 20:53   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Ошибка в 4-й строке.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 23.12.2013, 21:00   #3
ksenija15reg
Пользователь
 
Регистрация: 03.10.2013
Сообщений: 22
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Ошибка в 4-й строке.
я исправила ее, но мне программа не выдает ученика с наибольшим кол-вом пропусков
ksenija15reg вне форума Ответить с цитированием
Старый 23.12.2013, 21:07   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Цитата:
Сообщение от ksenija15reg Посмотреть сообщение
я исправила ее, но мне программа не выдает ученика с наибольшим кол-вом пропусков
И не будет. Потому что вы файл не создаете. То есть не пишите в него

Код:

   write('familia: ');
   read(propusk[i].fam);
   write('klass: ');
   read(propusk[i].kl);
   write('kol-vo chasov: ');
   read(propusk[i].ch);
  Write(f8,propusk[i]); // записал в файл
  end;
Close(f8); //закрыл его
writeln('bolshe vsego propuskov:');

Последний раз редактировалось ZX Spectrum-128; 23.12.2013 в 21:11.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 23.12.2013, 21:11   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

Код:
for i:=1 to n do
  begin
   max:=-1000;
   if propusk[i].ch > max then max:=propusk[i].ch;
  end;   
writeln(propusk[i].fam,', klass ',propusk[i].kl);
Результат: нашли непонятное max (ибо это max постоянно становится равным - 1000) и выводите фамилию ... последнего в списке.
Надо искать индекс самого злостного прогульщика, а не количество его пропусков.
Код:
max:=1;
for i:=2 to n do
   if propusk[i].ch > propusk[max].ch then max:=i;
writeln(propusk[max].fam,', klass ',propusk[max].kl);

Последний раз редактировалось type_Oleg; 23.12.2013 в 21:15.
type_Oleg вне форума Ответить с цитированием
Старый 03.11.2014, 17:13   #6
Donald Ervin Knuth
Пользователь
 
Аватар для Donald Ervin Knuth
 
Регистрация: 15.10.2014
Сообщений: 16
По умолчанию

Цитата:
Сообщение от ksenija15reg Посмотреть сообщение
Создайте файл, содержащий информацию об учениках:фамилию, класс, количество пропущенных часов. найти ученика с наибольшим количеством пропусков
Код:
program laba_file;
type
 uchenik=record
       familia:string[25];
     klass_uch:1..11;
  propusk_chas:integer;
            end;
var
  f:file of uchenik;
  vr_mas: array[1..100] of uchenik;{-- буфер--}
  zap,max,i,n:integer;
begin
  assign(f,'C:\PABCWork.NET\klass.txt'); {-- заведем новый файл --}
  rewrite(f);      {-- если есть такой файл , удалим содержимое---}
  close(f);
 {-- теперь работает этим файлом---}

  writeln('Ведите количество учеников в классе');
  readln(n);
   reset(f);
  for i:=1 to n do
    begin
      writeln('Введите фамилию ',i,' ученик');readln(vr_mas[i].familia);
      writeln('Введите класс ',i,' ученик, в котором обучается');readln(vr_mas[i].klass_uch);
      writeln('Введите количество пропущенных часов ',i,' ученика');readln(vr_mas[i].propusk_chas);
      write(f,vr_mas[i]);
    end;{-- данные в буфере---}
    close(f);
      {-- запишем все  в файле klass.txt----}
     
      {---  теперь найдем  ученика с наибольшим количеством пропущенных часов---}
{--- предполгая что это нужно сделать непосредственно доставая данные из файла----------}
  max:=0;zap:=0; reset(f);
      while not Eof(f) do
        begin
          for i:=1 to n do
          begin
          Read(f,vr_mas[i]);
        if vr_mas[i].propusk_chas>max then 
                  begin  
                  zap:=i; {-- попался--}
                  max:=vr_mas[i].propusk_chas;
                  end;
          end;
        end;
        {writeln (zap);}
        {-- вывод результата на экран--}
        writeln('--------------------------------------------');
        writeln('Фамилия данного ученика=  ',vr_mas[zap].familia); 
        write('И он учится в ',vr_mas[zap].klass_uch); writeln(' классе');
        write('Пропустил всего = ',vr_mas[zap].propusk_chas);writeln(' часов');
    close(f);       
end.
g25092011
Donald Ervin Knuth вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файловый тип данных (Pascal) ksenija15reg Помощь студентам 3 07.12.2013 11:14
файловый тип данных zxzxz Помощь студентам 5 07.05.2013 19:34
Файловый тип данных в Pascal ABC Карина 1578 Помощь студентам 0 22.12.2011 08:06
файловый тип данных и тд. deni007-92 Фриланс 2 03.06.2010 15:09
Файловый тип данных Delphi LastBreath Помощь студентам 2 26.05.2010 14:05