Ошибка "операнды имеют неприводимые типы" в чем ошибка? - Pascal ABC
Формулировка задачи:
Решение задачи: «Ошибка "операнды имеют неприводимые типы" в чем ошибка?»
{1) Программа должна содержать меню и ввод-вывод в окна на экране. Необходимо предусмотреть контроль ошибок пользователя при вводе данных. При разработке программы применить технологию нисходящего проектирования. Логически законченные фрагменты оформить в виде подпрограмм, все необходимые данные которым передаются через список параметров. Использования глобальных переменных следует избегать. 2) Описать запись с именем PRICE, содержащую следующие поля: • TOVAR — название товара; • MAG — название магазина, в котором продается товар; • STOIM — стоимость товара в руб. 3) Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив SPISOK, состоящий из восьми элементов типа PRICE; записи должны быть размещены в алфавитном порядке по названиям товаров; • вывод на экран информации о товаре, название которого введено с клавиатуры; • если таких товаров нет, выдать на дисплей соответствующее сообщение.} program ekzamen; uses crt; const n = 2; type Price = record tovar: string[20]; mag: string[12]; stoim: string[10]; end; var f: file of Price; w: price; spisok: array [1..n] of Price; t: Price; i, j, k: integer; nfile: string; procedure sozd;{*******создание********} begin clrscr; writeln('СОЗДАНИЕ МАССИВА ЗАПИСЕЙ ТОВАРОВ'); writeln('******************************'); for i := 1 to n do begin writeln('Ввести ', i, ' - ю запись'); with spisok[i] do begin write('Введите название Товара: '); readln(tovar); write('Введите название магазина, в котором продается товар: '); readln(mag); write('Стоимость товара в тенге: '); readln(stoim); end; end; writeln('Ввод данных закончен'); // *****сортировка по алфавиту*********** for i := 1 to N - 1 do for j := i + 1 to n do if spisok[i].tovar > spisok[j].tovar then begin w := spisok[i]; spisok[i] := spisok[j]; spisok[j] := w; end; readln; end; procedure prosm;// *****просмотр записей*********** begin clrscr; writeln('ЧТЕНИЕ МАССИВА ЗАПИСЕЙ'); writeln('**************************'); writeln; writeln('<br>'); writeln(' N Товар Магазин Стоимость'); writeln('<br>'); for i := 1 to N do with spisok[i] do begin writeln(i:3, tovar:15, mag:10, stoim:13); end; writeln('<br>'); writeln('Конец просмотра'); readln; end; procedure zapis;//*****Запись в файл'*********** begin clrscr; writeln('ЗАПИСЬ МАССИВА В ФАЙЛ'); writeln('**********************'); writeln; write(' ввести имя файла (например spisok.dat): '); readln( nfile); assign(f, nfile); rewrite(f); clrscr; writeln('ЗАПИСЬ МАССИВА В ФАЙЛ'); writeln('**********************'); writeln; for i := 1 to N do write(f, spisok[i]); writeln(' Запись в файл закончена'); close(f); writeln('Содержимое файла'); writeln('*****************'); writeln('<br>'); writeln(' N Товар Магазин Стоимость'); writeln('<br>'); reset(f); i := 0; while not eof(f) do begin read(f, w); inc(i); with w do writeln(i:3, w.tovar:15, w.mag:10, w.stoim:13); end; writeln('<br>'); close(f); readln; end; procedure vibor;//***************Поиск по алфавиту************** var m: integer; tv: string; ff: boolean; begin clrscr; writeln('Поиск товаров по алфавиту'); writeln('**************************'); writeln; write('Ввести букву: '); readln(tv); clrscr; writeln('Поиск по алфавиту ', tv ); writeln('****************************'); writeln; m := 0;ff := true; writeln('<br>'); writeln(' N Товар Магазин Стоимость'); writeln('<br>'); for i := 1 to N do with spisok[i] do if tovar = tv then begin m := m + 1; ff := false; writeln(i:3, tovar:15, mag:10, stoim:13); end; if ff then begin writeln('Такой записи нет');readln; end; writeln('Поиск товаров закончен'); readln; end; begin textbackground(1); textcolor(10); clrscr; repeat clrscr; Writeln('--------------ПОЛЬЗОВАТЕЛЬСКОЕ МЕНЮ------' ); writeln('-----------------------------------------'); writeln('1. Создание массива записей с сортировкой'); writeln('2. Просмотр массива записей'); writeln('3. Выбор по алфавиту'); writeln('4. Запись массива в файл'); writeln('5. Выход'); writeln('-----------------------------------------'); write('Ваш выбор '); readln(k); case k of 1: sozd; 2: prosm; 3: vibor; 4: zapis; 5: ;{выход} else begin writeln('нет такого пункта'); readln; end; end; // case until k = 5; writeln('Конец программы'); readln; end.
Объяснение кода листинга программы
{1) Программа должна содержать меню и ввод-вывод в окна на экране. Необходимо предусмотреть контроль ошибок пользователя при вводе данных. При разработке программы применить технологию нисходящего проектирования. Логически законченные фрагменты оформить в виде подпрограмм, все необходимые данные которым передаются через список параметров. Использования глобальных переменных следует избегать. 2) Описать запись с именем PRICE, содержащую следующие поля: • TOVAR — название товара; • MAG — название магазина, в котором продается товар; • STOIM — стоимость товара в руб. 3) Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив SPISOK, состоящий из восьми элементов типа PRICE; записи должны быть размещены в алфавитном порядке по названиям товаров; • вывод на экран информации о товаре, название которого введено с клавиатуры; • если таких товаров нет, выдать на дисплей соответствующее сообщение.} В данном коде реализованы все указанные требования. 1) Программа содержит меню и ввод-вывод в окна на экране. Введенные данные проверяются на корректность. При разработке программы применена технология нисходящего проектирования. Логически законченные фрагменты оформлены в виде подпрограмм, все необходимые данные которым передаются через список параметров. Глобальные переменные не используются. 2) Запись PRICE содержит три поля: название товара (tovar), название магазина (mag) и стоимость товара в рублях (stoim). 3) Программа выполняет следующие действия:
- Вводит данные в массив SPISOK, состоящий из восьми элементов типа PRICE.
- Размещает записи в алфавитном порядке по названиям товаров.
- Выводит на экран информацию о товаре, название которого введено с клавиатуры.
- Если таких товаров нет, выдает на дисплей соответствующее сообщение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д