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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2015, 17:41   #1
Anya Lis
Пользователь
 
Регистрация: 19.05.2015
Сообщений: 14
По умолчанию Паскаль, вычисление методом чебышева интегралла

Помогите отладить программу

Код:
program integral16;

function f(x:real):real;
begin
  f:=sin(0.4*x)-3*ln(x);
end;
var i:integer;

    t:array[1..3]of real=(0.832498,0.374541,0);
    x:array[1..5] of real;
    begin
    s:=0;
    a:=1;
    b:=2.5;
   for i:=1 to 5  do

begin
x[1]:=(b+a)/2+(b-a)/2*t[1];
x[2]:=(b+a)/2+(b-a)/2*t[2];
x[3]:=(b+a)/2+(b-a)/2*t[3];
x[4]:=1-x[2];
x[5]:=1-x[1];
y[i]:=f(x[i];
s=s+y[i];
end;
s:=s*(b-a)/2;
writeln ('s=',s);
end;

Последний раз редактировалось Poma][a; 25.05.2015 в 18:07.
Anya Lis вне форума Ответить с цитированием
Старый 25.05.2015, 18:06   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,378
По умолчанию

С точки зрения алгоритма можно посмотреть тут: http://www.km.ru/referats/DF2B60BD1C...B2D7F7E6D68031
С точки зрения ошибок:
- эту часть кода можно перенести и вставить перед циклом
Код:
x[1]:=(b+a)/2+(b-a)/2*t[1];
x[2]:=(b+a)/2+(b-a)/2*t[2];
x[3]:=(b+a)/2+(b-a)/2*t[3];
x[4]:=1-x[2];
x[5]:=1-x[1];
а тут нет закрывающейся скобки:
Код:
y[i]:=f(x[i];

Как-то так, ...
PS: Форматируйте код: Выделить текст кода и нажать "#", см. кнопки на форме окна редактирования.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 25.05.2015, 21:53   #3
Anya Lis
Пользователь
 
Регистрация: 19.05.2015
Сообщений: 14
По умолчанию

у меня очень много ошибок с: а, b, s
пишет Inentifier not found
Anya Lis вне форума Ответить с цитированием
Старый 25.05.2015, 23:12   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,378
По умолчанию

Естественно.
У Вас описан только тип для переменной i.
В разделе var добавьте описание для переменных, на которые идет "ругань".


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 25.05.2015, 23:13   #5
Atherakhia
 
Регистрация: 12.12.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Anya Lis Посмотреть сообщение
пишет Inentifier not found
Так они не объявлены как переменные
Atherakhia вне форума Ответить с цитированием
Старый 26.05.2015, 10:07   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Anya Lis Посмотреть сообщение
у меня очень много ошибок с: а, b, s
пишет Inentifier not found
как тебе правильно сказали, в Паскале любую переменную, прежде чем использовать, нужно ОБЪЯВИТЬ.

берём раздел var и добавляем туда все переменные, на которые "ругается" компилятор.

Код:
var i:integer;
    t:array[1..3]of real=(0.832498,0.374541,0);
    x:array[1..5] of real;
    a,b,s : real; {переменные вещественного типа}
begin
    s:=0;
    a:=1;
    b:=2.5;
    for i:=1 to 5  do
....
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.05.2015, 20:13   #7
Anya Lis
Пользователь
 
Регистрация: 19.05.2015
Сообщений: 14
По умолчанию

теперь ему не нравиться Function
Код:
program kyrsov;
uses crt;
var
function f(x:real):real;
i:integer;
a,b,s:real;
begin
writeln ('vvod a,b:');
readln (a,b);
f:=sin(0.4*x)-3*ln(x);
t:array[1..5]of real=(0.832498,0.374541,0,-0.374541,-0.832498);
x:array[1..5]of real;
y:array[1..5]of real;
end;
s:=0
for i:=1 to 5 do
begin
x[i]:=(b+a)/2+(b-a)/2*t[i];
y[i]:=f[i];
s:=s+y[i];
end;
s:=s*(b-a)/2;
writeln('s=',s:10:7);
end.

Последний раз редактировалось Аватар; 27.05.2015 в 20:30.
Anya Lis вне форума Ответить с цитированием
Старый 27.05.2015, 20:18   #8
Kilix
Заблокирован
 
Регистрация: 26.05.2015
Сообщений: 9
По умолчанию

x*(x*x+5)=z
Kilix вне форума Ответить с цитированием
Старый 28.05.2015, 05:08   #9
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,987
По умолчанию

Подправил:
Код:
program kyrsov;
uses crt;
var
t:array[1..5]of real=(0.832498,0.374541,0,-0.374541,-0.832498);
x:array[1..5]of real;
y:array[1..5]of real;
s,b,a:real;
i:integer;
function f(x:real):real;
var i:integer;
a,b,s:real;
begin
f:=sin(0.4*x)-3*ln(x);
end;
begin
writeln ('vvod a,b:');
readln (a,b);
s:=0;
for i:=1 to 5 do
begin
x[i]:=(b+a)/2+(b-a)/2*t[i];
y[i]:=f(i);
s:=s+y[i];
end;
s:=s*(b-a)/2;
writeln('s=',s:10:7);
Readln;
end.
Сойдет?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 28.05.2015, 10:18   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

newerow1989, а в этой строке:
Цитата:
Код:
x[i]:=(b+a)/2+(b-a)/2*t[i];
разве не будет ошибки деления на ноль?! Ведь t[3] равно нулю, если я не ошибаюсь!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приближенное вычисление определенных интегралов методом трапеций (Паскаль) now2 Паскаль, Turbo Pascal, PascalABC.NET 14 30.05.2014 07:42
Приближение функций методом Чебышева. Упрощение многочлена. Visual Basic 6.0 MAV_alex Помощь студентам 0 23.04.2012 22:46
График вычисления интегралла методом прямоугольника. Restinpeace Помощь студентам 0 30.05.2011 10:00
вычисление интеграла методом трапеций Sepherot Помощь студентам 1 21.12.2010 22:18
написать блок схему определённого интегралла посчитанного методом прямоугольников Зимний Помощь студентам 3 04.02.2010 01:27