LINUX.ORG.RU

:)))))))))))

У меня одноклассник как-то использовал goto из функций в main...

shuthdar ★★★
()
Ответ на: комментарий от anonymous_incognito

да так, нашел иллюстрацию метода одного... :)

uj2 ★★★
() автор топика

Убей луче систему "образования" у которой несмотря на медленное, но верное приближение второй половины 21го века, в учебных планах курсов программирования _в_лучем_случае_ трупопасцаль под дос :(. Под лисп всехнахЪ, инше хаскель какой-нибудь! В хаскеле есь гото?

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

в хаскеле вообще ничего такого нет, один полет мысли

enormous
()
Ответ на: комментарий от bugmaker

Паскакаль на самом деле хороший язык для _обучения_ программированию (я тоже с него начинал), хоть сейчас его и полностью забыл (вовремя свалил на си). Хотя лучше было б начинать с Modula-2 ;)
А можно было б и хаскель... думаю в те времена он был бы мне понятнее...

W98
()

Анекдот такой был.
Препод говорит студенту, что, мол, у тебя за имена переменных в программе - N1, N2, N3... Имена должны быть длинные, мнемонические!

На следующем занятии студент показывает программу:
ДЛИННЫЙ_МНЕМОНИЧЕСКИЙ_ИДЕНТИФИКАТОР_НОМЕР_1 = 0;
ДЛИННЫЙ_МНЕМОНИЧЕСКИЙ_ИДЕНТИФИКАТОР_НОМЕР_2 = 0;
ДЛИННЫЙ_МНЕМОНИЧЕСКИЙ_ИДЕНТИФИКАТОР_НОМЕР_3 = 0;

anonymous
()
Ответ на: комментарий от anonymous

Это зачёт! Я вот не могу понять, почему у нас почти не один препод не заставляет студентов выбирать нормальные названия переменных. Вместо этого говорят, чтоб комментарии писали что-чё значит. ууу нинавижу...

Хотя я конечно предпологаю почему у них нет волшебной кнопочки M-/

CrazyPit ★★★
()
Ответ на: комментарий от CrazyPit

Хотя я конечно предпологаю почему: у них нет волшебной кнопочки M-/

CrazyPit ★★★
()
Ответ на: комментарий от CrazyPit

> Вместо этого говорят, чтоб комментарии писали что-чё значит.

ну мне, допустим, так удобней некоторые методы реализовывать... Т.е. ты в мат. модели используешь всякие m и n и иже с ним, и для униформности такие же имена юзаешь и в коде. + комменты, какая буква что обозначает, чтобы в случае утери мат. модели не пришлось бочку пива покупать "на разобрацца"...

uj2 ★★★
() автор топика
Ответ на: комментарий от uj2

Тогда уж и мат модель с вменяимыми именами составляй. Я стараюсь делать, так потомучто память дырявая, часто путаешь, где м где н, хотябы трёхбуквенные имена пытаюсь делать, если на бумажке пишу.

CrazyPit ★★★
()
Ответ на: комментарий от W98

> Паскакаль на самом деле хороший язык для _обучения_ программированию

Паскаль самый ужастный язык для _обучения_ программированию: в нём введены лишние сущности, с целью упростить но на самом деле всё усложняющие. Например, работа с файлами. Везде open, а в нём почему-то assign, и затем всякие reset, append, и другое. Зачем язык должен громоздить такие большие формальные отличия в принципиально одинаковых действиях? Или замысловатое форматирование вывода типа write (x:5:2);. Я смогу сделать функцию, умеющую принимать параметры в такой форме средствами паскаля? Как? Как тогда объяснять обучаемым, как эта функция работает изнутри??? Презабавные правила, когда нужен ;, а когда мешает. Странно завуалированное различие в передаче параметра по ссылке и по значению. В трупопаскале ещё и полное игнорирование стандартного процесса линковки. Это, и многое другое, навязывает некоторые "догмы", которые сильно мешают обучению другим языкам и наречиям. Нет уж, следует отличать обучение системному и прикладному программированиям. Для одного луче с всёодно ништо нету, а для другого выбор велик весьма, и самый скверный - именно пасцаль.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

по-моему, для обучения лучше схема в виде mit-scheme... Минимальный синтаксис и окружение заставят учеников выражать в коде свои мысли, а не заморачиваться на синтаксисе и окружении до поры до времени...

