Среда, 08.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Выдаёт ошибку
MatrixДата: Пятница, 24.12.2010, 07:36 | Сообщение # 1
Старый знакомый
Группа: Пользователи
Сообщений: 34
Репутация: 2
Замечания: 0%
Статус: Offline
Выдаёт ошибку Type mismatch .Теоретически знаю,что это несовместимость типов вроде,но я понятия не имею чё там у меня не так).Извините если не в том разделе написал,просто не знал где вопрос задать.Вот код,он ещё не доработанный,так что в смысл вдумываться не стоит).

Code
uses Graph,CRT;
var device,mode:Integer;
var x,y,v,t:Real;
Begin
device:=0;
InitGraph(device,mode,'c:\tp7\BGI');
t:=0;
x:=30;
y:=33;
v:=80;
SetLineStyle(0,0,ThickWidth);
Line(0,400,650,400);
Rectangle(50,400,10,50);
SetLineStyle(0,0,NormWidth);
repeat
SetColor(Red);
Circle(x,y,15);
Delay(1500);
SetColor(Black);
Circle(x,y,15);
t:=t+0.2;
x:=(v*t)+x;
y:=433-(4*(100-9.81*t*t/2));
until y>=450;
ReadLn;
CloseGraph
end.


Сообщение отредактировал Matrix - Пятница, 24.12.2010, 07:49
 
SeqularДата: Пятница, 24.12.2010, 09:52 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Type mismatch - несоответствие типов.
Вижу вот в коде рисуется окружность по переменным x, y. А эти переменные заданы в программе как Real. А окружность рисовать нужно по переменным целочисленного типа. Вам нужно использовать округление, например функцией Round.


Поддерживаю также проект сообщество молодых сисадминов
 
MatrixДата: Пятница, 24.12.2010, 21:34 | Сообщение # 3
Старый знакомый
Группа: Пользователи
Сообщений: 34
Репутация: 2
Замечания: 0%
Статус: Offline
Переменные 'х,у' у меня изначально были типа Integer. Ошибку выдавало такую же.А про функцию Round надо почитать).

Сообщение отредактировал Matrix - Пятница, 24.12.2010, 21:41
 
SeqularДата: Пятница, 24.12.2010, 21:51 | Сообщение # 4
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ну конечно выдавало ошибку! Если используешь деление!
Code
y:=433-(4*(100-9.81*t*t/2));

так как в строке фигурирует дробное число, да и результат деления - тоже дробное.. Описывай переменные как real.
А для рисования окружности используй
Code
Circle(Round(x), Round(y), r);

Вместо Round можно использовать Trunc.
Round - округляет до ближайшего целого, Trunc - отбрасывает дробную часть.


Поддерживаю также проект сообщество молодых сисадминов
 
MatrixДата: Суббота, 25.12.2010, 02:59 | Сообщение # 5
Старый знакомый
Группа: Пользователи
Сообщений: 34
Репутация: 2
Замечания: 0%
Статус: Offline
Ну да,точно.Поэтому и изменил тип на Real.Спасибо большое за совет,премного благодарен.Буду пробовать).
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;