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

Ошибка при объявлении массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача на "С" http://www.cyberforum.ru/cpp-beginners/thread35074.html
Есть стандартный ввод..... будем считывать целые числа со стандартного ввода * 1-цикл считаем, назовем n и выделим массив размеров пример: 3 5 6 7 - в результате получится массив
C++ Библиотека Предметная область - библиотека. Решаемые задачи: выдача справок о наличии книг, журналов, газет. Реализовать следующие сервисы: Заполнение базы данных Пересмотр данных обо всех источниках ... http://www.cyberforum.ru/cpp-beginners/thread35051.html
C++ Задача на работу с файлами
Помогите решить проблему! ________________________________________ В файле находится текст программы на языке С. Создать выходной файл,в который переписать содержимое исходного файла,убрав...
C++ Дано два текстовых фаила. "Склеить" эти фаилы
Дано два текстовых фаила. "Склеить" эти фаилы, т.е. сформировать единый фаил, последовательно содержащий информацию как из первого, так и из второго.
C++ Записать данные в текстовый файл http://www.cyberforum.ru/cpp-beginners/thread35046.html
Здравствуйте. Кто нибудь может подсказать как записать данные в текстовый файл на с++?
C++ работа с текстовыми файлами в С++(Задача) В текстовый файл вставить пробелы таким образом, чтобы каждая строка имела длину 80 символов (пробелы в строке должны быть вставлены равномерно) подробнее

Показать сообщение отдельно
zeubr
2 / 2 / 1
Регистрация: 17.05.2009
Сообщений: 22
20.05.2009, 08:23  [ТС]
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
37
38
39
//cordec algorithm
#include <iostream>
 
 
using namespace std;
 
int main()
{
  int n, d;
  long double a, x, y, z, u;        // ниже приведена таблица atan(2^(-n)) где n принимает значения от 0 до 2048
  long double arctangens[2048]={0.785398, 0.463648, 0.244979, 0.124355, 0.0624188, .........и так 2048 числа.............7.92153e-615, 3.96076e-615, 1.98038e-615, 9.90191e-616, 4.95095e-616, 2.47548e-616, 1.23774e-616, 6.18869e-617};
  
  cout<<"sinuswert:   ";
  cin>>y;
  cout<<"cosinuswert: ";
  cin>>x;
 
  a=1, z=0;
 
    for (n=0; n<2048; n++)
    {
 
      if (y<0)
    d=1;            // здесь определяется нужно увеличить угол или уменьшить
      else 
    d=-1;
 
    z=z-d*arctangens[n];       // собственно cordec алгоритм
    u=x;
    x=(x-d*y*a);
    y=(y+d*u*a);
    a=a/2;          // a расчитывается по формуле 2^(-n)
 
    }
 
  cout<<"phi bogenmaГџ: " <<z <<"\n";
  cout<<"phi grad: " <<z*(180/3.14159265) <<"\n";
  return 0;
}
и вот так ругается компилятор

alex@alex-desktop:~$ g++ proba2.cpp
proba2.cpp:11: предупреждение: деление на ноль плавающей константы
proba2.cpp:11: предупреждение: деление на ноль плавающей константы
proba2.cpp:11: предупреждение: деление на ноль плавающей константы таких сообщений порядка 1000

и сообщение он выводит только для чисел "2.47033e-324" и до "6.18869e-617"
это числа с n=1076 и дальше
если заменить массив функцией или вводить значения от руки все нормально

Добавлено через 8 часов 57 минут 0 секунд
Мне кажется, что я как то не правильно описываю массив.
Компилятор автоматически округляет числа до "double" а получается 0.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru