Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Помогите решить (http://www.tehnari.ru/f43/t105256/)

13Ви13 13.11.2015 19:33

Помогите решить
 
Ребята помогите пожалуйста!
Выдает ошибку, что не так?
Найти значение у (линейная интерполяция)
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 .

b.kollerov 13.11.2015 19:38

А что это такое?

MagentaTiger 13.11.2015 19:42

Да вроде все нормально, только перед выражением
a := ( y [ i + 1 ] - y [ i ] ) / ( x [ i + 1 ] - x [ i ] ) ;
я бы сделал проверку что ( x [ i + 1 ] - x [ i ] ) <> 0
А что за ошибка то ?

Vladimir_S 13.11.2015 19:48

Прежде всего, "не так" ваше чересчур вольное обращение с кавычками, апострофами и т.п. Вообще-то Паскаль понимает только один вид: ' (это где клавиша с русской буквой "Э"). Исправьте.
Есть еще одно. Старайтесь при считывании с экрана НЕ пользоваться оператором Read, лучше Readln. Read - он такой... немного скользкий, может внести путаницу. Ввод данных я бы оформил так:
Код:

for i := 1 to 4 do
 begin
  write ( 'введите xi , yi ') ;
  readln ( x [ i ] , y [ i ] )
 end ;
write( 'введите q  ') ;
readln ( q ) ;


13Ви13 13.11.2015 21:23

ошибка: нельзя преобразовать тип real к array [1..4] of real

13Ви13 13.11.2015 21:31

Вложений: 1
Вот что выходит Вложение 249093

MagentaTiger 13.11.2015 21:56

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

z:= a * q + b ;
writeln ( 'z= ', z) ;

13Ви13 14.11.2015 05:30

СПАСИБО, ВСЕ РАБОТАЕТ!!!!!!!!!!!!!!!!!:bsod:


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

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.