29.10.2014, 13:17 | #1 (permalink) |
Человек
Регистрация: 19.11.2010
Сообщений: 882
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 164
|
Простенькая программа на C
Написать программу по условию задачи №1 . При вводе числа x надо сделать отсев недопустимых значений (типа избежать деления на ноль) Вот мой код программы. Просьба либо исправить, либо указать на ошибки, либо сказать что правильно, если оно так. Заранее спасибо. #include <stdio.h> #include <stdlib.h> #include <math.h> #define PI 3.14159265 int main (void) { double a,x; do {printf ("X="); scanf ("%lf", &x); } while (x<=0 || sin(x*PI/180)==0); a=(1/tan(x*PI/180)-exp(sqrt(x)))/(log(abs(5*x))+1/(atan(x)*180/PI*atan(x)*180/PI)); printf("%.5lf\n", a); system("pause"); return(0); } |
29.10.2014, 13:17 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Дам вам темы в которых возможно есть ответы на интересующие вас вопросы PaperHell - простенькая убивалка времени Простенькая задачка на Си простенькая передняя панель Программа на С Программа на C++ Простенькая 5.1 из подручных средств |
29.10.2014, 16:40 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ошибок, конечно, куча.
Прежде всего, зачем все эти x*PI/180? У Вас же там не чистая тригонометрия, а и другие функции (экспонента, логарифм, арктангенс), следовательно, аргумент должен задаваться сразу и исключительно в абсолютных единицах, каковым в тригонометрии соответствуют радианы. Если же вы непременно хотите аргумент задать в градусах, то потрудитесь сделать перевод всюду, и под экспонентой, и под логарифмом, и под арктангенсом, а проще ввести еще переменную, например, z=x*PI/180 и уже формулу строить от z. Но, повторяю, это чушь: никто никогда градусной меры под арктангенс, логарифм или экспоненту не ставит! Поэтому еще раз: все эти PI/180 надлежит просто выкинуть! Это: while (x<=0 || sin(x*PI/180)==0); вообще непонятно что и зачем - какой-то невразумительный цикл без тела... Для того, чтобы не возникло ошибки, следует исключить значения x = k*PI, k = 0, ±1, ±2, ±3... потому что в этих точках котангенс не определён, а кроме того, при х=0 неопределён еще и логарифм. |
29.10.2014, 21:14 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|