uj2 ★★★
() автор топика
Ответ на: комментарий от W98

Паскакаль сосёт.

Народ, чего вы спорите, жизнь уже давно доказала что для обучения самое лучшее это Бейсик. А от ваших лиспов у детей крыша поедет.

anonymous
()
Ответ на: комментарий от anonymous

>Анекдот такой был.

Прямо я в молодости =) Почти один в один ситуация была =))))

kaktyc ★★★★
()
Ответ на: комментарий от kaktyc

учи их чусекскому, всё больше в жизни пригодится.

anonymous
()
Ответ на: комментарий от kaktyc

Не мучай дитишек, сцуко! Садист :E

anonymous
()
Ответ на: комментарий от Selecter

В принципе, для основ алгоритмизации ничего, кроме русского языка, и не надо. Будут алгоритмы шлепать на псевдокоде. А потом уже можно переходить к реализациям на конкретных языках программирования.

Главное не язык, а мысли, им выражаемые.

kaktyc ★★★★
()
Ответ на: комментарий от kaktyc

http://www.squeakland.org/ - вот так в принципе
и надо начинать учить..
Хорошая, простая, красивая вещь, 
элементарно понятная для самых мелких детишек
и одновременно востребованная банками и биржами..
Плюс к этому - язык которому тихо завидует java.

MKuznetsov ★★★★★
()
Ответ на: комментарий от stassats

Intercal TRUEЪ!

Из http://www.ofb.net/~jlm/intercal.html:

Yes, this is it, the ROT-13 program I wrote in INTERCAL because I couldn't get my Pascal to compile on Unix and I didn't know C yet. It's been described on alt.folklore.computers as "4 pages of completely indecipherable code".

bugmaker ★★★★☆
()
Ответ на: комментарий от kaktyc

Попробуй Unlambda, ибо если есть тень, должен быть свет, породивший ея.

bugmaker ★★★★☆
()
Ответ на: комментарий от anonymous

> для обучения самое лучшее это Бейсик. А от ваших лиспов у детей крыша поедет.

Детей в студию. С поехавшей от лиспа крышей - отдельно, с вернувшейся на место от бейсика - отдельно.

bugmaker ★★★★☆
()
Ответ на: комментарий от kaktyc

Все правильно, человек должен в первую очередь выражать алгоритм на
родном языке. Даже псевдокод не нужен. А кодить нужно учить отдельно,
задав четкие спецификации, оставив совсем немного для фантазии.

grob ★★★★★
()
Ответ на: комментарий от grob

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

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

Если человек не может объяснить четко и ясно, как работает алгоритм, он
и не сможет написать нормальный код к нему. Кроме того, как правило
разработка ведется не в "одно рыло" и умение объяснить и документировать
алгоритм/код очень важно. Два зайца.

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

grob ★★★★★
()
Ответ на: комментарий от grob

А потом сменить лишь одну маленькую фишку в работе этого кода... Эх...

shimon ★★★★★
()
Ответ на: комментарий от Selecter

> Для жизни нужен русский, английский. Остальное в топку!

Вызывающе неверная информация

s/англи/кита/

anonymous
()
Ответ на: комментарий от grob

Это было бы правильно, если бы меж человечьим языком и языком программирование не было бы принципиальной разницы. На деле, любой язык наиболее чётко выражает некоторую предметную область, выразить которую на другом в принципе возможно, но весьма проблематично. Почитай например Ю. Цезаря в оригинале и обрати внимание, как в сравнительно простом и логичном латинском наречии выражается направление и стороны света. Також и тут: человек может именно объяснить, как работает алгоритм другому человеку, но без должного изучения языка программирования не в состоянии будет объяснить его же компу. Потому что объяснения суть разные.

> чтобы выразить свои мысли на "неродном" языке.

Такое возможно только в случае, если человек плохо понимает предметную область, охватываемую языком описания кода, а значит и языком программирования. А хороший для обучения язык программирования должен помочь освоиться с ней, но не заметать пыль под ковёр, подобно пасцалю.

bugmaker ★★★★☆
()
Ответ на: комментарий от Selecter

Про фтопку согласный, только вот русский и английский-то зачем?

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

>Почитай например Ю. Цезаря в оригинале и

+1 я всегда говорил линуксоиды - многосторонние люди.им голого Дос'a всегда было мало

record ★★★★★
()

Неужто все забыли про Великий и Всемогущий ASM?????

Вот с чего надо начинать! А потом тебе и Си и хаскель и все что душе угодно....

gh0stwizard ★★★★★
()
Ответ на: комментарий от anonymousI

>А почему уж тогда сразу не в двоичном коде на перфокартах?

Не стоит сравнивать лошадь с пони. Ассемблер язык машины => неограниченные (конечно ограниченные в полном понимании, но только возможностями конфигурации компьютера) возможности (думаю это не надо разжевывать).

gh0stwizard ★★★★★
()
Ответ на: комментарий от Selecter

Забыл еще упомянуть родной... :-(

anonymous
()
Ответ на: комментарий от gh0stwizard

Здрасте, я ваша тётя! Ассемблер всего-лишь мнемоническая репрезентация машинного языка, того самого двоичного кода кстати.

На вот просвятись лучше:

http://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%B0%D1%81%D1%81%D0%B...

http://en.wikipedia.org/wiki/Assembler

anonymousI
()
Ответ на: комментарий от gh0stwizard

>(думаю это не надо разжевывать).

А ты всё-таки ражжуй, что принципиально низя сделать на с, но можно на асм? Ну, кроме некоторого уменьшения размера бинарников _на_прстых_алгоритмах_ и намного большей вероятности появления жутких с превеликим трудом изловимых багов?

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

> А ты всё-таки ражжуй, что принципиально низя сделать на с, но можно на асм?
1) самомодифицирующийся код
2) вызов функции, принимающей параметры нестандартным образом (в регистрах например)
3) код бут-сектора
...да мало ли еще чего

anonymous
()
Ответ на: комментарий от anonymous

Вы очень много и упорно лжете, деточка. Слив защщитан.

Nuke
()
Ответ на: комментарий от anonymous

> 1) самомодифицирующийся код 

Лехко: 

int a () {
        return 2;
}

int b () {
        return 3;
}

int main (int argc, char * argv []) {
        int (* z) ();

        z = a;
        printf ("%i\n", z ());
        z = b;
        printf ("%i\n", z ());

        return 0;
}

токмо ЗАЧЕМ???

> 2) вызов функции, принимающей параметры нестандартным образом 
>(в регистрах например) 

Лехко, есь библиотеки под разные платформы с функциями таковой 
надобности и возможнось ассембленых вставок и даже 
"расширения" для некоторых реализаций, которые нахъ ибо
ломают совместимось и кроссплатворменнось. 
Посему фтопку таковые функции.

> 3) код бут-сектора 

Причём тут вообще с или асм? open ("/dev/hda", O_LARGEFILE) итд итп.
Ты правда думаеш что всякое fdisk на асме писано???

> ...да мало ли еще чего

Ну видать мало, если ничё путного в пример не привёл.

bugmaker ★★★★☆
()
Ответ на: комментарий от bugmaker

> Лехко: 
>
> int a () {
поскипано.
Мда... Ты не знаешь что такое самомодифицирующийся код.

> Лехко, есь библиотеки под разные платформы с функциями таковой 
> надобности и возможнось ассембленых вставок и даже 
               ^^^^^^^^^^^^^^^^^^^^^
вот ты говоришь "возможнось ассембленых". Т.е. ты согласен, что без ассемблера здесь никак? О чем тогла спор?

> Причём тут вообще с или асм? open ("/dev/hda", O_LARGEFILE) итд итп.
> Ты правда думаеш что всякое fdisk на асме писано???

Ты не понял. Я говорил про тот код, который лежит в бут-секторе. Которому BIOS передает управлние после POST.

anonymous
()
Ответ на: комментарий от anonymous

> Ты не знаешь что такое самомодифицирующийся код.

Ну так объясни. Заодно зачем оный нужен. Вот в лиспе, это да...

> Т.е. ты согласен, что без ассемблера здесь никак?

Я же тамо ещё нескко вариантов укозал, а ты так и не прояснил, для чё оно собственно.

> Я говорил про тот код, который лежит в бут-секторе.

Это просто из-за физических ограничений на размер его там юзают. Обоснуй _принципиальную_ невозможность использовать тамо прогу на с.

bugmaker ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.