|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.03.2013, 18:09 | #31 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Также. В этих двух сообщениях есть несколько настоятельных рекомендаций, выделенных жирным шрифтом. Три штуки. Процитируйте их и ответьте, соблюдаются ли они в Вашем коде. |
|
01.03.2013, 18:16 | #32 |
Форумчанин
Регистрация: 13.02.2013
Сообщений: 221
|
Инициализация. i=81
Проверка условия. i<=130 Тело цикла. true Действие в конце итерации. i=i++ Проверка условия. i+=2 Тело цикла. i=132 |
01.03.2013, 18:21 | #33 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Что-то Вы запутались вконец. Я спрашиваю про значения i. Вот после проверки условия, чему равно i (подсказка: оно вообще изменится?)? А после выполнения тела цикла?
И НЕТ, после выполнения тела цикла второй раз i не будет равно 132. Нельзя осмысленно писать программы, если Вы не понимаете, почему они работают. Не на уровне магического мышления "если прибавлять 2, получится 132 - значит, если прибавлять 1, получится 131", а на уровне жёсткой логики, распознавая и безжалостно отсекая ложные логические переходы, даже если они приводят к правильным результатам. Иначе всё, чего есть шанс добиться - случайно получить программу, которая, кажется, в некоторых случаях работает так как надо. |
01.03.2013, 18:28 | #34 |
Форумчанин
Регистрация: 13.02.2013
Сообщений: 221
|
в чем же тогда моя проблема не понимания? В чем я запуталась? Я даже запуталась в том, в чем запуталась
|
01.03.2013, 18:45 | #35 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Тогда как на самом деле язык программирования - это язык выражения мыслей в строгой, понятной компилятору форме. В нём нет места "волшебным" зависимостям, в нём нет места примерному пониманию - это искусственный язык, специально созданный таким образом, чтобы в нём нельзя было выражаться расплывчато. Слова "мне нужно такое число, которое делится на 17, 53 и кончается на 8 в десятичной записи" могут быть переведены на C++. Слова "мне нужно решить задание, в котором что-то там надо вывести и поделить на тринадцать" не могут быть переведены на C++, и это совершенно намеренный шаг со стороны его авторов. Языки программирования вообще не прощают нечёткости или нелогичности мышления. Если мне позволено давать советы, возможно, Вам стоит прочитать какую-нибудь книгу по формальной логике. В духе вот таких тестов. К сожалению, хороших книг с низким "порогом вхождения" лично я не знаю. Но ещё раз и с чуть другой стороны. Три правила из моего сообщения. Процитируйте и скажите, выполняются ли они в Вашем коде. |
|
01.03.2013, 18:53 | #36 |
Форумчанин
Регистрация: 13.02.2013
Сообщений: 221
|
Инициализация i=81, не выполняется, потому что выводится на экран только i=132
Условие i<=130, выполняется. Инкремент i++, выполняется... В теле сперва ничего не происходит, а потом происходит i+=2 |
01.03.2013, 18:56 | #37 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
01.03.2013, 19:02 | #38 |
Форумчанин
Регистрация: 13.02.2013
Сообщений: 221
|
Но. Компилятор определяет, что является телом цикла, посредством чтения кода, а не мыслей программиста. Поэтому, если за for() следует не открывающая скобка операторного блока {, телом цикла считается ровно одна инструкция, до первой ;.( поэтому мой код считал только одну инструкцию до первой
Всегда, если нет очень веских причин для иного, при объявлении переменной присваивайте ей какое-нибудь значение. ( Мы ведь присвоили переменной значение = 81) Если для иного нет очевидных причин, не меняйте значения переменной цикла в теле этого цикла. ( вот тут не понятно) |
01.03.2013, 19:43 | #39 |
Форумчанин
Регистрация: 13.02.2013
Сообщений: 221
|
когда я проделала вот такой вариант кода, на экран вышло - 133
Код:
Код:
Последний раз редактировалось Diana528; 01.03.2013 в 19:48. |
01.03.2013, 19:56 | #40 |
МегаМодератор
СуперМодератор
Регистрация: 27.11.2012
Сообщений: 5,678
|
По-хорошему, делается так:
http://ru.wikipedia.org/wiki/Арифметическая_прогрессия Смотрите сумма первых членов арифметической прогрессии P.S.Смотрел только посты #1 и #38 (но не читал их).
Благими намерениями устлана дорога на programmersforum.ru
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
найти сумму всех нечетных чисел в диапазоне от 42 до 73. | mkerimkulov | Общие вопросы C/C++ | 11 | 29.09.2012 11:09 |
список всех четырехзначных нечетных чисел, делящихся без остатка на сумму своих цифр. | Kami-sama | Общие вопросы C/C++ | 2 | 12.11.2010 17:07 |
Посчитать сумму всех целых чисел в этом диапазоне | LION7777 | Фриланс | 14 | 15.06.2010 00:16 |
программа с использованием подпрограмм, создаёт односвязный список и вычисляет сумму положительных чисел | LOVELY | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 13.12.2008 01:27 |