Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
1

Что же всё-таки в начале: мат. часть или сам С++

28.09.2015, 23:46. Показов 3085. Ответов 48
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пошерстил интернет, пишут, что хорошему программисту учить, как минимум, некую булеву алгебру да дискретную математику. Якобы С++ можно вообще отложить пока что. А что скажете Вы?
Я понимаю, что можно всё это пытаться параллельно изучать, но во что больше всего нужно углубляться?
Математика - это круто. И мне кажется, что в программировании точно лишним не будет. Помимо мат. части, английского и самого языка программирования я вообще почти ничего толкового "не вижу" в плане изучения для программиста, т.к. даже не знаю в каком направлении двигаться. И туда ли мы вообще идём, товарищи?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2015, 23:46
Ответы с готовыми решениями:

Что лучше встроенное AMD 760G или всё таки поставить GeForce GT520
Вот думаю что лучше встроенное AMD 760G(RADEON HD 3100) или всё таки поставить GeForce GT520?...

Всё таки что возможно написать?
Здравствуйте! Простите за наглость но нужна реальная и актуальная консультация по этому поводу, от...

Цифровик, что же всё таки лучше.
Здравствуйте, помогите выбрать цифровик стоимостью до 6000 т. руб. Вот ссылка на магазин КЕЙ, с...

Байки или всё-таки нет (Intel)
http://www.igromania.ru/news/hard/129926/Intel_aktiviruet_skrytye_vozmozhnosti_processorov_za_50.htm...

48
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
03.10.2015, 06:13 41
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от wismbel Посмотреть сообщение
некую булеву алгебру
А чё её учить? 15-и минут достаточно. К тому-же, без её знания, ни одной программы не напишешь.
Примем 1 за true, а 0 за false. Тогда булевы операции сведутся в несколько таблиц:

! - Логическое отрицание
!1 = 0
!0 = 1

"И" (&) - логическое умножение.
0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1

"ИЛИ" (||) - логическое сложение
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1

"ИСКЛЮЧАЮЩЕЕ ИЛИ" (^) - логическое исключение
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

Операции соотношений
== - равно
!= - не равно
> - больше
< - меньше
>= - больше или равно
<= - меньше или равно

Вот и вся "алгебра" .
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
03.10.2015, 07:03 42
Цитата Сообщение от SmittWesson Посмотреть сообщение
Вот и вся "алгебра"
это "булева арифметика", дальше пошли преобразования для упрощения/усложнения кода
двойное отрицание, законы де Моргана, и прочая "мелочь"
1
0 / 0 / 0
Регистрация: 20.09.2015
Сообщений: 103
03.10.2015, 15:09  [ТС] 43
Цитата Сообщение от ValeryS Посмотреть сообщение
это "булева арифметика", дальше пошли преобразования для упрощения/усложнения кода
двойное отрицание, законы де Моргана, и прочая "мелочь"
Законы де Моргана вчера изучал. Ну т.е. тут в принципе ничего сверхъестественного? Я просто думал, что булева алгебра это что-то ОГО-ГО.
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
03.10.2015, 15:33 44
Цитата Сообщение от smartpointer Посмотреть сообщение
чем простой джамп на метку.
тем что не простой джамп на метку.

ну так вы попробуйте обойти дерево рекурсивно (например файловую систему).
но при этом используя циклы, а не рекурсию.

и тогда убедитесь, что контекст текущей итерации все равно придется сохранять.
но если с рекурсией за вас парился компилятор,
и цена вопроса - вызов функции,

то теперь вам самому придется сохранять текущий контекст итерации,
складывая его на макушку какого нибудь контейнера.
например std::stack.
во-первых, вы все равно будете дергать методы классов - считай никуда не ушли от вызова функции.
а во-вторых, складывать придется в динамической памяти.
и вот здесь - катастрофическое падение перфоманса
в сравнении с обычным вызовом функции.


для файловой системы - не критично.
вы даже этого не заметите,
потому что 99,(9) будут жрать вызовы функций апи системы,
и медленное чтение с диска.

но для обхода каких то деревьев, которые хранятся в памяти,
(например, мы работаем с базой данных,
расположенной в оперативной памяти),
это может быть весьма существенным.
0
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
09.10.2015, 02:24 45
Тем кто не собирается оптимизировать свой код, математика не нужна. В нормальном колективе он долго не продержится.

Банальный пример, сумма натуральных чисел 1..n часто встречается как тупой подсчет с аккумулированием результата, когда это всего навсего арифметическая прогрессия и быстро считается по формуле даже в уме. Таких примеров масса. Простые базовые вещи. Что касается булевой алгебры, то это основа дискретных вычислений. Например, мы проектируем некое устройство, имеющее N состояний. Все состояния кодируются, потом снимаеются функции выходных сигналов и все это записывается как логические выражения, а дальше мы приступаем к минимизации различными методами. Чтобы уменьшить количество логических элементов (тарнзисторов), тем самым повышая производительность устройства и понижая его стоимость и размер. Какая польза от всего этого в программировании? Прямая. Машинное слово -- это всего лишь вектор логических вентилей. То что мы в теории проделывали с логическими значениями в неизменяемом виде переносится на байты.

Далее. Решили мы написать свой язык и компилятор к нему, или компилятор уже существующего языка. И? Деревья! Вспоминаем теорию графов и вновь для нас ничего нового, всё это мы уже знаем из математической теории. Более того мы знаем все законы и правила использования и существования таких структур.

И так сплошь и рядом. В любой области нашей профессии. Матан, дуффуры, оптимизация, статистика, вероятность может и не понядобится, а может и понадобятся. Ну а за информационную безопасность я вообще молчу. Там кроме математики практически ничего другого нет.

Важно вот что. Мат аппарат универсален. Это значит -- применим вне зависимости от особенностей конкретного программного продукта, т.е. на все виды ПО, оборудования.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
09.10.2015, 05:48 46
Цитата Сообщение от SmittWesson Посмотреть сообщение
"ИСКЛЮЧАЮЩЕЕ ИЛИ" (^) - логическое исключение
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
оно же в поговорках
0-друг 1-враг
друг моего друга- мой друг
друг моего врага- мой враг
враг моего друга- мой враг
враг моего врага- мой друг
0
MLPMan
09.10.2015, 15:56
  #47

Не по теме:

ValeryS, нормас :good:

0
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
19.10.2015, 12:22 48
Цитата Сообщение от ValeryS Посмотреть сообщение
0-друг 1-враг
друг моего друга- мой друг
друг моего врага- мой враг
враг моего друга- мой враг
враг моего врага- мой друг
А вот с арифметическим операциями сложнее.

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

Иными словами:
Друг моего друга - мой друг
Друг моего врага - мой враг
Враг моего друга - мой враг?
Враг моего врага - два моих врага?
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,520
19.10.2015, 18:14 49
Цитата Сообщение от SmittWesson Посмотреть сообщение
А вот с арифметическим операциями сложнее.
не совсем представь что у нас один разряд, т.е есть переполнение
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
не зря же "исключающие ИЛИ" зовут "сложение по модулю два"
0
19.10.2015, 18:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2015, 18:14
Помогаю со студенческими работами здесь

Дело в мониторе? Или всё таки в видеокарте?
Всем доброго времени суток! Постараюсь описать проблему. Не так давно приобрел видеокарту Asus gtx...

Как лучше сделать? LINQ или всё-таки foreach
Добрый день! Как лучше организовать передачу списка List&lt;ObjectInfo&gt; в другую форму (как передать в...

Какой выбрать Firewall или родной всё-таки лучше?
Стоит ли от &quot;добра - добра&quot; искать?

К знатокам С++: это самодостаточный язык, или всё таки он зависит от Си
Объясните мне пожалуйста, ибо я не догоняю... Я изучаю С++, языка Си я не знаю. Читать...


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

Или воспользуйтесь поиском по форуму:
49
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru