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

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

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

Привет! Скажите в чем ошибка? при компилировании, выходит ошибка "операнды имеют неприводимые типы" что это может быть
Листинг программы
  1. {1) Программа должна содержать меню и ввод-вывод в окна на экране.
  2. Необходимо предусмотреть контроль ошибок пользователя при вводе данных.
  3. При разработке программы применить технологию нисходящего проектирования.
  4. Логически законченные фрагменты оформить в виде подпрограмм, все необходимые данные которым передаются через список параметров.
  5. Использования глобальных переменных следует избегать.
  6. 2) Описать запись с именем PRICE, содержащую следующие поля:
  7. TOVAR название товара;
  8. MAG название магазина, в котором продается товар;
  9. STOIM стоимость товара в руб.
  10. 3) Написать программу, выполняющую следующие действия:
  11. ввод с клавиатуры данных в массив SPISOK, состоящий из восьми элементов типа PRICE;
  12. записи должны быть размещены в алфавитном порядке по названиям товаров;
  13. вывод на экран информации о товаре, название которого введено с клавиатуры;
  14. если таких товаров нет, выдать на дисплей соответствующее сообщение.}
  15. Program ekzamen;
  16. uses crt;
  17. const
  18. n=2;
  19. type
  20. Price=record
  21. tovar: string[20];
  22. mag: string[12];
  23. stoim: string[10];
  24. end;
  25. var
  26. f:file of Price;
  27. w:price;
  28. spisok: array [1..n] of Price;
  29. t: Price;
  30. i,j,k: integer;
  31. nfile:string;
  32. procedure sozd; {*******создание********}
  33. begin
  34. clrscr;
  35. writeln('СОЗДАНИЕ МАССИВА ЗАПИСЕЙ ТОВАРОВ');
  36. writeln('******************************');
  37. for i := 1 to n do begin
  38. writeln('Ввести ',i,' - ю запись');
  39. with spisok[i] do begin
  40. write('Введите название Товара: ');
  41. readln(tovar);
  42. write('Введите название магазина, в котором продается товар: ');
  43. readln(mag);
  44. write('Стоимость товара в тенге: ');
  45. readln(stoim);
  46. end;
  47. end;
  48. writeln('Ввод данных закончен');
  49. // *****сортировка по алфавиту***********
  50. for i := 1 to N-1 do
  51. for j:=i+1 to n do
  52. if spisok[i].tovar > spisok[j].tovar then begin
  53. w:=spisok[i]; spisok[i]:=spisok[j]; spisok[j]:=w;
  54. end;
  55. readln;
  56. end;
  57. procedure prosm; // *****просмотр записей***********
  58. begin
  59. clrscr;
  60. writeln('ЧТЕНИЕ МАССИВА ЗАПИСЕЙ');
  61. writeln('**************************');
  62. writeln;
  63. writeln('_______________________________________________');
  64. writeln(' N Товар Магазин Стоимость');
  65. writeln('_______________________________________________');
  66. for i := 1 to N do
  67. with spisok[i] do begin
  68. writeln(i:3,tovar:15,mag:10,stoim:13);
  69. end;
  70. writeln('_______________________________________________');
  71. writeln('Конец просмотра');
  72. readln;
  73. end;
  74. procedure zapis; //*****Запись в файл'***********
  75. begin
  76. clrscr;
  77. writeln('ЗАПИСЬ МАССИВА В ФАЙЛ');
  78. writeln('**********************');
  79. writeln;
  80. write(' ввести имя файла (например spisok.dat): ');
  81. readln( nfile);
  82. assign(f,nfile);
  83. rewrite(f);
  84. clrscr;
  85. writeln('ЗАПИСЬ МАССИВА В ФАЙЛ');
  86. writeln('**********************');
  87. writeln;
  88. for i := 1 to N do
  89. write(f,spisok[i]);
  90. writeln(' Запись в файл закончена');
  91. close(f);
  92. writeln('Содержимое файла');
  93. writeln('*****************');
  94. writeln('_______________________________________________');
  95. writeln(' N Товар Магазин Стоимость');
  96. writeln('_______________________________________________');
  97. reset(f);
  98. i:=0;
  99. while not eof(f) do begin
  100. read(f,w);
  101. inc(i);
  102. with w do
  103. writeln(i:3,w.tovar:15,w.mag:10,w.stoim:13);
  104. end;
  105. writeln('_______________________________________________');
  106. close(f);
  107. readln;
  108. end;
  109. procedure vibor; //***************Поиск по алфавиту**************
  110. var tv,m:integer;
  111. ff:boolean;
  112. begin
  113. clrscr;
  114. writeln('Поиск товаров по алфавиту');
  115. writeln('**************************');
  116. writeln;
  117. write('Ввести букву: ');
  118. readln(tv);
  119. clrscr;
  120. writeln('Поиск по алфавиту ',tv );
  121. writeln('****************************');
  122. writeln;
  123. m:=0;ff:=true;
  124. writeln('_______________________________________________');
  125. writeln(' N Товар Магазин Стоимость');
  126. writeln('_______________________________________________');
  127. for i := 1 to N do
  128. with spisok[i] do
  129. if tovar=tv then begin
  130. m:=m+1;
  131. ff:=false;
  132. writeln(i:3,tovar:15,mag:10,stoim:13);
  133. end;
  134. if ff then begin writeln('Такой записи нет');readln;end;
  135. writeln('Поиск товаров закончен');
  136. readln;
  137. end;
  138. BEGIN
  139. repeat
  140. clrscr;
  141. Writeln(' ПОЛЬЗОВАТЕЛЬСКОЕ МЕНЮ' );
  142. writeln('-----------------------------------------');
  143. writeln('1. Создание массива записей с сортировкой');
  144. writeln('2. Просмотр массива записей');
  145. writeln('3. Выбор по алфавиту');
  146. writeln('4. Запись массива в файл');
  147. writeln('5. выход');
  148. writeln('-----------------------------------------');
  149. write('Ваш выбор ');
  150. readln(k);
  151. case k of
  152. 1:sozd;
  153. 2:prosm;
  154. 3:vibor;
  155. 4:zapis;
  156. 5:; {выход}
  157. else begin
  158. writeln('нет такого пункта');
  159. readln;
  160. end;
  161. end; // case
  162. until k=5;
  163. writeln('Конец программы');
  164. readln;
  165. END.
  166.  
  167. Begin
  168. textbackground (1);
  169. textcolor (10);
  170. clrscr;
  171. for i:=1 to n do with t do begin
  172. WriteLn('Введите информацию о товаре №',i);
  173. Write(' Название: '); ReadLn(tovar);
  174. Write(' Магазин: '); ReadLn(mag);
  175. Write('Стоимость: '); ReadLn(stoim);
  176. WriteLn;
  177. j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do begin
  178. spisok[j]:=spisok[j-1]; dec(j);
  179. end;
  180. spisok[j]:=t;
  181. end;
  182. for i:=1 to n do WriteLn('Товар №',i,': ',spisok[i].tovar);
  183. repeat
  184. Write('Введите номер товара (0-выход): '); ReadLn(i);
  185. if (i>=1) and (i<=n) then with spisok[i] do begin
  186. WriteLn(' Товар: ',tovar);
  187. WriteLn(' Магазин: ',mag);
  188. WriteLn('Стоимость: ',stoim);
  189. end;
  190. until i=0;
  191. end.

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

