Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 26.10.2011, 18:47   #1 (permalink)
Aizen_Stas
Member
 
Регистрация: 26.10.2011
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помощь в Паскале

F.docx - Здесь функции
Пытался написать программу,но вторая функция отказывается принимать отрицательную переменную.Очень нуждаюсь в помощи!
Program Work_1;
uses crt;
Const Title='Работа №1,Вар.77,гр.ГБ-10-01 Иванов';
Var x,y,z:real;
O,b:real;
Begin
clrscr;
Write('Введите x=>');
Readln(x);
Write('Введите y=>');
Readln(y);
Write('Введите z=>');
Readln(z);
Writeln;
Writeln(Title);
Writeln('Исходные данные:');
Writeln('x=',x:6:2);
Writeln('y=',y:6:2);
Writeln('z=',z:6:2);
O:=y+(x/(y+((x*x)/(y+((x*x*x)/(y*z))))));
b:=exp((sqrt(abs(y)))*ln(O+(exp(2*ln(sin(z/2)/cos(z/2))))));
Writeln;
Writeln('Результаты расчета:');
Write('O=',O:7:4,' b=',x:8:4);
Readln;
End.
Миниатюры
funct.jpg  
Aizen_Stas вне форума   Ответить с цитированием

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

Интернет сейчас популярная штука много похожего создается

Требуется помощь в Паскале
Помощь в Паскале
Помощь в Паскале

Старый 26.10.2011, 19:27   #2 (permalink)
Aizen_Stas
Member
 
Регистрация: 26.10.2011
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Перед логарифмом ставил модуль, пытаясь решить данную проМблему,но результаты не сходятся с результатами ручного счета. При вводе x=1, y=1, z=1 получается О=1.6667 и b=0.0100 (хотя b должно быть около 2)
Aizen_Stas вне форума   Ответить с цитированием
Старый 26.10.2011, 20:18   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Aizen_Stas Посмотреть сообщение
Пытался написать программу,но вторая функция отказывается принимать отрицательную переменную.Очень нуждаюсь в помощи
Ну что я могу сказать? Всё правильно Вы делаете, и действительно при таких параметрах вычисление b предполагает возведение в иррациональную степень отрицательного числа, каковое действие, вообще говоря, в математике не определено, во всяком случае в рамках вещественных чисел. Отсюда вывод - где-то, либо в условии задачи, либо в значениях параметров - брёх.
Для проверки я несколько упростил Ваш код:
1. Убрал кириллицу (я пользуюсь DOS-кодировкой).
2. Задал параметры в виде констант.
3. Упростил вычисление квадрата тангенса. На кой пёс тут-то действовать через экспоненты-логарифмы, когда есть простой оператор SQR?
4. Исправил ошибку, о которой речь ниже. Получилось вот так:
Код:
Uses CRT;
Const
 x={0.01}1.0;
 y={-8.7}1.0;
 z={0.76}1.0;
Var
 O,b:real;
Begin
 clrscr;
 O:=y+(x/(y+((x*x)/(y+((x*x*x)/(y*z))))));
 b:=exp((sqrt(abs(y)))*ln(O+sqr((sin(z/2)/cos(z/2)))));
 Writeln;
 Writeln('Result:');
 Write('O=',O:7:4,' b=',b:8:4);
 Readln;
End.
Цитата:
Сообщение от Aizen_Stas Посмотреть сообщение
При вводе x=1, y=1, z=1 получается О=1.6667 и b=0.0100 (хотя b должно быть около 2)
А вот это из-за чисто Вашего ляпсуса: вместо вывода b Вы выводите x.

Наверное, больше ничем помочь не могу. Уточняйте условия задачи: вид формул и значения параметров. Где-то, повторяю, брёх.
Vladimir_S вне форума   Ответить с цитированием
Старый 09.11.2011, 17:20   #4 (permalink)
Aizen_Stas
Member
 
Регистрация: 26.10.2011
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо)
Aizen_Stas вне форума   Ответить с цитированием
Ads

Яндекс

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


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

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




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

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