Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64

Заменить NaN на текстовое сообщение при выводе на экран

23.09.2017, 17:51. Показов 2744. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Нужен ваш совет.

Написал на лабах прогу, но не понимаю, почему она не выполняет условие if (x>-10) and (x<>-8.8) and (x<-7.9) then writeln ('x=',x,' функция не определена'). При х= -8.8 почему-то выводится "функция не определена".

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program number1;
var
  x: real;
  y: real;
begin
  x := -10;
  while x <= 2 do
  begin
    if (x>=-8) and (x<0) then y:=cos(x);
    if x<-8 then y:=cos(x)/cos(x) + (power (x,0.1*x)); 
    if x>=0 then y:=(power(x,1/3))/sin(x) + x*x*x;
    if (x>-10) and [B](x<>-8.8)[/B] and (x<-7.9) then writeln ('x=',x,'  функция не определена') else writeln('x=',x,'  y=',y);
    x := x + 0.3;
  end;
end.
А второй вопрос: как по-другому заменить выводимое на экран NaN при значениях х= {-9.7,-9.4,-9.1, -8.5, -8.2} ? При этих значениях результат (power (x,0.1*x)) приводит к NaN.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2017, 17:51
Ответы с готовыми решениями:

NaN при выводе ответа (решение уравнения)
Здравствуйте, я извиняюсь, наверно уже много тем про NaN было - искал - нашёл некоторые - не понял. Задали задание такого рода ...

При выводе элементов массива, второй элемент выводиться как NaN.
Здавствуйте. При выводе элементов массива, второй элемент выводиться как NaN. Как исправить? using System; using...

Прочитать числа из текстового файла .Все числа ,кратные 10,заменить на слово ten при выводе на экран
Прочитать числа из текстового файла .Все числа ,кратные 10,заменить на слово ten при выводе на экран

10
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.09.2017, 18:15
Напишите текст задания, ибо у Вас не все понятно, например зачем =cos(x)/cos(x)?
Да и возведение отрицательного числа в вещественную степень не допустимо.
0
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
24.09.2017, 16:32  [ТС]
Задание:
1. Написать программу, вычисляющую значение функции:
cos(x)/cos(x) + x^(0,1*x), если x<-8;
cos(x), если -8<=x<0;
x^(1/3)/sin(x) + x^3, если 0<=x.

2. Вычислить значение функции на интервале [-10; 2] с шагом 0,3.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.09.2017, 16:44
Цитата Сообщение от GMax Посмотреть сообщение
cos(x)/cos(x)
Опять, ну посмотрите же в оригинал задания. Ну не пишут так.

Добавлено через 4 минуты
Если остальное написано как есть, то в условии опечатки
при x<-8 выражение x^(0,1*x) не определено.
0
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
25.09.2017, 09:59  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Опять, ну посмотрите же в оригинал задания. Ну не пишут так.
В задании так и написано, я на телефон сохранил. Это лабораторная, я не буду ведь говорить преподавателю, что у него, возможно, опечатка. Работаю с тем, что есть. cos(x)/cos(x) - это 1, а вот этот кусок для -8.8 можно сделать как x^(0,1* |x|), а потом обратить.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.09.2017, 11:04
Цитата Сообщение от GMax Посмотреть сообщение
а вот этот кусок для -8.8 можно сделать как x^(0,1* |x|), а потом обратить.
Возьмите калькулятор и возведите -9^0.9
0
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
25.09.2017, 15:53  [ТС]
Согласен. А вот -8.8^-0.88 считает: 0,14752147583696697713276877352338. А Паскаль выводит NaN. Как тогда сделать, чтобы получить такой же результат, как калькулятор win7 выдает?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.09.2017, 16:44
Я конечно дуб в математике и но у Вас же х по модулю, т.е. положительный, а -8.8^0.88 не считает.

Добавлено через 15 минут
Почитал по этой теме и выяснил что математически я прав и возвести отрицательное число в вещественную степень нельзя, а калькулятор просто врет.
0
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
25.09.2017, 17:10  [ТС]
да, я это ерунду написал, согласен, модуль не поможет.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program number1;
var
  x: real;
  y: real;
begin
  x := -10;
  while x <= 2 do
  begin
    if (x>=-8) and (x<0) then y:=cos(x);
    if x<-8 then y:=cos(x)/cos(x) + (power (x,0.1*x)); 
    if x>=0 then y:=(power(x,1/3))/sin(x) + x*x*x;
    if (x>-10) and (abs(x+8.8)>0.0001) and (x<-7.9) then writeln ('x=',x,'  функция не определена') 
 
else writeln('x=',x,'  y=',y);
    x := x + 0.3;
  end;
end.
Мне нужно, чтобы для х=-8,8 Паскаль выдал результат 0,14752147583696697713276877352338 по (power (x,0.1*x)), как в MS калькуляторе. Как быть? Есть стандартный способ решения, или писать аналог power?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.09.2017, 18:59
Отлучали от компьютера.
Конкретно для х=-8.8 это сделать можно, поскольку 0.1*(-8.8)=-22/25.
Корень нечетной степени (25) можно извлечь из отрицательного числа
Pascal
1
2
x:=-8.8;
writeln(-power(-x,0.1*x));
Вывод -0.147521475836967

Добавлено через 10 минут
Короче, если число можно представить обыкновенной дробью знаменатель которой нечетный, то можно возвести отрицательное число в степень 0.1*x, если четный, нельзя. Например при x=-8.7 нельзя 8.7=87/100.
0
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
26.09.2017, 09:01  [ТС]
Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.09.2017, 09:01
Помогаю со студенческими работами здесь

При выводе в текстовое поле строки , состоящей из нескольких слов- выводится только первое слово
При выводе в текстовое поле строки , состоящей из нескольких слов- выводится только первое слово.Ниже привожу саму строку: ...

Заменить запятые на точки при вводе текста в текстовое поле
Как при вводе в текстовое поле менять запятые на точки, так сказать на горячую? то есть пишем какой-то текст, ставим запятую, она сразу...

Вывести на экран текстовое сообщение (любое), если хоть один из элементов массива меньше заданного порога
Добрый день. Имеется массив из 100 элементов. Необходимо вывести на экран текстовое сообщение ( любое), если хоть один из элементов...

При нажатии на текстовое поле открыть экран набора с телефоном из поля
Всем привет, такой вопрос, есть текстовое поле с номером телефона, как сделать, чтобы при нажатие на это поле открывался экран набора с...

Ошибка при выводе на экран
#include &lt;iostream&gt; using namespace std; int main() { int j =100; while (j &lt;= 110); cout &lt;&lt; endl &lt;&lt; j++; return 0; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru