Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Работа с файлами 
V
    Опции темы
koshkarjov
  Дата 1.6.2010, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 1.3.2010

Репутация: нет
Всего: нет



Написать программу, в которой описывается массив записей, хранящий следующую информацию: Название товара, цена.
Программа должна выполнять следующие действия: 
Ввод данных, изменение цены заданного товара, сохранение информации в текстовый файл, загрузку информации из текстового файла

Не актуально! Вот код программы, может кому пригодится smile

Код

program lab8;
const r=20;
var f:file;
type
TDUB= record {данные о товаре}
h: string; {название товара}
c: integer; {цена}
end;
TBASE= record
dub: TDUB;
end;
var baza: array [1..r] of TBASE;
n:byte; {реальное количество мест в базе}
ch:char; {выборщик варианта ответа}
procedure EnterTovar;
var i: integer;
begin
writeln;
writeln;
n:=0;
write('Название товара: ');
readln(baza[n+1].dub.h);
while baza[n+1].dub.h<>'' do begin
n:=n+1;
write('цена: ');
readln(baza[n].dub.c);
writeln('Вы ввели: ');
writeln(baza[n].dub.h,' ',baza[n].dub.c);
writeln('Введите следующее название товара или нажмите [Enter] для завершения вноса данных');
readln(baza[n+1].dub.h);
end;
end;
procedure PrintData;
var i,j,imax,max: integer;
begin
writeln('Текущий список товаров: ');
i:=1;
imax:=10;
repeat
if imax>n then max:=n else max:=imax;
while i<=max do begin
write(i,' ',baza[i].dub.h,' ',baza[i].dub.c);
writeln;
i:=i+1;
if max<n then begin
writeln;
writeln('Нажмите любую клавишу для продолжения списка...');
readln(ch);
imax:= i+10;
writeln('Текущий список товаров (продолжение): ');
end;
end;
until i>n;
repeat
writeln('Вы хотите изменить цену (y/n) ?');
readln(ch);
until (ch='N') or (ch='n');
writeln('Введите номер товара в списке: ');
readln(i);
writeln('На какую цену Вы хотите его изменить?');
readln(baza[i].dub.c);
end;
procedure Sozdanie;
var kolvo:integer;
begin
writeln('Введите название файла: ');
readln(name);
assign(f,name);
rewrite(f);
writeln('Создание файла',name);
writeln('Введите количество записей: ');
read(kolvo);
for ind:=1 to kolvo do
writeln('Создание файла завершено');
writeln('Файл имеет',kolvo,'записей');
close(f);
end;
procedure OpenFile;
begin
writeln('Вывод файла',name);
reset(f);
end;
procedure mainmenu;
begin
randomize;
writeln('Выберите следующие действия:');
writeln('1 - ввод данных');
writeln('2 - вывод данных и изменение цены');
writeln('3 - сохранение данных в текстовый файл');
writeln('4 - вывод сохраненных данных из файла');
readln(ch);
if ch='1' then EnterTovar;
if ch='2' then PrintData;
if ch='3' then Sozdanie;
if ch='4' then OpenFile;
end;
begin
repeat
mainmenu;
writeln('Вы действительно хотите завершить программу? (y/n) ?');
readln(ch);
until (ch='Y') or (ch='y');
end.


Это сообщение отредактировал(а) koshkarjov - 28.9.2010, 19:10
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0689 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.