Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Задачи в Паскале

Автор: MasheN'kA 3.4.2007, 17:08

Помогите решить задачи Пожалуйста! В паскале.
6**(х+1) - 6**(х-1) = 35*tg П/4

и такое вот: 3**х - 3**(6/х) = 1

Извините, что не учла правил форума. Впредь повторять такого не буду. Прошу помощи в решение, если хоть кто-то что-то в этом смыслит. Буду благодарна за любое решение или хотя бы совет.

Вы и сейчас не учли - не надо писать в заголовке "Помогите!!!!!!!!". Пожалуйста, внимательнее читайте правила.

Автор: Julia 3.4.2007, 20:41

Первое уравнение и без Паскаля легко решается.

А во втором нужно воспользоваться одним из численных методов. Для начала отделите корни и определитесь с методом.

Автор: Ботаник 4.4.2007, 5:50

В первом уравнении корень единица, это и без паЧкаля видно.
Для второго уравнения вот тебе программка. Это называется "метод половинного деления".
При желании можешь заменить F(x) на заданную в первом уравнении, но не забудь поменять границы интервала [a,b]. wink.gif

program Masha;
uses DOS;
const eps=0.0001;

Function Pow(a : real; b : real) : real;
begin
{ Pow(a,cool.gif == a^b }
Pow := Exp( b * Ln(a));
end;

Function F(x : real) : real;
begin
F := Pow(3,x) - Pow(3,6/x) - 1;
end;

var a, b, x : real;
var fa, fb, fx : real;
var vloop : boolean;

begin
a := 1;
b := 6;
vloop := true;
while (vloop) do
begin
fa := F(a);
fb := F(cool.gif;
x := (a + cool.gif / 2;
fx := F(x);
vloop := (Abs(fx) > eps);
if (vloop) then
begin
if (fa * fx > 0) then
begin
a := x;
end
else
begin
b := x;
end
end
end;
WriteLn(x, fx);
End.
wink.gif


Опс! Вместо рожи в теле программы надо читать " b ) "

Автор: MasheN'kA 4.4.2007, 14:42

Но мне нужно именно в паскале. Пожалуйста, если сможете, то напишите хотя бы основную часть. Я вообще в этом не смыслю ничего. Буду очень благодарна, если ктото сможет помочь!

Автор: MasheN'kA 4.4.2007, 15:53

Спасибо большое за вторую задачу. Но у меня всетаки остается вопрос на счет первой. Как записать её в Паскале?

Автор: MasheN'kA 4.4.2007, 18:16

Извините пожалуйста за нарушения. Я не специально...

Автор: alxdr 4.4.2007, 18:34

Если уж надо решать это уравнение напрямую численно, то проще всего взять уже написанный код для второго уравнения и просто изменить функцию F(x), как и сказали тебе уже. Примерно так:
Function F(x : real) : real;
begin
F := Pow(6,x+1) - Pow(6,x-1) - 35*sin(pi/4)/cos(pi/4);
end;
Измени еще края и все будет ок.

Автор: Julia 5.4.2007, 3:51

Цитата(MasheN'kA @ 4.4.2007, 23:42) *

Но мне нужно именно в паскале. Пожалуйста, если сможете, то напишите хотя бы основную часть. Я вообще в этом не смыслю ничего. Буду очень благодарна, если ктото сможет помочь!

Если вы будете пользоваться готовыми решениями, то никогда и не будете смыслить.

2Ботаник: мы вроде бы отказались от выкладывания готовых решений по первому требованию пользователей, особенно тех которые сами ничего и не пытались сделать.

Автор: MasheN'kA 5.4.2007, 15:46

Спасибо за решение. Если бы я хоть чуток это раньше учила, то может и смогла. А так я перешла из школы, в которой не было програмирования, и тут сразу такие задачи. Я всего два месяца это все "изучаю"

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)