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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2012, 20:00   #1
overlor
Пользователь
 
Регистрация: 18.01.2012
Сообщений: 12
Печаль Система уравнений!!!

Народ помогите очень нужно, учусь на заочке не у кого помощи попросить, я бы сам сделал, но просто не понимаю сильно паскаль уже 5 день над этой задачей голову ломаю....

Задача.doc

Последний раз редактировалось overlor; 28.01.2012 в 20:03.
overlor вне форума Ответить с цитированием
Старый 28.01.2012, 20:10   #2
overlor
Пользователь
 
Регистрация: 18.01.2012
Сообщений: 12
По умолчанию Мой вариант но не считает...(((

program func;
uses crt;
var x,y:real;
const e=0.00000001;
begin
clrscr;
write('‚ўҐ¤ЁвҐ x=');
read(x);
if x<0.5-e then
begin
y:=exp(ln(sin(x)*2))+2*exp(ln(x)*4) ;
writeln('y=',y:10:5);
end
else if (x>1-e) and (x<3-e) then
begin
y:=sqrt(1-x)/(sin(3*x));
writeln('y=',y:10:5);
end
else if (x>3+e) and (x<5+e) then
begin
y:=(sin(x)/cos(x))/(1-sqr(x));
writeln('y=',y:10:5);
end
else if (x>5+e) then
begin
y:=sin(2*(x-1));
writeln('y=',y:10:5);
end;
writeln('y=',y:10:5);
End.
overlor вне форума Ответить с цитированием
Старый 28.01.2012, 20:13   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Код:
if x < 0.5 then y:=sin(x)*sin(x) - 2*x*x*x*x;
if (x >= 1) AND (x < 3) then y:=sqrt(1-x)/sin(3*x);
if (x > 3) and (x <= 5) then y:=(sin(x)/cos(x))/(1 - x*x);
if x > 5 then y:=sqr(x - 1);
Для оформление кода пользуйтесь тэгом CODE (это кнопочка с решёткой #)

Последний раз редактировалось Вадим Мошев; 28.01.2012 в 20:16.
Вадим Мошев вне форума Ответить с цитированием
Старый 28.01.2012, 20:19   #4
overlor
Пользователь
 
Регистрация: 18.01.2012
Сообщений: 12
По умолчанию

Спасибо огромное попробую....
overlor вне форума Ответить с цитированием
Старый 28.01.2012, 20:31   #5
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

А пока между делом советы.
Нестрогие знаки равенства в Паскале тоже есть, поэтому не надо вводить в использование никаких констант!

Код:
if x<0.5-e then
begin
y:=exp(ln(sin(x)*2))+2*exp(ln(x)*4) ;
writeln('y=',y:10:5);
Зачем столько выводов на экран?
Можно сначала вычислить y, и уж потом выводить его значение на экран.
Кстати, формат вывода я бы рекомендовал использовать например 5:3, то есть: Write(y:5:3)
Вадим Мошев вне форума Ответить с цитированием
Старый 28.01.2012, 21:34   #6
overlor
Пользователь
 
Регистрация: 18.01.2012
Сообщений: 12
По умолчанию

А можешь написать весь текст программы, что-то у меня все равно не получается..((((
overlor вне форума Ответить с цитированием
Старый 28.01.2012, 22:17   #7
overlor
Пользователь
 
Регистрация: 18.01.2012
Сообщений: 12
По умолчанию

Написал вот так программу, правда только при вводе 0,1,2,3 не считает...???
Код:
program func;
uses crt;
var x,y:real;
const e=0.00000001;
begin
clrscr;
write('‚ўҐ¤ЁвҐ x=');
read(x);
begin
if x < 0.5-e then y:=sin(x)*sin(x) - 2*x*x*x*x;
if (x >= 1-e) AND (x < 3-e) then y:=sqrt(1-x)/sin(3*x);
if (x > 3+e) and (x <= 5+e) then y:=(sin(x)/cos(x))/(1 - x*x);
if x > 5+e then y:=sqr(x - 1);
writeln('y=',y:10:5);
end;
readkey;
end.
overlor вне форума Ответить с цитированием
Старый 28.01.2012, 23:22   #8
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Код:
program func;
uses crt;
var x,y:real;
const e=0.00000001;
begin
clrscr;
write('‚ўҐ¤ЁвҐ x=');
read(x);
begin {вот нафига? Это не нужно писать, так как Бегин был уже выше}
if x < 0.5-e then y:=sin(x)*sin(x) - 2*x*x*x*x;
if (x >= 1-e) AND (x < 3-e) then y:=sqrt(1-x)/sin(3*x);
if (x > 3+e) and (x <= 5+e) then y:=(sin(x)/cos(x))/(1 - x*x);
if x > 5+e then y:=sqr(x - 1);
writeln('y=',y:10:5);
end; {тоже нафига по той же причине}
readkey;
end.
уберите красные строчки
И уберите вычитание и прибавление e

Цитата:
правда только при вводе 0,1,2,3 не считает...???
А вот поставьте 2 (введите) да и сами посчитайте (выполните ручную прокрутку алгоритма), что там будет.

Последний раз редактировалось Вадим Мошев; 28.01.2012 в 23:26.
Вадим Мошев вне форума Ответить с цитированием
Старый 28.01.2012, 23:36   #9
overlor
Пользователь
 
Регистрация: 18.01.2012
Сообщений: 12
По умолчанию

Просто нужно эту задачу решить с использованием точности....,просто я не пойму почему не считает для 0,1,2,3...
overlor вне форума Ответить с цитированием
Старый 28.01.2012, 23:57   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
просто я не пойму почему не считает для 0,1,2,3...
Поставьте 2 в свой алгоритм и посмотрите, что там будет.
Подсказка: проход будет идти по ветке
Код:
if (x >= 1) AND (x < 3) then y:=sqrt(1-x)/sin(3*x);
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу на функцию С++ Many man Помощь студентам 8 22.05.2009 22:13
Помогите решить задачу на функцию в с++ Many man Помощь студентам 7 07.05.2009 21:41
решить функцию Waia Помощь студентам 1 02.11.2008 21:43
Паскаль. Решить функцию. Dopeman Помощь студентам 7 18.09.2007 22:13