Другие языки программирования и технологии
Помогите написать прогу на паскале!
Создать файл, содержащий сведения об ассортименте обуви в магазине фирмы. Структура записи: артикул, наименование, количество, стоимость одной пары. Количество записей в файле - произвольное. Артикул начинается с буквы: Д - для дамской обуви, М - для мужской, П - для детской.Написать программу, выдающую следующую информацию:- о наличии и стоимости обуви артикула Х;- ассортиментный список дамской обуви с указанием наименования и имеющегося в наличии числа пар каждой модели.ЭТО ДОЛЖНО ДЕЛАТЬСЯ С ПОМОЩЬЮ МОДУЛЕЙ, соответственно тут должно быть две программы - одна, создающая файл, другая - считывающая информацию. Товарищи программисты, помогите, кто чем сможет!:) плиииз! оч.нужно..
Доброго времени суток.
Вам следует сначала определиться с форматом файла. От этого будет зависеть конкретная реализация. Вариантов несколько. Типизированный файл записей, текстовый файл с построчным расположением реквизитов (полей) , текстовый файл в котором реквизиты расположены в одной строке с разделителями. Допустим будет последний вариант, хотя первый логичнее.
Вначале объявляете запись или переменные. Лучше запись.
type
TShoe = record
Artikul : String[20];
Name : String[10];
Quantaty : Word;
Prace : Real;
end;
Если формат файла будет не файл записей, то можно объявить просто 4 соответствующих переменных.
Далее пишется программа ввода данных в файл.
var
F : Text;
R : TShoe;
begin
Assign(F, 'Shoes.dat');
Rewrite(F);
WriteLn('Ввод информации о товаре');
with R do begin
repeat
Write('Артикул : ');
ReadLn(Artikul);
if Artikul <> '' then begin
Write('Наименование : ');
ReadLn(Name);
Write('Количество : ');
ReadLn(Quantaty);
Write('Цена : ');
ReadLn(Price);
WriteLn(F, Artikul, '=', Name, "=", Quantaty, "=", Price);
end;
until Artikul = ''; {ввод в качестве артикула пустой строки - конец ввода данных}
end;
Close(F);
end.
Если же F будет файл записей (F : file of TShoe), то запись в файл делается так
Write(F, R); {именно Write без Ln}
Все, файл данных создан. Далее покажу схематически.
Открываете файл данных
Assign(F, 'Shoes.dat');
Reset(F);
Запрашиваете артикул
ReadLn(Art);
Начинаете читать строки из файла
while not Eof(F) do begin
ReadLn(F, S);
if Art = Copy(S, 1, Pos('=',S)-1) then begin {артикул совпал}
{выделяете поля записи с помощью функции Pos и выводите на экран нужную информацию}
end;
end;
Reset(F); {сброс файла в начало}
while not Eof(F) do begin
ReadLn(F, S);
if S[1] = 'Д' then begin {запись для дамской обуви}
{выделяете поля записи с помощью функции Pos и выводите на экран нужную информацию}
end;
end;
Вот и все. В конце закрываете файл. Выделение полей делаете так
S := S + '="; {чтобы не потерять последний реквизит}
Artikul := Copy(S, 1, Pos('=',S)-1); {выделили поле}
S := Delete(S, 1, Pos('=',S)); {и удалили его из входной строки}
И так все остальные поля. Если же будет выбран вариант с типизированным файлом, то никакого выделения полей не потребуется. Просто читается информация в переменную с типом TShoe
Read(F, R);
А дальше идет работа с полями записи.
Удачи!
Вам следует сначала определиться с форматом файла. От этого будет зависеть конкретная реализация. Вариантов несколько. Типизированный файл записей, текстовый файл с построчным расположением реквизитов (полей) , текстовый файл в котором реквизиты расположены в одной строке с разделителями. Допустим будет последний вариант, хотя первый логичнее.
Вначале объявляете запись или переменные. Лучше запись.
type
TShoe = record
Artikul : String[20];
Name : String[10];
Quantaty : Word;
Prace : Real;
end;
Если формат файла будет не файл записей, то можно объявить просто 4 соответствующих переменных.
Далее пишется программа ввода данных в файл.
var
F : Text;
R : TShoe;
begin
Assign(F, 'Shoes.dat');
Rewrite(F);
WriteLn('Ввод информации о товаре');
with R do begin
repeat
Write('Артикул : ');
ReadLn(Artikul);
if Artikul <> '' then begin
Write('Наименование : ');
ReadLn(Name);
Write('Количество : ');
ReadLn(Quantaty);
Write('Цена : ');
ReadLn(Price);
WriteLn(F, Artikul, '=', Name, "=", Quantaty, "=", Price);
end;
until Artikul = ''; {ввод в качестве артикула пустой строки - конец ввода данных}
end;
Close(F);
end.
Если же F будет файл записей (F : file of TShoe), то запись в файл делается так
Write(F, R); {именно Write без Ln}
Все, файл данных создан. Далее покажу схематически.
Открываете файл данных
Assign(F, 'Shoes.dat');
Reset(F);
Запрашиваете артикул
ReadLn(Art);
Начинаете читать строки из файла
while not Eof(F) do begin
ReadLn(F, S);
if Art = Copy(S, 1, Pos('=',S)-1) then begin {артикул совпал}
{выделяете поля записи с помощью функции Pos и выводите на экран нужную информацию}
end;
end;
Reset(F); {сброс файла в начало}
while not Eof(F) do begin
ReadLn(F, S);
if S[1] = 'Д' then begin {запись для дамской обуви}
{выделяете поля записи с помощью функции Pos и выводите на экран нужную информацию}
end;
end;
Вот и все. В конце закрываете файл. Выделение полей делаете так
S := S + '="; {чтобы не потерять последний реквизит}
Artikul := Copy(S, 1, Pos('=',S)-1); {выделили поле}
S := Delete(S, 1, Pos('=',S)); {и удалили его из входной строки}
И так все остальные поля. Если же будет выбран вариант с типизированным файлом, то никакого выделения полей не потребуется. Просто читается информация в переменную с типом TShoe
Read(F, R);
А дальше идет работа с полями записи.
Удачи!
Круто, Gennady завернул...
Похожие вопросы
- Помогите написать прогу на паскале
- СРОЧНО ПОМОГИТЕ!!! Напишите прогу на паскале
- Помогите написать прогу на Паскале, экзамен горит, очень нужно..
- люди помогите написать прогу в паскале чтоб она запрашивала число и потом писала простое оно или нет, всю голову сломал
- помогите написать прогу в паскале срочно!!
- помогите написать прогу в паскале:)
- Помогите написать ПРОГУ ПО ПАСКАЛЮ!!!
- СРОЧНО ! Напишите прогу на Паскале
- напишите проги в ПАСКАЛЕ плиз!!!очень надо.
- помогите составить прогу в паскале