Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Aqua77
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
#1

Почему я ничего не понимаю в C++? - C++

05.11.2015, 11:44. Просмотров 1847. Ответов 28
Метки нет (Все метки)

Я пол года изучаю этот язык и ничего не понимаю, выезжаю за счёт вопросов на киберфоруме, вот допустим я вчера что-то учил, а сегодня(!) уже не помню!по чему я такой тупой? и ЕЩЁ меня забанили в гугле поэтому по любой непонятке я пишу сюда!
http://www.cyberforum.ru/cpp-beginners/thread1755513.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2015, 11:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Почему я ничего не понимаю в C++? (C++):

Слишком сложный код программы, ничего не понимаю(
Я искал код по этому заданию: "Имеется картографическая информация,...

Хочу разбить код на функции, но ничего в них не понимаю
Задача: написать ввод и вывод в отдельных функциях. #include <iostream> ...

Ничего не понимаю в языках программирования но хочу создать свою программу.
Помогите плз!:scratch:

Выручайте! Нужно переделать прогу под двусвязный список.ничего не понимаю)
#include <iostream> #include <conio.h> struct Node { int memSize; ...

Не компилируется,не понимаю,почему
В строке записан текст, имеющий вид «d1± d2±… ±dn», где di – цифры (n>1)....

28
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
06.11.2015, 01:27 #21
kalonord, С учтом того что я не работаю программистом, а только пишу для себя какие то вещи, то не очень. а так подходя к своим 30 я если честно много о чем упущенном жалею, в том числе и о с++

Добавлено через 1 минуту
Barrent, в точку, и еще один факт что не было кто бы подсказал!

Добавлено через 31 секунду

Не по теме:

Так пошел я авто коррекцию отключать, а то задрала!!!!

