
Другие языки программирования и технологии
Почему паскаль все еще преподают?
Помогал товарищу, словил вот это


Хорошо что не BASIC.
Ты ещё Go (вполне модный язык) не видел - там типизация куда жёстче, чем в Pascal. И это позволяет выявлять многие ошибки в логике программы на стадии компиляции.
А в Pascal всё очень просто: хочешь, чтобы этой ошибки не было - явно создай (в блоке type) именованный тип array [1..10] of integer и объявляй переменные / формальные параметры этого типа.
Но когда ты пишешь array [1..10] of integer непосредственно в объявлении переменной или параметра, то каждый раз неявно создаёшь новый безымянный тип, которому принадлежит эта переменная / параметр. А значения разных составных типов нельзя присваивать друг другу.
А в Pascal всё очень просто: хочешь, чтобы этой ошибки не было - явно создай (в блоке type) именованный тип array [1..10] of integer и объявляй переменные / формальные параметры этого типа.
Но когда ты пишешь array [1..10] of integer непосредственно в объявлении переменной или параметра, то каждый раз неявно создаёшь новый безымянный тип, которому принадлежит эта переменная / параметр. А значения разных составных типов нельзя присваивать друг другу.
Потому что это очень хороший язык для знакомства с началами программирования. Специально для этого и был придуман.
А насчет преобразования типов - потому что в Паскале принята именная идентичность типов. Одинаковыми считаются типы с одинаковым именем, а не одинаковой структурой.
А насчет преобразования типов - потому что в Паскале принята именная идентичность типов. Одинаковыми считаются типы с одинаковым именем, а не одинаковой структурой.
Хороший вопрос.
Наверное, действительно пора заменять Pascal на что-то более тупое и модненькое, типа Python или Go... или вообще убрать программирование из списка обязательных дисциплин (как в США). А то ведь все равно, из сотни школьников/студентов, не более десятка могут понять, чему их учат - так пусть основная биомасса хоть не страдает бессмысленно.
Наверное, действительно пора заменять Pascal на что-то более тупое и модненькое, типа Python или Go... или вообще убрать программирование из списка обязательных дисциплин (как в США). А то ведь все равно, из сотни школьников/студентов, не более десятка могут понять, чему их учат - так пусть основная биомасса хоть не страдает бессмысленно.
Schtefan Hikmatullah
Паскаль он конченый, но такой настольгический.
Это был и есть язык для обучения основам программирования. А преобразовываются только стандартные типы. И то не всегда.
Олег Нуреев
так там и преобразовывать же нечего) он одно в то же самое пытается преобразовать.
Левон Арутюнян
Скажите это компилятору :-(
Это загадка века. Хотя на самом деле просто учителям не хочется методички 1973 года переделывать, в приципе как было три типа циклов так и осталось, так что они не зря зарплату получают
Такая ошибка случается, если один из них объявлен как type. И это совершенно закономерно - в паскале строгий контроль соответствия типов, без неявных преобразований.
Преподают потому что удобен для обучения: не позволяет заглядывать в дуло. Как это часто бывает с си. Раз ты сам указал, что это различные типы - очень странно возмущаться, что компилятор выполняет твои указания и не дает их смешать.
Преподают потому что удобен для обучения: не позволяет заглядывать в дуло. Как это часто бывает с си. Раз ты сам указал, что это различные типы - очень странно возмущаться, что компилятор выполняет твои указания и не дает их смешать.
Олег Нуреев
думаю куда лучше было бы не грузить школьцов всей этой строгой структурой, сверхстрогой типизацией и прочим. Какой-нибудь питон ну или уж скретч очень прост для понимания на базовом уровне, а дальше уже можно и добавлять
Всё нормально преобразовывается, если нормально писáть! Вот пример :
Type tip=array [1..10] of integer; var a,b: tip; i: integer; begin for i:=10 downto 1 do a[i]:=i; for i:=1 to 10 begin b[i]:=a[i]; writeln(i:2,b[i]:3] end end.
Куда и что тут не преобразовывается ?
А насчёт изучения Pascal'я: он же фактически существует в куче диалектов, версий и конкретных реализаций. Главные диалекты - turbo, gnu, free, delphi и abc(.net) - имеют между собой большИе отличия. А oberon (то есть компонентный паскаль) - это, короче, паскаль или что? Про версии и конкретные реализации я вообще помалкиваю: есть такие дурацкие самоделки под разные платформы, в которых не работают ни record'ы, ни set'ы и ни файлы. Кто же такую дрянь лепит? Не знаю, но почему-то всегда находятся такие "народные умельцы".
У меня лично в паскале (причём на нормальных версиях, а не на дурацких !) не работали такие конструкции как, например, функции и процедуры в виде параметров других функций и процедур и я ничего не мог с этим поделать, так что приходилось вообще отказываться от функций в виде параметров. Да разве есть такие проблемы в си, плюсах, шарпе или в пайтоне? Вон как, скажем, в пайтоне легко вычисляется одномерный определённый интеграл:
def simp(f,a,b,n):
~~h=(b-a)/n; hp=h/2; s1,s2=f(b-hp),0
~~for i in range(1,n):
~~~~x=a+i*h; s1+=f(x-hp); s2+=f(x)
~~return (f(a)+f(b)+4*s1+2*s2)*h/6
И никаких проблем !
В общем, есть сомнения в паскале как в едином алгоритмическом языке. Есть и сомнения в применении его как учебного средства для обучения началам программирования - от этого никуда не деться !..
Type tip=array [1..10] of integer; var a,b: tip; i: integer; begin for i:=10 downto 1 do a[i]:=i; for i:=1 to 10 begin b[i]:=a[i]; writeln(i:2,b[i]:3] end end.
Куда и что тут не преобразовывается ?
А насчёт изучения Pascal'я: он же фактически существует в куче диалектов, версий и конкретных реализаций. Главные диалекты - turbo, gnu, free, delphi и abc(.net) - имеют между собой большИе отличия. А oberon (то есть компонентный паскаль) - это, короче, паскаль или что? Про версии и конкретные реализации я вообще помалкиваю: есть такие дурацкие самоделки под разные платформы, в которых не работают ни record'ы, ни set'ы и ни файлы. Кто же такую дрянь лепит? Не знаю, но почему-то всегда находятся такие "народные умельцы".
У меня лично в паскале (причём на нормальных версиях, а не на дурацких !) не работали такие конструкции как, например, функции и процедуры в виде параметров других функций и процедур и я ничего не мог с этим поделать, так что приходилось вообще отказываться от функций в виде параметров. Да разве есть такие проблемы в си, плюсах, шарпе или в пайтоне? Вон как, скажем, в пайтоне легко вычисляется одномерный определённый интеграл:
def simp(f,a,b,n):
~~h=(b-a)/n; hp=h/2; s1,s2=f(b-hp),0
~~for i in range(1,n):
~~~~x=a+i*h; s1+=f(x-hp); s2+=f(x)
~~return (f(a)+f(b)+4*s1+2*s2)*h/6
И никаких проблем !
В общем, есть сомнения в паскале как в едином алгоритмическом языке. Есть и сомнения в применении его как учебного средства для обучения началам программирования - от этого никуда не деться !..
Я считаю, что програму образования не меняют хрен его знает с какого года поэтому и преподают
Похожие вопросы
- Подскажите почему Паскаль не делает нужного расчета и выводит на экран просто S вместо его значения? Как это исправить?
- а вот зачем в универах и технорях преподают паскаль, а не си или си ++ или жабу туже
- ЗАЧЕМ ПРЕПОДАЮТ ПАСКАЛЬ В ИНСТИТУТЕ? ГДЕ ОН ПОТОМ ПОНАДОБИТЬСЯ?
- Почему постоянно люди говорят "на Паскале ничего нормального написать нельзя", "паскаль - дерьмо"
- Аналог ассоциативного массива в Паскале.
- Я внутри написал, что я знаю про паскаль не то что решать и все такое а так теоретический в общем, смысл проги, я прав?
- ПАСКАЛЬ и ГРАФИКА
- Товарищи программисты на Delphi и Pascal помогите девушке!!!)) вопрос глупый..насчет паскаля..
- Проблема с оператором random в паскале
- С++, блин, легче Паскаля.