Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
#1

нужно подправить - C++

26.12.2011, 21:48. Просмотров 1431. Ответов 16
Метки нет (Все метки)

нужно изменить этот код так ,что бы программа смогла "выжить" в разных ситуациях
1 если знаменатель = 0
и не могу никак понять что обозначает
2корень из -х
3 tg
4 ln
и без использования объектно ориентированных средств ввода вывода ,т.е. принф.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define _USE_MATH_DEFINES
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double x1;
double y[20] = {0};
double x2,x;
cout<<"Enter x1 = ";
cin >> x1;
cout << endl << "Enter x2 = ";
cin >> x2;
cout << endl << "Enter the step: ";
double dx;
cin >> dx;
int i = 0;
for(x = x1; x < x2; x+= dx)
{
  y[i] = sqrt(log(x) - pow(M_E,2.3*x))/pow(tan(x * M_PI/180)*tan(x * M_PI/180),(double)1/3);
  i++;
  if(i == 20) break;
}
cout << endl << "The first 20 points is : " << endl;
for(int i = 0; i < 20;i++)
cout << y[i] << endl;
system("pause");
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 21:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нужно подправить (C++):

Нужно подправить код - C++
Здравствуйте. Нужно, что бы после завершения программы, оно не выходило, а что бы появилась надпись: Хотите сыграть еще? И если нажать на...

Нужно подправить программу - C++
Нужно чтобы программа выводила сообщение &quot;такого элемента нет&quot; если указанной цифры нет в массиве. (массив упорядоченный). Заранее...

массив нужно подправить - C++
Из шести первых отрицательных элементов массива В(30) найти максимальный элемент. она чуток неправильно работает можете помочь исправить:...

(С++)Нужно немного подправить программу - C++
Задача такова: Дан файл, содержащий сведения о телефонах абонентов. Структура записи файла: фамилия и инициалы абонента, год установки...

Нужно подправить рекурсивную функцию - C++
Всем доброго времени суток! Сама задача звучит так: Разработать рекурсивную функцию возвращающую значение, для вычисления...

Строки, нужно подправить код - C++
Есть задание : Из заданной последовательности слов удалить слова, содержащие числа. и я написал данный код: Код: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
26.12.2011, 21:53 #2
А исходное задание?
Цитата Сообщение от jeka061288 Посмотреть сообщение
1 если знаменатель = 0
При делении на ноль http://ru.wikipedia.org/wiki/NaN
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
26.12.2011, 22:07 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
    double x1;
    double y[20] = {0};
    double x2,x;
    puts("Enter x1 = ");
    scanf("%lf",&x1);
    puts("Enter x2 = ");
    scanf("%lf",&x2);
    puts("Enter the step: ");
    double dx;
    scanf("%lf",&dx);
    int i = 0;
    for(x = x1; x < x2; x+= dx)
   {
        if(x!=0)
        {
          double t2=tan(x * M_PI/180.);
          double t1=pow(t2*t2,1./3.);
          double t3=log(x) - exp(2.3*x);
          if(t1!=0 && t3>=0)
               y[i] = sqrt(t3)/t1;
          else
               y[i]=0;
        }
        if(++i == 20) break;
   }
   printf("\nThe first %d points is :\n",i);
   for(int k = 0; k < i;k++)
        printf("%lf\n",y[k]);
   getch();
return 0;
}
1
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
26.12.2011, 23:04  [ТС] #4
задание такое

1. Составить и выполнить программы циклической структуры (см. табл. 5) расчета Y=f(xi), где xi єX, в соответствии с двумя назначенными преподавателем номерами вариантов заданий; при решении в формулах использовать стандартные математические постоянные и функции.
y[] = sqrt(log(x) - pow(M_E,2.3*x))/pow(tan(x * M_PI/180)*tan(x * M_PI/180),(double)1/3);
и Множество значений аргумента X
0,1; 0,2; 0,8
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
27.12.2011, 07:45 #5
Приведенный код соответствует заданию.
Что-нибудь не получается?
1
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
27.12.2011, 08:03  [ТС] #6
Цитата Сообщение от zss2 Посмотреть сообщение
Что-нибудь не получается?
Спасибо огромное за помощь ,только вот мне не очень понятно (т.к. я начинающий)как этот код "выживает",хочется понять подробно где чего.

