Что такое код free pascal


Содержание

Краткая справка по операторам языка Free Pascal

Основные операторы представлены в табл. П1.7.

Таблица П1.7. Операторы языка Free Pascal

Элементарные операторы (ES — Elementary Statements)

Оператор присваивания. Как правило, тип значения выражения e и тип переменной v должны совпадать. Единственное исключение — присвоение целочисленных значений переменным вещественного типа

Оператор множественного присваивания. Значение выражения e присваивается нескольким переменным

Краткая запись оператора v:=v e;, заимствованная из языка

C. В качестве знака операции могут выступать операции сложения (+), вычитания (-), умножения (*) и деления (/). Этот формат может использоваться при включении в текст программы директивы

Элементарные операторы (ES — Elementary Statements)

Оператор вызова процедуры с именем n_proc и передачи ей списка фактических параметров

Оператор вызова процедуры без параметров

Оператор ввода данных (точнее, вызов системной

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

Аналогичный оператор (процедура) с переводом курсора дисплея в начало следующей строки

Оператор вывода данных (точнее, вызов системной процедуры) на экран дисплея. Значение очередного выражения списка переводится из машинного формата в символьное представление в соответствии с типом значения и выдается на экран дисплея. Если числовой элемент списка вывода сопровождается дополнительным указанием типа e:n

или e:n:m, то для его отображения в текущей строке вывода

резервируется n позиций. В первом случае на выделенном поле с прижимом к правой границе располагается целая часть числа. Во втором случае числовое значение выводится с m цифрами в дробной части. Такое форматирование при выводе числовой информации позволяет добиться общепринятого представления табличных данных. После вывода курсор дисплея остается в первой свободной позиции текущей

Аналогичный оператор (процедура) с переводом курсора дисплея в начало следующей строки

Безусловный переход на оператор с меткой m. В качестве метки может выступать либо целое число, либо алфавитно- цифровой идентификатор. В любом случае метка m должна быть объявлена в разделе label и обязана находиться

в той же программной единице (процедуре, функции

или головной программе), где использован оператор goto. От оператора, на который передается управление, метка отделяется двоеточием

Составной оператор (CS — Compound Statement)

Составные операторы используются для объединения нескольких произвольных операторов (AS — Arbitrary Statement) в один более сложный оператор. Именно такие конструкции должны использоваться в структурных единицах типа «циклы» и «условные операторы»

Структурные операторы (SS — Structured Statements)

if условие then CS;

Условный оператор (укороченный формат). Если условие соблюдается, то выполняется оператор CS. В противном случае выполняется оператор, следующий за if

if условие then CS1

Условный оператор (полный формат). При соблюдении условия выполняется оператор CS1, в противном случае выполняется оператор CS2

case e of c1:AS1; c2:AS2;

Оператор выбора (переключатель). Значением переключающего выражения e может быть величина порядкового типа (целое число, символ, элемент перечисления). Если значение e равно константе c1, то выполняется оператор AS1 (им, в частности, может быть составной оператор) и вслед за ним происходит выход из переключателя. При e=c2 выполняется оператор AS2 с последующим выходом из переключателя и т. д. Если значение e не совпадает ни с одной из перечисленных констант, то выполняются операторы, расположенные вслед за else. Фрагмент с else может отсутствовать (сокращенная версия переключателя).

Условие переключения может быть задано не только одной константой:

c1,c2,c3:AS1; //список констант c4..c5 :AS2; //диапазон значений

Синонимом служебного слова else является otherwise

for cv:=v1 to v2 do CS;

Оператор цикла со счетчиком повторений. В качестве управляющей переменной cv (счетчика цикла) можно использовать только переменную порядкового типа. Цикл начинается с вычисления конечного значения счетчика v2. Если это значение меньше начального значения счетчика v1, то тело цикла (оператор CS) не выполняется. Если v1

What is an exit code 201 in Free Pascal?

I have tried to make a simple snake game with Free Pascal, when I started the programme, it drew the map exactly what I want but after that, I pressed the button that I have set to control the snake and it exited with exit code 201.

I don’t know much about that exit code, could you explain me the problems of the programme? This is the longest program I have ever made with Pascal.

Here is the code:

2 Answers 2

I googled this: 201 : range error , so you probably go out of array bounds. The only array s in indexed by variables that depend on l value (weird name, BTW). But I see a single place where you do changing (increment) this variable and don’t see any l initialization. So you are using arbitrary starting value (here perhaps zero because l is global).

Note that you could discover this bug (and perhaps others) with simple debugging.

The code 201 seems to be explained for example here: Runtime Error 201 at fpc

Exactly why this happens in your code, I don’t know.

Not the answer you’re looking for? Browse other questions tagged pascal freepascal or ask your own question.

Linked

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2020.11.13.35418

Паскаль (Pascal) — основы программирования для начинающих

Пожалуй, нет ни одного современного человека, кто бы не знал язык Паскаль (основы программирования). И это не удивительно! Еще в учебнике по информатике для школьников расписаны самые основные понятия этой уникальной программы.

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

История изучаемого языка не так проста: Паскаль претерпел множество изменений, прежде чем школьники увидели его в том виде, в каком его преподают на уроках. Это был самый первый простой язык (ord pascal) для программирования, помогающий решить множество практических задач прошлого столетия (1970 год). Он был разработан группой ученых.

С расширением платформ были созданы новые версии этой программы, а Паскаль стал классическим языком программирования.

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

Что такое язык программирования Паскаль

Это базовая высокоуровневая программа. Она занимает первое место в учебных планах многих школ и вузов Российской Федерации.

Особенности системы PascalABC.NET

Всё познается в сравнении, поэтому преимущества этой программы рассмотрим в соотношении с другим языком BASIC.

Итак, что характерно для языка Паскаль и что не подходит для Бейсика:

  1. Во-первых, наличие компилятора, позволяющего скачивать Паскаль на любые платформы.
  2. Во-вторых, все версии этой программы совместимы между собой.
  3. В-третьих, структурированные типы данных помогают программисту точно составить необходимый алгоритм решения практической задачи, при этом защищая его.
  4. В-четвертых, наглядность и логичность интерфейса программы: все команды просты и понятны.
  5. В-пятых, переход на другой, более высокий по уровню язык программирования, достаточно прост.

Что такое код free pascal

Компилятор существует для различных аппаратных и программных платформ, ветвь 2.4.x поддерживает следующие:

  • Архитектура x86
    • DOS (с использованием Go32v2)
    • FreeBSD версий 6.x, 7.x, 8.x
    • Linux
    • Mac OS X
    • Microsoft Windows
    • Sun Solaris[2]
    • Haiku


  • Архитектура x86-64
    • Linux
    • FreeBSD
    • Mac OS X
    • Windows (только кросс-компиляция с использованием версии для Windows x86)
  • Архитектура SPARC
    • Linux
    • Solaris (экспериментальная версия)
  • Архитектура PowerPC
    • Linux
    • Mac OS X
  • Архитектура PowerPC64
    • Linux
    • Mac OS X
  • Архитектура ARM
    • Linux
    • Windows CE (только кросс-компиляция с использованием версии для Windows x86)
    • Windows Mobile
    • Mac OS X (iPhone)

Более ранние версии также поддерживали архитектуру m68k (операционные системы NetBSD, Linux и AmigaOS), а также операционные системы Solaris, QNX и BeOS для x86.

В разработке поддержка создания кода для Java Virtual Machine [3]

Библиотеки и оболочки

В настоящее время в рамках проекта также разрабатывается Lazarus — свободный аналог среды разработки Delphi и Lazarus Components Library (LCL) — свободная библиотека виджетов, аналогичная VCL в Delphi.

Существуют и альтернативные проекты визуального программирования на базе Free Pascal, наиболее зрелым из которых является MSEide, использующий собственную, несовместимую с VCL библиотеку компонентов MSEgui.

Другая альтернатива Lazarus’u fpGUI, простая библиотека виджетов, не содержащая дополнительных библиотек вроде работы с БД, XML и т. п. В её состав включён визуальный редактор форм, генерирующий исходный код создания формы на паскале.

Кроме того, в настоящее время для создания Windows-приложений можно использовать известную невизуальную библиотеку KOL.

Режимы совместимости

Важной особенностью данного компилятора, в отличие, например, от GNU Pascal, является ориентация на распространённые коммерческие диалекты языка: Object Pascal и Delphi.

Free Pascal поддерживает компиляцию в нескольких режимах, обеспечивающих совместимость с различными диалектами и реализациями языка.

  • TP — режим совместимости с Turbo Pascal: совместимость практически полная, за исключением нескольких моментов, связанных с тем, что FPC компилирует программы для защищённого режима процессора, где невозможно прямое обращение к памяти, портам и т. д.
  • FPC — собственный диалект: соответствует предыдущему, расширенному дополнительными возможностями, такими как, например, перегрузка операций.
  • DELPHI — режим совместимости с Borland Delphi: включает поддержку классов и интерфейсов.
  • OBJFPC — совмещает объектно-ориентированные возможности Delphi и собственные расширения языка.
  • MACPAS — режим совместимости с Mac Pascal.

Free Pascal версий до 2.4 поддерживал также режим частичной совместимости с GNU Pascal. В последних версиях этого режима нет, вместо него развивается (но пока не включается в документацию) режим совместимости со стандартом ISO Extended Pascal.

Особенности

  • Поддержка перегрузки арифметических операторов ( + , — , * , ** , / , div , mod ), операторов сравнения ( , > , = , >= , ) и оператора присваивания := .
  • Поддержка операторов присваивания с выполнением арифметической операции в стиле Си ( += , -= , *= , /= ).
  • Наличие собственной системы сборки (fpcmake) и генератора документации (fpcdoc).
  • Встроенный ассемблер по умолчанию использует синтаксис AT&T, синтаксис Intel включается отдельной директивой.

Краткая история

  • 1993 год — начало работы над проектом.
  • 1995 год — компилятор успешно компилирует сам себя.
  • 1996 год — проект опубликован в интернете под лицензией GNU GPL.
  • 12 июля 2000 года — выход версии 1.0.
  • 2003 год — выход версии 1.0.10, завершение работы над ветвью 1.0.x.
  • 15 мая 2005 года — выход версии 2.0.
  • 10 сентября 2007 года — выход версии 2.2.
  • 30 декабря 2009 года — выход версии 2.4.
  • 12 ноября 2010 года — выход версии 2.4.2.
  • 20 мая 2011 года — выход версии 2.4.4
  • 1 января 2012 года — выход версии 2.6.0

Лицензия

Компилятор распространяется на условиях GNU General Public License, а значительная часть библиотек, в том числе ядро RTL — на условиях более мягкой GNU Lesser General Public License.

Примечания

  1. Репозиторий Free Pascal.
  2. [fpc-pascal]1.0.4 Solaris i386 port available
  3. FPC JVM. Архивировано из первоисточника 4 февраля 2012.Проверено 4 декабря 2011.

Литература

  • Алексеев Е. Р., Чеснокова О. В., Кучер Т. В.Free Pascal и Lazarus: Учебник по программированию. — М .: Альт Линукс, ДМК Пресс, 2010. — 438 с. — ISBN 978-5-94074-611-9
  • Статьи по Freepascal. Архивировано из первоисточника 4 февраля 2012.Проверено 4 декабря 2011.
  • Книги по Freepascal. Архивировано из первоисточника 4 февраля 2012.Проверено 4 декабря 2011.

Ссылки

Clascal • Concurrent Pascal • Delphi • Pascal • Object Pascal • Oxygene • SuperPascal

C/AL • Delphi • Delphi Prism (Oxygene) • FrameworkPascal • HP Pascal • IP Pascal • PocketStudio • Prospero Pascal

Бесплатные

ACK • Free Pascal • GNU Pascal • MIDletPascal • Pic Micro Pascal • Turbo51 • Vector Pascal[1]


Free Pascal

Free Pascal (FPC Pascal, FPK Pascal) — это реализация языка Паскаль. Free Pascal совместим с Borland Pascal 7 и Object Pascal — Delphi, но при этом обладает рядом дополнительных возможностей, например, поддерживает перегрузку операторов.

Free Pascal является бесплатным продуктом. Попадает под действие лицензии GNU, доступен через Интернет. В рамках проекта Lazarus создана библиотека, эмулирующая классы Delphi и позволяющая разрабатывать графические интерфейсы для Linux.

Lazarus — стандартная IDE для Free Pascal

Ссылки:

Примеры:

Факториал:

Используется рекурсивное определение факториала.

Этот пример работает во всех перечисленных компиляторах, но с несколько разным результатом. В Turbo Pascal, Free Pascal и PascalABC.NET возникает арифметическое переполнение при вычислении факториалов 13-16, но Free Pascal сообщает об ошибке:

13! = Runtime error 215 at $004013C7
$004013C7
$00401449
$004063E0

в то время как Turbo Pascal и PascalABC.NET не обнаруживают ошибку и просто выводят неправильные значения:

13! = 1932053504
14! = 1278945280
15! = 2004310016
16! = 2004189184

Следует отметить, что в версиях Turbo Pascal 3.0 и младше этот пример не работает вообще из-за отсутствия типа данных longint .

В GNU Pascal пример работает без переполнения.

Числа Фибоначчи:

Этот пример использует рекурсивное определение чисел Фибоначчи.

Hello, World!:

Факториал:

Этот пример работает точно так же, как основной рекурсивный пример для Pascal, но использует тип real для хранения значений факториала. Команда writeln(f:-1:0) выводит дробное число f с 0 цифр после десятичной запятой и выравнивает его по левому краю.

CamelCase:

Программа обрабатывает строку посимвольно. Для определения того, является ли символ буквой, и если является, то в каком он регистре, используются ASCII-коды символов. Функция ord возвращает ASCII-код данного символа, а chr — символ по его коду. Размерность строк не задана и по умолчанию принимается равной 255.

Отметим, что в Turbo Pascal программа работает только начиная с версии 4.0; в более ранних версиях не было типа данных char .

CamelCase:

Пример использует такую же логику, как и предыдущий, но для проверки того, является ли символ буквой, используются множества символов lower и upper . Это делает код более читабельным.

Отметим, что в Turbo Pascal программа работает, начиная с версии Turbo Pascal 4.0, в которой впервые появляется тип данных char .

Квадратное уравнение:

В Pascal есть встроенный комплексный тип данных complex , но команда writeln не работает с ним напрямую (только через функции Re и Im ), поэтому существенного удобства от его использования нет. Вычисления проводятся в типе real . Библиотечная функция halt , введенная в Extended Pascal, позволяет выйти из текущего блока (в более поздних версиях заменена на exit ).

Иван Шихалев

Технические записки программиста

Страницы

вторник, 11 октября 2011 г.

Что такое Free Pascal?

Free Pascal [1], точнее Free Pascal Compiler aka FPC — это свободный 1 кроссплатформенный компилятор языка программирования Pascal. В отличие от другой свободной реализации этого языка — GNU Pascal, FPC ориентирован не на стандарт, а на популярные диалекты — то, что когда-то называлось Object Pascal, а теперь Delphi Language.

Существует также проект Lazarus [2] — основанная на FPC свободная среда программирования, реализующая значительную часть функционала собственно среды Borland Delphi (см. врезку). Простые проекты можно переносить практически без ручной работы, после чего они могут быть скомпилированы для систем, отличных от Win32.

Поддерживаемые платформы

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

  • x86 (aka i386, IA32)
    • Linux
    • Win32
    • FreeBSD
    • Darwin (Mac OS X)
    • DOS (с «расширителями» для защищенного 32-разрядного режима)
      • Go32v2
      • WDOSX
      • Watcom-совместимые
    • OS/2
    • Netware
    • Solaris
  • x86-64 (aka AMD64, EM64T)
    • Linux
    • Win64
    • FreeBSD
    • Darwin (Mac OS X)
    • Solaris
  • ARM
    • Linux
    • Windows CE, Windows Mobile
    • Darwin (Mac OS X / iPhoneOS)
    • GameBoy Advance
    • Nintendo DS
    • PalmOS
    • SymbianOS
  • PowerPC
    • Linux
    • Darwin (Mac OS X)
    • MacOS (classic)
    • Nintendo Wii
  • PowerPC64
    • Linux
    • Darwin (Mac OS X)
  • SPARC
    • Linux
    • Solaris

Не все из этого развито одинаково хорошо. За подробным списком с пояснениями, что и как, прошу на официальный сайт, в викидокументацию [3]. Информация в pdf-документации, пожалуй, слишком скупа [4, стр. 7–8]. Замечу, что чем менее «мейнстримна» ваша платформа, тем больше вероятность столкнуться с проблемами. Наиболее отлажены и богаты библиотеками — самые распространенные системы: Windows, Linux, Mac OS X и FreeBSD.

В устаревших версиях компилятора 1.x, которые можно попытаться найти на ftp-зеркалах в интернете, поскольку на официальном ftp-сервере [5] они сейчас отсутствуют, была также поддержка архитектуры Motorola 680×0. В современных версиях она отсутствует, и неизвестно, вернется ли. Скорее всего, никому особо-то и не нужно.

Отдельно стоит упомянуть о недавно запущенном проекте генерации кода для виртуальной Java-машины. В релиз эта возможность еще не попала, желающие могут обратиться к викидокументации [6].

Диалекты языка

Выбор текущего диалекта осуществляется через указание параметров компилятора, а также посредством директивы компилятора <$MODE xxx>непосредственно в исходных файлах. В одном проекте, но в разных модулях, могут быть задействованы одновременно любые диалекты.

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

Источники информации

Официальная документация на английском языке распространяется вместе с компилятором, а также доступна на официальном же сайте FreePascal.org [1]. Там же находится вики, где можно найти дополнительную информацию — о новых, экспериментальных и только планируемых возможностях.

Документация распространяется в формате PDF и состоит из следующих книг:

Free Pascal: Language Reference Guide [7] Справочное руководство по языку. Подробно описывает собственно язык, не включая стандартную библиотеку, которая документирована отдельно (см. ниже). Free Pascal: Programmer’s Guide [8] Руководство программиста. Описывает различные тонкости, такие как: директивы компилятора, управление памятью, соглашения об использовании регистров, особенности различных платформ и т.д. Free Pascal: User’s Guide [4] Руководство пользователя. Описывает использование и настройки компилятора и входящих в дистрибутив утилит, включая >fpdoc , которой посвящено отдельное руководство (см. ниже).
Также описывается отладка, сообщения об ошибках и проч. Run-Time Library (RTL): Reference Guide [9] Справочное руководство по стандартным модулям. Включает документацию на 46 модулей, входящих в состав RTL. Free Component Library (FCL): Reference Guide [10] Справка по дополнительным модулям, также входящим в стандартный набор, но не входящих в состав RTL. Подробнее о том, какие это модули и с чем их едят, мы поговорим в отдельной статье. FPDoc: Reference Manual [11] Справочное руководство по утилите автодокументирования исходников FPDoc.

Тем же, кто предпочитает русский язык, следует в первую очередь обратиться на сайт FreePascal.ru [12], где наличествует ряд материалов (в основном статьи) и хороший живой форум [13]. Также могу порекомендовать книги для начинающих [14] и [15].


Лицензии

Компилятор как таковой распространяется на условиях GNU General Public License v2 [16], тогда как идущие в комплекте библиотеки — RTL и FCL — на условиях модифицированной GNU Lesser General Public License v2.1 [17]. Данная модификация явно разрешает статическую линковку с произвольным кодом [18, п 1.4]. Также входящие в комплект модули из каталогов packages могут использовать какие-то другие лицензии — тут лучше уточнять отдельно в каждом конкретном случае.

Схожую картину можно наблюдать и в проекте Lazarus — IDE и утилиты под GPLv2, основные библиотеки — modified LGPL, некоторые пакеты под своими лицензиями.

Итого: вы можете, используя Free Pascal и/или Lazarus, писать, как проприетарные, так и свободные (в том числе — копилефтные) программы.

1) GNU General Public License, см. подраздел «Лицензии».

2) Совместимость стандартных библиотек менее полная.

Что такое код free pascal

Язык программирования Free Pascal является свободным ответвлением от классического языка Pascal, разработанного Никлаусом Виртом в конце 60-х годов. Н. Вирт разработал данный язык для обучения студентов навыкам процедурного программирования. Со временем язык Pascal был сильно развит, возникло множество диалектов данного языка (наиболее известный из них — Turbo Pascal фирмы Borland).

Free Pascal является свободной реализаций языка Pascal (если быть точнее, свободно распространяемый компилятор языка программирования Pascal), поддерживает объектно-ориентированное программирование и может быть использован для написания не только учебных программ, но и более серьезных приложений обработки данных.

Среда программирования Free Pascal

Рассмотрим процесс установки.

1) Для пользователей ОС Windows необходимо скачать инсталлятор с интернет-страницы http://www.freepascal.org/down/i386/win32.var и запустить его с правами администратора.

2) Для пользователей Linux можно скачать свежий инсталляционный пакет rpm или deb (например, Альт-Линукс использует пакеты rpm, а Ubuntu или Debian — пакеты deb).

Существуют варианты простой установки:

Fpc — это метапакет, включающий в себя собственно сам компилятор и среду разработки (IDE, «оболочка» для редактирования кода, отладки и запуска скомпилированного кода). Команда sudo запускает установку метапакета fpc в режиме администратора, не забудьте ввести правильно пароль.

