Нижегородский Форум Друзей

Нижегородский Форум Друзей (http://forum.nnov.org/)
-   НГТУ (http://forum.nnov.org/gorodskaya-zhizn/ucheba/ngtu/)
-   -   Помогите с паскалем) (http://forum.nnov.org/gorodskaya-zhizn/ucheba/ngtu/35486-pomogite-s-paskalem.html)

Shrek-Ogre 22.11.2008 17:53

Помогите с паскалем)
 
Помогите пожалуйста написать программу, буду очень благодарен)


[Для просмотра данной ссылки нужно зарегистрироваться]


вот что у меня получилось):
Код:

program lab2;
var max,u,x,y,A,B,C:real;
begin
x:=1;
while(x<=3)
        do begin
        y:=2;
        while(y<=4)
                do begin
                A:=(exp(1)*sin(sqr(x)-sqrt(y)));
                B:=cos(exp((2/3)*ln(x*y)));
                C:=cos(x*sqr(y));
                if A<B then max:=B else max:=A;
                if (x/sqr(y))<1 then U:=max else U:=C;
                writeln(' x=',x:4:2,' y=',y:4:2,' U=',u:4:2);
        y:=y+1.5;end;
x:=x+1.3;end;
end.


ProZZaK 23.11.2008 16:14

О_о...погоди с полчасика,у меня где то были такие примеры))

Axel2150 23.11.2008 19:22

ммм... помню на 1 курсе писали вычесление значений функции либо по заданому интервалу либо по точкам...
напоротся было там на что

YuP 23.11.2008 20:01

а ты уверен в этой строчке:
B:=cos(exp((2/3)*ln(x*y)));
???

вроде как x в первой степени в подкоренном выражении

Shrek-Ogre 23.11.2008 21:02

вот я немножко поправил):
[Для просмотра данной ссылки нужно зарегистрироваться]



а со степенью вот так??

exp(2/3)*ln(y)*exp(1/3)*ln(x)

YuP 23.11.2008 21:48

ну насколько я помню (лень проверять, четыре года уже не программил)
x^y=exp(y*ln(x))
а так, то, что ты предложил про перемножение корней верно с учетом внесения под скобки exp.

но я особо в смысл не вникал. чисто формально глянул.

Shrek-Ogre 23.11.2008 22:35