Добавлено через 2 минуты
И еще Ув.ZSS2,вы поняли что значит ,то я не совсем понимаю.?
1 если знаменатель = 0
и не могу никак понять что обозначает
2корень из -х
3 tg
4 ln

И еще вопрос ,почему компилятор говорит что M_PI не объявленый идентификатор?Вроде бы все правильно.
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
27.12.2011, 08:11 #7
1. В формуле дробь. При знаменателе равном нулю возникает ошибка исполнения. Поэтому надо это проверить (в Вашей формуле - это выражение присваиваемое переменной t1).
2. Корень из отрицательного числа извлечь нельзя, поэтому проверяем, что выражение t3>=0
3. tg - тангенс (В Си пишется как tan), ln - Натуральный логарифм (в Си пишется log), exp(x) - e в степени x.
1
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
27.12.2011, 18:59  [ТС] #8
Спасибо большое ,вот теперь я понял что к чему!Спасибо!А че компилятор у меня говорит что M_PI не объявленный идентификатор?Майкрософт Вижик 2010.
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
27.12.2011, 20:01 #9
Чтобы константы типа M_PI были видны, надо добавить
#define _USE_MATH_DEFINES
перед
#include <math.h>
1
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
27.12.2011, 20:50  [ТС] #10
Спасибо за помощь ,но вот еще вопрос ,компилятор говорит
error C3861: system: идентификатор не найден
В чем проблема?
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
27.12.2011, 20:59 #11
system("PAUSE");
нужна для того, чтобы окно не закрылось сразу.
В какой она библиотеке, точно не знаю.
Добавьте библиотеку
#include <conio.h>
А
system("PAUSE");
замените на
getch();
эта функция ждет нажатие клавиши на клавиатуре.

з.ы. У меня функция system берется из stdlib.h
1
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.12.2011, 21:01 #12
Цитата Сообщение от jeka061288 Посмотреть сообщение
В чем проблема?
Подключи
C
1
#include <stdlib.h>
1
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
27.12.2011, 21:02  [ТС] #13
Цитата Сообщение от go Посмотреть сообщение
#include <stdlib.h>
А что она умеет?
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
27.12.2011, 21:03 #14
Цитата Сообщение от zss2 Посмотреть сообщение
ystem("PAUSE");
нужна для того, чтобы окно не закрылось сразу.
В какой она библиотеке, точно не знаю.
Добавьте библиотеку
#include <conio.h>
А
system("PAUSE");
замените на
getch();
эта функция ждет нажатие клавиши на клавиатуре.
Это нестандартная функция, если автор использует компилятор под Linux, то скорее всего ее там не будет, и не должно быть
http://ru.wikipedia.org/wiki/Conio.h

Добавлено через 19 секунд
Цитата Сообщение от jeka061288 Посмотреть сообщение
А что она умеет?
Цитата Сообщение от jeka061288 Посмотреть сообщение
error C3861: system: идентификатор не найден
Вот для этого
1
EMTEC
1 / 1 / 0
Регистрация: 29.10.2011
Сообщений: 110
27.12.2011, 21:15  [ТС] #15
Спасибо вам GO и ZSS2 все заработало!!!

Добавлено через 6 минут
А можно вопрос я читал что в C++ отбрасывается расширение .h (<stdlib.h>),а в начале добовляется с - почему в случае с #include <conio.h> так нельзя ?

Добавлено через 2 минуты
Вопрос к Ув. модераторам,возможно ли чтобы я сам удалил тему ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2011, 21:15
Привет! Вот еще темы с ответами:

Нужно подправить функцию, не работает - C++
Помогите исправить ошибку 3 IntelliSense: expression must have arithmetic or enum type void searchprice(struct info arr,int create) ...

Найдите четырехугольник с максимальной площадью. Нужно подправить - C++
Задание: Пусть дано N произвольных четырехугольников, заданных координатами своих вершин. Найдите четырехугольник с максимальной...

Нужно чуть подправить программы. Массив и структура. - C++
1. Двумерный массив. Вводим количество спортсменов, далее вводим имя для каждого. Для каждого из них рандомно выводятся результаты (6...

подправить - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); int array, n; cout...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.12.2011, 21:15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru