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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2013, 16:35   #1
Sanya_simple
Новичок
Джуниор
 
Регистрация: 06.12.2013
Сообщений: 2
Восклицание C++ для новичка , нужна помощь

Для перевода температуры из шкалы Цельсия в шкалу Фаренгейта нужно умножить исходное число на 9/5 и прибавить 32.
Спасибо за внимание.
Sanya_simple вне форума Ответить с цитированием
Старый 06.12.2013, 16:41   #2
Sanya_simple
Новичок
Джуниор
 
Регистрация: 06.12.2013
Сообщений: 2
По умолчанию

#include<stdio.h>
#include<iostream>

using namespace std;


int main ()
{
int formula;
int x;
formula=(x*9/5)+32;

cout<<"Input x : degrees Celsius"<<endl;
cin>>x;

cout<<" "<<formula<<endl;
cin>>formula;
return 0;
system("pause");

}
Sanya_simple вне форума Ответить с цитированием
Старый 06.12.2013, 17:00   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

1) Объясняю, что у вас происходит
- объявляются целые переменные x, formula. Их значение неопределене, то есть
x=ЧертЗнаетЧто и formula=ЧертЗнаетЧто
Потом вычисляете: formula=(ЧертЗнаетЧто*9/5)+32
Потом вводите x
Потом выводите ...

2) а почему int, разве не может быть нецелых значений по Цельсию и Фаренгейту
type_Oleg вне форума Ответить с цитированием
Старый 06.12.2013, 17:11   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
1) Объясняю, что у вас происходит
- объявляются целые переменные x, formula. Их значение неопределене, то есть
x=ЧертЗнаетЧто и formula=ЧертЗнаетЧто
Потом вычисляете: formula=(ЧертЗнаетЧто*9/5)+32
Потом вводите x
Потом выводите ...

2) а почему int, разве не может быть нецелых значений по Цельсию и Фаренгейту
type_Oleg это раз. Не "чёрт знает что", а если не присвоено значение, это указатель на область памяти внутри блока компиляции. Компиль, ошибку не выдаст (условие по-умолчанию).
Короче. Сделано так. Если не обозначен тип, в конце экзешника компиль выделяет место дляпеременных. Вот туда, этот гад и ссылается.
Сколько волос на голове было вырвано, пока я это не понял
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 06.12.2013 в 17:17.
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.12.2013, 17:27   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Ну, я имел ввиду, что температуры по Цельсию в x еще нет, а с это x уже используют в формуле.

PS Кстати, в Паскале (Delphi и др.) в таких случаях тоже не будет ошибки компиляции, только предупреждение , что неинициализированы.

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

А cin<<x; создать, религия не позволяет? Или бубен сламался?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.12.2013, 18:04   #7
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Я бы переписал все так

int main ()
{
int formula;
int x;
cout<<"Input x : degrees Celsius"<<endl;
cin>>x;
formula=(x*9/5)+32;
cout<<" "<<formula<<endl;
cin>>formula;
return 0;
system("pause");

}
Разумеется, мы должны ввести число перед вычислением формулы? Или я чего-то не понимаю...
Dimka-novitsek вне форума Ответить с цитированием
Старый 06.12.2013, 18:21   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Dimka-novitsek Посмотреть сообщение
Я бы переписал все так

int main ()
{
int formula;
int x;
cout<<"Input x : degrees Celsius"<<endl;
cin>>x;
formula=(x*9/5)+32;
cout<<" "<<formula<<endl;
cin>>formula;
return 0;
system("pause");

}
Разумеется, мы должны ввести число перед вычислением формулы? Или я чего-то не понимаю...
Не понимаешь. Переменая formula, как минимум дожн быть float но лучше - double. Проблем будет меньше.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 06.12.2013, 18:22   #9
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Спасибо за текст, я задумался, но не понял.

если не присвоено значение, это указатель на область памяти внутри блока компиляции

Это не указатель, это переменная инт, то есть целая. Но интуитивно я вроде понял смысл. Но что это за область внутри блока компиляции, где лежит переменная?
Dimka-novitsek вне форума Ответить с цитированием
Старый 06.12.2013, 18:23   #10
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Да, тут я согласен.
Dimka-novitsek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по разработке ПО для сетевого оборудования на С++ ~St.Mihaile~ Помощь студентам 0 01.07.2009 01:13
Нужна помощь знающих написания для Atmega lexaalt Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 28.05.2009 13:05
нужна помощь для задачи о блинах Ыыыга Помощь студентам 0 22.04.2009 09:50
Очень нужна помощь для создания прог на Паскале! JackDC Помощь студентам 4 11.01.2009 13:22
Нужна ваша помощь для решения задач в Delphi DJ Kost Помощь студентам 3 20.10.2008 18:26