Исправьте ошибки в программе описать запись с именем price, содержащую следующие поля: название товара, на- звание магазина, в котором продается товар; стоимость товара в рублях. написать программу, выполняющую следующие действия о ввод данных с клавиатуры в массив, состоящий из восьми элементов типа price с записей в алфавитном порядке по названиям товаров; вывод на экран информации о товаре, название которого введено с клавиатуры, а если таких товаров нет, вывод на экран соответствующего сообщения запись массива в файл под заданным с клавиатуры именем. program goods_base; uses crt; const n=8; {количество записей} type price=record{тип запись товар} tov: string; {названия товаров} mag: string; {названия магазинов} stm: word; {стоимость} end; base = array[1..n] of price; {массив записей} var goods : base; {для хранения базы данных} goods_number : word; {для хранения размера базы} menuitem : byte; {номер пункта меню} procedure base_load(var a : base; const n: word); var x: price; {переменная для считывания и сортировки записей} i, j: byte; {счетчик} begin writeln('введите данные о ',n,' товарах: '); for i: =1 to n do with a[i] do {пока очередная запись} writeln('товар ',i); write (' название товара: '); readln (tov); write (' название магазина: '); readln (mag); write (' стоимость: '); readln (stm); for i: =1 to n-1 do {отсортируем записи} for j: =i+1 to n do if a[i].tov> a[j].tov then{по алфавиту(возрастанию) названий товаров} begin x: =a[i]; a[i]: =a[j]; a[j]: =x; end; procedure base_search (const a : base; const n); var i,j,k: byte; {счетчики, фиксатор} t: string; {переменная для ввода названия товара} x: price; {переменная для считывания и сортировки записей} begin write('введите название товара для поиска: '); readln(t); k: =0; for i: =1 to n do if z[i].tov=t then {если поле записи товар совпало с введенным} begin k: =1; writeln(z[i].tov,' ',z[i].mag,' ',z[i].stm); {выводим все поля записи} end; if k=0 then writeln('такого товара нет! '); write('press '); readln; procedure base_record (const a : base; const n); var x: price; {переменная для считывания и сортировки записей} i, j: byte; {счетчик} f: file of price; {типизированный файл записей} name: string; {переменная для имени файла} begin write('введите имя файла для записи: '); readln(name); assign(f,name); {связываем переменную с файлом на диске} rewrite(f); {открываем файл для записи} for i: =1 to n do {по размеру массива} write(f,a[i]); {заносим его элементы в файл записей} writeln('содержание файла: '); reset(f); {откроем файл для чтения} while not eof(f) do {пока не конец файла} begin read(f,x); {читаем записи в переменную} writeln(x.tov,' ',x.mag,' ',x.stm); {выводим на экран поля записи} end; close(f); {закрываем файл} write('press '); readln; end; begin repeat {цикл для работы с меню} clrscr; {очистка экрана} writeln('меню: '); {вывод меню программы} writeln('1. ввод данных'); writeln('2. поиск товара по названию'); writeln('3. запись в файл'); writeln('4. выход'); writeln; write('укажите пункт меню: '); readln(menuitem); {ввод выбранного пункта меню} case menuitem of 1 : base_load(goods, goods_number); {по пункту 1 вызов процедуры ввод данных} 2 : base_search (goods, goods_number); {по пункту 2 вызов процедуры поиска} 3 : base_record (goods, goods_number); {по пункту 3 вызов процедуры запись в файл} end; until menuitem=4; {по пункту 4 завершение цикла работы с меню} end.

mialia9922 mialia9922    2   15.09.2019 06:40    7

Ответы
SofyaProstova SofyaProstova  07.10.2020 16:25
Исправленный файл - в прилагаемом файле.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика