Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 14.07.2011, 21:49   #1 (permalink)
MordaW
Новичок
 
Регистрация: 14.07.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Типизованный файл

Задача:
Типизованный файл содержит информацию о канцелярских товарах (8 записей). Товар характеризуется следующими показателями: код товара (целое число), название (символьное), цена (вещественное). Поиск товара по заданному названию.


Мои наработки:
Код:
Program kanz_tovari;
type tovari = record
*********kod : integer;
*********name : string;
*********cost : real;
****end;
var
*********ntovar:tovari;
*********f : file of tovari;
*********i,n : integer;
*********b:string;
begin
assign (f,**'kanz_tovari.pas');
Rewrite ( f );
write ('Укажите сколько будет товаров');
readln (n);
for i:=1 to n do
*****begin
**********with ntovar do
**************begin
****************writeln ('Введите название ',i,'-го товара*');
****************readln (name);
****************writeln ( 'Введите код ',i,'-го товара ');
****************readln (kod);
****************writeln ('Введите стоимость ',i,'-го товара*');
****************readln (cost);
**************end;
**********write ();
*****end;
close ( f );
writeln('---| Поиск нужного товара |---');
reset ( f );
**********with ntovar do
**************begin
****************writeln ('Введите название нужного товара*');
****************readln (b);
****************if b=name then
**********write (ntovar.cost);
********end;
********close(f)
*****end.
Не могу никак "допетрить" как сделать так, чтобы выводилися данные о товаре которые нужны пользователю. Помогите пожалуйста. Если не сложно будет то напишите на почту саму доработку или просто ссылку на эту тему. заранее благодарен!


З.Ы. Пробелы заменять * - бред((
MordaW вне форума   Ответить с цитированием

Старый 14.07.2011, 21:49
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Внимательно пролистайте похожие темы

INF файл
Испорченный файл
Не находит TPU файл.
Файл fb2
Файл PCI.DLL

Старый 15.07.2011, 10:39   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от MordaW Посмотреть сообщение
З.Ы. Пробелы заменять * - бред((
Абсолютный, и притом никому не нужный: если Вы пользуетесь тегом "код", то всё форматирование листинга сохраняется.
Два замечания по программе:
1. Ни в коем случае не следует присваивать рабочему файлу имя самой программы! К чему такое может привести - непредсказуемо.
2. А где, собственно, запись данных в файл? Не вижу.
Ну ладно - вот код, который решает задачу:
Код:
Program kanz_tovari;
type tovari = record
               kod : integer;
               name : string;
               cost : real;
              end;
var
 ntovar:tovari;
 f : file of tovari;
 i,n : integer;
 b:string;
 bul:boolean;
 finish:Char;
begin
 assign (f,'D:\kanz_tov.dat');
 Rewrite ( f );
 write ('Укажите сколько будет товаров ');
 readln (n);
 for i:=1 to n do
  with ntovar do
   begin
    writeln ('Введите название ',i,'-го товара ');
    readln (name);
    write ( 'Введите код ',i,'-го товара ');
    readln (kod);
    write ('Введите стоимость ',i,'-го товара ');
    readln (cost);
    Write(f,ntovar);
   end;
 writeln;
 close ( f );
 writeln('---| Поиск нужного товара |---');
 Repeat
  Write('Следующее наименование? (Y/N) ');
  Readln(finish);
  If (finish='Y') or (finish='y') then
   begin
    bul:=false;
    writeln ('Введите название нужного товара ');
    readln (b);
    reset ( f );
    i:=0;
    repeat
     Inc(i);
     Read(f,ntovar);
     if b=ntovar.name then bul:=true;
    until bul or (i=n);
    If bul=false then
     writeln('Такого товара нет!')
    else
     with ntovar do
       writeln('Код товара - ',kod,',    цена - ',cost:0:2);
    writeln;
   end;
 Until (finish='N') or (finish='n');
 close(f)
end.
Имя файла и путь поставьте, естественно, свои - но только (еще раз) не имя программы!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:03.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.