Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/32: Рейтинг темы: голосов - 32, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 01.11.2018
Сообщений: 35

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

06.10.2020, 17:24. Показов 7128. Ответов 93
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Отмечу сразу, что мне 31 год, у меня НЕТ И НЕ БЫЛО технического образования, так как я гуманитарий. Следовательно мои познания в области математики и информатики оставляют желать лучшего. Относительно недавно мне стало очень интересно все, что связанно с информационными технологиями и разработкой ПО. Я начал изучать книгу Дейтелов: "Как программировать на С" и естественно решать задачи после каждой главы. Я изучил и прорешал 5 глав. Изучил простейшие арифметические операции, операторы выбора: if, else, switch, операторы повторения while, for. Остановился на функциях и рекурсии. По мере продолжения изучения я все больше и больше сталкиваюсь с тем, что я самостоятельно не могу написать код для решения задачи и мне все больше и больше приходится подглядывать уже готовый код и разбирать его, особенно в главе 5 функции и рекурсия. Скажите пожалуйста нормально ли это, особенно меня сбила с толку рекурсия, код каждой задачи мне приходится подглядывать так как сам его написать не могу. Естественно у меня появляются сомнения относительно того, получится у меня в будущем работать, хотя при всем при этом интерес у меня не теряется. Пожалуйста поделитесь своим мнением, так как мне больше не у кого спросить. С уважением!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2020, 17:24
Ответы с готовыми решениями:

Книга для самостоятельного изучения С++
Подскажите, пожалуйста, какую-нибудь нормальную книгу для самостоятельного изучения С++ (возможности теперь позволяют только...

материалы предназначеные для самостоятельного изучения языка с++
Внимание: данные материалы предназначены для самостоятельного изучения языка с++ используя Microsoft Visual Studio 2008 и не только,,, ...

посоветуйте учебник для самостоятельного изучения с++ (с нуля)
сабж

93
08.10.2020, 20:32
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от Renji Посмотреть сообщение
несложно сделать велосипед переводящий переполнение стека в обычное исключение
Ты же понимаешь, что этот код делает лимит вызовов и никак не защищает от переполнения стека.
Никто же не гарантирует, что твою функцию будут запускать при достаточном месте на стеке хотя бы для первого вызова.
Если у тебя стек и так забит, то никакие лимиты не помогут. Можно разве что сигнал поймать или какой-нибудь SEH.

0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
08.10.2020, 22:33
Цитата Сообщение от Alexandr999 Посмотреть сообщение
Я начал изучать книгу Дейтелов: "Как программировать на С"
И ещё вопрос: какую именно из книг этих корифеев педагогики программирования Вы читаете ?
Какое издание ?
1
E=m*c^2
 Аватар для K_ILYA_V
160 / 47 / 10
Регистрация: 04.02.2019
Сообщений: 263
Записей в блоге: 5
09.10.2020, 10:18
Цитата Сообщение от hoggy Посмотреть сообщение
...если б знал, не мешал бы в одну кучу...
... что бы увелить размер стека...
...манипуляции с виртуальной памятью - не бесплаты...

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

Добавлено через 9 минут
что касается вашего пояснения работы стека, то оно правильнее чем высказанное мной, но автоматически подразумевает системные вызовы по принципу "зачем думать самому если система все исправит за меня".
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
09.10.2020, 14:20
У меня возник вопрос. А рекурсия может быть бесконечной в теории? Проверил в онлайн компиляторе, вышла ошибка. Значит циклы и рекурсия не совсем взаимозаменяемы и циклы все же лучше, по моему субъективному мнению.
0
фрилансер
 Аватар для Алексей1153
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,316
09.10.2020, 14:25
ram876, адрес возврата всегда передаётся (а в не статической функции ещё и this), поэтому бесконечно это продолжаться не может, стек переполнится рано или поздно
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
09.10.2020, 15:28
Цитата Сообщение от ram876 Посмотреть сообщение
циклы все же лучше, по моему субъективному мнению
Звери не бывают лучше или хуже. Они просто есть. Первое что мне пришло в голову - рекурсия и мемоизация . Я скормил это в гугл и получил:
http://fprog.ru/2009/issue3/dm... ogramming/
Почитайте)
Но может статься, что в жизни, эти звери обойдут вас стороной и вы как, впрочем, и они не заподозрите о существовании встречного прохожего. Беды не будет. Или будет? Чтобы ответить, - почитайте.
1
1 / 1 / 0
Регистрация: 01.11.2018
Сообщений: 35
09.10.2020, 16:29  [ТС]
Спасибо за вопрос, читал только эту книгу, потом сюкогда наткнулся на рекурсию, скачал книгу Рубенса Санчеза "Введение в рекурсивное программирование". Прочитал от туда совсем немного, так как возникло не понимание, хотя с её помощью разобрался с простейшими примерами рекурсии. Сейчас решил ещё изучать Стивена Прату (5 издание 2007) а Дейтелов там не написано издание, но это не то издание где одна из первых тем это классы. Не подскажите что делать читать Стивена Прату, долбить рекурсивное программирование или вообще начать изучать математику, так как по дейтелам я сам не могу решить задачи из 5 главы причем не только по рекурсии. С уважением!
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
09.10.2020, 16:51
Alexandr999, индивидуальный учебный план, это индивидуальный вопрос. Только человек, который рядом может что-то сказать. Я скажу несколько относительно универсальных вещей.
1. Учите вопросы по разным источникам.
2. Рекурсивное программирование оставьте "на потом". Если только не почувствуете, что оно идёт в вас как дети в школу.
3. Математику освежите и подсоберите в объёме основ комбинаторики. Диф/инт-исчисления - для детей и домохозяек. Теория множеств/графов/чисел - популяпно для садоводов и аграриев.
Если что-то пойдёт в жилу, - развивайте успех (Ван-Гог - редкий пример, но кто знает?). Если с натугой (нормальная практика) - берите самое необходимое.
Больше припомнить не могу. Удачи)
1
1 / 1 / 0
Регистрация: 01.11.2018
Сообщений: 35
09.10.2020, 17:09  [ТС]
politoto,
Спасибо за вопрос, читал только эту книгу, потом сюкогда наткнулся на рекурсию, скачал книгу Рубенса Санчеза "Введение в рекурсивное программирование". Прочитал от туда совсем немного, так как возникло не понимание, хотя с её помощью разобрался с простейшими примерами рекурсии. Сейчас решил ещё изучать Стивена Прату (5 издание 2007) а Дейтелов там не написано издание, но это не то издание где одна из первых тем это классы. Не подскажите что делать читать Стивена Прату, долбить рекурсивное программирование или вообще начать изучать математику, так как по дейтелам я сам не могу решить задачи из 5 главы причем не только по рекурсии. С уважением!
0
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
09.10.2020, 17:12
Цитата Сообщение от Алексей1153 Посмотреть сообщение
адрес возврата всегда передаётся (а в не статической функции ещё и this), поэтому бесконечно это продолжаться не может, стек переполнится рано или поздно
Функция main() не должна быть рекурсивной, можно переименовать для порядка.
C++
1
2
3
int main(){
    return main();
}
Bash
1
2
g++ -O3 -c rec.c++ 
objdump -d rec.o
Code
1
2
3
4
5
rec.o:     формат файла elf64-x86-64
Дизассемблирование раздела .text.startup:
 
0000000000000000 <main>:
   0:   eb fe                   jmp    0 <main>
Компилятор не всегда обязан генерировать код, использующий какой-либо стек, и, тем более, переполняющий его.
1
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
09.10.2020, 17:48
Цитата Сообщение от Alexandr999 Посмотреть сообщение
Не подскажите что делать
Эх... А я, помнится, еще порадовался, прочитав ваш первый пост, в котором вы упомянули
Цитата Сообщение от Alexandr999 Посмотреть сообщение
так как я гуманитарий
, что в нем нет ни одной орфографической ошибки, максимум 3 синтаксические - запятые пропущены, но хоть все тся/ться правильно написаны... Думал действительно человек гуманитарий, настоящий... А тут такое разочарование...
0
фрилансер
 Аватар для Алексей1153
6499 / 5730 / 1133
Регистрация: 11.10.2019
Сообщений: 15,316
09.10.2020, 17:52
Цитата Сообщение от politoto Посмотреть сообщение
Компилятор
ну, это понятно, что компилятор может сам раскрутить рекурсию в некоторых случаях, превратив в цикл
0
1 / 1 / 0
Регистрация: 01.11.2018
Сообщений: 35
09.10.2020, 18:56  [ТС]
У меня же цель тут не русский язык учить))) И если я не ошибаюсь, то ошибка, заключающаяся в пропуске запятых, называется пунктуационной, а синтаксические ошибки, это когда неправильно построено предложение, например отсутствие предлога и т. Д.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
09.10.2020, 19:00
Цитата Сообщение от Alexandr999 Посмотреть сообщение
И если я не ошибаюсь, то ошибка, заключающаяся в пропуске запятых, называется пунктуационной, а синтаксические ошибки, это когда неправильно построено предложение, например отсутствие предлога и т. Д.
синтаксис - правила правильного писания.
правила языка, если по простому.

пунктуация - часть синтаксиса.
(часть правил, в которой описывается, как нужно ставить закорючки)

все пунктуационные ошибки - синтаксические.
но не все синтаксические являются пунктуационными.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
09.10.2020, 19:14
Цитата Сообщение от Alexandr999 Посмотреть сообщение
когда неправильно построено предложение, например отсутствие предлога и т. Д.
это грамматические ошибки.

Так что с гуманитарием вы, пожалуй, тоже погорячились )

Добавлено через 3 минуты
Цитата Сообщение от Alexandr999 Посмотреть сообщение
У меня же цель тут не русский язык учить)))
У русского (и другого естественного) языка и у языка С++ больше общего, чем может показаться на первый взгляд. Это вам любой лингвист подтвердит, включая Ноама Хомского и Ларри Уолла
0
1 / 1 / 0
Регистрация: 01.11.2018
Сообщений: 35
09.10.2020, 19:39  [ТС]
Нормально вы новичков поддерживает, очень мотивирует...
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
09.10.2020, 19:57
Alexandr999, ой, а тебе-то чего? Тоже мне, нашел преграду. Плюнь на них и иди дальше.
2
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
09.10.2020, 19:58
Alexandr999, вопрос был о синтаксисе. Хотя я думаю, это могла быть описка:
Цитата Сообщение от Alexandr999 Посмотреть сообщение
Не подскажите что делать читать Стивена Прату
Тут без запятых каша конечно, но подскажите как правильно писать "подскажете". Не подскажете?
Alexandr999, вопросы вызывают ваши вопросы. Поинтересуйтесь, - сколько книг о С++ есть для начинающих. Причём тут Дейтелы или Прата ? Книги разным по восприятию и уровню читателям подходят разные. Кроме того, разные вопросы в пределах одной конкретной книги излагаются с разным успехом (для каждого конкретного читателя). Вот и выходит, что нужно искать везде, сравнивать, экспериментировать, понимать.
Alexandr999, программирование, это в том числе умение искать и находить.
1
1 / 1 / 0
Регистрация: 01.11.2018
Сообщений: 35
09.10.2020, 20:03  [ТС]
Большое спасибо всем за помощь!
0
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
09.10.2020, 20:24
Интернет вообще не самая дружелюбная среда за пределами, разве что, каких-нибудь стерильных форумов для домохозяек или таких же стерильных сабреддитов. Да и потом, мотивировать человека такого возраста извне возможно, пожалуй, только угрозами. Не верю я, что сложившееся самосознание может измениться от нескольких комментариев.

По делу же всё тут уже сказали: практика, практика, практика. Люди и постарше и языки успешно изучают, и на всяких скрипках учатся играть. Тут всё тоже самое. Получится ли дойти до уровня, позволяющего зарабатывать "300ккк/нс"? Вряд ли. Получится ли дойти до уровня, позволяющего, утрированно, не задавать вопросы "как найти минимальный элемент в массиве целых"? Да.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.10.2020, 20:24

Посоветуйте материал для самостоятельного изучения С/С++/С#
Посоветуйте эффективный методический материал (книги, сайты и т.д.) для самостоятельного изучения С/С++/С#. А так же принципов ООП. Уж...

Книги для самостоятельного изучения PHP
Добрый день. После 3 лет работы сисадмином, понял что кодить нравится больше, чем админить, выбрал web на php backend. Заказал данную...

Сроки самостоятельного изучения 3ds max
Скажите можно ли самостоятельно научиться 3д максу, и сколько времени это займёт?

Литература для самостоятельного изучения теории вероятности
Посоветуйте учебники и сборники задач с примерами для самостоятельного теории вероятности. Желательно ePub или fb2. Спасибо!

Материалы для самостоятельного изучения языка SQL
Всем привет! Посоветуйте, пожалуйста, хороший видеокурс или другие материалы для самостоятельного изучения языка SQL. Заранее спасибо.


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru