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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2009, 14:11   #1
*natali*
 
Регистрация: 11.10.2009
Сообщений: 4
Восклицание Найдите ошибку

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



Код:
Program Lab_12;
Type
TData = record
year,month,day:integer;
end;
TMilk = record
nazv:string;
srok:integer;
cena:real;
data:Tdata;
end;
var
milk: TMilk;
i,j: integer;
Fmilk: file of TMilk;
Ftext: text;
otvet: char;
begin
assign(Fmilk,'Fmilk.dat');
rewrite(Fmilk);
assign(Ftext,'Ftext.txt');
rewrite(Ftext);
writeln('Введите данные:');
writeln;
repeat
    with milk do begin
         write('Введите название*:',nazv); readln(nazv);
         writeln('Введите дату'); readln(data);
         write('Введите год',data.year);
         write('Месяц:',data.month);
         write('День:',data.day);
         write('Срок хранения:',srok);
         write('Закупочная цена:',cena);
         end;
write(Fmilk,milk);
write('Продолжать ввод?(Д/Н)');
readln(otvet);
until((otvet='Н')or(otvet='*н'));
close(Fmilk);
reset(Fmilk);
writeln(' Продукты, выпущенные в июле 2004 года:                          |');
for i:=1 to 66 do write('-');write('|');
writeln;
write(' Название | ');
write('Год  | ');
write('Месяц | ');
write('День | ');
write('Срок хранения | ');
write('Закуп.цена | ');
writeln;
for i:=1 to 66 do write('-');write('|');
writeln;
writeln(FText,' Продукты, выпущенные в июле 2004 года:*:                           |');
for i:=1 to 66 do write(FText,'-');write(FText,'|');
writeln(FText);
write(FText,' Название | ');
write(FText,'Год | ');
write(FText,'Месяц | ');
write(FText,'День | ');
write(FText,'Срок хранения | ');
write(FText,'Закуп.цена* | ');
writeln(FText);
for i:=1 to 66 do write(FText,'-');write(FText,'|');
writeln(FText);
 
while not(eof(Fmilk)) do with milk do begin
read(Fmilk,milk);
if ((data.year=2004)and(data.month=7)) then
with milk do begin
                
                write(' ');
                while(length(nazv)<8) do nazv:=nazv+' ';
                write(nazv,' | ');
                write(data.year,' | ');
                write('  ',data.month,'   | ');
                write(' ',data.day,'  | ');
                write('      ',srok,'      | ');
                write('     ',cena:2:2,'      |');
                writeln;
                for j:=1 to 66 do write('-');write('|');
                writeln;
               
                write(FText,' ');
                while(length(nazv)<8) do nazv:=nazv+' ';
                write(FText,nazv,' | ');
                write(FText,data.year,' | ');
                write(FText,'  ',data.month,'   | ');
                write(FText,' ',data.day,'  | ');
                write(FText,'      ',srok,'      | ');
                write(FText,'     ',cena:2:2,'      |');
                writeln(FText);
                for j:=1 to 66 do write(FText,'-');write(FText,'|');
                writeln(FText);
                end;
end;
close(Fmilk);
close(Ftext);
end.

Последний раз редактировалось AlDelta; 08.11.2009 в 14:19.
*natali* вне форума Ответить с цитированием
Старый 08.11.2009, 14:13   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Найдите ошибку
что это вы нас каждый день ребусами озадачиваете?
что пишет Паскаль?
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 08.11.2009, 14:43   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

М-мм. Где-то между Program Lab_12; и end.. Одну ошибку вижу сразу - полное отсутствие комментариев. Программист он сначала читатель, а уже потом писатель. Вот Вы писатель, поэтому Ваш код ковырять никто не хочет. А если бы Вы были читателем, то возможно ошибку бы и искать не пришлось.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 08.11.2009, 17:30   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

для начала, ввод данных должен быть такой:

Код:
  writeln('Введите данные:');
  writeln;
  repeat
    with milk do begin
      write('Введите название: '); readln(nazv);
      writeln('Введите дату:');
      write('Введите год: '); Readln(data.year);
      write('Месяц: ');  Readln(data.month);
      write('День: '); Readln(data.day);
      write('Срок хранения: '); Readln(srok);
      write('Закупочная цена: '); Readln(cena);
    end;
    write(Fmilk, milk);
    write('Продолжать ввод?(Д/Н)');
    readln(otvet);
  until ((otvet = 'Н') or (otvet = 'н'));
а вообще зачем каждый раз заставлять этот файл заполнять?! Проверяйте, если файл есть - то спрашивайте, перезаписывать его или нет. Иначе запаришься продукты вносить каждый раз..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найдите ошибку MaJlbBuHa Паскаль, Turbo Pascal, PascalABC.NET 2 20.10.2009 23:26
Найдите ошибку St1fler92 Помощь студентам 4 26.05.2009 15:23
найдите ошибку Сова Паскаль, Turbo Pascal, PascalABC.NET 9 11.02.2009 18:46
Найдите ошибку! geniy JavaScript, Ajax 4 04.12.2007 16:22