textual
Листинг программы
  1. {1) Программа должна содержать меню и ввод-вывод в окна на экране.
  2. Необходимо предусмотреть контроль ошибок пользователя при вводе данных.
  3. При разработке программы применить технологию нисходящего проектирования.
  4. Логически законченные фрагменты оформить в виде подпрограмм, все необходимые данные которым передаются через список параметров.
  5. Использования глобальных переменных следует избегать.
  6. 2) Описать запись с именем PRICE, содержащую следующие поля:
  7. TOVAR название товара;
  8. MAG название магазина, в котором продается товар;
  9. STOIM стоимость товара в руб.
  10. 3) Написать программу, выполняющую следующие действия:
  11. ввод с клавиатуры данных в массив SPISOK, состоящий из восьми элементов типа PRICE;
  12. записи должны быть размещены в алфавитном порядке по названиям товаров;
  13. вывод на экран информации о товаре, название которого введено с клавиатуры;
  14. если таких товаров нет, выдать на дисплей соответствующее сообщение.}
  15. program ekzamen;
  16.  
  17. uses
  18.   crt;
  19.  
  20. const
  21.   n = 2;
  22.  
  23. type
  24.   Price = record
  25.     tovar: string[20];
  26.     mag: string[12];
  27.     stoim: string[10];
  28.   end;
  29.  
  30. var
  31.   f: file of Price;
  32.   w: price;
  33.   spisok: array [1..n] of Price;
  34.   t: Price;
  35.   i, j, k: integer;
  36.   nfile: string;
  37.  
  38. procedure sozd;{*******создание********}
  39. begin
  40.   clrscr;
  41.   writeln('СОЗДАНИЕ МАССИВА  ЗАПИСЕЙ ТОВАРОВ');
  42.   writeln('******************************');
  43.   for i := 1 to n do  
  44.   begin
  45.     writeln('Ввести ', i, ' - ю запись');
  46.     with spisok[i] do
  47.     begin
  48.       write('Введите название Товара:  ');
  49.       readln(tovar);
  50.       write('Введите название магазина, в котором продается товар:  ');
  51.       readln(mag);
  52.       write('Стоимость товара в тенге:  ');
  53.       readln(stoim);
  54.     end;
  55.   end;
  56.   writeln('Ввод данных закончен');
  57.          // *****сортировка по алфавиту***********
  58.   for i := 1 to N - 1 do
  59.     for j := i + 1 to n do
  60.       if spisok[i].tovar > spisok[j].tovar then begin
  61.         w := spisok[i]; spisok[i] := spisok[j]; spisok[j] := w;
  62.       end;
  63.   readln;
  64. end;
  65.  
  66. procedure prosm;// *****просмотр записей***********
  67. begin
  68.   clrscr;
  69.   writeln('ЧТЕНИЕ  МАССИВА  ЗАПИСЕЙ');
  70.   writeln('**************************');
  71.   writeln;
  72.   writeln('<br>');
  73.   writeln('  N   Товар       Магазин    Стоимость');
  74.   writeln('<br>');
  75.   for i := 1 to N do
  76.     with spisok[i] do
  77.     begin
  78.       writeln(i:3, tovar:15, mag:10, stoim:13);
  79.     end;
  80.   writeln('<br>');
  81.   writeln('Конец просмотра');
  82.   readln;
  83. end;
  84.  
  85. procedure zapis;//*****Запись в файл'***********
  86. begin
  87.   clrscr;
  88.   writeln('ЗАПИСЬ МАССИВА В ФАЙЛ');
  89.   writeln('**********************');
  90.   writeln;
  91.   write(' ввести имя файла (например spisok.dat): ');
  92.   readln( nfile);
  93.   assign(f, nfile);
  94.   rewrite(f);
  95.   clrscr;
  96.   writeln('ЗАПИСЬ МАССИВА В ФАЙЛ');
  97.   writeln('**********************');
  98.   writeln;
  99.   for i := 1 to N do
  100.     write(f, spisok[i]);
  101.   writeln(' Запись в файл закончена');
  102.   close(f);
  103.   writeln('Содержимое файла');
  104.   writeln('*****************');
  105.   writeln('<br>');
  106.   writeln('  N   Товар       Магазин    Стоимость');
  107.   writeln('<br>');
  108.   reset(f);
  109.   i := 0;
  110.   while not eof(f) do
  111.   begin
  112.     read(f, w);
  113.     inc(i);
  114.     with w do
  115.       writeln(i:3, w.tovar:15, w.mag:10, w.stoim:13);
  116.   end;
  117.   writeln('<br>');
  118.   close(f);
  119.   readln;
  120. end;
  121.  
  122. procedure vibor;//***************Поиск по алфавиту**************
  123. var
  124.   m: integer; tv: string;
  125.   ff: boolean;
  126. begin
  127.   clrscr;
  128.   writeln('Поиск товаров по алфавиту');
  129.   writeln('**************************');
  130.   writeln;
  131.   write('Ввести букву: ');
  132.   readln(tv);
  133.   clrscr;
  134.   writeln('Поиск по алфавиту ', tv );
  135.   writeln('****************************');
  136.   writeln;
  137.   m := 0;ff := true;
  138.   writeln('<br>');
  139.   writeln('  N   Товар       Магазин    Стоимость');
  140.   writeln('<br>');
  141.   for i := 1 to N do
  142.     with spisok[i] do
  143.       if tovar = tv then begin
  144.         m := m + 1;
  145.         ff := false;
  146.         writeln(i:3, tovar:15, mag:10, stoim:13);
  147.       end;
  148.   if ff then begin writeln('Такой записи нет');readln; end;
  149.   writeln('Поиск товаров закончен');
  150.   readln;
  151. end;
  152.  
  153. begin
  154.   textbackground(1);
  155.   textcolor(10);
  156.   clrscr;
  157.   repeat
  158.     clrscr;
  159.     Writeln('--------------ПОЛЬЗОВАТЕЛЬСКОЕ МЕНЮ------'  );
  160.     writeln('-----------------------------------------');
  161.     writeln('1. Создание массива записей с сортировкой');
  162.     writeln('2. Просмотр массива записей');
  163.     writeln('3. Выбор по алфавиту');
  164.     writeln('4. Запись массива в файл');
  165.     writeln('5. Выход');
  166.     writeln('-----------------------------------------');
  167.     write('Ваш выбор ');
  168.     readln(k);
  169.     case k of
  170.       1: sozd;
  171.       2: prosm;
  172.       3: vibor;
  173.       4: zapis;
  174.       5: ;{выход}
  175.     else begin
  176.         writeln('нет такого пункта');
  177.         readln;
  178.       end;
  179.     end;        // case
  180.   until k = 5;
  181.   writeln('Конец программы');
  182.   readln;
  183. end.

