Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2010, 11:50   #1
Иван=)
Пользователь
 
Регистрация: 02.11.2010
Сообщений: 21
По умолчанию Несоответствие типов.

Код:
var
a, a1, c, b2, a2, b1: longint;
begin
a:=a1*(c/b2)+a2*(c/b1);
end.
Вот элементарная программа по вычислению...
А вот Паскаль мне выдает тут ошибку №26: несоответствие типов... Подскажите, пожалуйста, в чём проблема.
Ну, разумеется с, b2, a2, b1, a1 введены уже... просто это фрагмент.
Иван=) вне форума Ответить с цитированием
Старый 04.11.2010, 11:51   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну ещё бы...с целочисленными типами нельзя использовать деление...
_-Re@l-_ вне форума Ответить с цитированием
Старый 04.11.2010, 11:54   #3
Иван=)
Пользователь
 
Регистрация: 02.11.2010
Сообщений: 21
По умолчанию

http://www.fizmat.vspu.ru/books/pascal/types.html
А вот тут написано, что можно- это неправильно? О_о....
В табличке, искать долго не нужно.
Иван=) вне форума Ответить с цитированием
Старый 04.11.2010, 11:59   #4
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
a:real;
должно быть
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 04.11.2010, 12:47   #5
Риндера
Delphi, учу С
Форумчанин
 
Аватар для Риндера
 
Регистрация: 20.10.2010
Сообщений: 178
По умолчанию

Ну правильно, у тебя справа получается выражение типа real, а слева - целочисленная переменная) Вот и несоответствие.
А деление с целыми числами использовать конечно можно. _-Re@l-_, наверное, просто не так выразился.
Риндера вне форума Ответить с цитированием
Старый 04.11.2010, 13:09   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Нужно либо переопределить тип переменной а, либо осуществить приведение типов
Код:
trunc(c/b2) {round(c/b2)}
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 04.11.2010, 13:13   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вдогонку:
Код:
a:=a1*(c div b2)+a2*(c div b1);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2010, 13:27   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
_-Re@l-_, наверное, просто не так выразился.
В том смысле, что нельзя целочисленным типам присваивать результаты деления:
Код:
var
     a,b,c:Integer;
begin
        a:=10;
        b:=5;
        c:=a/b; //нельзя!
        c:=a div b; //можно
        c:=trunc(a/b); //можно
        c:=round(a/b); //можно
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несоответствие должностным требованиям ACE Valery Свободное общение 45 23.08.2010 03:57
Несоответствие работы cin.putback в разных компилляторах DeizR Общие вопросы C/C++ 3 03.08.2009 17:31
несоответствие масштаба сетки и графика (C++Builder) nici Помощь студентам 1 08.07.2009 09:50
Несоответствие типов nusik Общие вопросы Delphi 14 31.05.2009 17:24
Несовпадение типов ILOR Помощь студентам 5 26.11.2008 13:56