2) с помощью пакетного менеджера Synaptic. Найдите пакет fpc, отметьте для установки и примените изменения:

Установка Free Pascal через пакетный менеджер Synaptic

Если же вы являетесь обладателем дистрибутива Альт-Линукс Школьный, то вам повезло, Free Pascal уже установлен.

Запуск IDE Free Pascal (IDE — интегрированная среда разработки)

Вызовите терминал и наберите: fp

IDE Free Pascal

Интерфейс очень похож на классический интерфейс среды Turbo Pascal 7.0

Среда разработки Geany

Чтобы упростить процесс создания программы и избавиться от проблемы отображения кириллицы, можно установить свободную среду разработки Geany. Данная оболочка обладает приятным графическим интерфейсом, поддерживает несколько языков программирования (Pascal, C, PHP и др.).

Установка среды разработки Geany

1) с помощью терминала:

2) с помощью пакетного менеджера Synaptic. Процесс установки будет совершенно аналогичен процессу установки метапакета fp

3) можно скачать инсталляционный пакет с официального сайта разработчиков:http://www.geany.org/Download/Releases .

Приведем пример создания простейшей программы, выводящей квадраты целых чисел от 1 до 15.

1. После запуска среды Geany создадим шаблон файла Pascal:

Выбор шаблона Pascal

2. Сохраним текст программы в любой удобной для нас папке. После сохранения окно оболочки будет выглядеть примерно так:

Сохраненный текст с шаблоном pascal

3. Обязательно поменяйте имя программы (латиница, без пробелов), т.к. компилятор выдаст ошибку при компиляции текста в выполняемый код.

4. Напишем текст программы, выводящей квадраты чисел от 1 до 15 и скомпилируем. При компиляции файл текста программы автоматически сохраняется.

Компиляция текущего файла программы

5. Запустим программу нажатием по пиктограмме или с помощью главного меню Сборка→Выполнить:

Результат работы программы

6. В папке, где мы сохраняли текст программы, можно обнаружить файлы с расширением *.pas — текст программы; *.о — откомпилированный файл (объектный файл) и готовый исполняемый файл без расширения (для ОС GNU\Linux), который можно выполнить в терминале.

Среда визуального программирования Lazarus

Консольные приложения (работающие в терминале или командной строке) это конечно хорошо, а как же создать приложение с графическим интерфейсом в среде GNU\Linux?

Возможно, вы слышали о Delphi компании Borland — это среда быстрой разработки программ с графическим интерфейсом на языке Object Pascal (в дальнейшем стал называться просто язык Delphi). В чем достоинство такой среды (и других подобных визульных сред разработки)? Достоинство в том, что программист не заботится о том, чтобы программным путем нарисовать окно приложения, разместить на нем кнопки, списки и другие графические элементы — заботу об этом берет сама среда Delphi; программист занимается непосредственно обработкой различных событий и собственно алгоритмом обработки данных.

