Обучение программированию в ВУЗах
Наболело, открываю подобную тему. Больше крик души, нежели серьёзное обсуждение.
В современных ВУЗах программированию учат как науке, а не как искусству. И это очень плохо. На выходе получаются "машины", которые могут составить любую программу, не задумываясь о красоте или элегантности кода. Сейчас обучаю группу по С++ - все студенты различных ВУЗов, все знакомы с языком. Проблема в том, что люди абсолютно не учат алгоритмов. Мало того, студентов не учат думать над решением - любая программа начинается не с нажатия клавиш на клавиатуре, а рождается в голове. Этого, к сожалению в ВУЗах нет. Простая задача: Вывести на экран все чётные числа от 1 до 1000, которые являются квадратами. Народ довольно бодро начал набивать код: Код:
... Код:
for (i=2;i<=14;i++) Компьютер просит ввести число, пользователь вводит. Компьютер проверяет, если оно одновременно делится на 3 и на 2, выводит какую-либо строку на экран. Снова начинается тихий ужас: Код:
int a; bool d,e; Исходя из написанного - нужно что-то делать с учебными программами в ВУЗах, чтобы обучали не только языкам программирования, но и логике и красоте составления программ. PS. Ну и для затравки задача (просьба реализовать на любом языке): Пользователь вводит число. Если оно оканчивается на 2 или на 7, компьютер выводит строку "Вам повезло" |
Берем остаток от деления на 10, или есть еще более оптимальное решение?
|
Цитата:
|
Герман пустил народ по ложному следу своими примерами.
А на самом деле переводим число в строку (string)... Последний элемент в этой строке будет под номером = (длина строки минус 1). Дальше, думаю, понятно). P.S: Герман, попроси студентов назвать имя функции (любой язык), что превращает число в противоположное. По необъяснимой причине большинство пытается эту функцию найти. Меньшинство же просто умножает число на "минус 1" (и поступает верно) |
прибавляем к числу 8 и проверяем целочисленное деление на 5 ..
p.s. быть может это еще одна из моих шуток? |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
И, к слову, о наболевшем - конечному пользователю, абсолютно пофик на красоту кода и оптимальность алгоритмов. Ему главное - чтоб покрасявше, и "а я вот тут в 1С такую прикольную штуку видел, а можно у нас её тоже сделать, это-ж не сложно, правда?" Цитата:
UPD. А можно, еще, не пускать за компьютер, пока на листочне блок-схему не нарисуют. |
Цитата:
Насчёт 900 (30^2) и 4 (2^2) - мой баг, писал вечером, уставший. Правильнее будет. Код:
for (i=1;i<=15;i++) |
Цитата:
|
Текущее время: 23:08. Часовой пояс GMT +5. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
OOO «Единый интегратор UZINFOCOM»