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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2012, 14:28   #1
Alexbmgn
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 33
По умолчанию Структура данных-файл !

Кто в состоянии, прошу, направьте на путь реализации данного кода с помощью типизированных фйайлов... пока не особо укладывается с чего начать и как организовать...

Код:
uses crt,op;
const
      n=10;
type
      ses= record
      family: string[12];
      grup: 11..13;
      exz1: 2..5;
      exz2: 2..5;
      exz3: 2..5;
      end;
var
 i,k,p:integer;
begin
writeln('Ученики:');
for i:=1 to n do
         begin
         with abitur[i] do begin
            writeln ('Введите фамилию ',I,'-го ученика');
            readln (family);
            writeln ('номер группы ',I,'-го ученика');
            readln (grup);
            writeln ('Введите оценку по математике',I,'-го ученика');
            readln (exz1);
            writeln ('Введите оценку по экономике',I,'-ого ученика');
            readln (exz2);
            writeln ('Введите по программированию ',I,'-го ученика');
            readln (exz3);
            clrscr;
         end;
         end;

begin
for i:=1 to n do
         begin
             with abitur[i] do begin
               if exz1 <3 then writeln(family,' -Имеет задолженность по мат.');
               if exz2 <3 then writeln(family,' -имеет задолженность по экон.');
               if exz3 <3 then writeln(family,' -имеет задолженность по программированию');
             end;
             end;
             end;

begin
k:=0;
for i:=1 to n do
         begin
            with abitur[i] do
               if (exz1 and exz2 and exz3)>=4 then k:=k+1;
               end;
         writeln(k*100/n, ' % ученикоа сдавших все кзамены на 4 и 5');
end;
end.

Последний раз редактировалось Alexbmgn; 04.06.2012 в 14:31.
Alexbmgn вне форума Ответить с цитированием
Старый 04.06.2012, 15:04   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а где в вашем коде описание массива abitur ?!!


Цитата:
направьте на путь реализации данного кода с помощью типизированных фйайлов
а чего там думать то?
описать файл нужной структуры:
Код:
var
  f : file of ses;
записать ваш массив в новый файл:
Код:
 Assign(f, 'ИмяФайла.EXT');
 Rewrite(f);
 for i:=1 to n do
    Write(f, abitur[i]);
 Close(f);
прочитать из файла в массив (внимание! в коде ниже запрещается читать из файла, если там не ровно n записей! Однако, код легко изменить так, чтобы читать из файла
любое количество записей!)

Код:
 Assign(f, 'ИмяФайла.EXT');
 Reset(f);
 if FileSize(f)<>n then 
    WriteLn('В файле количество записей не равно ',n,' Чтение игнорируется!)
 else
 for i:=1 to n do
    Read(f, abitur[i]);
 Close(f);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.06.2012, 19:27   #3
Alexbmgn
Пользователь
 
Регистрация: 08.01.2011
Сообщений: 33
По умолчанию

Точно цикл while not eof(f) do begin думаю можно применить т.е пока не конец файла выполнять... Спасибо большое, слов даже не хватит выразить благодарность мою вам, теперь в голове всё по порядку выкладывается..

p.s abitur описан в модуле описания переменных отдельно, хотя всё остальное описано в файле
Alexbmgn вне форума Ответить с цитированием
Старый 05.06.2012, 09:29   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Точно цикл while not eof(f) do begin думаю можно применить т.е пока не конец файла выполнять...
Точно так! В правильном направлении мыслите!

Только в этом случае не забудьте запомнить в переменной, сколько же записей Вы считали из файла! например, так:
Код:
  KolZapisei := FileSize(f);
  i := 0;
  while not eof(f) do begin
     inc(i);
     Read(f, abitur[i]);
  end;
  Close(f);
или так:
Код:
  i := 0;
  while not eof(f) do begin
     inc(i);
     Read(f, abitur[i]);
  end;
  KolZapisei := i;
  Close(f);
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура и файл С++ Multiman Помощь студентам 0 14.03.2012 15:03
Файл и структура revaldo666 Общие вопросы C/C++ 8 18.05.2011 23:56
Структура+файл revanatar Общие вопросы C/C++ 6 23.01.2011 12:22
Файл,структура (TASM) natt23 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 07.12.2010 21:22
файл и структура muxazila Общие вопросы C/C++ 0 08.06.2010 16:42