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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2012, 21:28   #1
Oksana7
 
Регистрация: 15.10.2012
Сообщений: 4
По умолчанию Файлы и записи (record)

Вывести фамилии и группу тех студентов, которые не получили ни одной тройки за сессию (в сессии 4 экзамена).
Указание: При решении задачи, использовать тип данных Записи (record). Исходные данные должны содержаться в текстовом файле. Количество записей в файле не меньше 20 и заранее неизвестно, сколько их. Результат работы программы записать в файл с другим именем.
Oksana7 вне форума Ответить с цитированием
Старый 15.10.2012, 21:59   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Я вижу 2 варианта :
1) Вы 1.1) просите о помощи, а не заходите кидаете задание, и ждете ответа
1.2) предоставляете наработки, черновики, хоть что-то
1.3) задаете вопросы, что не понятно
Тогда, возможно, Вы будет Вам счастье.
2) Вы идете с деньгой во фриланс.
Poma][a вне форума Ответить с цитированием
Старый 15.10.2012, 22:04   #3
Oksana7
 
Регистрация: 15.10.2012
Сообщений: 4
По умолчанию Файлы и записи (record)

Очень нужна ваша помощь, дорогие программисты! Помогите , пожалуйста, написать код программы в Pascal!

Последний раз редактировалось Oksana7; 15.10.2012 в 22:20.
Oksana7 вне форума Ответить с цитированием
Старый 15.10.2012, 22:32   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

воспользуйтесь поиском по форуму. подобные задачи здесь уже решались..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.10.2012, 22:34   #5
JIeIIIa
Пользователь
 
Регистрация: 21.12.2011
Сообщений: 54
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
2) Вы идете с деньгой во фриланс.
Надумаете пойти по этому пути - пишите stealth(собака)bigmir.net помогу.
Только (собака) замените на @
JIeIIIa вне форума Ответить с цитированием
Старый 15.10.2012, 23:47   #6
Oksana7
 
Регистрация: 15.10.2012
Сообщений: 4
По умолчанию

Что-то я не нашла ничего похожего....
Oksana7 вне форума Ответить с цитированием
Старый 16.10.2012, 10:37   #7
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Вроде бы так:
Код:
type

    ek=record
             fam,gr:string;
             ses:array [1..4] of 1..5;
             end;
    t=text;
var
   f1,f2:t;
   i,kol,o,w:integer;
   a:ek;

procedure soz(var f1:t);
begin
writeln('Kol-vo zapisi');
readln(kol);
assign(f1,'f111.txt');
rewrite(f1);
for i:=1 to kol do
    begin

    writeln('Fam');
    readln(a.fam);
    writeln('Frupa');
    readln(a.gr);
    writeln('Ocenki');
    for o:=1 to 4 do
        begin
        writeln(o,' ekzamen paven ');
        readln(a.ses[o]);

        end;
    writeln(f1,a.fam);
    writeln(f1,a.gr);
    for o:=1 to 4 do writeln(f1,a.ses[o]);
    end;
close(f1);
end;

procedure prosm(var f1,f2:t);
begin
assign(f1,'f111.txt');
reset(f1);
assign(f2,'f22222.txt');
rewrite(f2);
while not eof(f1) do
      begin
      readln(f1,a.fam);
      readln(f1,a.gr);
      for o:=1 to 4 do readln(f1,a.ses[o]);
      writeln(' ',a.fam,'  ',a.gr,' ',a.ses[1],' ',a.ses[2],' ',a.ses[3],' ',a.ses[4]);
      if (a.ses[1]>3) and (a.ses[2]>3) and (a.ses[3]>3)  and (a.ses[4]>3) then
         begin
         writeln(f2,a.fam);
         writeln(f2,a.gr);
         for o:=1 to 4 do writeln(f2,a.ses[o]);

         end;
      end;
close(f1);
close(f2);
readln;
end;

procedure prosm2(var f2:t);
begin
assign(f2,'f22222.txt');
reset(f2);
writeln('Fail 2 ----------');
while not eof(f2) do
      begin
      readln(f2,a.fam);
      readln(f2,a.gr);
      for o:=1 to 4 do readln(f2,a.ses[o]);
      writeln(' ',a.fam,'  ',a.gr,' ',a.ses[1],' ',a.ses[2],' ',a.ses[3],' ',a.ses[4]);
        end;


close(f2);
readln;
end;

BEGIN
w:=30;
while w<>0 do
      begin
      writeln('soz-1');
      writeln('prosm-2');
      writeln('prosm2-3');
      readln(w);
      case w of
           1:soz(f1);
           2:prosm(f1,f2);
           3:prosm2(f2);
           end;
      end;
readln;
END.
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Старый 16.10.2012, 11:44   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

domovou, очень хороший пример.

только, я бы не вводил дополнительный тип T (зачем, если он и так у вас равен Text)
и ещё, нет смысла передавать в любую процедуру переменную, которая в ней нужна лишь ВРЕМЕННО (и, главное, ничего в ней не возвращается!).
Уж тогда лучше имена файлов туда передавать!
и ещё очень не рекомендую использовать глобальные переменные (тем более в качестве временных локальных переменных)!

поясню. вместо:
Цитата:
Код:
procedure soz(var f1:t);
begin
writeln('Kol-vo zapisi');
readln(kol);
assign(f1,'f111.txt');
написать так:
Код:
procedure soz(const sFileName : string);
var f1 : Text;
     i,kol,o:integer;
     a:ek;
begin
  writeln('Kol-vo zapisi');
  readln(kol);
  assign(f1, sFileName);
....
  close(f1);
end;

.....


     readln(w);
     case w of
         1:soz('f111.txt');
и то же самое нужно сделать в процедурах prosm и prosm2

Последний раз редактировалось Serge_Bliznykov; 16.10.2012 в 11:48.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.10.2012, 12:10   #9
Oksana7
 
Регистрация: 15.10.2012
Сообщений: 4
По умолчанию

Спасибо большое! выручили!
Oksana7 вне форума Ответить с цитированием
Старый 16.10.2012, 15:58   #10
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Serge_Bliznykov, спасибо за комментарии! В следующий раз учту.
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
тип данных Записи (record) Minerva777 Паскаль, Turbo Pascal, PascalABC.NET 1 13.10.2012 17:23
Проблема при записи 'Record' в файл _Gonzo_ Паскаль, Turbo Pascal, PascalABC.NET 4 26.06.2012 21:13
Паскаль.Записи (RECORD). Alex20 Помощь студентам 7 27.11.2011 13:28
Записи(record) mexx1337 Паскаль, Turbo Pascal, PascalABC.NET 3 20.05.2011 05:41
Записи (record) mexx1337 Паскаль, Turbo Pascal, PascalABC.NET 1 12.05.2011 23:43