Бритуля - Богиня
Я сегодня в ударе)))


На самом деле было бы преступно закончить сегодняшний день на предыдущей лекции, потому что до сих пор все очень просто и вы заскучаете. А так как на носу Новый год и я не обещаю до этого момента продолжение, то я напишу сегодня еще одну лекцию, которая немного поднимет нас над ОЧЕНЬ тривиальным и закончу это все домашним заданием.

читать дальше

@темы: C++

Комментарии
27.12.2011 в 00:25

forever plagued with this fire inside me
Сашечка))))))))) Спасибо огромное же))))) спасибо)))!
Ты просто чудеснее чудесного)))
Мы с Катериной в восторге, правда))) будем учиться))))))
27.12.2011 в 00:52

Бритуля - Богиня
Denver_Frost, Ради вас и старался)))
Хотя на Зоне есть такие, кому идея тоже понравилась)))

Так что вроде учеников прибавилось))))

З.Ы. У вас экзамены буду принимать ЛИЧНО! :alles:
25.03.2012 в 13:54

Бритуля - Богиня
den/m/dems, Прежде всего: отлично. Но есть пару "но" (просто потому что я вредный)))) шучу. Так вот....

Заранее извиняюсь, если буду говорить очевидные вещи, но я всегда люблю "перебдеть" более, чем "недобдеть". Когда учат меня, то я обычно прошу думать обо мне, как о последнем дибиле, потому что так я защищен от момента, когда человек не объясняет, думая, что это очевидно и он боится меня обидеть, в итоге - я остаюсь в проигрыше. Я не знаю, что для тебя очевидно, а что нет, поэтому, я скажу все.

Первый код, проблема, которая бросается в глаза - переменные, во время объявления лучше обнулять, так, как ты сделала во втором варианте. Этот факт вовсе не зависим от того, как именно ты объявляешь переменные: каждую на новой строке, или через запятую.

Теперь я бы хотел остановиться на объявлении переменных. Да, действительно, язык позволяет объявлять переменные через запятую или каждую - с новой строки. Какой способ выбрать? Я поступаю так: как правило, я объявляю каждую с новой строки, за исключением тех случаев, когда у меня есть переменные, которые, по-сути, выполняют одну и туже функцию. То есть... допустим, у тебя в коде есть 2 цикла. Я бы конечно не стал сейчас цеплять циклы, так как в лекциях мы еще не дошли до них, но я знаю, что у тебя есть знания php и поэтому, понятие цикла для тебя не в новинку.

Итак: есть 2 цикла, по первому "бежит" переменная int i, а по второму - переменная int j. Это тот случай, когда я в коде объявлю их через запятую. Как отделить один случай от другого? Очень просто: представь, что тебе нужно возле каждой переменной написать комментарий, что она делает. Переменные, в которых комментарий совпадал бы - объявляй через запятую. Переменные, где это не так - каждую с новой строки. В дальнейшем, ты поймешь, что эта мелочь делает код намного более "интуитивно-понятным".

Теперь по коду: я не совсем понял, зачем ты объявила такие пары: input_from_user_pupils_on_one_desk и num_of_pupils_on_one_desk (и т.д.) если ты пользуешься первой только для того, чтобы получить с клавиатуры значение и сразу положить во вторую. Это - лишнее. можно объявить только num_of_pupils_on_one_desk и в нее получить с клавиатуры символ, без лишнего присвоения.

Возможен вариант, в котором ты хочешь проверить, а не ввел ли пользователь нелегальное значение (например - отрицательное) и только после этого присвоить его другой переменной (хоть мы еще не учили проверки, но на будущее). Тогда я бы объявил только одну переменную input и использовал бы ее во всех случаях. То есть:

cin >> input;
проверка
num_of_desk = input;
cin >> input;
проверка
num_of_pupils = input;

в таком ключе это более оправдано.

Это все мелочи, конечно, но именно из этих мелочей складывается умение программировать. В коде не должно быть лишних вещей, с одной стороны, но и салат делать не правильно - с другой. Например, у нас была переменная num_of_desk и на каком-то этапе она стала тебе не нужна. Ты подумаешь: зачем я буду обьявлять, допустим, переменную speed (содержащую скорость чего-то), если у меня есть ненужная num_of_desk? Я положу скорость в нее, чтобы не объявлять лишнюю переменную.

Это будет ошибкой, так как код становится нечитабелен. То есть, всегда нужно искать разумный компромисс. Это приходит с опытом. И именно поэтому я и обращаю внимание на эти вещи, чтобы этот опыт пришел. Сори, если я буду дотошным))))

А в целом - ты отлично справилась! Без шуток. Я радуюсь не меньше тебя, потому что твоя победа - это и моя победа. Мы вместе преследуем одни и те же цели))) Продолжай в том же духе и прости мою дотошность)))
25.03.2012 в 14:25

ToxicSpider, спасибо, Саш!
Хорошо, я все запомню-запишу. Блокнотик уже есть, где все лекции планом-конспектом).
Про присвоение имени понятно, про комментарии тоже (я в школе на бейсике делала штуки))), я помню много всякой всячины))), но тут как-то иначе.
Сокращено так тогда:
i5.pixs.ru/storage/0/9/8/3png_9602035_4370098.p...
Лучше?
Хорошо, с проверками пока не ясно, но ладно. Там выходит больше-равно нулю и прочая ерунда?
А с объяснениями - наоборот! Я люблю слушать и читать что-то, о чем человек "напротив" имеет представление в теории и на практике. Очень люблю рассказы про работу поэтому профессиональные. Поэтому только рада))
Спасибо).
25.03.2012 в 14:26

А еще! Зачем { .... } фигурные в конце и в начале? Это обозначение body?
25.03.2012 в 16:10

Бритуля - Богиня
den/m/dems, О, молодец, теперь - на все 100!

Да, скобки - это границы блока. Между скобками - тело блока. Блоки бывают разные. Об этом мы поговорим далее, а пока относись к этому как к "обязательному шаблону", не стоит пытаться бежать вперед паровоза.
То же самое касается проверок. Пока, представь, что ты не слышала от меня это слово. Но далее есть Лекция 7. Блоки и условия. if-else. Вот там мы поговорим и о блоках и об условиях, подробно, разжеванно и дотошно, то есть - в моем стиле))))

Расширенная форма

Редактировать

Подписаться на новые комментарии