1
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 292
Регистрация: 20.02.2013
Сообщений: 5,222
Записей в блоге: 23
06.11.2015, 08:59 #22
Цитата Сообщение от Mesteriis Посмотреть сообщение
Например та жа самая любимая инклюд, вот как мне 12 летнему сопливому-прыщявому школьнику понять что это подключение библиотеки где описаны методы, перебрал много книжек не где этого нету!!!
Я хз что ты читал и как, но в любой адекватной книге для начинающих это объясняется.
Берём книгу Стивена Праты "Язык программирования С++" (2012, 6-е издание) во 2 главе (первая глава - вводная, там, собственно, и программирования-то нету, практически), идёт пошаговый разбор обычного HelloWorld'a. На 55-56 странице подробнейшим образом разжёвано что такое директива препроцессора, что такое препроцессор, что такое заголовочные файлы, зачем всё это нужно и т.д:
Кликните здесь для просмотра всего текста
Цитата Сообщение от Стивен Прата
Для начала давайте кратко рассмотрим то, что вы должны знать обязательно. Если
ваша программа предназначена для использования обычных средств ввода и вывода
в C++, вы предоставляете следующие две строки:
C++
1
2
#include <iostream>
using namespace std;
Для второй строки существуют альтернативные варианты, но в данный момент
мы стремимся все максимально упростить. (Если используемый вами компилятор
отклоняет эти строки кода, значит, он не совместим со стандартом С++98; в таком
случае с примерами, приведенными в этой книге, будут возникать и другие
проблемы.) Это все, что вам нужно знать для обеспечения работоспособности программы.
А теперь давайте рассмотрим все более подробно.
В языке C++, как и в С, используется препроцессор. Препроцессор — это программа,
которая выполняет обработку файла исходного кода перед началом собственно
компиляции. (В некоторых реализациях языка C++, как упоминалось в главе 1, для
преобразования программы C++ в С используется программа транслятора. Хотя этот
транслятор можно считать определенной разновидностью препроцессора, мы его не
рассматриваем; мы говорим о препроцессоре, обрабатывающем директивы, имена
которых начинаются с символа #.) Для вызова препроцессора ничего особенного
делать не нужно. Он запускается автоматически во время компиляции программы.
В листинге 2.1 использовалась директива #include:
C++
1
#include <iostream> // директива препроцессора
Эта директива заставляет препроцессор добавить содержимое файла iostream в
вашу программу. Добавление или замена текста в исходном коде перед его
компиляцией является одним из обычных действий препроцессора.
Может возникнуть вопрос: зачем добавлять содержимое файла iostream в
программу? Причина состоит в необходимости коммуникаций между программой и
внешним миром. Часть іо в iostream означает input (ввод) — входные данные программы,
и output (вывод) — информация, передаваемая из программы. Схема ввода-вывода
в C++ включает несколько определений, которые можно найти в файле iostream.
В вашей первой программе эти определения необходимы для использования объекта
cout при выводе сообщения на экран. В соответствии с директивой #include,
содержимое файла iostream будет отправлено компилятору вместе с содержимым вашего
файла. В действительности содержимое файла iostream заменяет строку #include
<iostream> в программе. Ваш исходный файл не изменяется, а результирующий
файл, сформированный из вашего файла и iostream, передается на следующий этап
компиляции.


Берём книгу Стенли Липпмана "Язык программирования C++. Базовый курс" (5-е издание, 2014). Глава 1 "Первые шаги" (стр. 32):
Кликните здесь для просмотра всего текста
Цитата Сообщение от Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му
Первая строка кода #include <iostream> - это директива препроцессора (preprocessor directive), которая указывает компилятору на необходимость включить в программу библиотеку ostream. Имя в угловых скобках - это заголовок (header). Каждая программа, которая использует средства, хранимые в библиотеке, должна подключить соответствующий заголовок. Директива #include должна быть написана в одной строке. То есть, и заголовок, и слово #include должны находиться в той же строке кода. Директива #include должна распологаться вне тела функции. Как правило, все директивы #include программы располагают в начале файла исходного кода.


Берём книгу Дейтелов "Как программировать на C++" (Бином, 5-е издание, 2008). Глава 2 "Первая программа на C++: печать строки текста", стр. 96 (первая глава, как и во многих подобных книгах, вводная):
Кликните здесь для просмотра всего текста
Цитата Сообщение от Харви М. Дейтел и Пол Дж. Дейтел
В C++ используются формы записи, которые непрограммисту могут
показаться странными. Мы начинаем с рассмотрения простой программы,
печатающей строку текста (рис. 2.1). Эта программа иллюстрирует несколько важных
особенностей языка C++. Рассмотрим детально каждую строку программы.
C++
1
2
3
4
5
6
7
8
9
10
11
// Рис. 2.1: fig02_01.cpp
// Программа, печатающая текст.
#include <iostream> // позволяет программе выводить данные на экран
 
// функция main начинает исполнение программы
int main()
{
    std::cout << "Welcome to C++!\n"; // вывести сообщение
    return 0; // показывает успешное завершение программы
 
} // конец функции main
<...>
Строка 3
#include <iostream> // позволяет программе выводить данные на экран
является директивой препроцессора, т.е. сообщением препроцессору C++
(о котором говорилось в разделе 1.14). Строки, начинающиеся с #,
обрабатываются препроцессором до компиляции программы. Данная строка дает
указание препроцессору включить в программу содержимое заголовочного файла
потоков ввода/вывода <iostream>. Этот файл должен быть включен во все
программы, которые выводят данные на экран или читают с клавиатуры,
используя принятый в C++ стиль потокового ввода-вывода. Как мы вскоре
увидим, программа на рис. 2.1 выводит данные на экран. Более подробно мы
обсуждаем заголовочные файлы в главе 6.


Берём книгу Эндрю Кёнига и Барбары Му "Эффективное программирование на C++" (2002), стр. 22:
Кликните здесь для просмотра всего текста
Цитата Сообщение от Эндрю Кёниг и Барбара Му
В C++ многие основные средства языка (такие, как средства ввода-вывода)
являются частью стандартной библиотеки (standard library), а не частью базового языка
(core language). Это различие очень существенно, поскольку базовый язык всегда
доступен для всех С++-программ, а что касается стандартной библиотеки, то в
отношении тех ее частей, которые вы собираетесь использовать, необходимо в явном виде
сделать запрос на их включение.
Средства стандартных библиотек программы запрашивают с помощью директив
#include, которые обычно размещаются в начале программы. Единственная часть
стандартной библиотеки, которая используется в нашей программе, связана с обеспечением
операций ввода-вывода, и запрос на ее использование выражается следующей строкой.
C++
1
#include <iostream>
Имя iostream предлагает поддержку последовательного, или потокового, ввода-
вывода данных, а не ввода-вывода с произвольным доступом. Поскольку имя
iostream входит в состав директивы #include и заключено в угловые скобки (< и >),
оно указывает на часть библиотеки C++, именуемую стандартным заголовком
(standard header).
Стандарт C++ точно не определяет, что представляет собой стандартный
заголовок, но он указывает имя и поведение каждого заголовка. Включение стандартного
заголовка делает доступными для программы средства соответствующей библиотеки,
но точное функционирование этих средств определяется конкретной реализацией
языка, а не вами.


Даже у Страуструпа "Язык программирования C++" (специальное издание, 2011), на которого все новички жалуются, что он-де непонятно пишет, есть в начале его книги разбор простейшего HelloWorld'a и там есть про директиву препроцессора #include (стр. 86):
Кликните здесь для просмотра всего текста
Цитата Сообщение от Бьярне Страуструп
Строка #include <iostream> заставляет компилятор включить сюда все
объявления стандартных потоковых средств ввода-вывода (I/O facilities) из файла iostream.


Добавлено через 7 минут
Цитата Сообщение от Mesteriis Посмотреть сообщение
А если ты еще сам пытаешься изучать, а если это еще времена сурового диалапа да и вообще без интернета
Тогда всё было иначе, не надо сравнивать. И люди были другие маленько, и учились иначе, и информацию тяжелее было добывать (60-е, 70-е, 80-е года ХХ века и раньше). С начала 2000-х всё изменилось. Сейчас компьютер и доступ в интернет - не проблема (блин, да даже в Донецке люди плюсы учат и в инет за инфой ходят) запрос в гугл делается за пару секунд и к Вашим услугам мировой мозг.
Смысла говорить о старых временах нету ("а я в советские времена ооооо"), на дворе 2015 год. Так что, давайте от современных реалий отталкиваться.
2
zer0mail
2451 / 2085 / 216
Регистрация: 03.07.2012
Сообщений: 7,566
Записей в блоге: 1
06.11.2015, 09:47 #23
Цитата Сообщение от gru74ik Посмотреть сообщение
Так что, давайте от современных реалий отталкиваться.
Современные реалии: "Дали задание, весь интернет облазил - ничего нет. Помогите."
Это значит - думать не желаю, похожие задачи разбирать не хочу, да и вообще весь интернет я обошел за 5мин. Хочу, чтобы мне объяснили условие и написали подробное решение.
Судя по форуму, таковы современные реалии (в разделе программирования такой подход не редкость, а в физико-математическом он преобладает)...
3
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 292
Регистрация: 20.02.2013
Сообщений: 5,222
Записей в блоге: 23
06.11.2015, 09:52 #24
Цитата Сообщение от zer0mail Посмотреть сообщение
думать не желаю, похожие задачи разбирать не хочу, да и вообще весь интернет я обошел за 5мин. Хочу, чтобы мне объяснили условие и написали подробное решение.
Это хорошо. Такой "специалист" никому не нужен, нормальным людям больше хороших вакансий достанется. А "специалист" пойдёт поломойкой работать, или к папе "по блату" в ларёк кассиром или ещё каким манагером.
1
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
06.11.2015, 11:33 #25
gru74ik, не совсем, происходит в точности да наоборот из за большого количества таких "спецв " средняя зарплата падает из за того что их слишком много. Тоже самое произошло и с бухгалтерами и с юристами(хоть и договорились не настольгировать но вспомните 00) самая распространенная профессия в универах бухгалтер и юрист.
А потом когда человек приходит и смотрит на зп, возникает вопрос а что так мало!? На что получает ответ да вас тут дофига не нравится у меня очередь стоит за дверью! Вот и приходится работать за копейки или сидеть дома без них. Ну или идти во фриланс. Так что доводы по поводу пусть нихрена не знают нам больше денег платить будут не качает в долгосрочной перспективе!
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 292
Регистрация: 20.02.2013
Сообщений: 5,222
Записей в блоге: 23
06.11.2015, 12:03 #26
Mesteriis, мне кажется, один человек вряд ли сможет переломить ситуацию. Насколько я могу судить, система образования деградировала, люди стали глупее, ленивее и, в целом, мельче в массе своей, по сравнению с поколениями, рождёнными в 60-х, 70-х. С другой стороны, отцы всегда жалуются, что-де молодёжь нынче уже не та, и так, скорее всего, всегда было (старики вечно брюзжат).
Хотя, опять же, те же индусы вон говорят, что у нас Кали-юга 5 тысяч лет назад на Земле началась. Она 428 тысяч лет длится. Так что, всё будет хуже и хуже. Зима Вселенной. Увядание. Ну так что ж теперь, не жить что ли? Делай то, что должен, и будь, что будет.
1
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
07.11.2015, 12:50 #27
gru74ik, ну если считать что один не сможет то действительно нечего не изменится, как говорится революции начинали не люди а их идеи! Просто иной раз просматриваешь форум и вот честно даже отвечать людям не хочется, когда он в слове "мир" делает три ошибки.
А по поводу лени, знаешь даже в самой хорошей идеи бывают огрехи, это я про интернет. Видит задумка была что люди будут обмениваться информацией, развиваться и учится а получилось как получилось) самое обидное что лет так через цать, те кто сейчас тупят и не могут вспомнить таблицу умножения буду работать, лечить людей, писать по для самолетов и поездов, да что там людей в космос отправлять! И вот от этого реально страшно!!!
0
gru74ik
Модератор
Эксперт CЭксперт С++
4648 / 1962 / 292
Регистрация: 20.02.2013
Сообщений: 5,222
Записей в блоге: 23
07.11.2015, 13:25 #28
Цитата Сообщение от Mesteriis Посмотреть сообщение
те кто сейчас тупят и не могут вспомнить таблицу умножения буду работать, лечить людей, писать по для самолетов и поездов, да что там людей в космос отправлять!
Уже сейчас. Те кто, родился в конце 80-х, начале 90-х, сейчас уже позаканчивали институты и уже "лечат людей, пишут ПО для самолетов и поездов, людей в космос отправляют". На мой взгляд, цикл простой:
плохое образование и воспитание -> ленивые неучи с завышенным ЧСВ (назовём их для краткости "гоблинами", что ли) -> падающие самолёты, рушащиеся поезда, нелетающая "Булава", авария на ГЭС -> всем от начальства клизма пополам с патефонными иголками -> гоблины в отставку, на увольнение, в тюрьму -> алло, мы ищем таланты -> таланты вместо гоблинов. Если талантов нет, срочно начинаем воспитывать (начинаем поднимать систему образования, либо учим спецов за рубежом, либо приглашаем "варягов" - что дорого и всё равно достаточное количество кадров так не наскребёшь, а значит всё равно, подымаем образование у себя), пока воспитываем, катастрофы по вине гоблинов продолжаются, постепенно, гоблинов неизбежно заменяют на таланты, ситуация выправляется. Цикличность - она во всём.

Добавлено через 9 минут
Хотя, в защиту молодого поколения надо сказать, что обычно, на ответственных постах люди не только что окончившие институт (23-25 лет), а 35-45-летние специалисты с опытом. Так что, вина за катастрофы и неудачи последних десяти лет тут, получается, больше как раз на поколении, родившихся в 60-е и 70-е.

Добавлено через 1 минуту
Цитата Сообщение от Mesteriis Посмотреть сообщение
И вот от этого реально страшно!!!
Оставьте причитания женщинам. Ещё раз:
Цитата Сообщение от gru74ik Посмотреть сообщение
Делай то, что должен, и будь, что будет.
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27941 / 15659 / 960
Регистрация: 15.09.2009
Сообщений: 67,839
Записей в блоге: 78
07.11.2015, 13:40 #29
виноват автор или не виноват- что оставил комп не заборкированным - гадать не буду. тема закрыта, ибо разгорается
1
07.11.2015, 13:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2015, 13:40
Привет! Вот еще темы с решениями:

не понимаю-почему не сравнивает?
господа имеется программа которая выполняет следущее: 1)пользователь вводит...

Не понимаю почему не выводит acos!
Длины сторон треугольника равны a, b, c. Если треугольник равносторонний, то...

не понимаю почему цикл не заканчивается
Привет! Вот написал. Объясните, пожалуйста, почему цикл не заканчивается?...

Туплю не понимаю почему не работает
Массив должен заполняться рандомными значениями, но при запуске прога зависает....


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

Или воспользуйтесь поиском по форуму:
29
Закрытая тема Создать тему
Опции темы

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