• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

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

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помощь в Паскале

Aizen_Stas

Новые
Регистрация
26 Окт 2011
Сообщения
20
Реакции
0
Баллы
0
Помощь в Паскале

Посмотреть вложение 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.webp
    funct.webp
    6.1 KB · Просмотры: 74
Перед логарифмом ставил модуль, пытаясь решить данную проМблему,но результаты не сходятся с результатами ручного счета. При вводе x=1, y=1, z=1 получается О=1.6667 и b=0.0100 (хотя b должно быть около 2)
 
Пытался написать программу,но вторая функция отказывается принимать отрицательную переменную.Очень нуждаюсь в помощи
Ну что я могу сказать? Всё правильно Вы делаете, и действительно при таких параметрах вычисление 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.
При вводе x=1, y=1, z=1 получается О=1.6667 и b=0.0100 (хотя b должно быть около 2)
А вот это из-за чисто Вашего ляпсуса: вместо вывода b Вы выводите x.

Наверное, больше ничем помочь не могу. Уточняйте условия задачи: вид формул и значения параметров. Где-то, повторяю, брёх.
 
Назад
Сверху