Lazarus — свободная (а значит, совершенно бесплатная!) среда разработки программного обеспечения для компилятора языка Free Pascal. Интегрированная среда разработки предоставляет возможность разработки приложений в Delphi-подобном окружении. Причем, есть возможность создания кроссплатформенных приложений, работающих и в операционной системе Windows, и в операционной системе GNU\Linux.

Установка Lazarus

1) с помощью терминала:

2) с помощью пакетного менеджера Synaptic. Ставим галочки напротив программ Lazarus, fp, fpc, fpc-ide

3) можно скачать инсталляционный пакет с официального сайта разработчиков:http://sourceforge.net/projects/lazarus/files/

После запуска мы увидим многооконный интерфейс Lazarus, схожий с интерфейсом среды Borland Delphi:

лабы по информатике, егэ

лабораторные работы и задачи по программированию и информатике, егэ по информатике

Pascal: Занятие №2. Часть 1: Условный оператор в Паскале (If)

Условный оператор в Паскале

До рассмотрения данной темы в основном использовались линейные алгоритмы в Паскале, характерные для весьма простых задач, когда действия (операторы) выполняются последовательно, одно за другим. Более сложные алгоритмы предусматривают использование конструкция ветвления.

Блок-схема условного оператора:

Условный оператор в Паскале имеет следующий синтаксис:

if условие then оператор;

Полный вариант:

if условие then оператор else оператор;

Условный оператор в Паскале — if — служит для организации хода задачи таким образом, при котором изменяется последовательность выполнения операторов в зависимости от какого-либо логического условия. Логическое условие может принимать одно из двух значений: либо true (истина), либо false (ложь), соответственно, оно может быть либо истинным, либо ложным.

Составной оператор

Если при истинном условии необходимо выполнять несколько операторов, то их по правилам языка Pascal необходимо заключать в блок, начинающийся со служебного слова begin и заканчивающегося служебным словом end . Такой блок принято называть операторными скобками, а данную конструкцию — составным оператором:

Операторные скобки и составной оператор в Паскале:

if логическое выражение then begin оператор1; оператор2; end else begin оператор1; оператор2; end;

Перевод с английского оператора условия облегчит понимание его использования:


Вариант 1 Вариант 2

Подробно разобраться в работе условного оператора в Паскале можно, просмотрев видеоурок:

Обратите внимание на то, как в данном примере выводится y . При выводе переменных типа real в pascal, можно использовать так называемый форматированный вывод, или запись с двумя двоеточиями:
y:6:2
— цифра после первого двоеточия ( 6 ) указывает на то, сколько знаков будет занимать число при выводе на экран
— цифра после второго двоеточия ( 2 ) указывает на то, сколько знаков после запятой вещественного числа будет выводиться

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

Логические операции в Паскале (в логическом выражении)

Когда необходимо использовать двойное условие в Pascal, то понадобятся логические операции.

  • Логическая операция AND (И), поставленная между двумя условиями, говорит о том, что должны выполняться сразу оба эти условия (должны быть истинными). Логический смысл операции — «конъюнкция».
  • Поставленный между двумя условиями, знак OR (ИЛИ) говорит о том, что достаточно, если будет выполняться хотя бы одно из них (одно из двух условий истинно). Логический смысл операции — «дизъюнкция».
  • На языке Паскаль XOR — знак логической операции, имеющий смысл «строгая дизъюнкция» и указывающий на то, что необходимо, чтобы одно из двух условий выполнялось (истинно), а другое — не выполнялось (ложно).
  • Логическая операция NOT перед логическим выражением или переменной имеет смысл «отрицание» или «инверсия» и указывает на то, что если данная переменная или выражение истинны, то их отрицание — ложь и наоборот.

var n:integer; begin n:=6; if (n>5) and (n 7) or (n 7) xor (n 7) then writeln(‘истина’); end.

Вариант 1 Вариант 2

var a,b: integer; begin write(‘Введите A: ‘); read(a); b := a mod 2; if b>0 then writeln(‘true’) else writeln (‘false’) end.

Построение блок-схем по коду Паскаль

Теперь настало время вспомнить о том, что такое блок-схемы.
Блок схема — ориентированный граф, указывающий на последовательность операций, приводящую к решению поставленной задачи.

Существуют управляющие структуры трех типов:

следование ветвление повторение или цикл

Две из трех представленных структур блок-схемы мы уже можем перевести в код Pascal.

Pascal-Паскаль

Программирование. Строки и символы Pascal-Паскаль

  • Скачено бесплатно: 6873
  • Куплено: 414
  • Pascal-Паскаль->Программирование. Строки и символы Pascal-Паскаль

Программирование. Строки и символы Pascal-Паскаль

Строки Pascal-Паскаль

Строка представляет собой особую форму одномерного массива символов, которая имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании. Строка имеет две разновидности длины:

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

Строка в Паскале – упорядоченная последовательность символов. Количество символов в строке называется ее длиной. Длина строки в Паскале может лежать в диапазоне от 0 до 255. Каждый символ строковой величины занимает 1 байт памяти и имеет числовой код в соответствии с таблицей кодов ASCII.

Код ASCII (American Code for Information Interchange – Американский стандартный код для обмена информацией) имеет основной стандарт и его расширение. Основной стандарт использует шестнадцатеричные коды 00-7F, расширение стандарта – 80-FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширении стандарта используются символы псевдографики и буквы национальных алфавитов.