что-то не работает(( :wallbash:

Код:

program lab2;
var max,U,x,y,A,B,C:real;
begin
x:=1;
while x<=3
do begin
y:=2;
while y<=4
do begin
A:=((exp(1)*sin(sqr(x)))-sqrt(y));
B:=cos(((exp((2/3)*ln(y)))*(exp((1/3)*(x)))/sin((exp((2/3)*ln(y)))*(exp((1/3)*ln(x)))); (показывает, что в этой строке ошибка со скобками )
C:=cos(x*y*y);
if A<B then max:=B else max:=A;
if (x/sqr(y))<1 then U:=max else U:=C;
writeln(' x=',x:4:2,' y=',y:4:2,' U=',u:4:2);
y:=y+1.5;end;
x:=x+1.3;
end;
readln;
end.


YuP 24.11.2008 07:05

Скобки считать учись. Код работает, но суть я не проверял.

1:

program lab2;
var max,U,x,y,A,B,C,qq,q:real;
begin
x:=1;
while x<=3
do begin
y:=2;
while y<=4
do begin
A:=((exp(1)*sin(sqr(x)))-sqrt(y));
B:=cos((exp((2/3)*ln(y))*exp((1/3)*(x))))/sin((exp((2/3)*ln(y))*exp((1/3)*ln(x))));
C:=cos(x*y*y);
if A<B then max:=B else max:=A;
if (x/sqr(y))<1 then U:=max else U:=C;
writeln(' x=',x:4:2,' y=',y:4:2,' U=',u:4:2);
y:=y+1.5;end;
x:=x+1.3;
end;
readln;
end.

Shrek-Ogre 24.11.2008 12:55

спасибо большое)

а с repeat так будет)??:

Код:

program lab2;
var max,U,x,y,A,B,C:real;
begin
writeln('data function');
x:=1;
repeat
 x:=3;
repeat
 y:=2;
while y<=4
do begin
A:=((exp(1)*sin(sqr(x)))-sqrt(y));
B:=cos((exp((2/3)*ln(y))*exp((1/3)*ln(x))))/sin((exp((2/3)*ln(y))*exp((1/3)*ln(x))));
C:=cos(x*y*y);
if A<B then max:=B else max:=A;
if (x/sqr(y))<1 then U:=max else U:=C;
writeln(' x=',x:4:2,' y=',y:4:2,' U=',u:4:2);
y:=y+1.5
until(y>3);
writeln;
x:=x+1.3
until(x>4);
readln;
end.


YuP 24.11.2008 14:47

нет, не так.
посмотри. у тебя во втором repeat каждый раз y присваивается 2.

потом есть начало: while y<=4
do begin


где end;?

Shrek-Ogre 24.11.2008 18:23

что-то не догадался куда енд сунуть)

Код:

program lab2;
var max,U,x,y,A,B,C:real;
begin
writeln('data function');
x:=2;
repeat
 y:=1;
 repeat
A:=((exp(1)*sin(sqr(x)))-sqrt(y));
B:=cos((exp((2/3)*ln(y))*exp((1/3)*ln(x))))/sin((exp((2/3)*ln(y))*exp((1/3)*ln(x))));
C:=cos(x*y*y);
if A<B then max:=B else max:=A;
if (x/sqr(y))<1 then U:=max else U:=C;
writeln(' x=',x:4:2,' y=',y:4:2,' U=',u:4:2);
y:=y+1.5
until(y>3);
writeln;
x:=x+1.3
until(x>4);
readln;
end.


YuP 24.11.2008 18:29

на первый взгляд ляпов нет

Добавлено через 2 минуты 30 секунд
хотя токи с запятой после последней операции присвоения перед until я бы поставил

Shrek-Ogre 24.11.2008 18:30

неа, что-то не так, разные результаты получаются(

[Для просмотра данной ссылки нужно зарегистрироваться]


почему-то через 1 (

YuP 24.11.2008 18:49

Ну смотри. в одной из вышеприведенных прог ты x присваиваешь вначале 1.
в этой версии - 2

Добавлено через 35 секунд
аналогично с y (ранее - 2, сейчас - 1)

Shrek-Ogre 24.11.2008 18:55

вот переделал, но ничего не меняется:

Код:

program lab2;
var max,U,x,y,A,B,C:real;
begin
writeln('data function');
x:=1;
repeat
 y:=2;
 repeat
A:=((exp(1)*sin(sqr(x)))-sqrt(y));
B:=cos((exp((2/3)*ln(y))*exp((1/3)*ln(x))))/sin((exp((2/3)*ln(y))*exp((1/3)*ln(x))));
C:=cos(x*y*y);
if A<B then max:=B else max:=A;
if (x/sqr(y))<1 then U:=max else U:=C;
writeln(' x=',x:4:2,' y=',y:4:2,' U=',u:4:2);
y:=y+1.5;
until(y>3);
writeln;
x:=x+1.3;
until(x>4);
readln;
end.


YuP 24.11.2008 19:23

условия прерывания цикла смотри. у тебя вместо: until(x>4); должно быть until(x>3);

и until(y>4);

Shrek-Ogre 24.11.2008 19:26

YuP

спасибо тебе большое):yahoo:

Axel2150 24.11.2008 19:50

ммм... как то поменьше тут можно переменных ввести мне кажется и цикл один убрать... хотя я сделал на С... а С - гибкий мать его язык >__<
На паскале не помню уже можно ли так сделать...
C:

#include <stdio.h>
#include <math.h>
#include <conio.h>

int main()
{
float x=1.,y=2.,FF,SF,TF;

do
{
if ((x/(y*y))<1)
{
FF = exp(1)*sin((x*x)) - sqrt(y);
SF = cos((exp((2/3)*log(y))*exp((1/3)*log(x))))/sin((exp((2/3)*log(y))*exp((1/3)*log(x))));
if (FF>=SF)
{
printf("x= %f y= %f U= %f \n", x,y,FF);
} else
{
printf("x= %f y= %f U= %f \n", x,y,SF);
}
} else
{
TF = cos(x*(y*y));
printf("x= %f y= %f U= %f \n", x,y,TF);
}
x += 1.3;
y += 1.5;


}while(x<2.3);


getch();
return 0;
}



Shrek-Ogre 24.11.2008 19:56

я С вообще не знаю)

Axel2150 24.11.2008 20:03

Значит тебе в каком то смысле повезло


Часовой пояс GMT +3, время: 16:02.

Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод:
Search Engine Friendly URLs by vBSEO 3.6.0zCarot
© 2005—2015 ООО «Интернет компания ННОВ.РУ», friends.nnov.ru
Реклама на форуме