Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Файлы


Автор: AstonMDB9 10.5.2006, 13:30
Есть код на Паскале,переведите,пожалуйста, в Си,кого не затруднит.
Заранее благодарен.

Код


uses crt;
type
ludi=record
    fam,name,znak:string[15];
    dat:array[1..3] of integer;
end;
const
  mas:array[1..6] of string[30]=('Familia','Imya','Znak zodiaka','Chislo','Mesyac','God');
  mas1:array[1..6] of string[30]=('Vvedite familiu:','Vvedite imya:','Vvedite znak zodiaka:',
  'Vvedite chislo:','Vvedite mesyac:','Vvedite god:');
  l=12;
 Var
   key:char;
   f:file of ludi;
   buf:ludi;
  Procedure out(fl:boolean);
  var
 i,k:integer;
 flag:boolean;
  Procedure vivod;
  begin
   with buf do
    begin
     write(fam:l+1);
     write(name:l+1);
     write(znak:l+1);
     write(dat[1]:l+1);
     write(dat[2]:l+1);
     writeln(dat[3]:l+1);
    end;
  end;{of vivod}
  begin
   assign(f,'8.txt');
   reset(f);
   if ioresult=2 then
    begin
     assign(f,'8.txt');
     rewrite(f);
    end;
   flag:=false;
   if fl then
     begin
      write('Vvedite N mesyaca, inform. o rodivshixsya v kotoriy nado vivesti:');
      readln(k);
      writeln;
     end;
     for i:=1 to 6 do
       write(mas[i]:l);
      writeln;
     while not eof(f) do
      begin
       read(f,buf);
       with buf do
        if not(fl) then vivod else
         if (fl)and(dat[2]=k)then
          begin
           vivod;
           flag:=true;
          end;
        end;
       if (fl) and not(Flag) then writeln('V spiske rodiv-sya v ',k,' mesyac net.');
        close(f);
      end;{of out}
      Procedure vvod;
      begin
        with buf do
         begin
          write(mas1[1]);readln(fam);
          write(mas1[2]);readln(name);
          write(mas1[3]);readln(znak);
          write(mas1[4]);readln(dat[1]);
          write(mas1[5]);readln(dat[2]);
          write(mas1[6]);readln(dat[3]);
         end;
        write(f,buf);
         close(f);
        end;{of vvod}
        begin
         clrscr;
         out(false);
         writeln;
         writeln('Dob. zap. -Enter');
          key:=readkey;
          case key of
          #8:begin
             assign(f,'8.txt');
             rewrite(f);
             close(f);
             out(false);
             readkey;
            end;
          #13:begin
              repeat
              assign(f,'8.txt');
              reset(f);
              seek(f,filesize(f));
              vvod;
              writeln('Vvesti ese-ENTER, dalee-lubaya klavisha.');
              key:=readkey;
             until key<>#13;
             writeln;
             out(false);
             readkey;
            end;
          #27:halt(1);
          end;{of case}
          writeln;
          out(true);
          readkey;
       end.


Вот условие:
 Создать типизированный файл, запись которого имеет
 следующую структуру: фамилия, имя, знак Зодиака,
 дата рождения (массив из трех чисел).  Вывести на
 экран информацию о людях,  родившихся в месяц, 
значение которого вводится с клавиатуры. 
Если таких людей нет,  то вы-дать на дисплей соответствующее сообщение.
 Ввод файла и его обработку оформить в виде от-дельных подпрограмм.



  

Автор: sergejzr 10.5.2006, 15:48
Модератор: Название темы должно отражать ее суть!
И пользуйтесь кнопкой "Код"!! 

Автор: sergejzr 10.5.2006, 15:48
Для домашних заданий, курсовых, существует "Центр Помощи"

Тема перенесена!  

Автор: DimassS 12.5.2006, 04:10
А почему именно в Си?  

Автор: MAKCim 12.5.2006, 07:35
Цитата

А почему именно в Си?   

потому что человеку надо в С (мало ли причин) 

Автор: DimassS 12.5.2006, 17:56
Цитата

потому что человеку надо в С (мало ли причин) 


Ну тогда всё ясно... просто я думал может и на Delphi можно... smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)