Объяснение кода листинга программы

{1) Программа должна содержать меню и ввод-вывод в окна на экране. Необходимо предусмотреть контроль ошибок пользователя при вводе данных. При разработке программы применить технологию нисходящего проектирования. Логически законченные фрагменты оформить в виде подпрограмм, все необходимые данные которым передаются через список параметров. Использования глобальных переменных следует избегать. 2) Описать запись с именем PRICE, содержащую следующие поля: • TOVAR — название товара; • MAG — название магазина, в котором продается товар; • STOIM — стоимость товара в руб. 3) Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив SPISOK, состоящий из восьми элементов типа PRICE; записи должны быть размещены в алфавитном порядке по названиям товаров; • вывод на экран информации о товаре, название которого введено с клавиатуры; • если таких товаров нет, выдать на дисплей соответствующее сообщение.} В данном коде реализованы все указанные требования. 1) Программа содержит меню и ввод-вывод в окна на экране. Введенные данные проверяются на корректность. При разработке программы применена технология нисходящего проектирования. Логически законченные фрагменты оформлены в виде подпрограмм, все необходимые данные которым передаются через список параметров. Глобальные переменные не используются. 2) Запись PRICE содержит три поля: название товара (tovar), название магазина (mag) и стоимость товара в рублях (stoim). 3) Программа выполняет следующие действия:

  • Вводит данные в массив SPISOK, состоящий из восьми элементов типа PRICE.
  • Размещает записи в алфавитном порядке по названиям товаров.
  • Выводит на экран информацию о товаре, название которого введено с клавиатуры.
  • Если таких товаров нет, выдает на дисплей соответствующее сообщение.

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


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

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

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы