![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Renn |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Ренн Репутация: ![]() ![]() ![]() |
Доброго времени суток. Вот выношу себе мозг не первый день... А сдача - горит.
> > Разработать схему алгоритма, составить Pascal программу: "Вычисления таблицы значений функции ax^2+bx+cos(П*a/b). При заданных значениях аргумента x, xn, xk, dx и параметра а = М-значений a. Параметр b принимает значение, численно равное корню нелинейного уравнения x^2-1,3ln(x+0,5)-2,8x+1,15. Интервал изоляции 0-10. > > Обозначение: > > xn, xk - начальное и конечное значение аргумента x; > > dx - шаг изменения параметра x; > > N - число значений параметра x, изменяемого от значения xn, с шагом dx; > > M - число значений параметра a. > > ^ - степень. Прошу подсказать, хотя бы, как записать а = М-значений a с функцией и как найти корни x^2-1,3ln(x+0,5)-2,8x+1,15. Интервал изоляции 0-10. Буду очень благодарен. Сообщение отредактировано: Renn - 21.12.2007 4:28 |
![]() ![]() |
Renn |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Ренн Репутация: ![]() ![]() ![]() |
Вот программа, которую сумел состряпать посмотрите пожалуйста и подскажите, что не верно.
program rgr;
uses crt;
type massive=array[1..100] of real;
var
e:real;
b, b2:real;
n:integer;
i:integer;
j:integer;
x:real;
xn:real;
dx:real;
er0,ers:integer;
pr1,pr2:real;
mx:massive;
function f(g:real):real;
begin
f:=sqr(g)-1.3*ln(g+0.5)-2.8*g+1.15;
end;
function trap(pr1,pr2:real;n:integer):real;
var
s:real;
h:real;
m:integer;
begin
h:=(pr2-pr1)/(n-1);
s:=(f(pr1)+f(pr2))/2;
for m:=1 to n-2 do s:=s+f(pr1+m*h);
trap:=s*h;
end;
function y(x,a,b:real):real;
begin
y:=a*sqr(x)+b*x+cos(pi*(a/b));
end;
begin
clrscr;
write('Vvedite predeli integrirovaniya funkcii: ');
readln(pr1,pr2);
if pr1>pr2 then
begin repeat
writeln('Nepravilniy vvod');
write('Povtorite vvod predelov funkcii');
readln(pr1,pr2);
until pr1<=pr2
end;
write('Ukaghite tochnost opredeleniya integrala funcii: ');
readln(e);
if e=0 then
begin repeat
writeln('Tochnost integrala zadana ne verno');
write('Povtorite vvod:'); readln(e);
until e<>0
end;
write('Ukaghite kolichestvo funkcii trebuemih dlya vichisleniya: ');
readln(j);
if j=0 then
begin repeat
writeln('Oshibka. Vvedite nenulevoe znachenie');
readln(j);
until j<>0
end;
write('Vvedite nachalnoe znachenie funcii: ');
readln(xn);
if xn=0 then
begin repeat
writeln('Ne nadoelo vvoditnulevie nedopustimie znacheniya?? Povtorite Vvod!');
readln(xn);
until xn<>0
end;
write('Shag znachenii funkcii: ');
readln(dx);
begin
n:=3;
b:=trap(pr1,pr2,n);
repeat
b2:=b;
n:=n+2;
b:=trap(pr1,pr2,n);
until (abs(b-b2)<E);
begin
x:=xn;
i:=0;
repeat
mx[i]:=y(x,b);
<---- В этой строке выдаёт ошибку. Просит поставить запятую после b.
writeln(' x=',x:8:3,' y=',mx[i]:8:3);
i:=i+1;
x:=x+dx;
until i=j;
end; end;
repeat until keypressed;
end.
Буду очень благодарен. =) Сообщение отредактировано: Renn - 21.12.2007 4:21 |
klem4 |
![]()
Сообщение
#3
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
эм ... ну смотри:
Цитата function y(x,a,b:real):real; begin y:=a*sqr(x)+b*x+cos(pi*(a/b)); end; // .... mx[i]:=y(x,b); -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Renn |
![]() ![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Ренн Репутация: ![]() ![]() ![]() |
Ошибок, как я понимаю там немеренная куча, как понимаю...
Спасибо, за помощь отыскание одной из них, ищу дальше... Поправил осталась совсем чуть чуть ну, плз. program rgr;
uses crt;
type massive=array[1..100] of real;
var
e:real;
a:real; { ’(r)з(r)бвм ўлзЁб«ҐЁп ЁвҐЈа « }
b:real; { ЏаҐ¤л¤г饥 Ё ⥪г饥 ЇаЁЎ«Ё¦ҐлҐ § зҐЁп ЁвҐЈа « }
n:integer; { ‘зҐвзЁЄ ЇаЁ ўлзЁб«ҐЁЁ ЁвҐЈа « }
i:integer; { Љ(r)«ЁзҐбвў(r) ўлзЁб«пҐ¬ле § 票(c) дгЄжЁЁ }
j:integer; { ‘зҐвзЁЄ ЇаЁ ўлзЁб«ҐЁЁ дгЄжЁЁ }
x:real; { ЂаЈг¬Ґв Ё § 票Ґ дгЄжЁЁ }
xn:real; { Ќ з «м(r)Ґ § 票Ґ дгЄжЁЁ }
dx:real; { ? Ј ўлзЁб«ҐЁп дгЄжЁЁ }
er0,ers:integer; { “б«(r)ўЁҐ ўлў(r)¤ б(r)(r)ЎйҐЁп (r)Ў (r)иЁЎЄҐ }
pr1,pr2:real; { ЏаҐ¤Ґ«л ЁвҐЈаЁа(r)ў Ёп }
mx:massive; { ‡ ¤ Ґ¬ ¬ ббЁўл }
function f(x1:real):real;
begin
f:=sqr(x1)-1.3*ln(x1+0.5)-2.8*x1+1.15;
end;
function trap(pr1,pr2:real;n:integer):real;
var
s:real;
h:real;
q:integer;
begin
h:=(pr2-pr1)/(n-1);
s:=(f(pr1)+f(pr2))/2;
for q:=1 to n-2 do s:=s+f(pr1+q*h);
trap:=s*h;
end;
function y(x,a,b:real):real;
begin
y:=a*sqr(x)+b*x+cos(pi*(a/b));
end;
begin
clrscr;
write('Vvedite predeli integrirovaniya funkcii: ');
readln(pr1,pr2);
if pr1>pr2 then
begin repeat
writeln('Nepravilniy vvod: ');
write('Povtorite vvod predelov funkcii: ');
readln(pr1,pr2);
until pr1<=pr2
end;
write('Ukaghite kolichestvo funkcii trebuemih dlya vichisleniya: ');
readln(j);
if j=0 then
begin repeat
writeln('Oshibka. Vvedite nenulevoe znachenie: ');
readln(j);
until j<>0
end;
write('Vvedite nachalnoe znachenie funcii: ');
readln(xn);
if xn=0 then
begin repeat
writeln('Ne nadoelo vvoditnulevie nedopustimie znacheniya?? Povtorite Vvod!');
readln(xn);
until xn<>0
end;
write('Shag znachenii funkcii: ');
readln(dx);
begin
n:=3;
b:=trap(pr1,pr2,n);
repeat
begin
x:=xn;
i:=0;
repeat
mx[i]:=y(x, a, b);
writeln(' x=',x:8:3,' y=',mx[i]:8:3);
i:=i+1;
x:=x+dx;
until n=j;
end;
end; <------- Здесь ошибка. Error in statsment.
repeat until keypressed;
end.
Помогите плз... ну очень очень срочно. Сообщение отредактировано: Renn - 21.12.2007 12:17 |
andriano |
![]()
Сообщение
#5
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
repeat
begin
x:=xn;
i:=0;
repeat
mx[i]:=y(x, a, b);
writeln(' x=',x:8:3,' y=',mx[i]:8:3);
i:=i+1;
x:=x+dx;
until n=j;
end;
end; <------- Здесь ошибка. Error in statsment.
PS. Чтобы самому без посторонней помощи искать подобные ошибки, нужно всего-навсего отформатировать текст. Зачем просить делать других то, что вполне можешь сделать сам? Сообщение отредактировано: andriano - 21.12.2007 22:43 |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 6:06 |