LINUX.ORG.RU

TurboPascal

 , ,


1

3

Добра, ЛОР. Для учебы нужно бы заиметь ТП на личном устройстве, где, естественно, онтопик.

Реализация через эмулятор dosbox, все дела. Подскажите только, будут ли потом траблы при работе с графикой на данном языке?



Последнее исправление: KrasnoGlazik (всего исправлений: 1)

Ах да, сразу совет. Для большинства применений будет удобнее использовать для написания программ любой редактор с поддержкой подсветки Паскаля и кодировкии cp866, а DosBox оставить только компиляцию и исполнение ^):

> tpc a
> a

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

Как ни странно, в качестве редактора даже Lazarus подходит ^), вот только с cp866 у него не очень ^) но это не великая проблема. Даже большинство задач прямо в нем можно целиком и сделать ^) Итог проверить уже собрав в DosBox при помощи tpc/turbo...

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

с поддержкой подсветки Паскаля и кодировкии cp866

Э-э-э... А что не utf8? Зачем на DOS-то ориентироваться?

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

А что не utf8? Зачем на DOS-то ориентироваться?

ТС будет сдавать в DosBox под TP, там cp866 или другая однобайтная, какую настроишь. Нужно показывать, во что превратится в этом случае UTF-8 вывод

  Write('Введите количество повторов: ');
или сами догадаетесь?

Другой момент: часть учебных задач завязана на обработку строк в однобайтной кодировке. Можно и для UTF-8 сделать, но потом, по мере обретения навыков, а по первости это никак не поможет, «в лоб» не получится штатное:
const vovels=['а', 'о', 'и', 'е', 'ё', 'э', 'ы', 'у', 'ю', 'я'];

  for i:=1 to Length(s) do Inc(cnt, Ord(s[i] in vovels));

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)
Ответ на: комментарий от bormant

ТС будет сдавать в DosBox под TP

Не сдавать в DosBox под TP. Вот если про «убрать Паскаль» я не говорил, то убрать DosBox/TP - это нужно.

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

В будущем планируется написание простых граф.программок

Кем планируется? Для учёбы это не нужно. (Если сказали что нужно - беги оттуда).

Если не касаться графики и прочих dos-специфичных архаизмов, то fpc вполне годится.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от AS

убрать DosBox/TP - это нужно

Кому и зачем?
Например, на уроках труда в школьных мастерских вполне использовались учебные токарно-винторезные станки, типа ТВ-4, ТВ-6 и т.п. Ставить в школу что-то большее было бы весьма нерационально как ни посмотри.

На том этапе, о котором говорит ТС, DosBox/TP вполне достаточно. И FPC/Lazarus тоже подойдет. Но в последнем случае «техническое задание» местами может оказаться несколько не соответствующим применяемому инструменту. Справится ТС с дополнительными трудностями — хорошо, не справится — тоже хорошо, но кому-то другому :-)

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

Например, на уроках труда в школьных мастерских вполне использовались учебные токарно-винторезные станки, типа ТВ-4, ТВ-6 и т.п.

Но это говорит только о том, что «уроки труда» в школе нахрен не сдались. КМК, единственной причиной таких уроков была необходимость трудоустроить окончательно спившихся работяг, которым до пенсии ещё несколько лет, а держать на производстве нет никакой возможности.

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

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

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

Ага, но ТС заказывал TP.

PascalABC.NET — это не TP, причем в обе стороны. И если наличие того, чего в TP нет, вполне понятно, то отсутствие того, что в TP есть, способно сильно расстроить.

Чего стоит одно то, что тип Boolean не является в нем порядковым типом, то есть вообще не соответствует описанию языка паскаль:

type Boolean = (False, True);

Соответственно, оказываются недопустимы вполне обычные для языка конструкции:

const NY: array [Boolean] of String[3] = ('Нет', 'Да');

  t:=Ord(n<5);

Количество ошибок в поведении — это предмет для отдельной беседы не на один час. Поэтому вместо PascalABC.NET C# сильно лучше.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)
Ответ на: комментарий от redgremlin

это говорит только о том, что «уроки труда» в школе нахрен не сдались.

«Уроки» чего угодно действительно не нужны, нужны уроки, без кавычек. Кому-то больше повезло, кому-то меньше ^) Фор хум хау ;-)

PS. Помню в школьные годы были у нас «деревяные» и «железные» мастерские, и, что примечательно, «трудовики» подобрались в тот период (помимо профиля деятельности) «деревянный» и «железный». Так что везение в том, у кого поучиться, роль играет весьма не последнюю ;-)

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)

КрасноГлазий, ты лучше оповести в какую бурсу ты умудрился поступить?

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

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

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

Вот для повседневных Эльбрус точно пригоден. Дорого только.

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

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

есть же fpc с лазарусом для таких, если речь о паскалях. для универа профильного есть BlackBox и компонентный паскаль

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

Может за 2 года что и поменялось, но, судя по бенчмаркам, с вебом на эльбрусах не просто плохо, а вообще никак — https://habr.com/post/390099/. С видео всё тоже очень плохо, а про видео онлайн, которым пользуется 99% пользователей компьютеров, можно вообще забыть.

redgremlin ★★★★★
()

Плюсую FPC

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

Дельфи я не рассматриваю, но TP/BP для обучения всё ещё видятся идеальными. В частности, замечательна BGI. Она требует ровно трёх строк - uses и initgraph/closegraph, и можно рисовать графику. Сколько современных API так умеет?

Без многоуровневых инициализаций, окон, режимов, контекстов, выделения и освобождения всяких pen, brush, font объектов?

У меня давно была идея написать BGI-alike библиотеку с современным бэкендом типа Qt или хотя бы SDL.

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

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

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

У меня давно была идея написать BGI-alike библиотеку с современным бэкендом типа Qt или хотя бы SDL.

Скорее BGI был бэкендом.

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

У ТП есть одна трабла - error 200

Аж всплакнул — верните мой 2004-й...

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

Кому и зачем?

Например, на уроках труда в школьных мастерских вполне использовались учебные токарно-винторезные станки, типа ТВ-4, ТВ-6 и т.п. Ставить в школу что-то большее было бы весьма нерационально как ни посмотри.

На том этапе, о котором говорит ТС, DosBox/TP вполне достаточно. И FPC/Lazarus тоже подойдет. Но в последнем случае «техническое задание» местами может оказаться несколько не соответствующим применяемому инструменту. Справится ТС с дополнительными трудностями — хорошо, не справится — тоже хорошо, но кому-то другому :-)

ох-ох.. давайте тогда уж и tasm (а не fasm).. ведь Pascal - это высокоуровневый язык.. он не научит программировать!

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

давайте тогда уж и tasm (а не fasm).. ведь Pascal - это высокоуровневый язык.. он не научит программировать!

Для получения общей картины вполне достаточно и встроенного BASM. Отдельный спецкурс может использовать что угодно, причем не обязательно x86...

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

у них в ряде случаев странный подход к делу: их на форуме просили дать доступ к старым версиям, так как на олимпиадах используется определённой и не самой новой. На сайте выложена только последняя, а на запрос они ответили «у нас сейчас нет такой возможности и, вообще, мы за использование только самой последней версии». Разработка ведётся на github и почему-то у других разработчиков есть там возможность выкладывать бинарные сборки, а у них нет. То есть сами же осложняют подготовку учащихся, которые хотели бы использовать их разработку. А никакого другого позиционирования кроме обучения у разрабатываемого ими диалекта нет.

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

PascalABC

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

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

Да-да, поэтому и говорю, если вдруг зачем-то захотелось взять PascalABC.NET из-за .NET, то нужно сразу взять C# — будет больше толку и меньше разочарований.
Бег по граблям — занятие даже в некотором роде увлекательное, но, к счастью, малопродуктивное.

Или FPC/Lazarus, если захотелось из-за Pascal.

PS. Ах-да, есть же еще одна альтернатива: Эмбаркадера же этим летом наконец отдала свою среду в виде Community Edition с бесплатной лицензией на год и с обещанием последующих продлений. Правда там линукс только как целевая платформа, а не платформа разработки. Стоит ли воспользоваться - решать не мне.

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 3)
Ответ на: комментарий от redgremlin

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

Ну эльбрусы на данный момент действительно непригодны хотя бы потому, что простому пользователю их хрен продадут, да и ценник «неповседневный».

А вот про ядерную консоль могу поспорить. IBM PC, пошедший в массы и перевернувший мир персональных компьютеров, работал под DOS, которая была куда примиивнее, чем «ядерная консоль». И ничего — массы работали и радовались. Сам застал в первой половине 90-х девушек, успешно набиравших тексты в Лексиконе. И это были не какие-то вундеркинды, нормальные люди со средним уровнем — просто они не были развращены современным IT-потреблядством и воспринимали как должное, что любой инструмент надо чуток освоить перед использованием.

А если ещё и фреймбуфер добавить - можно и с графикой и даже видео было бы работать.

Нет-нет, я никого в эту консоль загонять не хочу и не собираюсь. Сейчас это уже и нереально. Просто «непригодны» — слишком сильное слово. «Непривлекательны» — другое дело.

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

у эмбаркадеры и до этого среда Starter была бесплатно доступна пару лет уже, но с кучей ограничений

неужели теперь и комьюнити эдишн есть? надо в рассылке поискать.

да, 19 июля анонсировали

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от EXL

Шёл 2050 год, в России всё ещё преподавали TurboPascal и Delphi.

Будто императивное программирование сильно изменилось с того времени. Основы примерно те же. До rust еще далеко.

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

И ничего — массы работали и радовались. Сам застал в первой половине 90-х девушек, успешно набиравших тексты в Лексиконе.


Одно дело, когда ты пишешь тексты в лексиконе и тебе приходят тексты в лексиконе, другое дело, когда тебе приходят docx и от тебя ожидают docx. 20 лет назад можно было пользоваться ДОСом в повседневной жизни, а сейчас ты даже в отпуск с ним не уедешь — сайт туроператора не работает без JS, для получения визы надо заполнить редактируемый pdf, оплата проходит через сбербанк-онлайн и т.д. И что бы там не говорили лоровские аналитики во главе с саахриктой про «не всем нужно», но обычные люди звонят по скайпу, постят фоточки в инстаграмме, сидят в одноклассниках и т.д. Нет, даже крутейшая ядерная консоль для повседневных задач непригодна.

P.S. Вот только что мне огнелис красной волнистой линией напомнил, что слово «одноклассники» я написал с одной «с». И это тоже функционал, который должен быть в современном софте.

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

Может за 2 года что и поменялось,

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

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

Не изменилось. Но, однако, почему-то в моем провинциальном универе 15 лет назад были способны преподавать на fpc под линуксом. Как же получилось, что сегодня Питерский политех не осилиляет?

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

Осиляет. Вернее - все равно ему, на чем ты пишешь. Однако такие условия: 1)все должно запускаться у преподавателя на его машине, причем делать это правильно, 2) возникающие с нетурбопаскалем траблы ты онли решаешь сам

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

Turbo Pascal хорош был под DOS и Yamaha MSX2. А на чем учить бедных студентов? На языке Си я бы не преподавал, не мучал их. По мне желателен язык без GC. Только, честно говоря, я не знаю на чем преподавать в 2018 году. Я просто ответил не неприятную реплику украинского патриота из Новосибирска.

dave ★★★★★
()
Последнее исправление: dave (всего исправлений: 1)
Ответ на: комментарий от AS

А у нас тут ARM/MIPS/E2K грядут в десктопы...

Ну-ну, я такие песни про замену x86 на десктопе слышу уже лет 25. Но за это время только наоборот - единственная еще бывшая реальной альтернатива в виде маков (Motorolla, потом PowerPC) перешла на x86.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от dave

Ну учили бы хотя бы и на Паскале, но использовали бы Free Pascal, зачем же тащить в школы и даже институты настолько устаревшую среду программирования да еще, которую практически нельзя легально заполучить, что сейчас тоже имеет значение, хотя и вряд ли Borland/Embarcadero станет возникать.

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

Тогда тебе деваться некуда. По крайней мере, тестируй в ТП, что написал, ибо FPC все же не 100% совместим. Представь себе, что это урок на умение подчиняться требованиям заказчика.

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

там ещё есть ключи компиляции старающиеся проверять совместимость с разными реализациями.

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

Без многоуровневых инициализаций, окон, режимов, контекстов, выделения и освобождения всяких pen, brush, font объектов?

У меня давно была идея написать BGI-alike библиотеку с современным бэкендом типа Qt или хотя бы SDL.

А это потому что современные GUI среды стали сложнее.

Ну вот сразу же вопрос, а где будет рисовать эта BGI-alike библиотека: в отдельном окошке графики, в отдельном fullscreen-е, в консоли (там же куда консольный вывод), в GUI-window окошке, поверх десктопного экрана или вообще в фреймбуфере? В ms-dos-ной программе же был только один вариант по-сути (ну полтора можно сказать, с некоторыми извращениями).

Второй вопрос: будет ли эта библиотека юзать аппаратное ускорение графики или нет? Функции графсреды для отрисовки или все примитивы сама рисует?

И вот уже начинаются многоуровневые инициализации...

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от grem

Я не помню, есть ли там ключи на совместимость четко с tp70, то есть, чтобы не менее, но и не более.

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

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.