Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 25.05.2011, 21:11   #1 (permalink)
Дима Коренюгин
Новичок
 
Регистрация: 25.05.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Проблемы с написанием программы на языке Турбо Паскаль

Помогите сделать курсовик.Написать программу на языке турбо паскаль. Тема: "Решение квадратных уравнений методом Ньютона" Помогите пожалуйста. Я её написал так;

program Newton;
uses crt; {модуль управления экраном}

function f(x:real):real; {Исходная функция}
begin
f:=3*sqr(x)-4*x-2;
end;

function f1(x:real):real; {Первая производная функции}
begin
f1:=6*x-4;
end;

var a,b,x,e,en:real;
i:integer;

begin
clrscr; {очистить экран}
writeln ('Решение нелинейного уравнения методом Ньютона');
writeln ('Уравнение 3x^2-4x-2=0');
write ('Введите левую и правую границы интервала:');
read (a,b);
write ('Введите требуемую точность решения:');
read (e);
writeln ('Решение:');
writeln ('Номер шага Значение X');
en:=abs(a-b);
x:=b;
i:=1;
while (abs(en)>e) do begin {Пока не достигнута точность}
x:=x-f(x)/f1(x); {выполнить шаг метода}
writeln (i:10,x:20:14); {вывести значение X с шага}
en:=abs(x-b); {Новая точность}
b:=x; {Значение границы для следующего шага}
i:=i+1; {Номер шага}
end;
end.

помогите как правильно написать
Дима Коренюгин вне форума   Ответить с цитированием

Старый 25.05.2011, 21:11
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Можете просмотреть аналогичные темы, это в большинстве случаев полезно

Расчет производной на языке турбо паскаль
Турбо Паскаль
Турбо Паскаль.
Проблемы с написанием классов на языке С++
Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл
Турбо паскаль. Стек. Запись

Старый 26.05.2011, 11:51   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Дима Коренюгин Посмотреть сообщение
помогите как правильно написать
Дима, а что Вас не устраивает? Всё и так правильно. Единственное - перед самым последним закрывающим программу "end." желательно вставить оператор readln; (как есть без параметров), тогда она в конце остановится и покажет экран с результатами. До нажатия "Enter".
Vladimir_S вне форума   Ответить с цитированием
Старый 26.05.2011, 19:26   #3 (permalink)
Дима Коренюгин
Новичок
 
Регистрация: 25.05.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Меня все устраивает, дело в том что препад сказал, что вот этого не должно быть: write ('Введите левую и правую границы интервала:'); а нужно чтобы выводил: Ввести значения (a,b,c), как он написал где то так: readln(a,b,c) со значением Х0, приближенной (эпсило) и производной f'=2ax+b. А как это вбить и куда я буз понятия. Помогите пожалуйста
Дима Коренюгин вне форума   Ответить с цитированием
Старый 26.05.2011, 20:35   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Дима Коренюгин Посмотреть сообщение
А как это вбить и куда я буз понятия.
Дима, я, увы, тоже "буз" понятия. Особенно в отношении производной. У Вас всё сделано грамотно, производная оформлена в виде функции - так какого ж еще лешего? А что касается стартовой точки и точности, то как их вводить (вместе либо поврозь) - дело и право каждого программиста. Извините, но тратить время на разгадывание придурей преподов-самодуров я не могу.
Кстати, в программе есть одна... скажем так, шероховатость. Параметр en у Вас дважды ставится под оператор abs - при вычислении и в условии цикла. Это излишне - достаточно первого. А в цикле while en>e.
А преподу можете сообщить, что он Название: pisss.gif
Просмотров: 346

Размер: 8.6 Кб.
Vladimir_S вне форума   Ответить с цитированием
Старый 06.06.2011, 17:48   #5 (permalink)
Дима Коренюгин
Новичок
 
Регистрация: 25.05.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Рушение квадратного уравнения методом ньютона

Помогите пожалуйста с программой. Тема решение квадратных уравнений методом ньютона. вот что у меня получилось:
program Newton;
uses crt; {модуль управления экраном}

function f(x:real):real; {Исходная функция}
begin
f:=3*sqr(x)-4*x-2;
end;

function f1(x:real):real; {Первая производная функции}
begin
f1:=6*x-4;
end;

var a,b,c,x₀,e,en:real;
i:integer;

begin
clrscr; {очистить экран}
writeln ('Решение нелинейного уравнения методом Ньютона');
readln (a,b,c,x₀, Ɛ);
writeln ('Уравнение 3x^2-4x-2=0');
write ('Введите требуемую точность решения:');
read (e);
writeln ('Решение:');
writeln ('Номер шага Значение X');
en:=abs(a-b);
x₀:=b;
i:=1;
while (abs(en)>e) do begin {Пока не достигнута точность}
x₀:=x₀-f(x₀)/f1(x₀); {выполнить шаг метода}
writeln (i:10,x₀:20:14); {вывести значение X с шага}
en:=abs(x₀-b); {Новая точность}
b:=x₀; {Значение границы для следующего шага}
i:=i+1; {Номер шага}
end;
end.

Помогите пожалуйста, скажите что не так, так Нужно как то преобразовать производную (f'=2ax+b) в нужную форму и если не ошибаюсь записать её куда то сюда
x₀:=x₀-f(x₀)/f1(x₀); {выполнить шаг метода}
writeln (i:10,x₀:20:14); {вывести значение X с шага}

Замечание:
Дима, у Вас же есть своя тема по этой задаче - за каким дьяволом Вы лезете в чужие?
Сообщение перемещно.
Модератор.
Дима Коренюгин вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 17:27.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.