Ошибка "операнды имеют неприводимые типы" в чем ошибка? - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Привет! Скажите в чем ошибка? при компилировании, выходит ошибка "операнды имеют неприводимые типы" что это может быть

Решение задачи: «Ошибка "операнды имеют неприводимые типы" в чем ошибка?»

textual
Листинг программы
{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.
  • Размещает записи в алфавитном порядке по названиям товаров.
  • Выводит на экран информацию о товаре, название которого введено с клавиатуры.
  • Если таких товаров нет, выдает на дисплей соответствующее сообщение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы