Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 13.11.2015, 19:33   #1 (permalink)
13Ви13
Новичок
 
Регистрация: 13.11.2015
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите решить

Ребята помогите пожалуйста!
Выдает ошибку, что не так?
Найти значение у (линейная интерполяция)
Program int ;
var x , y : array [ 1 .. 4 ] of real ;
i : integer ; q : real ; z , a , b : real ;
begin
for i := 1 to 4 do
begin
writeln ( ‘ введите xi , yi ’ ) ;
read ( x [ i ] , y [ i ] ) end ;
read ( q ) ;
for i := 1 to 3 do begin
if ( q >= x [ i ] ) and ( q <= x [ i + 1 ] ) then begin
a := ( y [ i + 1 ] - y [ i ] ) / ( x [ i + 1 ] - x [ i ] ) ;
b := y [ i ] - a * x [ i ] ; y := a * q + b ;
writeln ( ‘ y = ‘ , y ) ; end ; end ;
writeln ( ‘ q не принадлежит интервалу ‘ )
end .
13Ви13 вне форума   Ответить с цитированием

Старый 13.11.2015, 19:33
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

На форуме найдены следующие темы, которые имеют схожее содержание с вашей темой

Помогите решить
Помогите решить
Помогите решить
Помогите решить

Старый 13.11.2015, 19:38   #2 (permalink)
b.kollerov
любитель самоделок
 
Аватар для b.kollerov
 
Регистрация: 27.06.2015
Сообщений: 1,157
Записей в дневнике: 4
Сказал(а) спасибо: 37
Поблагодарили 23 раз(а) в 12 сообщениях
Репутация: 11398
По умолчанию

А что это такое?
__________________
С уважением Борис.
b.kollerov вне форума   Ответить с цитированием
Старый 13.11.2015, 19:42   #3 (permalink)
MagentaTiger
Специалист
 
Аватар для MagentaTiger
 
Регистрация: 27.04.2015
Адрес: Москва
Сообщений: 1,423
Записей в дневнике: 4
Сказал(а) спасибо: 52
Поблагодарили 53 раз(а) в 16 сообщениях
Репутация: 18120
По умолчанию

Да вроде все нормально, только перед выражением
a := ( y [ i + 1 ] - y [ i ] ) / ( x [ i + 1 ] - x [ i ] ) ;
я бы сделал проверку что ( x [ i + 1 ] - x [ i ] ) <> 0
А что за ошибка то ?
MagentaTiger вне форума   Ответить с цитированием
Старый 13.11.2015, 19:48   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Прежде всего, "не так" ваше чересчур вольное обращение с кавычками, апострофами и т.п. Вообще-то Паскаль понимает только один вид: ' (это где клавиша с русской буквой "Э"). Исправьте.
Есть еще одно. Старайтесь при считывании с экрана НЕ пользоваться оператором Read, лучше Readln. Read - он такой... немного скользкий, может внести путаницу. Ввод данных я бы оформил так:
Код:
for i := 1 to 4 do
 begin
  write ( 'введите xi , yi ') ;
  readln ( x [ i ] , y [ i ] ) 
 end ;
write( 'введите q  ') ;
readln ( q ) ;
Vladimir_S вне форума   Ответить с цитированием
Старый 13.11.2015, 21:23   #5 (permalink)
13Ви13
Новичок
 
Регистрация: 13.11.2015
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ошибка: нельзя преобразовать тип real к array [1..4] of real
13Ви13 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 13.11.2015, 21:31   #6 (permalink)
13Ви13
Новичок
 
Регистрация: 13.11.2015
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот что выходит dhenoiie2.png
13Ви13 вне форума   Ответить с цитированием
Старый 13.11.2015, 21:56   #7 (permalink)
MagentaTiger
Специалист
 
Аватар для MagentaTiger
 
Регистрация: 27.04.2015
Адрес: Москва
Сообщений: 1,423
Записей в дневнике: 4
Сказал(а) спасибо: 52
Поблагодарили 53 раз(а) в 16 сообщениях
Репутация: 18120
По умолчанию

А ну да все правильно Y у вас массив же, замените у на z будет вам счастье
т.е. вместо
y := a * q + b ;
writeln ( 'y = ', y ) ;

z:= a * q + b ;
writeln ( 'z= ', z) ;
MagentaTiger вне форума   Ответить с цитированием
Старый 14.11.2015, 05:30   #8 (permalink)
13Ви13
Новичок
 
Регистрация: 13.11.2015
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

СПАСИБО, ВСЕ РАБОТАЕТ!!!!!!!!!!!!!!!!!
13Ви13 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:06.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.