IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Помощь начинающему, Нужна помощь в освоении Pascal'я
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Всем доброго времени суток! Решил ознакомится со столь удивительной вещью, как Pascal! Но проблема в том, что я не знаю с чего начать! По этому, я обращаюсь к великим гуру и прошу наставить на путь истинный. Все, что касается этой темы приветствуется.
P.S: Все, что надо для начало работы я скачал, мне нужен только учебный материал.


--------------------
Пора убить в себе человека...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Большевик–концептуал
***

Группа: Пользователи
Сообщений: 188
Пол: Мужской
Реальное имя: Иван Левашев
Jabber: bu_gen@octagram.name
Skype: i.levashew
QQ: 3152538431
WeChat
Ада: Сторонник
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик
Turbo Pascal: Установлен

Репутация: -  1  +


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

Добиться на Turbo Pascal того, что нужно, тем не менее, вполне возможно.

У меня стоит в подписи английская пословица, хорошего перевода которой я не нашёл, но она примерно значит «Если хочешь добраться до вершины, нужно начинать с низов». В этом смысле некоторая польза от Turbo есть. Там очень мало синтаксического сахара, нет неявных указателей, многие угловатости реального CPU чувствуются через язык, но всё же не настолько много, как в C, где даже со строками толком не поработать поначалу.

Free Pascal и GNAT — это современные 32/64хбитные компиляторы. Для программиста наиболее заметно, что на них можно выделать большие куски памяти (Turbo Pascal может максимум выделить 65536 байт одним куском, но, правда, таких кусков может быть несколько), вплоть до Гигабайтов, хотя если много выделять, работать это хорошо не будет.

Turbo Pascal и его непосредственный преемник поднялись за счёт того, что были хорошо заточены под одну OS. И модуль Crt эту заточенность воплощает. В DOS можно было выбрать только одну кодировку, в РФ это 866ая, в одной кодировке только 256 символов. Кроме того, в DOS было 16 цветов фона и цвета символа.

Насколько мне известно, все реализации Crt тащат за собой все эти ограничения. И если для Turbo Pascal это простительно, то для современных языков программирования — нет.

Пользоваться современным компилятором — это ещё значит и учитывать особенности OS. Так, например, в консоли Windows обычно 16 цветов, но зато 65536 возможных символов, в том числе там больше символов псевдографики. А в консоли POSIX обычно 8 цветов, но зато у символов могут быть эффекты подчёркивания и/или жирности. И диапазон Unicode там полный, 17*65536, в 17 раз больше. А ещё там есть какой–то свой способ рисовать псевдографику, отличающийся от вывода юникодных символов, ведь Midnight Commander мог рисовать свои рамки хоть в КОИ–8, хоть в 1251 кодировке, хотя в этих кодировках не было псевдографики. Но если работать в Юникоде, то, возможно, нет разницы.

Кроме того, есть вариации терминалов с True Color диапазоном, то есть, миллионы цветов, но, впрочем, True Color консоль я видел и для Windows. Это сделано каким–то хаком.

По–разному в разных OS сделано изменение размеров консоли. В Windows программа имеет довольно большую власть над своим окном, может произвольно менять размеры. В Windows программа может прочитать любую область своей консоли. В POSIX программа ничего не может поделать с размерами своего окна. Но ей хотя бы сигналом уведомление приходит об изменении размеров, а в Windows, судя по тому, как это сделано в far /w, только опрашивая размеры окна по таймеру, можно узнать об изменениях. И содержимое окна в POSIX читать нельзя. Такие библиотеки, как ncurses, при запуске программы инициализируют текстовый буфер в памяти, держат его копию, и когда программа изменила текстовый буфер, сравнивают старый текстовый буфер с новым, находят отличия и выводят эти отличия на экран при помощи Escape–последовательностей. И программа может читать только из этого буфера в памяти, по–настоящему доступа к консоли нет.

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

Пользоваться современным компилятором — значит, быть готовым работать с отличиями OS.

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

И не заморачиваться сильно по поводу поддержки разных OS. Вот что имеет смысл — так это изолировать процедуры и функции, работающие с OS, в отдельные пакеты, которые для других OS можно потом переписать отдельно. Но я не думаю, что новичок сходу это корректно сделает, так что мой вариант — делать на Ada с использованием консольных WinAPI.

Либо оставаться в уютном мирке DOSBox.


--------------------
If you want to get to the top, you have to start at the bottom
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Faust VIII   Помощь начинающему   6.02.2016 12:40
Федосеев Павел   Есть хорошая книга "Песни о Паскале" - т…   6.02.2016 14:29
Faust VIII   Есть хорошая книга "Песни о Паскале" - …   6.02.2016 15:01
Faust VIII   Еще вопрос. А каким паскалем лучше пользоваться? В…   6.02.2016 17:44
OCTAGRAM   Хороший Паскаль называется Ада. На худой конец Del…   6.02.2016 18:11
Faust VIII   Хороший Паскаль называется Ада. А можно продемон…   6.02.2016 21:54
OCTAGRAM   А можно продемонстрировать хоть одну игру на этом …   7.02.2016 7:25
Федосеев Павел   Лучший пистолет - который в руке. Чем можете польз…   6.02.2016 22:57
Faust VIII   Лучший пистолет - который в руке. Чем можете поль…   6.02.2016 23:18
Faust VIII   OCTAGRAM, Где найти компилятор для ады? И где вооб…   7.02.2016 9:24
OCTAGRAM   Как правильно заметили, в шапке есть некоторая инф…   7.02.2016 13:18
Федосеев Павел   Faust VIII, выбирайте любой язык - хуже не будет. …   7.02.2016 13:40
OCTAGRAM   Использовать таски я не рекомендую без прочтения х…   7.02.2016 15:50
Faust VIII   Хмм, а теперь я совсем растерялся! Можно какое…   7.02.2016 16:41
OCTAGRAM   Среда разработки GPS для Ады написана на Аде. И та…   7.02.2016 19:25
Faust VIII   Решил помучить Паскаль. Напишу пару игр/программ, …   7.02.2016 22:31
OCTAGRAM   На pascal.net.ru разбросаны комментарии про аналог…   8.02.2016 6:32
Faust VIII   Как сделать окно вывода изображения на Паскале? Не…   8.02.2016 12:23
OCTAGRAM   Для какого из Паскалей? И если графика, то нужно г…   8.02.2016 14:22
Faust VIII   Для какого из Паскалей? турбо, просто вывести на…   8.02.2016 14:34
OCTAGRAM   Если в текстовом режиме, то через модуль Crt. Курс…   8.02.2016 18:17
Федосеев Павел   Сделаю небольшое отступление. В своём посте я прив…   8.02.2016 20:45
Faust VIII   Установи Free Pascal. http://math.ubbcluj.ro/~sb…   8.02.2016 23:28
Федосеев Павел   Если не лезть в свойства системы и не пытаться раб…   9.02.2016 0:10
OCTAGRAM   Насчёт жизненного цикла я бы не горячился. Кофейны…   9.02.2016 9:58
Faust VIII   Я все понял, но мне бы прям материал, с которым мо…   10.02.2016 20:12
OCTAGRAM   По консольным WinAPI справка на русском, например,…   11.02.2016 15:12


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.11.2019 3:00
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name