32 пробел 48 0 64 @ 80 P 96 ` 112 p
33 ! 49 1 65 A 81 Q 97 a 113 q
34 « 50 2 66 B 82 R 98 b 114 r
35 # 51 3 67 C 83 S 99 c 115 s
36 $ 52 4 68 D 84 T 100 d 116 t
37 % 53 5 69 E 85 U 101 e 117 u
38 & 54 6 70 F 86 V 102 f 118 v
39 ‘ 55 7 71 G 87 W 103 g 119 w
40 ( 56 8 72 H 88 X 104 h 120 x
41 ) 57 9 73 I 89 Y 105 i 121 y
42 * 58 : 74 J 90 Z 106 j 122 z
43 + 59 ; 75 K 91 [ 107 k 123 <
44 , 60 78 N 94 ^ 110 n 126
47 / 63 ? 79 O 95 _ 111 o 127

Строковая константа Паскаля – последовательность символов, заключенная в апострофы. Например, ‘строковая константа’, ‘243’. Два следующих друг за другом апострофа (») обозначают пустую строку, т.е. строку с нулевой длиной.

Описание строковой переменной Паскаля

Для описания строковых переменных в Паскале существует предопределенный тип string.

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

Пример описания строковой переменной в Паскале:

В приведенном выше описании строковая переменная s1 может содержать не более 10 символов, переменная s2 – не более 20 символов. Если же при описании строки ее максимальная длина не указывается, то по умолчанию принимается максимально допустимая длина, равная 255 символам (переменная smax)..

Символы в строке упорядочены, каждый из них имеет порядковый номер, начиная с первого. Имеется возможность обратиться к любому элементу строки, указав его номер, так же как это делается в одномерных массивах. Например, s1[2] позволяет обратиться ко второму символу в строке s1, при этом мы можем поменять это значение, выполнив оператор присваивания s1[2]:= ‘r’, можем вывести на экран это значение или присвоить его другой переменной.

Действия со строками в Паскале

Операция слияния (сцепления, конкатенации) применяется для соединения нескольких строк в одну, обозначается знаком «+». Операция слияния применима для любых строковых выражений, как констант, так и переменных.

Операции отношения позволяют сравнивать строки на отношение равенства (=), неравенства (<>), больше (>), меньше ( =), меньше или равно ( Пример действий со строками в Паскале:

‘строка’<>‘строки’ (верно, т.к. не совпадают последние символы);

‘Abc’ ‘век’ (отношение верно, т.к. буква ‘г’ в алфавите стоит после буквы ‘в’, а, следовательно, имеет больший код).

Стандартные функции для работы со строками в Паскале

Copy (S, poz, n) выделяет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – любое строковое выражение, poz, n – целочисленные выражения.

Значение S Выражение Результат
‘строка символов’ Copy(S,3,3) рок

Concat (s1, s2. sn) выполняет слияние строк s1, s2. sn в одну строку.

Выражение Результат
Concat(‘язык’, », ‘Pascal’) ‘язык Pascal’

Length(S) определяет текущую длину строкового выражения S. Результат – значение целого типа.

Значение S Выражение Результат
‘(а+в)*с’ Length(s) 7

Pos(subS, S) определяет позицию первого вхождения подстроки subS в строку S. Результат – целое число, равное номеру позиции, где находится первый символ искомой подстроки. Если вхождение подстроки не обнаружено, то результат функции будет равен 0.

Значение S Выражение Результат
‘предложение’ Pos(‘е’, S) 3
‘предложение’ Pos(‘a’, S)

Стандартные процедуры для работы со строками в Паскале

Delete (S, poz, n) удаляет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – строковая переменная (в данном случае нельзя записать никакое другое строковое выражение, кроме имени строковой переменной, т.к. только с именем переменной связана область памяти, куда будет помещен результат выполнения процедуры); poz, n – любые целочисленные выражения.

Исходное значение S Оператор процедуры Конечное зн-е S
‘abcdefg’ Delete(s, 2, 3) ‘aefg’

Insert(subS, S, poz) вставляет в строку S, начиная с позиции poz, подстроку subS. Здесь subS – любое строковое выражение, S – строковая переменная (именно ей будет присвоен результат выполнения процедуры), poz – целочисленное выражение.

Исходное значение S Оператор процедуры Конечное зн-е S
‘рис. 2’ Insert(‘№’, S, 6) ‘рис. №2’

Процедуры преобразования типов в Паскале

Str(x, S) преобразует число x в строковый формат. Здесь x – любое числовое выражение, S – строковая переменная. В процедуре есть возможность задавать формат числа x. Например, str(x: 8: 3, S), где 8 – общее число знаков в числе x, а 3 – число знаков после запятой.

Оператор процедуры Значение S
Str (sin(1):6:4, S) ‘0.0175’
Str (3456, S) ‘3456’

Val(S, x, kod) преобразует строку символов S в число x. Здесь S – строковое выражение, x – числовая переменная (именно туда будет помещен результат), kod – целочисленная переменная (типа integer), которая равна номеру позиции в строке S, начиная с которой произошла ошибка преобразования, если преобразование прошло без ошибок, то переменная kod равна 0.

Тип X Оператор процедуры Значение X Значение kod
Real Val(‘12.34’, x, kod) 12.34
Integer Val(‘12.34’, x, kod) 12 3

Программирование

Исходники Pascal (127)

Справочник

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

Примеры программ на Pascal

Задание:

Ввести с клавиатуры n чисел. Определить количество четных.

Код программы:

Задание:

Дано четырехзначное число. Верно ли, что сумма первой и последней цифр равна сумме средних цифр?

Пример теста:

1234 — да: 1+4=2+3
7459 — нет: 7+9 ≠ 4+5

Код программы:

Задание:

Решение квадратного уравнения ax 2 +bx+c=0

Пример теста:

Код программы:

Задание:

При попадании в маленький круг (радиус = 1), игроку начисляется 2 балла, при попадании в большой круг (радиус 2) — 1 балл, мимо мишеней — 0 баллов.

Пример теста:

0.5; 0.6 — 2
-1.2; -1.3 — 1
2.6; 3 — 0

Код программы:

Задание:

Вычислить значение функции

Пример теста:

при x = 2, y = -4.441979

Код программы:

Задание:

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

Пример теста:

1 2 3 4
7 1 3 0
2 7 4 3
1 3 2 1

Илон Маск рекомендует:  AnsiPos - Функция Delphi
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL