Pascal что за программа

Pascal что за программа

Язык программирования Turbo Pascal является развитием языка Pascal, разработанного Никлаусом Виртом в 1969-71 годах, для обучения структурному программированию. Фирма Borland International, существенно расширила алгоритмические средства языка, создала удобную среду программирования и высокоскоростной компилятор.
Turbo Pascal разрабатывался под операционную систему ДОС (Дисковая Операционная Система), поэтому он работает только в текстовом режиме. Среда разработки Turbo Pascal (версия 7) представляет из себя текстовый редактор и средства отладки и компиляции программы. Для переключения редактора из оконного в полноэкранный режим и обратно следует нажать одновременно клавиши Alt + Enter.

Программа на Pascal пишется в текстовом редакторе по определённым правилам. Текст программы проверяется редактором кода. Зарезервированные слова языка и определённые синтаксические конструкции выделяются цветом, что создаёт определённые удобства.

Информатика. Язык Pascal: Структура программы на языке Pascal. Центр онлайн-обучения «Фоксфорд»

Линейный алгоритм. Типы числовых данных. Функции ввода — вывода.

Простые программы пишутся последовательно, шаг за шагом до тех пор, пока не будет получено решение задачи. Такая линейная последовательность в программировании называется линейным алгоритмом. Рассмотрим программу простого калькулятора. Пусть нам нужно сложить, вычесть, умножить и разделить два числа X и Y. В большинстве языков программирования принято объявлять участвующие в программе переменные. Это нужно для того, что бы зарезервировать фрагмент оперативной памяти компьютера для хранения объявленных данных. На рисунке показана программа калькулятора:

Рассмотрим построчно, что означают введённые в редакторе команды:

  • uses crt; — Выражение: Использовать модуль CRT. В начале программы, обычно, пишется директива uses и затем, через запятую, перечисляются модули содержащие набор необходимых функций для работы программы. CRT — модуль поддержки монитора и клавиатуры. (Важное замечание. Регистр букв текста программы не имеет значения. Так, например, можно написать uses crt; или Uses CRT; — программа будет работать и не воспримет это как ошибку). Любое выражение на Pascal должно заканчиваться знаком «точка с запятой».
  • var — (сокращённое от variable — переменная) объявления блока переменных. После команды var точка с запятой не ставится.
  • x, y, z1, z2, z3, z4 : real; — перечисляем через запятую переменные необходимые для решения задачи; x и y — вводимые данные для вычислений; z1 . z4 — переменные для хранения результатов вычислений. Двоеточие и real означает, что все перечисленные переменные объявлены как тип данных — число с плавающей запятой.
    При программировании используются различные типы данных. Ниже представлены числовые типы данных:

ИНФОРМАТИКА 8 класс: Общая структура программы в языке Паскаль

Если компилятор обнаружит ошибку, то появится соответствующее сообщение, а курсор будет установлен в строку с ошибкой.

В нашем случае строка z4 = x / y; — должно быть z4 := x / y;
Для запуска программы на исполнение, следует нажать комбинацию клавиш Ctrl и F9. В программе следует ввести значение х и нажать Enter, затем ввести значение у и опять нажать Enter. Компьютер произведёт необходимые вычисления и выведет значения на экран, но мы, скорее всего, ничего не увидим, потому что выполнение программы закончится и произойдёт возврат в редактор. Для просмотра полученных результатов следует нажать одновременно Alt и F5.

То, что мы видим на экране не совсем удобно для понимания. Лучше будет, если результаты отображать не экспоненциальном виде, а в нормальном, десятичном.
Так же, пользователь программы вынужден догадываться в какой строке результатов сложение, в какой умножение и так далее. Для исправления ситуации изменим строки вывода результатов на экран:
writeln(‘X + Y = ‘, z1:0:4);
writeln(‘X — Y = ‘, z2:0:4);
writeln(‘X * Y = ‘, z3:0:4);
writeln(‘X / Y = ‘, z4:0:4);
Рассмотрим любую из изменённых строк, например writeln(‘X / Y = ‘, z4:0:4); Функция вывода writeln в качестве аргумента (в нашем случае) принимает два значения. Аргументы друг от друга отделяются запятой.
Первое значение: ‘X / Y = ‘ — надпись которая будет выводиться на экран, она должна быть заключена в апострофы. Второе значение — число z4. Для придания числу десятичной формы отображения, оно отформатировано по следующей схеме: двоеточие — число знаков до запятой, двоеточие — число знаков после запятой. Если число знаков до запятой неизвестно, то лучше поставить ноль.
Усовершенствованная программа принимает удобочитаемый вид:

До оператора end можно ввести строку readln;, тогда программа не будет завершаться сразу после выполнения, а будет ожидать нажатия клавиши Enter. Для сохранения готовой программы следует нажать F2 и сохранить файл с именем, например, calc.pas.

Логические операторы. Символьные переменные.

При выполнении написанной программы могут возникнуть непредвиденные обстоятельства, а именно, если пользователь программы вторым числом введёт значение 0 (нуль). Как известно, деление на 0 запрещено и при выполнении программы компьютер выдаст такое сообщение:

Что бы избежать таких ситуаций, программист должен предусмотреть в программе некоторую защиту.
Самое простое решение, в нашем случае, при значении Y равном нулю, перейти к началу программы, что бы пользователь ввёл другие значения. Перечислим те действия, которые должна выполнить программа:
— если Y равно 0 то перейти к метке в начале программы, иначе (Y не равен 0) выполнить математические действия.
На языке Pascal это будет выглядеть так: if y = 0 then goto label1 else .
Эта запись означает: (if) если y = 0 (y = 0 — логическое выражение) then (то) goto (перейти к) label1 (имя метки) else (иначе) . Оператор else можно не использовать если дальнейшее выполнение программы подразумевается при невыполнении условия логического выражения. Метка label1 придуманное имя метки, поэтому мы должны его объявить до начала программы, сразу за разделом объявления переменных. Сама метка устанавливается в том месте программы, куда должен осуществиться переход. После имени метки ставится знак двоеточие. Изменённая таким образом программа показана на рисунке:

Читайте также:
Inkscape что за программа


Такая программа имеет более «товарный» вид и свойства.
Рассмотрим подробно какие конструкции можно создавать на языке Pascal с использованием логических операторов. В общем виде логическая запись выглядит так:
if (условие) then (действие1) else (действие2);
или
if (условие) then (действие);
Сначала рассмотрим запись условий:

Условие. Описание
A = B А равно В
A <> B А не равно В
A А меньше либо равно В
A >= B А больше либо равно В
Логические связки условий
OR Логическое ИЛИ
AND Логическое И
NOT Логическое НЕТ (Отрицание)

Логические связки записываются между логическими условиями, сами условия берутся в скобки, например: if (a = b) and (z Следует иметь в виду что при выполнении условия, после оператора then может быть только одно действие. Если действий по условию программы должно быть больше, то все действия должны быть взяты в операторные скобки begin . end.
Например:
if a = b then
begin
writeln(‘Error!’);
y:= 22;
goto label1;
end else .
Аналогичным образом несколько действий записывается после оператора else.
Написанная нами программа «калькулятор» имеет один существенный недостаток, если нужно произвести несколько вычислений, приходится перезапускать программу на выполнение. Изменим нашу программу так, что бы она завершалась с согласия пользователя. Пользователю следует предложить нажать клавишу Y для продолжения работы с программой, или любую другую клавишу для завершения работы.
Заменим последний в программе оператор readln; на такие строки:
write(‘Repeat — Y / End — other key’);
readln(sym);
if (sym = ‘Y’) or (sym = ‘y’) then goto label1;
В нашей программе появилась новая переменная — sym (вымышленное имя, которое придумываем мы сами. Имя должно начинаться с буквы, а затем могут следовать цифры или буквы). Эта переменная имеет тип одиночного символа и мы должны её объявить в разделе переменных. Символьные переменные имеют тип char.Символьные переменные при использовании в программе следует заключать в апострофы.
Добавим эту переменную в разделе var:
var
sym : char;
.
Запустим программу на исполнение, и убедимся, что программа написана правильно:

В паскале есть ещё один тип символьных переменных, это тип string- строка состоящая максимум из 255 символов, но об этом в следующих разделах.

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

Источник: hi-intel.ru

50 лет Паскаля

В начале 1960-х в мире доминировали языки Фортран (Джон Бэкус из IBM) для научного и Кобол (Жан Саммет из IBM и Министерство обороны) для коммерческого применения. Программы писались на бумаге, затем перфорировались на картах, после чего результатов их выполнения ждали целый день. Языки программирования считались важными помощниками и ускорителями процесса программирования.

В 1960 году международный комитет опубликовал спецификацию языка Алгол 60 1 . Впервые язык определялся чётко сформулированными конструкциями и точным, формальным синтаксисом. Двумя годами позже стало понятно, что требуются некоторые исправления и усовершенствования. Однако основной задачей было расширение ассортимента приложений, поскольку Алгол 60 был предназначен только для научных вычислений (вычислительной математики). Для работы над этим проектом была собрана рабочая группа (Working Group, WG 2.1) под эгидой Международной федерации по обработке информации (IFIP).

Группа состояла примерно из сорока участников; почти столько же было мнений и взглядов на то, каким должен быть потомок Алгола. Это вызвало обширные дискуссии, и некоторые дебаты завершались довольно печально. В начале 1964 года я стал участником группы и вскоре меня попросили подготовить конкретное предложение. Комитет разделился на две фракции.

Одна из них стремилась ко второй, после Алгола 60, важной вехе — созданию языка с радикально новыми, непроверенными концепциями и огромной гибкостью. Позже он стал известен под названием Алгол 68. Другая фракция поставила перед собой более скромную задачу и сосредоточилась на реалистичном усовершенствовании известных концепций. В конце концов, время уже поджимало: вскоре должен был появиться PL/1 компании IBM. Однако моё предложение, несмотря на техническую реалистичность, уступило с небольшим перевесом большинству, предпочитавшему разрабатывать Алгол 68.

Постер диаграмм синтаксиса Pascal

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

Я покинул группу в 1966 году и с несколькими аспирантами из Стэнфордского университета посвятил своё время созданию компилятора для моего проекта. В результате мы получили язык Алгол W 2 , который после 1967 года начал использоваться во многих местах, где применялись крупные компьютеры IBM. Он оказался довольно успешным. Алгол 68 выпустили, но он быстро потонул из-за собственного веса, хотя некоторые его концепции и получили вторую жизнь в новых языках.

Но по моему мнению, Алгол W был недостаточно хорошим. Из-за того, что изначально он разрабатывался комитетом, язык содержал в себе слишком много компромиссов. После моего возвращения в Швейцарию, я спроектировал язык в соответствии со своими предпочтениями: им стал Паскаль. С несколькими помощниками мы написали руководство пользователя и спроектировали компилятор.

Читайте также:
Программа nt kernel system что это

В процессе его создания мы решились на рискованный шаг: захотели описать компилятор на самом Паскале, затем транслировать его вручную на Фортран, и, наконец, скомпилировать первый из второго. Результатом стал сокрушительный провал, поскольку из-за отсутствия структур данных (записей) в Фортране трансляция получилась очень громоздкой. После этого неудачного дорогостоящего урока вторая попытка окончилась успехом — на этот раз мы использовали вместо Фортрана язык местной разработки Scallop (созданный М. Энгели).

Паскаль

Как и его предшественник Алгол 60, Паскаль 2 имел чёткое определение и ограниченное количество понятных базовых элементов. Его структура и синтаксис формально были определены в расширенной форме Бэкуса-Наура 3 . Операторы описывали присвоение значений переменным, условное и повторное исполнение. Кроме того, в языке существовали процедуры, и они были рекурсивными.

Значительным усовершенствованием стали типы и структуры данных: элементарными типами данных были целые и вещественные числа, булевы значения, символы и перечисления (констант). Структурами стали массивы, записи, файлы (последовательности) и указатели. Процедуры имеют два вида параметров — значения и переменные. Процедуры можно использовать рекурсивно.

Наиболее существенной была всеобъемлющая концепция типа данных: каждая константа, переменная или функция имела фиксированный, статический тип. Поэтому программы обладали большой избыточностью, которой мог пользоваться компилятор для проверки целостности типов. Это способствовало распознаванию ошибок до исполнения программы.

Столь же важным, как добавление функций, стало и их удаление (относительно Алгола). Чарльз Энтони Ричард Хоар однажды сказал: язык характеризуется не только тем, что он позволяет делать программисту, но и тем, что он делать не позволяет. В связи с этим в языке отказались от параметра-имени Алгола. Он редко использовался и вызывал значительные трудности для компилятора.

Кроме того, была устранена концепция владения Алгола, что позволяло локальным переменным быть глобальными, чтобы «пережить» активацию процедуры, для которой переменная была объявлена локальной. Конструкция for Алгола была значительно упрощена, что позволило избавиться от комплексных и сложных в понимании конструкций. Однако для простых и прозрачных ситуаций повторений были добавлены операторы while и repeat . Тем не менее, спорный оператор goto сохранился. Я решил, что сообщество программистов ещё не готово к отказу от него. Это было бы слишком невыгодно для роста популярности Pascal.

Паскаль был прост в преподавании и мог использоваться в широком спектре применений, что было значительным преимуществом по сравнению с Алголом, Фортраном и Коболом. Модуль System Паскаля был эффективным, компактным и простым в применений. На язык сильно повлияла новая дисциплина структурированного программирования, основным проповедником которой был Э. Дейкстра, стремившийся таким образом избежать угрозы кризиса программного обеспечения (1968 год).

Паскаль был опубликован в 1970 году и впервые использовался на курсах обучения в Швейцарской высшей технической школе Цюриха (ETH). Мы даже определили подмножество Pascal-S и создали более компактный компилятор для экономии времени и пространства на нашем компьютере CDC и снижения времени цикла обработки для студентов. В те времена машинное время и память были в дефиците.

Распространение и популярность Паскаля

Вскоре Паскаль заметило несколько университетов и возрос интерес к его использованию в обучении. Мы получали просьбы о помощи в реализации компиляторов для других компьютеров. Я придумал идею постулирования гипотетического компьютера, который можно было бы легко реализовать на различных мейнфреймах, для которого мы бы создали в Высшей технической школе Цюриха компилятор.

Этот гипотетический компьютер можно было бы легко реализовывать относительно небольшими трудозатратами при помощи уже готовых инструментов (ассемблеров). Таким образом возникла архитектура Pascal-P (P — «портируемый»), и эта техника оказалась чрезвычайно успешной. Первые наши клиенты были из Белфаста (Ч.Э.Р. Хоар).

Два помощника привезли две тяжёлые картонные коробки перфокарт в Цюрих, на них был записан компилятор, спроектированный для компьютера ICL. На границе их подвергли допросу, потому что возникло подозрение, что перфокарты могут содержать секреты, подлежащие таможенным сборам. Всё это происходило без международных проектных организаций, без бюрократии и бюджетов на исследования. Сегодня это было бы невозможно.

Интересным следствием таких разработок стало появление пользовательских групп, в основном состоящих из молодых энтузиастов, желавших продвигать и распространять Паскаль. Ядром этих групп управлял Энди Микел из Миннеаполиса, где они регулярно публиковали новостную рассылку о Паскале (Pascal Newsletter). Это движение внесло значительный вклад в стремительное распространение Паскаля.

Несколькими годами позднее на рынке появились первые микрокомпьютеры. Это были небольшие компьютеры, процессор которых интегрирован в единый чип, и имевшие 8-битные шины данных, доступные по цене даже физическим лицам. Выяснилось, что благодаря своему небольшому компилятору, способному уместиться в малом объёме памяти (64 КБ), Паскаль подходит для их процессоров.

Группа под руководством Кена Боулса из Университета Сан-Диего и Филипп Кан из Borland Inc. в Санта-Крузе создали для нашего компилятора простую операционную систему, текстовый редактор и процедуры для обнаружения и диагностики ошибок. Они продавали этот пакет на гибких дисках по 50 долларов (Turbo Pascal). Благодаря этому Паскаль распространялся мгновенно, особенно в школах и вузах, став для многих точкой входа в программирование и computer science. Наше руководство по Паскалю превратилось в бестселлер.

Такое распространение не ограничилось Америкой и Европой. Россия и Китай тоже с энтузиазмом восприняли Паскаль. Об этом я узнал только позже, во время моих первых поездок в Китай (1982 год) и СССР (1990 год), когда мне показали версию нашего руководства, написанного непонятными (для меня) символами и буквами.

Читайте также:
Data protection что это за программа

Наследники Паскаля

Но время не стояло на месте. Компьютеры стремительно становились быстрее, поэтому требования к приложениям, как и к программистам, росли. Программы больше не разрабатывались одним человеком, теперь их создавали коллективы. В языках должны были появиться конструкции, поддерживающие командную работу.

Один человек может спроектировать часть системы, называемую «модулем», достаточно независимо от остальных модулей. Позже модули могут быть скомпонованы и загружены автоматически. Даже в Фортране имелась уже такая функция, однако теперь компоновщик должен был проверять целостность типов данных между границами модулей. Это была непростая задача!

Модули с межграничной проверкой целостности типов стали основным расширением первого наследника Паскаля под названием Модула-2 4 (сокращение от modular language, 1979 год). Язык стал эволюционным развитием Паскаля, а также Mesa — языка, разработанного в Xerox PARC для системного программирования. Сам Mesa тоже произошёл от Паскаля. Однако Mesa развивался слишком хаотично и его нужно было «укротить».

В Модула-2 также присутствовали элементы для системного программирования, допускавшие конструкции, зависящие от конкретных свойств компьютера, поскольку они были необходимы для интерфейсов с периферийными устройствами или сетями. Из-за этого пришлось пожертвовать самой сутью высокоуровневых языков, а именно машинонезависимым программированием. К счастью, такие части теперь можно было локализовать в конкретных «низкоуровневых» модулях, а значит, соответствующим образом изолировать.

Кроме того, Модула содержал конструкции для программирования параллельных процессов (или квазипараллельных потоков). «Параллельное программирование» было основной темой 1970-х. В целом, Модула-2 постепенно стал довольно комплексным и на мой взгляд переусложнённым для обучения программированию. Ощущалось, что языку нужно совершенствование и упрощение.

Благодаря подобным рассуждениям возник язык Оберон 5 , тоже изначально создававшийся в Xerox PARC. Мейнфреймы больше не использовались, на смену им пришли мощные рабочие станции с дисплеями высокого разрешения и функциями интерактивности. Для них в PARC были разработаны язык и интерактивная операционная система Cedar.

Проектировщикам снова показались желательными значительное упрощение и консолидация, поэтому для Оберона в ETH были написаны операционная система, компилятор и текстовый редактор. Задача была выполнена всего двумя программистами — Виртом и Гуткнехтом в свободное время в течение шести месяцев. Публикация Оберона произошла в 1988 году.

На развитие языка повлияла новая дисциплина — объектно-ориентированное программирование. Однако в нём не появилось никаких новых особенностей, кроме расширения типа. Следовательно, впервые был создан язык, который не только не усложнился, но даже упростился, и в то же время стал более мощным по сравнению с предшественником.

Даже сегодня Оберон успешно используется во множестве разных мест. Однако революции, как в случае с Паскалем, не произошло. Комплексные коммерческие системы используются слишком широко и потому укоренились. И всё же можно сказать, что на многие подобные языки наподобие 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 ГБ ОЗУ или выше. Лучше один раз попробовать 😉

  • Блог компании VDSina.ru
  • Программирование
  • История IT

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru