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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2017, 22:36   #1
Георгий Панковский
Новичок
Джуниор
 
Регистрация: 23.11.2017
Сообщений: 1
По умолчанию Программа неверно считает значения

Имеется формула
Вложение 1.PNG
Требуется составить в Pascal'е программу, которая бы выводила на экран результат, посчитанный по ней в зависимости от предварительно введённого значения переменной X.

Точно известно, что правильно составленная программа будет выводить, например, следующие значения:
при X=30 результат: -26,137;
при X=31 результат: -22,207

Составил программу, но значения, которые она выводит не совпадают с теми, что должны быть(например, если Х=30 она выдаст значение 721,367 вместо -26,137.
Где ошибся - не могу понять

Код:
var
x,a:real;
begin
Writeln('Введите значение переменной x');
Readln(x);

 a:=276*log(x/0.5+sqrt(1+x*x/0.25))-600;
 
writeln('Результат: ',a:2:3);
  
end.
Георгий Панковский вне форума Ответить с цитированием
Старый 23.11.2017, 23:41   #2
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

Цитата:
Сообщение от Георгий Панковский Посмотреть сообщение
она выводит
-Во первых, она даже не компилируется в TP. Не знаю, есть в каких версиях функция log? Могу предположить, что перепутали десятичный и натуральный логарифмы.

Посчитайте калькулятором.
СтудПом вне форума Ответить с цитированием
Старый 24.11.2017, 06:12   #3
Мановар
Пользователь
 
Регистрация: 13.11.2016
Сообщений: 84
По умолчанию

Цитата:
Сообщение от Георгий Панковский Посмотреть сообщение
Где ошибся - не могу понять
Однозначно в логарифме.
Мановар вне форума Ответить с цитированием
Старый 24.11.2017, 07:00   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

http://www.pascal.helpov.net/index/s...al_programming

Цитата:
в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: xy= eylnx

в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: log(a)b= ln b/ln a
Поэтому:
Код:
// Логарифм n по основанию x
function log(n, x: real): real;
begin
  Result := ln(n) / ln(x);
end;

// Десятичный
function lg(n): real;
begin
  Result := Log(n, 10);
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 24.11.2017, 07:14   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

В fpc в Math есть log10 - как раз 10-тичный.
type_Oleg вне форума Ответить с цитированием
Старый 24.11.2017, 12:47   #6
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

А ещё там на картинке под радикалом делится на 0.25, а не на 0.5
Black Fregat вне форума Ответить с цитированием
Старый 24.11.2017, 12:50   #7
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
А ещё там на картинке под радикалом делится на 0.25, а не на 0.5
0.5^2

Видимо препод не долго выдумывал задачу
СтудПом вне форума Ответить с цитированием
Старый 24.11.2017, 16:28   #8
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

а зачем вводить отдельную функцию логарифма десятичного, если просто в этой формуле можно разделить натуральные логарифмы ln(функция ваша)/ln(10)?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 24.11.2017, 18:28   #9
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от СтудПом Посмотреть сообщение
0.5^2
Ну да. На рисунке 0.5^2 = 0.25.
А в программе стоит 0.5
Black Fregat вне форума Ответить с цитированием
Старый 24.11.2017, 19:08   #10
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Ну да. На рисунке 0.5^2 = 0.25.
А в программе стоит 0.5
-не в те части программы/формулы смотрите.

Впрочем, ТС-у эта тема кажется не интересна, небось давно пивас сосёт, а мы тут клавы топчим
СтудПом вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Python] Написанная программа неверно считает. SimON1 Помощь студентам 16 07.09.2017 23:27
Какая здесь ошибка? Программа должна считать сумму в столбцах, но почему-то неверно считает - C++ anyamisss Помощь студентам 2 15.03.2017 18:04
Программа неверно считает результат AB96 Общие вопросы Delphi 2 25.11.2015 17:58
Программа для решения СЛАУ методом Гаусса неверно считает (Delphi) Lisёноk Помощь студентам 7 25.09.2011 12:50
неверно считает? штохл Microsoft Office Excel 3 17.05.2010 22:24