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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2013, 22:52   #1
Ann2807
Пользователь
 
Регистрация: 08.09.2012
Сообщений: 41
По умолчанию Типизированный файл. Создание в паскале

Здравствуйте, помогите, пожалуйста объявить и обработать файлы.
Есть код. Нужно сделать в нем(или из него) типизированные файлы.

вот само задание, по которому это нужно сделать

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

Вот код
Код:
 {Основная программа }
uses op, obrabotka;
var
      sved1 :  sved;
begin
    vvod (sved1);
    spravka (sved1);
end.
Код:
{Модуль 1 описания данных}
unit op;
interface
const
      n=2;
type
      tClient=record
                            full_name : string ;
                            sum : string;
                            address : string;
      end;
      tBank=record
                            name: string;
                            annual_percent: real;
	    end;
	    inform=record
                            client: tClient;
                            country: string;
                            bank: tBank;
      end;

      sved=array[1..n] of inform;

implementation

end.
Код:
{Модуль 2. }
unit obrabotka;
interface
uses op;
  procedure vvod (var sved1:sved);
  procedure spravka (var sved1:sved);
implementation
procedure vvod (var sved1:sved);
var
  i     : byte;
begin
 for i:=1 to n do
      with sved1[i] do begin
         with client do begin
           write('Введите ФИО клиента ', i, 'клиента');
           readln(full_name);
           write('Введите сумму вклада ', i, 'в банке');
           readln(sum);
           write('Введите адрес ', i, 'банка ');
           readln(address);
           write('Введите страну', i, 'банка');
           readln(country);
           write('Введите название ', i, 'банка');
           readln(name);
           write('Введите годовой ', i, 'процент');
           readln(annual_persent);
           
         end;
      end;
end;
procedure spravka (var sved1:sved);
var
     i:byte;
     bank1:string;
begin
    writeln('Введите название банка');
    readln(bank1);
    for i:=1 to n do
         with sved1[i] do
                     if sved1[i].bank.name=bank1 then
	                    	    writeln('ФИО клиента:',sved1[i].client.full_name:6,
                            ' Сумма вклада в банке: ', sved1[i].client.sum:6,
                            ' Адрес клиента: ',sved1[i].client.address:6);
end;
end.
Я начала записывать это в файл- не работает. выдает ошибку в 12 строке (где Rewrite). Нельзя преобразовывать выражение типа Array [1..2] of record (...)к типу file
Код:
 {Ìîäóëü 2. }
unit obrabotka;
interface
uses op;
  procedure vvod (var sved1:sved);
  procedure spravka (var sved1:sved);
implementation
procedure vvod (var sved1:sved);
var
  i     : byte;
       ch           : char;
begin
    rewrite (sved1); 		
    ch:='a';
    while (ch='a') or (ch='n') do
               begin

 for i:=1 to n do
      with sved1[i] do begin
         with client do begin
           write('Ââåäèòå ÔÈÎ '  , i,  ' êëèåíòà ' );
           readln(full_name);
           write('Ââåäèòå ñóììó âêëàäà  â ' , i ,' áàíêå ' );
           readln(sum);
           write('Ââåäèòå àäðåñ ', i , ' áàíêà ' );
           readln(address);
         end;
           write('Ââåäèòå ñòðàíó ', i, ' áàíêà ' );
           readln(country);
         with bank do begin
           write('Ââåäèòå íàçâàíèå ', i , 'áàíêà ' );
           readln(name);
           write('Ââåäèòå ãîäîâîé ïðîöåíò  ' , i , ' áàíêà ');
           readln(annual_percent);
         end;
      end;
end;
          write(sved1,client); 	
                    writeln('Áóäåòå åùå ââîäèòü äàííûå, åñëè 'äà', òî íàáåðèòå 'a'èëè 'n'');
                    readln(ch);
	     end;
     close(sved1);
end;

procedure spravka (var sved1:sved);
var
     i:byte;
     bank1:string;
begin
reset(sved1); 					
      writeln('Ñâåäåíèÿ î êëèåíòàõ îïðåäåëåííîãî áàíêà');
      while NOT EOF(sved1) do
               begin
                      read(sved1,client); 		

    writeln('Ââåäèòå íàçâàíèå áàíêà');
    readln(bank1);
    for i:=1 to n do
         with sved1[i] do
                     if sved1[i].bank.name=bank1 then
	                    	    writeln('ÔÈÎ êëèåíòà:',sved1[i].client.full_name:6,
                            ' Ñóììà âêëàäà â áàíêå: ', sved1[i].client.sum:6,
                            ' Àäðåñ êëèåíòà: ',sved1[i].client.address:6);
end;
      close(sved1);
end.
Извините за "китайский" в последнем коде, из предыдущего все понятно/ Модули обязательны
Ann2807 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типизированный файл vaako Паскаль, Turbo Pascal, PascalABC.NET 1 06.04.2012 21:05
Типизированный файл из чисел. Создание, ввод и обработка. Пе4енька Паскаль, Turbo Pascal, PascalABC.NET 5 10.10.2011 19:54
Типизированный файл с натуральными числами. Числа, встречающиеся 1 раз переписать в другой файл [Паскаль] mifomen Помощь студентам 7 16.12.2010 22:00
Типизированный файл Юляшко Паскаль, Turbo Pascal, PascalABC.NET 1 28.04.2010 16:15