0 / 3 / 0
Регистрация: 14.11.2015
Сообщений: 258
|
||||||
1 | ||||||
Нелогичные принципы программирования20.09.2018, 21:01. Показов 2124. Ответов 67
Метки нет (Все метки)
Я вспомнил программу, по которой как то начинал изучать программирование на языке С++, код приложу к теме. Программа определяет количество нечётных чисел в диапазоне введённом пользователем. Понятно как работает это в программировании, но в реальности это полная чушь, как может быть количество нечётных чисел в диапазоне от 5 до 10 - 21?! Это невозможно. В диапазоне от 5 до 10 нечётных чисел - 3 (5, 7, 9 - нечётные числа) это результат логики человека, а результат логики компьютера - 21. Бредовое значение, так же как и деление по модулю. 5 разделить на 2 будет один, что за ахинея? Методом логики человека выражение 5 яблок разделить на 2 будет иметь результат = 2.5 яблока, разве нет? Как работает понятно, непонятно почему языки программирования создали такими нелогичными. Язык питон имеет интуитивно понятный синтаксис. Под этим аспектом языка python подразумеваются команды и инструкции в виде английских слов, соответственно понятнее что выполняется в коде языка, print - печать (в пер. на русский), int/integer - целый (в пер. на русский), так же и другие многие термины языка. Но это касается синтаксиса языка, а что касается принципа работы языков программирования? Ведь то же деление по модулю это же ужас, как такое можно придумать было? Если бы компьютер был создан по логике человека, программировать было бы намного проще. Это касается и математики. Строго не судите, я могу быть во всём прав а могу быть не прав ни в чём, просто спрашиваю, кто что думает по этому поводу?
Кликните здесь для просмотра всего текста
1
|
20.09.2018, 21:01 | |
Ответы с готовыми решениями:
67
Принципы структурного программирования. Общие принципы программирования Общие принципы программирования графики Фундаментальные принципы объектно ориентированного программирования |
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
20.09.2018, 21:53 | 2 |
Подразумевается остаток от деления. Просто запомнить один раз и всё.
Добавлено через 2 минуты Читаем - если остаток от деления rangeBegin на 2 не равен 0 (то есть число нечетное) Добавлено через 2 минуты Да, и в программе считается сумма нечётных чисел, а не их количество.
0
|
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
21.09.2018, 10:06 | 3 |
Я думаю, что у вас "бурление" началось без попытки вдуматься и разобраться в происходящем.
0
|
0 / 3 / 0
Регистрация: 14.11.2015
Сообщений: 258
|
|
21.09.2018, 18:02 [ТС] | 4 |
Usaga, бурление . Ну почему же, в тех. моментах программы о которых я написал я разобрался. Я говорю же что как это работает понятно, не понятно почему это так работает) Почему не сделать проще? Как написал товарищ SoftIce, в программе считается сумма нечётных чисел а не их количество, но в условии к программе сказано указать кол-во чисел а не их сумму.
0
|
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
21.09.2018, 18:04 | 5 |
И так уже просто, дальше некуда.
Без разницы, что в условии. Тут сам код обсуждался.
0
|
0 / 3 / 0
Регистрация: 14.11.2015
Сообщений: 258
|
|
21.09.2018, 18:22 [ТС] | 6 |
Usaga, в этой ситуации может быть и просто, но я говорю про несовпадение логики человека с логикой компьютера, когда индексация элементов массива начинается с нуля это логично? Это не логично. Ноль это ничего, пустота, как можно значение инициализировать пустотой? Пустота это ничто, это вакуум. Люди придумали термин ноль в математических вычислениях чтобы как то обозначить эту пустоту. Люди же не будут говорить "Я имею ввиду ну это, то что не цифра, не буква и не число, ну ты понял что это", чтобы так не говорить они говорят "Я имею ввиду ноль". Я могу понять инициализацию переменной значением ноль, это значит зарезервировать область памяти но не заполнять её, переменная а = 0, переменная пустая. Она может в дальнейшем использоваться может и нет но она зарезервирована, хотелось бы понять и про индексацию массивов, почему она начинается с нуля? Массив это своеобразный комплект переменных, массив NUMB состоит из четырёх значений, их индексы: N = 0, U = 1, M = 2, B = 3. Т.е. переменная N пустая, U равна единице и т.д... Или они все пустые просто индекс это адрес по которому можно обратиться к этим переменным в массиве? Если я в чём то не прав направьте в нужное русло, это просто рассуждения в слух. В слух это важно, рассуждая про себя я не узнаю правду) А так вы расскажете где я не прав.
0
|
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
21.09.2018, 19:18 | 7 |
Только эта ситуация тут и обсуждалась.
Абсолютно логично. Стоит только узнать как формируется адрес элемента в массиве и всё сразу встанет на свои места. Ничто - мнение сформированное на эмоциях, а не на понимании ситуации.
0
|
0 / 3 / 0
Регистрация: 14.11.2015
Сообщений: 258
|
|
21.09.2018, 19:23 [ТС] | 9 |
Usaga, так объясните как правильно понимать. Как формируется адрес элемента в массиве)?
0
|
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
21.09.2018, 19:25 | 10 |
3eJIeHbIu,
адрес первого элемента + (размер элемента * индекс элемента)
0
|
0 / 3 / 0
Регистрация: 14.11.2015
Сообщений: 258
|
|
21.09.2018, 19:27 [ТС] | 11 |
Rius, была такая мысль, про смещение. Это что то вроде по типу часов? Первый час начинается с 00:00 по 01:00, нельзя сказать что первый час это метка 00:00 и всё, просто начальная метка этого часа находится по смещению ноль. Так и область памяти это не абстрактная метка ноль а с нуля до единицы, верно?
0
|
0 / 3 / 0
Регистрация: 14.11.2015
Сообщений: 258
|
|
21.09.2018, 19:33 [ТС] | 13 |
Rius, я это и имел ввиду.
0
|
0 / 3 / 0
Регистрация: 14.11.2015
Сообщений: 258
|
|
21.09.2018, 19:51 [ТС] | 15 |
Rius, хорошо, индексом начального элемента является 0, а значение этого элемента? Индекс это номер а значение у элемента есть?
0
|
0 / 3 / 0
Регистрация: 14.11.2015
Сообщений: 258
|
|
21.09.2018, 19:58 [ТС] | 17 |
Rius, нет, ткните носом пожалуйста) У меня такой принцип обучения, мне легче увидеть, понять и запомнить, память хорошая, нежели самому додумывать, искать)
0
|
0 / 3 / 0
Регистрация: 14.11.2015
Сообщений: 258
|
|
21.09.2018, 20:12 [ТС] | 19 |
Rius, так знакомый учился в мгу, программист, разработчик ПО. Читали лекцию и давали литературу, но ничего не объясняли, на вопросы не отвечали. Короче сам выучился по туториалам и книгам, хотя преподаватели кандидаты и доктора прикладных наук. Это не лень а правильное восприятие информации. Для того чтобы человек что то изучил ему нужно показать и объяснить, можно конечно и как вы предлагаете, смотреть на скриншот и постигать, но это дорога посложнее. Это та ситуация когда можно идти по дороге короче и результат будет такой же. Если не сложно объясните, в противном случае ну что ж, попробую разобраться.
Добавлено через 7 минут Rius, 0x1110(Hex) это значение?
0
|
21.09.2018, 20:32 | 20 |
Да.
0
|
21.09.2018, 20:32 | |
21.09.2018, 20:32 | |
Помогаю со студенческими работами здесь
20
Страуструп - принципы и практика программирования. Ошибки компиляции Нелогичные ошибки Нелогичные исключения Нелогичные выводы из текстов песен Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |