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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.95
servus_mori
1 / 1 / 0
Регистрация: 09.02.2011
Сообщений: 52
#1

C++ первые шаги (абсолютно первые) - C++

15.04.2013, 10:11. Просмотров 3401. Ответов 17
Метки нет (Все метки)

Привет, пользователи CyberForum. Я относительно давний юзер этого форума, и вот, наконец-то решил воплощать мечту в реальность, а именно стать хорошим программистом (но не быдло-кодером). Знания ПК и вообще программирования у меня на нуле (ну я, скажем, опытный пользователь виндоус, с двумя близкими друзьями ИТшниками сертифицированными, то есть рос в этой среде), но есть неплохие базовые знания математики, со школьного курса и диплом музыканта, говорящий об относительном развитии творческого мышления. И так, от слов к делу.

Тема "Литература С++" натолкнула меня на книгу ""Programming: Principles and Practice Using C++"".
Книга, кстати, хороша, советую всем начинающим, потому, что понимаю все что там написано (Правда немного еще прочел). Тему эту создал, потому как нуждаюсь в, своего рода, наставниках, к кому могу обращаться с вопросами. Буду постить тут задачи и их решения, а также рассчитываю на помощь, которая может мне периодами быть необходима. В идеале, надеюсь, что кто-нибудь согласится помогать мне в скайпе.


Итак задача:
Написать программу, предлагающую пользователю ввести 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
#include "std_lib_facilities.h"
int main()
{
    setlocale( LC_ALL,"Russian" );
    cout << "Пожулайста, введите 3 числа (Затем нажмите ENTER)\n";
    int number_one; // выделяем раздел для первого введенного числа
    int number_two; // второго
    int number_three; // третьего
    while (cin>>number_one>>number_two>>number_three) {  
 
        if (number_one < number_two < number_three)
            cout << number_one << ', ' << number_two << ', ' << number_three << "\n";
        if (number_one > number_two > number_three)
            cout << number_three << ', ' << number_two << ', ' << number_one << "\n";
        if (number_two < number_one < number_three)
            cout << number_two << ', ' << number_one << ', ' << number_three << "\n";
        if (number_one < number_three < number_two)
            cout << number_one << ', ' << number_three << ', ' << number_two << "\n";
        if (number_three < number_one < number_two)
            cout << number_three << ', ' << number_one << ', ' << number_two << "\n";
        if (number_two < number_three < number_one)
            cout << number_two << ', ' << number_three << ', ' << number_one << "\n";           
    }
    keep_window_open();
    return 0;
}
Компилятор: "warning C4804: <: небезопасное использование типа "bool" в операции"

пропускаем

В итоге получаем следующее:
Миниатюры
C++ первые шаги (абсолютно первые)  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 10:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C++ первые шаги (абсолютно первые) (C++):

Первые шаги. - C++
Здравствуйте. Извините, может, за тупые вопросы. Но с языком С впервые сталкиваюсь. Использую среду прогр-я C-Free Standard 4.0. Открыл...

ООП, первые шаги - C++
Доброго времени суток! Собственно, начал изучать С++. Решил наваять небольшую програмку, которая выводит что-то типа текстового меню. ...

Первые шаги в освоении С++ - C++
Добрый день! Решил начать изучение С++. Для этого, как полагается, скачал соответствующую литературу и софт. После нескольких попыток...

Первые шаги в программированнии! - C++
Добрые товарищи помогите чайнику в программировании с одной проблемой. Я решил изучить язык програмирования Си++, скачал полную коллекцию...

Первые шаги: ничего не получается - C++
Всем привет! Я скачала советуемую здесь на форуме версию wxDev-C++ 7.3.1. Но у меня ничего не получается. Даже на банальном примере из...

Первые шаги: есть ли ошибки в программе? - C++
#include &quot;iostream.h&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; int main() { float a,b,f; a=1000; b=0.01; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.04.2013, 10:29 #2
Цитата Сообщение от servus_mori Посмотреть сообщение
но есть неплохие базовые знания математики
помогут.
Цитата Сообщение от servus_mori Посмотреть сообщение
диплом музыканта, говорящий об относительном развитии творческого мышления.
Каким образом?
chizz
980 / 494 / 54
Регистрация: 19.03.2013
Сообщений: 3,087
Записей в блоге: 18
Завершенные тесты: 1
15.04.2013, 10:29 #3
Лучше запиши числа в массив, отсортируй его по возрастанию и выведи.

ЗЫ. Потому что если будет например 4 числа, то придется переделывать весь код, а это плохо.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.04.2013, 10:33 #4
Цитата Сообщение от servus_mori Посмотреть сообщение
if (number_one < number_two < number_three)
Такая форма допустима в математике, но не в программировании, машина не человек и не способна сравнивать сразу три числа.
C++
1
if ((number_one < number_two)&&(number_two< number_three))
.
servus_mori
1 / 1 / 0
Регистрация: 09.02.2011
Сообщений: 52
15.04.2013, 11:03  [ТС] #5
Цитата Сообщение от taras atavin Посмотреть сообщение
Каким образом?
Нуу, просмотрел несколько книг, и в каждой указано, что программирование не сводится, исключительно, к выучиванию "формул", нужен своего рода творческий подход и воображение. По специальности я музыкант (то биш творческий подход - моя стезя), но забросил это дело, ибо с детства ощущаю в себе страсть к цифрам (ну тупанул разок и поступил не туда).


Цитата Сообщение от chizz Посмотреть сообщение
Лучше запиши числа в МАССИВ, отсортируй его по возрастанию и выведи.
Массив...

Цитата Сообщение от taras atavin Посмотреть сообщение
1
if ((number_one < number_two)&&(number_two< number_three))
Это попонятнее, но основная моя цель - понимать то, что делаю. "&&" - насколько я знаю(точнее знает гугл, а я так, цитирую), это оператор для сравнивания "bool" в языке СиШарп(С#) (пытался както начать изучение с этого языка, но не подобрал подходящей литературы, да и ++ заинтересовал больше). Просветите, если путаю, и объясните подробнее, что именно выполняет этот оператор с этими переменными.

*Да и еще, откуда мой компилятор, взял "небезопасное использование типа "bool" в операции"? Я не говорил ему ни о каких "Правда или Желание".
Jupiter
15.04.2013, 11:19
  #6

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
Такая форма допустима в математике, но не в программировании

Python
1
2 < 5 < 7
http://*******/JSOSS

chizz
980 / 494 / 54
Регистрация: 19.03.2013
Сообщений: 3,087
Записей в блоге: 18
Завершенные тесты: 1
15.04.2013, 11:25 #7
if (number_one < number_two < number_three)

Оператор < возвращает значение типа bool, которое ты потом сравниваешь с переменной типа int.

То бишь number_one < number_two вернет true (1) или false (0), которое ты затем сравниваешь с number_three.


Цитата Сообщение от servus_mori Посмотреть сообщение
Массив...
Да, массив. Код, который ты привел - даже быдло кодом назвать можно с натяжкой.

Добавлено через 4 минуты
Цитата Сообщение от Jupiter Посмотреть сообщение
2 < 5 < 7
Конечно true

Jupiter, в питоне это работает, в C++ нет.

8 < 5 < 7 возвращает true например.
Jupiter
15.04.2013, 11:29
  #8

Не по теме:

Цитата Сообщение от chizz Посмотреть сообщение
в питоне это работает, в C++ нет.
да вы что, а я и не знал, а вы не заметили теги оффтопа и цитату в моем сообщении?

chizz
15.04.2013, 11:39
  #9

Не по теме:

Цитата Сообщение от Jupiter Посмотреть сообщение
да вы что, а я и не знал,
Вы то знаете. Другие нет.

PS. За ссылку спасибо.

servus_mori
1 / 1 / 0
Регистрация: 09.02.2011
Сообщений: 52
15.04.2013, 11:43  [ТС] #10
Цитата Сообщение от chizz Посмотреть сообщение
Да, массив. Код, который ты привел - даже быдло кодом назвать можно с натяжкой.
все со временем. Сначала ты чайник, потом быдло-кодер, а далее, либо норм программист, либо быдло-кодер. Я прочел то, всего ничего, и составил код из того, что имею (не практикую прыгать вперед в освоении какой либо книги). С выражением "Массив" я пока не встречался, был бы благодарен если б пояснил.

*Да и не забрасывайте меня помидорами. Возможно, вы все когда-то начинали освоение программирования уже будучи генетически к этому предрасположенными, и ни к кому за помощью не обращались, но видимо, для того вы и созданы гениями, чтобы могли обратиться к вам. (Предупреждение: в сообщение присутствует некоторая доля иронии. Все персонажи выдуманы или не выдуманы)
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.04.2013, 11:48 #11
Цитата Сообщение от servus_mori Посмотреть сообщение
Нуу, просмотрел несколько книг, и в каждой указано, что программирование не сводится, исключительно, к выучиванию "формул", нужен своего рода творческий подход и воображение.
Да. Но при чём здесь профессия музыканта? Ему сочинять не надо.

Добавлено через 1 минуту
Цитата Сообщение от servus_mori Посмотреть сообщение
. "&&" - насколько я знаю(точнее знает гугл, а я так, цитирую), это оператор для сравнивания "bool" в языке СиШарп(С#)
Нет. "&&" значит "и".

Добавлено через 1 минуту
Цитата Сообщение от servus_mori Посмотреть сообщение
что именно выполняет этот оператор с этими переменными.
Это не переменные, а выражения, переменные в данном случае - части выражений.

Добавлено через 1 минуту
Цитата Сообщение от servus_mori Посмотреть сообщение
*Да и еще, откуда мой компилятор, взял "небезопасное использование типа "bool" в операции"? Я не говорил ему ни о каких "Правда или Желание".
while принимает только bool.
chizz
980 / 494 / 54
Регистрация: 19.03.2013
Сообщений: 3,087
Записей в блоге: 18
Завершенные тесты: 1
15.04.2013, 11:54 #12
Цитата Сообщение от servus_mori Посмотреть сообщение
С выражением "Массив" я пока не встречался
А, ну тогда ладно, беру свои слова назад.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.04.2013, 12:00 #13
Ну аспектно-функционально-ориентированный транслятор, видимо, переводит, а плюсы не занимаются анализом логики.

Добавлено через 4 минуты
Цитата Сообщение от servus_mori Посмотреть сообщение
С выражением "Массив" я пока не встречался, был бы благодарен если б пояснил.
Тогда тебе тем более рано браться за ввод двух и более семантически не различающихся чисел подряд. Сначала изучи массивы, потом переходи к задачам, в которых бывает несколько величин с общей семантикой.
servus_mori
1 / 1 / 0
Регистрация: 09.02.2011
Сообщений: 52
15.04.2013, 12:22  [ТС] #14
taras atavin, кстати, решение
C++
1
if ((number_one < number_two)&&(number_two < number_three))
заработало. Спасибо
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.04.2013, 12:38 #15
По мере роста количества элементов объём текста для ввода будет расти линейно, а количество вариантов не линейно, усложняя программу, а переменность количества элементов ставит под угрозу саму реализуемость. Но все проблемы решаются сами, если использовать массив, так как там можно за 1 раз сравнивать ровно 2 элемента при сортировке, или поиске экстремума, при поиске локального максимума 3 и при поиске перегиба 5 и вообще не менять порядок сравнения, что возвращает к линейной сложности для фиксированных размеров 2, 3 и 5, а количество элементов отлично будет регулироваться циклом. Другое дело, если надо сравнить 3 величины, различающиеся по смыслу задачи. Не number_one, number_two и number_three, а хотя бы, например, координаты по осям x, y и z, чьё сравнение даст оптимальный вид дроби и обратной функции для нахождения углов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 12:38
Привет! Вот еще темы с ответами:

Вызов точки останова во время выхода (первые шаги в классах C++) - C++
Парни! Такая проблема: вылетает в конце, когда завершаю работу программы. Суть программы: есть класс продукт, в нём три переменные и три...

Поделитесь опытом. С чего вы начинаете новый проект? Первые шаги? - C++
Народ, поделитесь пож опытом.... Вот выучил я с++ до того уровня что могу сам написать что-то... Теперь надо понять чтоя могу...

Первые шаги по базовому курсу Шилдта - ошибка синтаксиса приведенного кода - C++
Здравствуйте! Изучаю С++ с нуля по учебнику Базовый курс С++ Шилдт. Каждую программу из примеров компилирую на Visual Studio 2013, до сих...

Как обнулить первые 4-е бита начиная с певого заряженного (первые - старшие биты) - C++
Собственно, вопрос в заголовке.


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

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

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