Мне он не нравится, было много конфузов, компилятор глючный.
Я не часто видел что бы его в школах использовали, честно.
Сам использую консольное приложение в делфи.
Гм. А можно поинтересоваться где-он «глючный»? Не троллинга ради, просто активно им пользуюсь и не замечал. Да, есть места где настройки «по-умолчанию» не такие как в Delphi, но глюков ей-богу не видел
Bug-list на сайте freepascal.org довольно-таки большой. У меня были нелепые проблемы обработки данных (просто неверные подсчеты, которые в TP и BP были верными и совпадали с ручной проверкой).
На меня повлияли слова моего учителя, который тоже считает его «глючным», так что, не могу спорить. возможно вы и правы.
А вот у Вас в примере все строчки откомментированы, кроме первой. А вот Вы лично можете объяснить ее назначение? Подозреваю, что нет :(
Если беретесь кому-то это объяснять (а не впаривать), пожалуйста, отвечайте за каждое слово.
Я не обидеть хочу, а заставить задуматься и самосовершенствоваться. Не отрицаю, что все мы не без недостатков. Учитесь, отвечайте на чужие вопросы ( ==учите) — это один из лучших способов более глубокого понимания материала. :)
Ну, необязательный он далеко не во всех компиляторах паскаля.
Если мне не изменяет память, то он определяет точку входа в случае нескольких файлов (как main в Си). А если верить Вики, то еще и может содержать список внешних файловых дескрипторов, которыми оперирует программа.
Да, а еще оно создает подобие «пространства имен». И с program можно функции из этого файла вызывать так: program p1;
begin
p1.myfunc(239);
end.
Иногда это бывает полезным
Согласен, а то потом выходят Дельфисты, а теперь вот по статистике C#. Со всего потока у нас вышло только 3 С++ программиста. Большинство оказалось на .NET (потому что лабораторные просто было делать на Windows Forms).
Не смешно, мы занимаемся более интересными вещами и без шаблонов :-P Как раз такой подход убивает желание разбираться в глубинах, и присутствует полное непонимания работы .net как таковой. И вот только когда хорошо попресуют на собеседованиях люди начинают открывать Рихтера и ко.
Какой именно подход? Делать лабы в универе? Ну так не сомневаюсь, эти занятия вообще по большей части «для галочки», учитывая отношение к ним.
Однако это вина людей, а не платформы.
Лично я вот питаю очень нежные чувства к C#, потому что на нем можно быстро и качественно решить подавляющее большинство задач. Но если будет нужно, то не побрезгую и на плюсах нативный модуль написать, и в ассемблерном листинге поковыряться.
Именно лабы, которые в основном предусматривают написание какого-либо GUI. Вот так и получаются горе-программисты, которые весь код программы пишут в обработчиках GUI, не смотря на курсы ООП и прочего. Только лишь со временем (курсу так к 5-му) приходит понимание того как нужно делать.
Я к чему веду — чем более низкий уровень вхождения в специальность дают на первых порах, тем больше ложных навыков это дает на старте. И я придерживаюсь мнение, что начинать обучать нужно с чего-то более низкоуровневого, например дать курс ассемблера (пусть он будет в будущем никому не нужным), нежели к примеру руби (руби можно, но потом :) ).
Я например прошел путь basic -> pascal -> C#/ C++, и переориентироваться на С++ после паскаля было очень сложно.
Но да, вы правы, платформа не причем. Она отлично подходит для того круга задач, где ее используют. Виновна лишь система нашего образования, о чем и писал человек выше :)
Алгоритмизацию можно выучить и без паскаля. У нас к примеру помню был предмет такой «Алгоритмы и структуры данных». Листик, ручка и блок-схемы или Action Diagrams.
Интересно, и как вы предлагаете увидеть результаты работы своих алгоритмов?
А если алгоритм чуть сложнее выборки из массива?
А если это олимпиадные задачи?
Между прочим, большинство олимпиадников именно на паскале задачи и решают. И вырастают из них отнюдь не «делфи-программисты», как там чуть выше писали.
> как вы предлагаете увидеть результаты работы своих алгоритмов?
Я предлагаю? Мы так занимались. Считали вручную конечно же, если это надо было.
> А если алгоритм чуть сложнее выборки из массива?
Action Diagrams намного лучше себя чувствуют на больших алгоритмах, нежели блок-схемы.
> Между прочим, большинство олимпиадников именно на паскале задачи и решают.
Вы слишком категоричны :) Про делфи программеров — это пример отнюдь не про всех кстати, сам более-менее серьезно обучатся программированию начал с паскаля. Потому теперь его и не рекомендую.
Отчего же, я не категоричен, я просто хочу настоять на том, что паскаль вполне подходящий язык для обучения программированию. Я бы даже сказал среди альтернатив (которых по сути две — бейсик/си, если не рассматривать скриптовые языки) он наиболее подходящий вариант.
Проблема Паскаля в том, что он является классическим примером строго типизированного императива, что, при изучении программирования как такового, напрочь убивает любые альтернативные парадигмы.
Можно, но вы не сможете показать на чистом Паскале концепцию функционального программирования, метапрограммирование, прототипное программирование, duck typing, tail recursion и еще вагон всяческих фишечек.
А я все-таки более склонен думать, что С — более подходящий язык, потому как очень простой (в отличии от С++), но не ограничивает мышление (возможны всякие трюки, с теми же указателями).
Я тут не буду спорить. Тут же играет роль, как человека учат. Если взять все попавшиеся мне книги про Паскаль — нигде об указателях особо не было информации. Ни где использовать — ничего. Также учат и людей в университете. Да и вообще, судя по конструкциям языка, как раз и складывается впечатление, что указатели туда добавили намного позже.
Не знаю, где вас учили и какие книги вам попадались, но про указатели в Паскале я знал класса с 8го, и про них же было написано во всех книгах.
Иначе каким образом вы собирались поместится в 64 килобайта сегмента данных, ну еще плюс/минус стек?
Указатель в Паскале — чужеродный элемент. По сути это trick, который ввели для достижения компромиса между строгой типизацией, процедурным стилем и возможностью писать меньше повторяющегося кода для обработки данных.
Школа, школа, я скучаю :)
Как сейчас помню — ClrScr был жутко тормозным, поэтому чистил экран прямо в памяти видеокарты :)
Ух, как же ж давно это было.
Поправочка: ClrScr чистил память через функции прерывания INT 10h, поэтому и был тормознутым. Прямая адресация видеопамяти на тот момент была самым шустрым способом отобразить что-либо на экране. ;-)
Оппа, неправильно прочитал вашу фразу) Показалось, что написано мол «ClrScr был тормозным, потому что писал напрямую в видео память». Спать. Спать. Power Off.
То что я 6 лет назад начал изучать программирование с паскаля (точнее с дельфи) чуть не отбило во мне желание вообще учится чему-то в этом направлении. Слава богу, что я решил самостоятельно изучать другие языки.
Вообще, я не могу точно сказать, с какого языка лучше начинать обучение, но ведь само по себе программирование не зависит от языка, его можно изучать хоть на примере PHP (хотя утиная типизация и мешает пониманию многих вещей).
Но дельфи в этом плане — худшее решение. Он далеко прост, многие вещи в нем сделаны нелогично, ну и конечно просто невероятная избыточность кода в исходниках даже очень маленьких программ. Кроме того, по моему мнению, дельфи — неактуален.
Ностальгия… Спасибо автору, +.
Мне интересно когда вам начинали преподавать курс паскаля вам объясняли почему?
С какой целью выбран именно данный язык, для постижения «основ»?
Помню когда-то в школе когда нам попытались начать преподавать программирование на основе dos/консольных приложения я своему преподавателю очень доходчиво объяснил почему на данный момент я со знаниями pascal и тд не буду востребован как специалист. Что на данный момент подобные практики скорей отобьют мое желание в дальнейшем заниматься программированием…
кстати, отменный отечественный проект «современного» паскаля: pascalabc.net/
удобная ИДЕ, современные синтаксические плюхи, русскоязычная справка.
в общем — все что нужно для изучения паскаля в школах.
Pascal, чайная ложка №0