Паскаль ошибка операнды имеют неприводимые типы

Netrx

1 / 1 / 1

Регистрация: 13.06.2011

Сообщений: 29

1

Операнды имеют неприводимые типы

25.06.2011, 08:48. Показов 11491. Ответов 7

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Вот такая проблема, составил программу сокращения дроби через процедуры, вот такую беду выдает в 14 строке…

В общем вот

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses crt;
procedure Sokr(var a,b:integer);
var
min:integer;
begin
writeln('Введите числитель');
readln(a);
writeln('Введите знаменатель');
readln(b);
if a>b then min:=b
else
min:=a;
repeat
if (a div min)=0 and (b div min)=0
then
begin
a:=a/min;
b:=b/min;
end;
else
min:=min-1;
until min=1;
Sokr(a,b);
end.

Где я допустил ошибку?



0



Holy_Metal

72 / 72 / 60

Регистрация: 14.12.2010

Сообщений: 201

25.06.2011, 09:29

2

В 14 строке:

Pascal
1
if (a div min = 0) and (b div min = 0)



0



1 / 1 / 1

Регистрация: 13.06.2011

Сообщений: 29

25.06.2011, 09:49

 [ТС]

3

О, спасибо, но теперь возникла другая)

в 17 и 18 строках
Попытка присвоить интеджеру реал, но когда я меняю все на реал, в строчке 14, мне пишет что див не применим к реал



0



4149 / 1803 / 213

Регистрация: 06.10.2010

Сообщений: 4,033

25.06.2011, 09:54

4

if (a div min = 0) and (b div min = 0)

Такое условие НИКОГДА не выполнится



0



72 / 72 / 60

Регистрация: 14.12.2010

Сообщений: 201

25.06.2011, 09:55

5

Цитата
Сообщение от murderer
Посмотреть сообщение

Такое условие НИКОГДА не выполнится

Сделайте так, как выполнится. Я всего лишь исправил ошибку.



0



murderer

4149 / 1803 / 213

Регистрация: 06.10.2010

Сообщений: 4,033

25.06.2011, 11:12

6

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  a,b,min:integer;
begin
  writeln('Введите числитель');
  readln(a);
  writeln('Введите знаменатель');
  readln(b);
  min:=a;
  if a>b then
    min:=b;
  for min:=min downto 1 do
    if (a mod min)or(b mod min)=0 then
      break;
  writeln('числитель = ',a div min,'; знаменатель = ',b div min);
  readln;
end.



0



Netrx

1 / 1 / 1

Регистрация: 13.06.2011

Сообщений: 29

25.06.2011, 12:26

 [ТС]

7

Дык мне в процедуре надо…

Добавлено через 3 минуты

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses crt;
procedure Sokr(var a,b:integer);
var
  min:integer;
begin
  writeln('Ââåäèòå ÷èñëèòåëü');
  readln(a);
  writeln('Ââåäèòå çíàìåíàòåëü');
  readln(b);
  min:=a;
  if a>b then
    min:=b;
  for min:=min downto 1 do
    if (a mod min)or(b mod min)=0 then
      break;
      Sokr (a,b);
      end;
      end.

Пишет отсутствует Begin основной программы, без end; требует его с точкой с запятой…

Добавлено через 10 минут
Все, сделал, выглядит так

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses crt;
 var
  a1,b1,min1:integer;
procedure Sokr(var a,b, min:integer);
begin
  writeln('Ââåäèòå ÷èñëèòåëü');
  readln(a);
  writeln('Ââåäèòå çíàìåíàòåëü');
  readln(b);
  min:=a;
if a>b then
    min:=b;
for min:=min downto 1 do
if (a mod min)or(b mod min)=0 then
break;
writeln ('×è÷èëòåëü ðàâåí: ',a div min);
writeln ('Çíàìåíàòåëü ðàâåí: ',b div min);
end;
begin
Sokr (a1,b1,min1);
end.



0



Почетный модератор

64288 / 47587 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

25.06.2011, 12:27

8

Цитата
Сообщение от Netrx
Посмотреть сообщение

Пишет отсутствует Begin основной программы,

Естественно. Это же только процедура, а программы нет…



0



{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.

Выдаёт ошибку: операнды имеют неприводимые типы. Где я ошиблась? (Программа написана на языке Pascal ABC)

Program Home;

Uses CRT;

Var a: integer;

b: real;

Begin

WriteLn (‘Введите еденицу измереня: килограмм, миллиграмм, грамм, тонна, центнер’);

ReadLn (a);

WriteLn (‘Введите число, которое нужно перевести в килограммы’);

ReadLn (b);

If (a = ‘килограмм’) then

WriteLn (b);

If (a = ‘миллиграмм’) then begin

b : = b / 1000000;

WriteLn (b);

end;

If (a = ‘грамм’) then begin

b: = b / 1000;

WriteLn (b)

end;

If (a = ‘тонна’) then begin

b: = b * 1000;

WriteLn (b);

end;

If (a = ‘центнер’) then begin

b: = b * 100;

WriteLn (b);

end;

End.

Найди верный ответ на вопрос ✅ «Выдаёт ошибку: операнды имеют неприводимые типы. Где я ошиблась? (Программа написана на языке Pascal ABC) Program Home; Uses CRT; Var a: …» по предмету 📙 Информатика, а если ответа нет или никто не дал верного ответа, то воспользуйся поиском и попробуй найти ответ среди похожих вопросов.

Искать другие ответы

Главная » Информатика » Выдаёт ошибку: операнды имеют неприводимые типы. Где я ошиблась? (Программа написана на языке Pascal ABC) Program Home; Uses CRT; Var a: integer; b: real; Begin WriteLn (‘Введите еденицу измереня: килограмм, миллиграмм, грамм, тонна, центнер’);

Что значит операнды имеют неприводимые типы

Обновлено 10 февраля, 2022

операнды имеют неприводимые типы

Операнды имеют неприводимые типы
Два квадратных уравнения задано своими коэффициентами a1,b1,c1 та a2,b2,c2. Могут ли корни обеих.

операнды имеют неприводимые типы
program tovar; uses crt; type tmes=1..12; tden=1..31; tdata=record god:word; mes:tmes; .

Операнды имеют неприводимые типы
Рассмотрим прямоугольник размером X × Y, из середины которого вырезали прямоугольник размером (X –.

Операнды имеют неприводимые типы
33 Дано предложение. Записать каждый из его символов в файл. var f:file of string; n:string;.

после написания уже мозг плавится =)

Добавлено через 3 минуты
if elem^.inf=n then begin
только вот так)


Mawrat: Да — верно.

Добавлено через 1 час 31 минуту

а здесь то что не верно?

Добавлено через 44 минуты
ап (100500 символов)

Добавлено через 16 часов 25 минут
ап (5 символов)

Добавлено через 5 часов 53 минуты

Методы численного решения систем нелинейных уравнений. Операнды — неприводимые типы
Собственно задание — Решить нелинейные уравнения методом Зейделя. Вся проблема в передаче.

Операнды имеют неприводимые типы
pascal abc выдает ошибку: операнды имеют неприводимые типы после a в 7 строке. добавлял в процедуру.

Операнды имеют неприводимые типы
пишет ошибку: операнды имеют неприводимые типы, помогите исправить ошибку операнды имеют.

Операнды имеют неприводимые типы
задача:последовательность 1223242434. образована выписыванием подряд чисел равных количеству.

Источник

Выдаёт ошибку:операнды имеют неприводимые типы.Где я ошиблась?(Программа написана на языке Pascal ABC)

Program Home;

Uses CRT;

Var a: integer;

b: real;

Begin

WriteLn (‘Введите еденицу измереня: килограмм, миллиграмм, грамм, тонна, центнер’);

ReadLn (a);

WriteLn (‘Введите число, которое нужно перевести в килограммы’);

ReadLn (b);

If (a = ‘килограмм’) then

WriteLn (b);

If (a = ‘миллиграмм’) then begin

b := b / 1000000;

WriteLn (b);

end;

If (a = ‘грамм’) then begin

b:= b / 1000;

WriteLn (b)

end;

If (a = ‘тонна’) then begin

b:= b * 1000;

WriteLn (b);

end;

If (a = ‘центнер’) then begin

b:= b * 100;

WriteLn (b);

end;

End.

Понравилась статья? Поделить с друзьями:
  • Паскаль ошибка ожидается оператор
  • Паскаль ошибка неожиданный символ
  • Паскаль ошибка неизвестное имя
  • Паскаль ошибка не является меткой
  • Паскаль ошибка времени выполнения файл не открыт