• Исправьте пожалуста ошибки в программе
    Задание18 Описать запись с именем 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 Enter...');
    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 Enter...');
    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.

Ответы 1

  • Исправленный файл - в прилагаемом файле.
    answer img
    • Автор:

      riggs
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years