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

Пожалуйста подскажите новичку - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
saratovalex
Сообщений: n/a
02.08.2008, 13:22     Пожалуйста подскажите новичку #1
Добрый день всем! Недавно начал самостоятельно изучать С++ по книге Р. Лафоре « Объектноориентрованое прогаммирование в С++». Книга очень интересная, написано очень доходчиво, но всё равно появляются вопросы. Вопросы могут казаться глупыми для профи. Но для новичка всё же хотелось получить на них ответ. И так:
Код
#include <iostream>
using namespace std;
int main()
{             float celcius, farenheit;
            cout << "Enter the Celcius temperature: ";
            cin >> celcius;
            farenheit = celcius * 9/5 + 32 ;
            cout << " The farenheit temperature is: " << farenheit << endl;
            return 0;
Простейшая программка, переводящая градусы Цельсия в градусы Фаренгейта. Что обозначает int перед главной функцией main()? И что выполняет оператор return 0; , который находится в конце программы, просто сигнализирует о её завершении?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yogurt
 Аватар для yogurt
59 / 59 / 1
Регистрация: 02.08.2008
Сообщений: 106
02.08.2008, 14:06     Пожалуйста подскажите новичку #2
int - эт о тип возвращаемого значения, а ретурн возвращает из функции в вызывающую её функцию выражение, которое имеет тип int в данном случае или преобразуется к этому типу.
Если книжка только началась, то там про это наверняка не написано, хотя любой уважающий себя автор потом про это обязательно написал бы. надо посмотреть в оглавлении
Леонид ГаниполЯ
3 / 3 / 0
Регистрация: 01.08.2008
Сообщений: 65
02.08.2008, 15:48     Пожалуйста подскажите новичку #3
я тоже не далеко ушел в спп, но в моей книге это для начала объясняется как вежливый тон, вернуть в мэин ноль, это как бы приятно для процессора, хотя если ты напишешь void main() {...} без ретёрна то ничего не изменится. void означает, что функция не возвращает значения.
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.08.2008, 15:53     Пожалуйста подскажите новичку #4
Фигасе вежливый тон
Возвращаемое значение используется для того, чтобы определить, как закончило работу приложение. Это ооочень необходимая вещь, к примеру, в написании скриптов командной строки от возвращаемого значения зависит многое.

К слову, к процессору это отношения никакого не имеет. Тем более, ему не может быть приятно )
Леонид ГаниполЯ
3 / 3 / 0
Регистрация: 01.08.2008
Сообщений: 65
02.08.2008, 17:09     Пожалуйста подскажите новичку #5
С последним точно можно поспорить) ну не знаю..нигде не пишут что ретенить из мэйна необходимо также как не нужли процессору знать как закончило работу приложение
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.08.2008, 17:15     Пожалуйста подскажите новичку #6
Ну-ка поспорь. А я послушаю, как возвращаемое значение программы делает процессору "приятно" Жду.

госпади...да не возвращай, кто ж тя заставляет. Система за тебя сама возвратит 0. Компилированный код все равно ноль вернет, если ты ему явно ничего не скажешь. Только это плохой и неадекватный стиль. Вот если б я копировал файл, а копирование зафэйлилось, и команда cp мне вернула бы ноль, то можно плюнуть в лицо разработчику
Блин, вот именно, что процессору не нужно. Он с этим вообще никак не связан напрямую. А ты тут про процессор. Это системе нужно. И выше я написал, где это используется.
Леонид ГаниполЯ
3 / 3 / 0
Регистрация: 01.08.2008
Сообщений: 65
02.08.2008, 17:21     Пожалуйста подскажите новичку #7
Ладно..я ктому что это не оч важно...а так сходу новичку объяснить всю логику нереально..вот моя мысль, кста посмотри пож-а тему про время
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.08.2008, 17:25     Пожалуйста подскажите новичку #8
Смотри вниз сюда внимательно, может быть, снизойдет озарение по поводу применения возвращаемых значений:
Код
vourhey@linux-xk4w:~/exsh> pwd
/home/vourhey/exsh
vourhey@linux-xk4w:~/exsh> cp /home/vourhey/exsh/one.sh ./
cp: `/home/vourhey/exsh/one.sh' and `./one.sh' are the same file
vourhey@linux-xk4w:~/exsh> echo $?
1
vourhey@linux-xk4w:~/exsh> cp /home/vourhey/exsh/one.sh ../
vourhey@linux-xk4w:~/exsh> echo $?
0
Добавлено через 4 минуты
Важно, не важно, а учиться хорошему стилю программирования надо. Тогда давайте код неструктурированный писать. Это не важно, все равно скомпилится

P. S. собственно, человек и спрашивал о возвращаемом значении Значит, ему важно
Хотя честно сказать, по таким вопросам надо в книжку идти, а не на форум.
Леонид ГаниполЯ
3 / 3 / 0
Регистрация: 01.08.2008
Сообщений: 65
02.08.2008, 17:30     Пожалуйста подскажите новичку #9
Блин я и говорю про твою последнюю строку) Пусть пишет по хорошему стилю и знает что системе приятно когда так пишешь, мне кажется что этого пока достаточно...а дальше полюбе столкнешься с нормальным разъяснением такой процеДуры. А в том коде что ты мне написал кроме Люникс я ниче не понимаю, систему не знаю и вообще я пока 0
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
02.08.2008, 17:52     Пожалуйста подскажите новичку #10
Да я полностью согласен. Но обманывать-то не нужно, что процессор имеет к этому какое-либо отношение. Никакого. А то вдруг кому-нить еще ляпнет...
Да не приятно системе. Ей пофиг. Когда все время возвращаешь ноль - это никому не приятно. Это просто ужасно.
Если не вдаваться в дебри, то лучше просто сказать, что для экспериментов с программами и одного такого return хватит. Пусть в экспериментальных прогах ноль и возвращает. А то можно подумать, что я систему хочу довести до оргазма и буду ноль возвращать кругом и всюду
Забей, вообщем разберется
Scripter
6 / 4 / 0
Регистрация: 04.08.2008
Сообщений: 3
04.08.2008, 23:41     Пожалуйста подскажите новичку #11
Привет всем! пожалуйста подскажите,я только недавно начал изучать С++
купил книгу Брэдли Л.Джонса и Питера Эйткена "Освой самостоятельно С за 21 день"шестое издание, в первом уроке приводится листинг

Код
#include <stdio.h>

int main(void)
{
    printf("Hello,World!\n");
    return 0;
}
написал как в книге сохранил проверил в папке всё есть компилирую ошибку не выдаёт создаю исполняемый файл запускаю окно появляется на доли секунды и изчезает даже не успеваю посмотреть что написано версия программы bloodshed_dev-c_5_beta_9_2_4_9 пожалуйста помогите кто знает что делать может надо компилятор настроить или ещё что нибудь заранее благодарен

Добавлено через 38 минут
Привет всем! пожалуйста подскажите,я только недавно начал изучать С++
купил книгу Брэдли Л.Джонса и Питера Эйткена "Освой самостоятельно С за 21 день"шестое издание, в первом уроке приводится листинг

Код
#include <stdio.h>

int main(void)
{
    printf("Hello,World!\n");
    return 0;
}
написал как в книге сохранил проверил в папке всё есть компилирую ошибку не выдаёт создаю исполняемый файл запускаю окно появляется на доли секунды и изчезает даже не успеваю посмотреть что написано версия программы bloodshed_dev-c_5_beta_9_2_4_9 пожалуйста помогите кто знает что делать может надо компилятор настроить или ещё что нибудь заранее благодарен
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,315
04.08.2008, 23:51     Пожалуйста подскажите новичку #12
Цитата Сообщение от Леонид ГаниполЯ Посмотреть сообщение
..... если ты напишешь void main() {...} без ретёрна то ничего не изменится. void означает, что функция не возвращает значения.
Если ты напишешь void main(), то правильный компилятор (например, gcc 4.2) такой код компилировать просто откажется. Некоторые компиляторы это позволяют, но это не означает, что так писать правильно.
Счастливчик
19 / 18 / 0
Регистрация: 04.08.2008
Сообщений: 31
04.08.2008, 23:55     Пожалуйста подскажите новичку #13
Необходимо написать, инструкции либо getchar(); либо system("pause"), перед return(0).
Вообще, мне кажется,это дурной тон в книгах для новичков не снабжать проги инструкциями для паузы... И о чём только думает автор, рецензент, и редактор вместе взятые?
Scripter
6 / 4 / 0
Регистрация: 04.08.2008
Сообщений: 3
05.08.2008, 09:50     Пожалуйста подскажите новичку #14
Спасибо CheshireCat и Счастливчику всё получилось подошла инструкция getchar();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2008, 09:44     Пожалуйста подскажите новичку
Еще ссылки по теме:

C++ подскажите новичку добрые друзья(
Подскажите новичку C++
C++ Подскажите новичку где ошибка

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

Или воспользуйтесь поиском по форуму:
Beginner_C
 Аватар для Beginner_C
5 / 5 / 0
Регистрация: 24.04.2008
Сообщений: 24
15.08.2008, 09:44     Пожалуйста подскажите новичку #15
можно и cin.get(); желательно несколько раз перед return
Yandex
Объявления
15.08.2008, 09:44     Пожалуйста подскажите новичку
Ответ Создать тему
Опции темы

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