что можно программировать на паскале
Что можно программировать на паскале
Эта программа на подобие PAINT.
procedure keydown(key: integer);
begin
if key=Vk_up then S:=S+1;
if key=Vk_down then S:=S-1;
if key=Vk_left then A:=A-1;
if key=Vk_right then A:=A+1;
if A=0 then A:=A+1;
if A=11 then A:=A-1;
if S=0 then S:=S+1;
if S=10 then S:=S-1;
end;
procedure MouseDown(x,y,mb: integer);
begin
MoveTo(x,y);
end;
procedure MouseMove(x,y,mb: integer);
begin
if S=1 then begin setbrushcolor(clwhite); circle(7,7,12); setpencolor(clblack); setbrushcolor(clblack); circle(7,7,A); end;
if S=2 then begin setbrushcolor(clwhite); circle(7,7,12); setpencolor(clgreen); setbrushcolor(clgreen); circle(7,7,A); end;
if S=3 then begin setbrushcolor(clwhite); circle(7,7,12); setpencolor(clred); setbrushcolor(clred); circle(7,7,A); end;
if S=4 then begin setbrushcolor(clwhite); circle(7,7,12); setpencolor(clblue); setbrushcolor(clblue); circle(7,7,A); end;
if S=5 then begin setbrushcolor(clwhite); circle(7,7,12); setpencolor(clyellow); setbrushcolor(clyellow); circle(7,7,A); end;
if S=6 then begin setbrushcolor(clwhite); circle(7,7,12); setpencolor(clbrown); setbrushcolor(clbrown); circle(7,7,A); end;
if S=7 then begin setbrushcolor(clwhite); circle(7,7,12); setpencolor(clsilver); setbrushcolor(clsilver); circle(7,7,A); end;
if S=8 then begin setbrushcolor(clwhite); circle(7,7,12); setpencolor(clpurple); setbrushcolor(clpurple); circle(7,7,A); end;
if S=9 then begin setbrushcolor(clwhite); circle(7,7,12); setpencolor(cllime); setbrushcolor(cllime); circle(7,7,A); end;
if mb=1 then circle(X,Y,A);
setbrushcolor(clwhite);
setpencolor(clwhite);
if mb=2 then circle(X,Y,A);
end;
begin
gotoxy(1,2);
write(‘меняйте цвет стрелками на клавиатуре вверх и вниз. стирать пкм, рисовать лкм.’);
gotoxy(5,1);
write(‘менять размер кисти стрелками влево и вправо.’);
Onkeydown:=keyDown;
OnMouseDown:=MouseDown;
OnMouseMove:=MouseMove
end.
Почему в школе до сих пор изучают Pascal
Паскаль. Турбо Паскаль!
Часто в разговорах со школьниками и их родителями можно услышать, что на информатике они «до сих пор изучают Pascal, страну развалили, не могут современные компьютеры поставить!». Говорят, что в 21-м веке можно было бы изучать в школе уже что-то другое — Python или тот же JavaScript, но во многих школах, особенно в регионах, до сих пор преподают этот язык.
Но постойте. Не отменяя, что многим российским школам не повредит обновление парка компьютеров, давайте посмотрим, чем хорош сам Паскаль.
Олды тут?
Он действительно простой
Pascal — предельно простой и понятный язык. В нём нет сложных конструкций, перегрузок операторов или неявного приведения типов. Достаточно выучить 15 команд, и вы уже сможете решить большинство школьных задач.
Программы на Pascal легко читать и понимать, даже если вы видите этот язык первый раз. Смотрите сами:
Компилятор — наш друг
Pascal — компилируемый язык, как и многие другие. В нашем случае компилятор перед тем как собрать программу проверяет исходный код на ошибки. Единственное, он не предупреждает, если вы объявили переменную, но ни разу её не использовали, как это делает, например, С++. Но если компилятор встретит ошибку, он сразу поставит курсор на место ошибки и сверху на красном фоне напишет, что конкретно ему не нравится в этом коде.
Ошибка несоответствия типов: программист пытается в целочисленную переменную (integer) поместить дробное число.
Всё только по правилам
Pascal — строго типизированный язык с чёткой логической структурой. В нём всё упорядочено настолько, что ошибиться в командах будет очень сложно. Единственное, что может показаться немного странным для тех, кто привык к другим языкам — оператор присваивания, который выглядит так :=
Программисту остаётся следить только за тем, чтобы нигде не пропустить точку с запятой в конце каждого оператора, и за тем, чтобы количество операторов begin и end совпадало. Благодаря такому подходу Pascal заслужил репутацию лучшего языка программирования для начинающих.
Разумеется, в Паскале нет ООП. Но для того чтобы понять основы алгоритмов, переменных и циклов, этого и не нужно. А процедуры, функции, локальные и глобальные переменные — это всё есть.
Что на нём пишут сегодня
На Паскале сейчас не пишут ничего. Сегодня он только для учёбы.
Но раньше — писали, например, самый первый фотошоп был написан на Паскале пополам с ассемблером. А вообще сейчас больше пишут на Delphi — преемнике Pascal, в котором есть и ООП, и визуальное программирование, и работа с мышью и окнами.
С чего начать
Если вы давно хотели познакомиться с Паскалем поближе, но не знали, с чего начать, то начните с этого:
Основы программирования Паскаль: насколько сейчас востребован этот язык?
Один из самых распространенных языков, который используется для ознакомления с основами программирования — Паскаль. Устроиться на должность с конкурентной зарплатой специалистам по Pascal очень сложно. Но знание устаревающих языков может стать и преимуществом.
Что такое язык программирования Паскаль
Паскаль – база для Delphi или Ада, но он устарел для использования в современных коммерческих проектах. Несмотря на то что язык сам по себе почти не имеет практического значения, он часто применяется с целью обучения школьников и студентов первых курсов.
Языку Паскаль более 40 лет
Директор центра архитектуры Stack Group Илья Вислоцкий говорит, что многие компании начинали разрабатывать ПО на Паскале, когда он был стабильно поддерживаемым и популярным языком. Но сейчас это язык, теряющий популярность, а его диалект, который недавно был востребован — Delphi, все еще “на плаву”.
Существует ряд диалектов и сред, которые применяются студиями и IT-компаниями. Так, есть вакансии для программистов Delphi. Практическое значение имеет диалект Object Pascal и основанная на нем среда разработки Lazarus. С помощью этого инструмента можно создавать объектно-ориентированное ПО с графическим пользовательским интерфейсом.
Так выглядит язык программирования Паскаль
Какие функции языка существуют
Часто встречающиеся операции реализованы в Паскале с помощью функций. Стандартные включают арифметические (abc, sin, int и др.), функции преобразования (round, trunc и ord), процедуры для порядковых величин (succ, pred, ord и odd). Есть возможность добавить пользовательские функции.
Где используется Паскаль
Паскаль разработан для обучения структурному программированию новичков. Язык и сейчас считается лучшим для обучения.
Turbo Pascal был популярен для ПК в 80-90-е гг. В продолжение Turbo была выпущена система Delphi. Современная модификация Delphi Object Pascal используется в машинном обучении.
Петр Калинин, преподаватель информатики и тренер по спортивному программированию, считает, что начинающим не нужен классический Pascal. Но можно изучать среды под диалекты (например, PascalABC.Net).
Другая реализация — Free Pascal — имеет открытый исходный код, поддерживает различные диалекты языка и мультиплатформенность. На базе Free Pascal появилась среда Lazarus.
Единственными недостатками являются отсутствие свободно распространяемого компилятора и образовательной среды.
Обучение языку Паскаль
Курсы по языку Pascal не пользуются популярностью, так что выбор обучающих программ небольшой. Уроки по Паскалю проводят университеты для старшеклассников и абитуриентов и центры повышения квалификации — для тех, кто учит школьников и студентов программированию.
Школы интернет-профессий, которые делают упор на практические навыки и трудоустройство, от Паскаля отказались. Этот язык практически не используется в IT-компаниях.
В силу специфики площадок, в программе которых остались курсы по Pascal, обучение преимущественно очное. Средняя продолжительность — 40 академических часов. Стоимость — 15-30 тыс. руб. По окончании обучения проводится аттестация в виде теста или на основании оценок практических работ, выдается сертификат международного образца.
Основы программирования для начинающих
Pascal — это простая среда разработки с понятным синтаксисом, поэтому научиться программировать можно самостоятельно. Но желательно изучать не чистый Паскаль (для DOS), а инструмент, с помощью которого можно создать приложение для Windows, например, Borland Delphi.
Есть онлайн-ресурсы с типовыми задачами, решениями и примерами использования языка, но основы лучше изучить по печатным изданиям. В учебниках информация дана более структурировано. Несколько популярных пособий:
Тем, кто уже знаком с основами программирования на любом другом языке, можно сразу начинать с рассмотрения примеров небольших программ, раскрывающих конструкции языка и содержащих распространенные алгоритмы.
Где искать вакансии
На HeadHunter всего 189 вакансий для программистов Pascal, 59 из них расположены в Москве. Такие специалисты явно не являются востребованными на рынке труда. Особенно это утверждение справедливо, если учитывать, что чистый Паскаль вообще не нужен.
Работодатели ищут программистов Delphi и ASP.NET Core-разработчиков, но в большинстве вакансий знание Pascal просто перечисляется в требованиях. В описании рабочих обязанностей этот язык программирования вообще не фигурирует.
Сейчас на Паскале почти не пишут, поэтому найти работу будет крайне сложной задачей. Причин необходимости изучения этого языка почти нет. Для школьников Паскаль необходим только потому, что в ЕГЭ по информатике и ИКТ есть соответствующие вопросы.
Сколько можно зарабатывать со знанием языка программирования Паскаль
Международная компания Adzuna, которая специализируется на аналитике, провела исследование языков программирования, востребованных на рынке труда. Самыми высокооплачиваемыми специалистами на российском IT-рынке являются программисты Clojure, Haskell, Rust, которые могут рассчитывать на зарплату 170-177 тыс. руб.
Программисты Pascal, согласно данным Adzuna, зарабатывают в России в среднем 48 810 руб. в месяц.
Pascal, Basic, Delphi практикующие IT-специалисты считают устаревшими языками программирования, но все еще изучаемыми в школе или на первых курсах университетов. Эти инструменты мало применимы на практике, но позволяют освоиться с общими концепциями и получить первый опыт в программировании.
(1 оценок, среднее: 5,00 из 5)
50 лет Паскаля
В начале 1960-х в мире доминировали языки Фортран (Джон Бэкус из IBM) для научного и Кобол (Жан Саммет из IBM и Министерство обороны) для коммерческого применения. Программы писались на бумаге, затем перфорировались на картах, после чего результатов их выполнения ждали целый день. Языки программирования считались важными помощниками и ускорителями процесса программирования.
Постер диаграмм синтаксиса Pascal
Но по моему мнению, Алгол W был недостаточно хорошим. Из-за того, что изначально он разрабатывался комитетом, язык содержал в себе слишком много компромиссов. После моего возвращения в Швейцарию, я спроектировал язык в соответствии со своими предпочтениями: им стал Паскаль. С несколькими помощниками мы написали руководство пользователя и спроектировали компилятор. В процессе его создания мы решились на рискованный шаг: захотели описать компилятор на самом Паскале, затем транслировать его вручную на Фортран, и, наконец, скомпилировать первый из второго. Результатом стал сокрушительный провал, поскольку из-за отсутствия структур данных (записей) в Фортране трансляция получилась очень громоздкой. После этого неудачного дорогостоящего урока вторая попытка окончилась успехом — на этот раз мы использовали вместо Фортрана язык местной разработки Scallop (созданный М. Энгели).
Паскаль
Паскаль был прост в преподавании и мог использоваться в широком спектре применений, что было значительным преимуществом по сравнению с Алголом, Фортраном и Коболом. Модуль System Паскаля был эффективным, компактным и простым в применений. На язык сильно повлияла новая дисциплина структурированного программирования, основным проповедником которой был Э. Дейкстра, стремившийся таким образом избежать угрозы кризиса программного обеспечения (1968 год).
Паскаль был опубликован в 1970 году и впервые использовался на курсах обучения в Швейцарской высшей технической школе Цюриха (ETH). Мы даже определили подмножество Pascal-S и создали более компактный компилятор для экономии времени и пространства на нашем компьютере CDC и снижения времени цикла обработки для студентов. В те времена машинное время и память были в дефиците.
Распространение и популярность Паскаля
Вскоре Паскаль заметило несколько университетов и возрос интерес к его использованию в обучении. Мы получали просьбы о помощи в реализации компиляторов для других компьютеров. Я придумал идею постулирования гипотетического компьютера, который можно было бы легко реализовать на различных мейнфреймах, для которого мы бы создали в Высшей технической школе Цюриха компилятор. Этот гипотетический компьютер можно было бы легко реализовывать относительно небольшими трудозатратами при помощи уже готовых инструментов (ассемблеров). Таким образом возникла архитектура Pascal-P (P — «портируемый»), и эта техника оказалась чрезвычайно успешной. Первые наши клиенты были из Белфаста (Ч.Э.Р. Хоар). Два помощника привезли две тяжёлые картонные коробки перфокарт в Цюрих, на них был записан компилятор, спроектированный для компьютера ICL. На границе их подвергли допросу, потому что возникло подозрение, что перфокарты могут содержать секреты, подлежащие таможенным сборам. Всё это происходило без международных проектных организаций, без бюрократии и бюджетов на исследования. Сегодня это было бы невозможно.
Интересным следствием таких разработок стало появление пользовательских групп, в основном состоящих из молодых энтузиастов, желавших продвигать и распространять Паскаль. Ядром этих групп управлял Энди Микел из Миннеаполиса, где они регулярно публиковали новостную рассылку о Паскале (Pascal Newsletter). Это движение внесло значительный вклад в стремительное распространение Паскаля.
Несколькими годами позднее на рынке появились первые микрокомпьютеры. Это были небольшие компьютеры, процессор которых интегрирован в единый чип, и имевшие 8-битные шины данных, доступные по цене даже физическим лицам. Выяснилось, что благодаря своему небольшому компилятору, способному уместиться в малом объёме памяти (64 КБ), Паскаль подходит для их процессоров. Группа под руководством Кена Боулса из Университета Сан-Диего и Филипп Кан из Borland Inc. в Санта-Крузе создали для нашего компилятора простую операционную систему, текстовый редактор и процедуры для обнаружения и диагностики ошибок. Они продавали этот пакет на гибких дисках по 50 долларов (Turbo Pascal). Благодаря этому Паскаль распространялся мгновенно, особенно в школах и вузах, став для многих точкой входа в программирование и computer science. Наше руководство по Паскалю превратилось в бестселлер.
Такое распространение не ограничилось Америкой и Европой. Россия и Китай тоже с энтузиазмом восприняли Паскаль. Об этом я узнал только позже, во время моих первых поездок в Китай (1982 год) и СССР (1990 год), когда мне показали версию нашего руководства, написанного непонятными (для меня) символами и буквами.
Наследники Паскаля
Но время не стояло на месте. Компьютеры стремительно становились быстрее, поэтому требования к приложениям, как и к программистам, росли. Программы больше не разрабатывались одним человеком, теперь их создавали коллективы. В языках должны были появиться конструкции, поддерживающие командную работу. Один человек может спроектировать часть системы, называемую «модулем», достаточно независимо от остальных модулей. Позже модули могут быть скомпонованы и загружены автоматически. Даже в Фортране имелась уже такая функция, однако теперь компоновщик должен был проверять целостность типов данных между границами модулей. Это была непростая задача!
Модули с межграничной проверкой целостности типов стали основным расширением первого наследника Паскаля под названием Модула-2 4 (сокращение от modular language, 1979 год). Язык стал эволюционным развитием Паскаля, а также Mesa — языка, разработанного в Xerox PARC для системного программирования. Сам Mesa тоже произошёл от Паскаля. Однако Mesa развивался слишком хаотично и его нужно было «укротить». В Модула-2 также присутствовали элементы для системного программирования, допускавшие конструкции, зависящие от конкретных свойств компьютера, поскольку они были необходимы для интерфейсов с периферийными устройствами или сетями. Из-за этого пришлось пожертвовать самой сутью высокоуровневых языков, а именно машинонезависимым программированием. К счастью, такие части теперь можно было локализовать в конкретных «низкоуровневых» модулях, а значит, соответствующим образом изолировать.
Кроме того, Модула содержал конструкции для программирования параллельных процессов (или квазипараллельных потоков). «Параллельное программирование» было основной темой 1970-х. В целом, Модула-2 постепенно стал довольно комплексным и на мой взгляд переусложнённым для обучения программированию. Ощущалось, что языку нужно совершенствование и упрощение.
Даже сегодня Оберон успешно используется во множестве разных мест. Однако революции, как в случае с Паскалем, не произошло. Комплексные коммерческие системы используются слишком широко и потому укоренились. И всё же можно сказать, что на многие подобные языки наподобие Java (Sun Microsystems) и C# (Microsoft) значительное влияние оказали Оберон или Паскаль.
Примерно в 1995 году на рынке появились динамически перепрограммируемые на уровне логических вентилей электронные компоненты. Эти программируемые пользователем вентильные матрицы (field programmable gate arrays, FPGA) можно сконфигурировать в практически любую цифровую схему. Разница между программным и аппаратным становилась всё более размытой. Я разработал язык Lola (logic language) с похожими на Оберон элементами и аналогичной ему структурой для описания цифровых схем. Схемы всё чаще стали задаваться формальными текстами, заменяющими графические принципиальные схемы. Это упрощает проектирование оборудования и ПО, что на практике становится всё более важным.
Комментарии и выводы
Принципиальная задача высокоуровневых языков — повышение уровня абстракции со слоя машинных команд. Например, структуры данных вместо массивов слов в памяти или условные операторы и операторы цикла вместо команд перехода. Идеальный язык должен определяться в категориях математической логики, аксиом и правил вывода. Для его понимания не должно требоваться никакой отсылки к любому компьютеру или механизму. Это основа портируемости. Проектировщики Алгола видели эту цель, но сложнее всего достигнуть её, не жертвуя при этом мощью выразительности. Тем не менее, каждый новый язык следует измерять той степенью, в которой он приближается к этой цели. Последовательность «Паскаль—Модула—Оберон» стали свидетельством моего стремления достичь её. Оберон к ней близок, однако ничто не идеально.
Ссылки
1. Naur, P. Revised report on the algorithmic language Algol 60. Commun. ACM 6, (Jan. 1963), 1–17.
2. Wirth, N. and Hoare, C.A.R. A contribution to the development of ALGOL. Commun. ACM 9 (June 1966), 413–432.
3. Wirth, N. The programming langage Pascal. Acta Informatica 1, (1971), 35–63; https://doi.org/10.1007/BF00264291
4. Wirth, N. What can we do about the unnecessary diversity of notation for syntactic definitions? Commun. ACM 20, 11 (Nov. 1977).
5. Wirth, N. Programming in Modula-2. Springer-Verlag 1982.
6. Wirth, N. The Programming Language Oberon. Software–Practice and Experience 18, (Jul. 1988), 671–690; https://doi.org/10.1002/spe.4380180707
На правах рекламы
Серверы для разработки и размещения ваших проектов — это про наши эпичные! Все серверы «из коробки» защищены от DDoS-атак, скорость интернет-канала 500 Мегабит, автоматическая установка удобной панели управления VestaCP для размещения сайтов и даже автоматическая установка Windows Server на тарифах с 4 ГБ ОЗУ или выше. Лучше один раз попробовать 😉
Примеры программ на Pascal
Задание:
Ввести с клавиатуры n чисел. Определить количество четных.
Код программы:
Задание:
Дано четырехзначное число. Верно ли, что сумма первой и последней цифр равна сумме средних цифр?
Пример теста:
1234 — да: 1+4=2+3
7459 — нет: 7+9 ≠ 4+5
Код программы:
Задание:
Решение квадратного уравнения ax 2 +bx+c=0
Пример теста:
Код программы:
Задание:
При попадании в маленький круг (радиус = 1), игроку начисляется 2 балла, при попадании в большой круг (радиус 2) — 1 балл, мимо мишеней — 0 баллов.
Пример теста:
Код программы:
Задание:
Вычислить значение функции
Пример теста:
Код программы:
Задание:
Найти сумму элементов столбца, содержащего максимальный элемент. Если максимальный элемент встречается несколько раз, то вычислить сумму столбца, в котором максимальный элемент встречается в последний раз. То есть в тесте взять такую матрицу, чтобы максимальный элемент встречался в несколькх столбцах.
Пример теста:
1 2 3 4
7 1 3 0
2 7 4 3
1 3 2 1