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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2011, 12:09   #11
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Спасибо! Буду знать!
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Старый 23.09.2011, 17:26   #12
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Помогите пожалуйста разобраться с примером!!!
...... Я изучаю программирование на с++ по
...... книги с++ без страха. И многие коды
...... программ с книги у меня не компилируются
...... как в выше указанном мною коде. Компилируются
...... только в случай изменения кода. Книга написана
...... в 2005 году. Может мне не обходим компилятор
...... того же года выпуска что и книга? Или какой либо
...... другой компилятор.Пользуюсь компилятором dev c++.Помогите разобратся.
А Вот и очередной код программы который не компилируется:

#include <cstdlib>
#include <iostream>
using namespace std;
int triangle (int num);
int main () {
int n;
cout << "vvedite 4islo i najmite enter";
cin >> n;
cout << "function returned" << triangle (n);
return 0;
}
int triagle (int n) {
int i;
int sum = 0;
for (i = 1; i<= n; i++)
sum = sum + i;
return sum;
}
Помогите познать язык с++.
............Сила воли ключ идеальности...........

Последний раз редактировалось jasul; 23.09.2011 в 17:39. Причина: Корректировка для облегчения читаемости
jasul вне форума Ответить с цитированием
Старый 23.09.2011, 18:39   #13
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Тебе уже ответили в другой теме.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 23.09.2011, 19:16   #14
AesmaDiv
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
С++ тип инт самостоятельно переводит в тип double.
Нда? А вот у мну почему-то не переводит. Из-за это-го бывают неприятности.

float angle;
angle=atan(4/5);
и
angle=atan(4.0/5.0);
выдаёт разные результаты. Или С++ автоматом преобразует значение в переменной?
AesmaDiv вне форума Ответить с цитированием
Старый 23.09.2011, 20:01   #15
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Я не это имел в виду, а то, что тип int, sqrt - автоматически преобразует в double, а не расчёты делает как double.
А Ваш пример некорректен. 4/5 = int, а 4.0/5.0 ра'вно как 4.0/5 = float.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 23.09.2011 в 20:04.
Smitt&Wesson вне форума Ответить с цитированием
Старый 23.09.2011, 20:20   #16
AesmaDiv
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 19
По умолчанию

Хмм..теперь понял. Я новичёк, не все тонкости догоняю. То есть в моём примере сначала считается 4/5 как int. А затем уже полученый int-результат, atan() конвертирует в double. А присвоение в angle переводит double уже в float соответственно. Вся загвоздка, в том что на первоначальном этапе я уже получаю не правильный результат. Я правильно понимаю?
AesmaDiv вне форума Ответить с цитированием
Старый 23.09.2011, 20:27   #17
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от AesmaDiv Посмотреть сообщение
Хмм..теперь понял. Я новичёк, не все тонкости догоняю. То есть в моём примере сначала считается 4/5 как int. А затем уже полученый int-результат, atan() конвертирует в double.
Совершенно верно. Целое / на целое = целое.
Цитата:
А присвоение в angle переводит double уже в float соответственно. Вся загвоздка, в том что на первоначальном этапе я уже получаю не правильный результат. Я правильно понимаю?
Не переводит а использует. Функция atan объявлена как double atan(double x);
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 23.09.2011, 23:00   #18
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
4.0/5.0 ра'вно как 4.0/5 = float.
Не правда, это double
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 24.09.2011, 00:17   #19
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Blade Посмотреть сообщение
Не правда, это double
Смотря как переменую объявить. Можно double, тогда будет double. Можно и float, будет float. Это просто вещественное число с плавающей точкой.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.09.2011, 10:22   #20
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Смотря как переменую объявить. Можно double, тогда будет double. Можно и float, будет float. Это просто вещественное число с плавающей точкой.
Не имеет абсолютно никакого значения как у вас объявлены переменные.
Тип результата выражения "4.0/5.0" всегда double, и ни к каким переменным он отношения не имеет.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка : expression syntax in function main 7ple Общие вопросы C/C++ 12 09.10.2011 16:36
Ошибка Undeclared identifier: 'Locate' Valeria15 БД в Delphi 7 22.08.2011 13:21
Ошибка Undeclared Identifier 'edit1'. kote404 Помощь студентам 1 19.05.2011 23:00
ошибка в цикле for 'n' : undeclared identifie; ; Illuminated Общие вопросы C/C++ 1 13.12.2010 22:15
Ошибка в делфи DCC Error Unit1.pas(340): E2003 Undeclared identifier: 'Visual' Яр|/||< (^_^) Общие вопросы Delphi 7 19.02.2010 09:11