Урок 13. процедуры и функции в pascal. часть 2

Содержание

Программы в данной IDE строятся так:

Константы

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

Простейшие типы

Тип строка

Тип строка — это тип переменных, который позволяет хранить в переменной любой текст. Объявление строковой переменной:

Строки могут быть не более 255 символов. Изначальное значение строковых переменных — это «пустая строка» — ».

Операция Описание
s1 + s2 Объединение строк
s1*n Дублирование строки n раз

Тип целое число integer

Кроме типа string в PascalABC.Net есть еще тип целое число — «integer». Само число a может принимать (в PascalABC.Net) значения от -2147483648 до 2147483647. Пример объявления переменной типа integer:

Операция Описание
a + b Сложение чисел
a — b Разность чисел
a * b Произведение чисел
a div b Целочисленное деление
a mod b Остаток от деления

Тип вещественное число real

Декларация переменной типа real:

Пример присваивания переменной данного типа:

Операция Описание
a + b Сложение чисел
a — b Разность чисел
a * b Произведение чисел
a / b Частное чисел

Тип символ

Тип символ или «char» используется в основном для хранения одного любого символа вне зависимости от того, является ли данный символ буквой или цифрой. Объявление переменной символьного типа:

Комментарий — это часть кода, которую игнорирует компилятор. Он создается следующим образом:

Интерфейс и основные инструменты

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

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

С помощью использования подпункта «файл», можно создать новый проект, открыть существующий, сохранить работу, либо поместить сохраненный файл в выбранную папку. Альтернативным способом выполнить все действия с файлами является использование клавиатурных комбинаций. Так, Ctrl+O отвечает за открытие файла с проектом программ, Ctrl+N создает новый проект, Ctrl+Shift+S позволит сохранить работу в выбранную папку, а Ctrl+S просто сохраняет изменения, сделанные в файле.

С помощью подпункта «Правка», выполняют ряд действий с кодом. Через меню можно выбрать копирование, вырезку, удаление выделенного участка кода, или отмена действий. Как и в предыдущем случае, эти операции можно выполнить с помощью соответствующих клавиатурных сокращений: Ctrl+C – копировать выделенный участок кода, Ctrl+V – вставить выделенный участок кода, Ctrl+X – вырезать выделенный участок кода, Ctrl+Z – отменить действие.

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

В разделе «Программа» помещены инструменты для управления компиляцией написанного программного продукта.

В «сервисе» пользователь может выполнить основные настройки приложения для программирования.

Раздел «Модули» содержит основные программные модули, задачи, а также примеры кода приложений, которые можно создать в Паскаль АБС.

С помощью раздела «Помощь», пользователь может узнать о том, как пользоваться программой.

Платформы

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

  • Архитектура ARM
    • Game Boy Advance
    • Nintendo DS
    • Linux
    • Windows CE (только кросс-компиляция с использованием версии для Windows x86)
    • Android
  • Архитектура Intel/i386
    • DOS (с использованием Go32v2)
    • FreeBSD
    • Linux
    • Mac OS X (and cross-compilers for PowerPC(64)/Mac OS X, iOS & iPhoneSimulator, JVM/Java and JVM/Android).
    • Haiku
    • OS/2 (and eComStation)
    • Solaris
    • Microsoft Windows 32-bit (and a cross-compiler ARM/MIPS/i386-Android)
    • Android
  • Архитектура PowerPC
    • AIX
    • Linux
    • Mac OS X
    • Nintendo Wii
  • Архитектура PowerPC64
    • AIX
    • Linux
    • Mac OS X
  • Архитектура SPARC
    • Linux
    • Solaris
  • Архитектура AMD64/Intel 64/x86_64
    • FreeBSD
    • Solaris
    • Linux
    • Windows 64-bit
  • Архитектура i8086

    MS-DOS

  • Архитектура MIPS
    • Android
    • Linux
  • Архитектура MIPSEL

    Linux (Experimental, not tested)

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

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

Особенности языка

Любая переменная в этом языке имеет свой тип. Это значит, что она может принимать множество значений. Также можно проводить различные операции над переменными.

Основы языка

При использовании Паскаля придерживаются жесткой типизации. При описании переменной определяют ее тип и более этот тип не могут изменить.

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

Простые типы являются базовыми в этой программе. Из простых формируются составные типы. Для иных типов используют ссылочные.

Чтобы построить сложный тип используют ссылочные и составные типы.

Для сужения области допустимых значений формируют ограниченные типы. Для этого достаточно простым типам задать спектр допустимых значений (к примеру, для переменной задается значение от 1 до 5, или от 1 до 100, или другие варианты). В этой программе это будет прописано как: for var i:=1 to 5 do или for var i:=1 to 100 do.

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

Для обращения к подпрограммам с переменными используются процедуры (procedure).

Объектно-ориентированный стиль характеризуется обобщением комбинированных типов.

Особенности программы Паскаль АБС:

  • возможность описать переменную внутри блока;
  • появление операторов /=, *=, -=, +=;
  • появилась возможность определить переменную при описании (к примеру, var n: integer :=15; в этом примере видно, как переменной n присваивается значение, равное 15);
  • появляется цикл foreach;
  • можно выполнять перегрузку операций;
  • чтобы вызвать конструктор используется new;
  • можно прописывать подпрограммы, у которых будет переменное число параметров;
  • для генерирования последовательностей добавлены операторы yield sequence, yield;
  • стала поддерживаться директива OpenMP;
  • появилось кортежное присваивание (к примеру, (a,b):=(b,a));
  • определен тип кортежа – используются T1, T2.

На примере видно, как используется var, new, foreach для создания частотного словаря. К примеру, начало операции символизируется словом begin, затем переменной d присваивают значение, что это будет новый словарь.

В цикле foreach для переменной s определено, что это в прочтении ReadLine будет слово, затем ей присваивается значение слова, далее в завершение операции к каждому слову добавляется следующее слово, затем операция печать (Print) и завершается программа словом end.

Паскаль для начинающих – основные понятия

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

Как выглядит рабочее пространство?

Теперь рассмотрим основу: алфавит и структуру.

Алфавит Паскаль

Что нужно знать? Алфавит — это набор символов, необходимый при составлении программы.

Что к ним относится:

  1. Латинские прописные, строчные буквы (А, В, С….а,b,с).
  2. Арифметические символы (0, 1, 2…).
  3. Специальные знаки (препинания, скобки, кавычки, арифметические знаки и т. д.).
  4. Неделимые символы (:=, ˃=…).
  5. Служебные слова:
  • and – и;
  • array – массив;
  • begin – начало;
  • do – выполнить;
  • else – иначе;
  • for – для;
  • if – если;
  • of – из;
  • or – или;
  • procedure – процедура;
  • program – программа;
  • repeat – повторять;
  • then – то;
  • to – до;
  • until – до (= пока);
  • var – переменная;
  • while – пока.

Ввод данных с клавиатуры

Ввод данных в языке программирования Паскаль обеспечивается процедурами read() и readln(). Ввод данных осуществляется либо с клавиатуры, либо из файла. Здесь рассматривается только ввод с клавиатуры.

Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read() (или readln()), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.

В процедуры ввода можно передавать не один фактический параметр, а множество.

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

Существуют особенности ввода данных с помощью операторов read() и readln(). Если используются подряд несколько операторов read(), то вводимые данные можно разделять всеми допустимыми способами. При использовании нескольких вызовов readln() каждый последующий срабатывает только после нажатия Enter. Программа ниже иллюстрирует это. Комментарии поясняют последовательность возможных действий при вводе данных.

Функции [ править ]

Общий синтаксис описания функции:

Можно устанавливать значение переменной Result для указания возвращаемого значения.

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

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

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

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

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

Справка

Справка Free Pascal распространяется с дистрибутивом в двух форматах: PDF и HTML, при желании можно скачать отдельно справку и в других форматах. И в том и в другом виде она хорошо структурирована и прекрасно читается. Состоит из четырех книг:

«Руководство программиста», которое описывает различные аспекты программирования, такие как директивы компилятора, использование ресурсов, использование встроенного ассемблера и т.д.

«Справочник», где описывается язык Pascal в его Free Pascal диалекте и содержимое модулей System и ObjPas.

«Справочник модулей». Описываются модули: CRT, DOS, DXELoad, Emu387, GetOpts, GPM, GO32, Graph, HeapTrc, IPC, Linux, Math, MMX, MSMouse, Objects, Ports, Printer, Sockets, Strings, SysUtils.

«Руководство пользователя», где рассматриваются такие вопросы, как инсталляция Free Pascal, ключи командной строки, файл настроек и проч.

Hello, World на Pascal

Теперь вы готовы написать первую программу.

Program Hello_World; {фигурные кавычки позволяют вставить комментарий к коду}
Begin
Write('Hello, World!');
End.

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

Задача 1.  Требуется запросить имя пользователя, а затем вывести «Привет, <имя>!» Для решения этой задачи нам потребуется строковой тип данных — string.


Program Hello_boy_girl; {фигурные кавычки позволяют вставить комментарий к коду}
var name: string; {объявляем name — это новая переменная}
Begin
Write(‘Введите свое имя: ‘); {так как мы используем write, курсор будет мигать после двоеточия}
Read(name); {Считываем все, что ввел пользователь}
Write(‘Привет,’, name,’!’); {Обратите внимание! Переменная отделяется от кавычек ЗАПЯТЫМИ!}
End. Задача 2

 Требуется узнать сколько лет пользователю, а затем вывести  «Вам   лет». Очевидно, что для решения этой задачи нам потребуется целочисленный тип данных — Integer

Задача 2.  Требуется узнать сколько лет пользователю, а затем вывести  «Вам  <возраст> лет». Очевидно, что для решения этой задачи нам потребуется целочисленный тип данных — Integer.

Program How_old_are_you;
var years: integer; {объявляем years -- это новая переменная}
Begin
Writeln('Сколько вам лет?'); {так как мы используем writeln, каретка будет мигать под надписью}
Read(years); {Считываем все, что ввел пользователь}
Write('Вам ', years,' лет.'); 
End.

P.S. Давайте выделим две особенности Pascal:

  1. Паскаль НЕ чувствителен к регистру, то есть  и program, и Program, и PrOgRaM для него ничем не отличаются. А потому с самого начала привыкайте писать в нижнем регистре, чтобы при переходе на другой язык программирования не испытывать никаких проблем с этим;
  2. Имя программы в Pascal не играет никакого значения, оно не несет в себе никаких полезных функций. Если хотите вы можете просто не писать ЕГО!

Параметры.

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

Параметры-значения.

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

Кроссплатформенность

Первое, что впечатляет, это его кроссплатформенность: поддерживаются не две-три операционных системы, а сразу шесть ОС и два типа процессоров. На базе i386 — Win32, DOS, Linux, FreeBSD и OS/2. На базе процессора Motorola 680×0 — AmigaOS.

Что это значит? Это значит, что под все эти операционные системы вы можете писать программы, пользуясь одним языком и одной библиотекой базовых функций. А зачастую, вообще, для переноса программы или библиотеки достаточно ее перекомпилировать. Думаю, что особенно приятно должно быть инженерам и научным работникам — если не вдаваться в интерфейсные заморочки, любые расчеты можно написать один раз, не задумываясь над тем, под какой операционной системой они будут выполняться.

С чего начать

Если вы дав­но хоте­ли позна­ко­мить­ся с Пас­ка­лем побли­же, но не зна­ли, с чего начать, то нач­ни­те с это­го:

  • onlinegdb.com — онлайн-компилятор Pascal. В нём мож­но прак­ти­ко­вать­ся в язы­ке без уста­нов­ки на свой ком­пью­тер. С план­ше­тов тоже рабо­та­ет.
  • Кни­га Вале­рия Фара­но­ва Turbo Pascal — самая боль­шая, попу­ляр­ная и понят­ная кни­га по клас­си­че­ско­му Пас­ка­лю.
  • Turbo Pascal 7.0 — Элек­трон­ный учеб­ник для сту­ден­тов и школь­ни­ков, состав­лен пре­по­да­ва­те­ля­ми Вол­го­град­ско­го госу­дар­ствен­но­го педа­го­ги­че­ско­го уни­вер­си­те­та. Отлич­но подой­дёт тем, кто захо­чет изу­чить язык с нуля.

Структура процедуры.

До этого момента времени мы использовали из раздела описаний только описание переменных и типов. На этом занятии мы начнем изучать процедуры. Структура процедуры повторяет структуру программы. Отличия выделены «полужирным» шрифтом.

procedure <имя процедуры> (<параметры>);

label 
   <метки>;

const 
   <описание констант>;

type 
   <описание типов данных>;

var 
   <описание переменных>;

<процедуры и функции>;

begin
   <основное тело процедуры>;
end;

Напишу простую программу с процедурой, складывающей два числа.

var
  a, b, c: integer;

procedure sum(x, y: integer; var z: integer);
begin
  z := x + y;
end;

begin
  write('Введите два числа: ');
  readln(a, b);
  sum(a, b, c); {процедура вызывается своим именем, которое вы написали после зарезервированного слова procedure в описании}
  writeln(c);
end.

Итак, что вы видите? Точнее, что вам не понятно в данной программе? Я думаю, что вы не можете понять, почему перед z стоит var, а перед x, y — нет. Но всему свое время.

Обратимся к примеру, приведенному на рисунке выше. Слева приведен фрагмент текста основной программы, справа — процедура. Как только в теле программы объявляется имя процедуры с параметрами, выполнение «главного» тела прекращается, и управление вычислительными процессами передается процедуре. После выполнения процедуры осуществляется возврат на оператор основной программы, следующий за вызовом процедуры.

Немножко теории: В любой программе все переменные делятся на два типа: локальные и глобальные. В нашей программы переменные а, b, с — глобальные, а х, у, z — локальные. Глобальные переменные — это переменные из раздела описаний основной части программы, а локальные — из раздела описаний процедур и функций. Локальные переменные существуют только в течение времени работы процедуры, определяются (создаются) при её вызове и исчезают после завершении работы процедуры.

В программе определены переменные a, b, c. В процедуре x, y, z — её параметры, и они являются переменными процедуры. Причем между х, у  и z существует большая разница.

Поясню ее очередным рисунком.

Pascal / Говнокод #26325

−3

  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18

Болею. Стояла задача воспроизвести системное меню. Но оказалось, что при клике на элемент фейкового системного меню, форме не посылается WM_LBUTTONUP и кнопка-иконка не перекрашивается в ненажатый вид. Решил перформить WM_LBUTTONUP прямо при клике, но туда нужно передавать координаты мышки куда был совершён клик в High(lParam) и Low(lParam). Сначала хотел передавать -1;-1 но подумал что передавать туда $FFFFFFFF как-то некрасиво, а прямое приведение типов а-ля Integer(Point(-1,-1)) оно у меня хавать не захотело, и поэтому красоты ради наговнокодил первый вариант кода. Потом подумал, а что если там только положительные значения, будет же 65535;65535 непорядок, лучше буду передавать нули. Впихнуть туда просто 0 сразу в голову не пришло (болею же, башка квадратная) и наговнокодил второй вариант.
Потом, конечно же, написал всё по нормальному.

KOTOM,
07 Января 2020

Логика игры

У клас­си­че­ской змей­ки пра­ви­ла про­стые:

  • есть поле из кле­то­чек, где слу­чай­ным обра­зом появ­ля­ет­ся еда;
  • есть змей­ка, кото­рая всё вре­мя дви­га­ет­ся и кото­рой мы можем управ­лять;
  • если змей­ка на сво­ём пути встре­ча­ет еду — еда исче­за­ет, появ­ля­ет­ся в новом месте, а сама змей­ка удли­ня­ет­ся на одну кле­точ­ку;
  • если змей­ка вре­жет­ся в сте­ну или в саму себя, игра закан­чи­ва­ет­ся.

Что­бы играть было про­ще, мы сде­ла­ем так, что­бы змей­ка не вре­за­лась в стен­ки, а про­хо­ди­ла сквозь них. Если что — смо­же­те это сами потом настро­ить в коде, когда захо­ти­те послож­нее.

После­до­ва­тель­ность наших дей­ствий будет такой:

  1. Дела­ем пустую HTML-страницу.
  2. Настра­и­ва­ем внеш­ний вид с помо­щью CSS.
  3. Рису­ем игро­вое поле.
  4. Пишем скрипт, кото­рый и будет отве­чать за всю игру.

Компилятор — наш друг

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

Ошиб­ка несо­от­вет­ствия типов: про­грам­мист пыта­ет­ся в цело­чис­лен­ную пере­мен­ную (integer) поме­стить дроб­ное чис­ло.

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

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

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

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

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

История развития

В 2003 году на факультете математики, механики и компьютерных наук ЮФУ была создана учебная среда программирования Pascal ABC. Система представляла собой интегрированную оболочку со встроенным интерпретатором языка программирования Паскаль, близкого к языку Delphi. Несмотря на неполную реализацию языка, она стала удачной заменой устаревшей системе Turbo Pascal в первоначальном обучении программированию. Как учебную систему её использовали во многих регионах СНГ. В каталоге Soft@Mail.ru программа Pascal ABC в 2006 году признавалась программой недели.

Внешние изображения

В —2006 годах система была полностью переработана: изменена её архитектура — на полноценный компилятор языка, близкого к Delphi, с расширениями, связанными с платформой .NET. Новая система получила название PascalABC.NET. В июне 2009 года появилась первая стабильная версия PascalABC.NET 1.2.

В сентябре г. появилась веб-среда разработки WDE, не требующая установки PascalABC.NET на локальный компьютер и позволяющая запускать программы на PascalABC.NET непосредственно из окна браузера. Веб-среда разработки была закрыта в октябре 2017 года.

В августе г. осуществлен переход на (версия 1.8).

В феврале г. вышла версия PascalABC.NET 2.0 с дизайнером форм и поддержкой проектов.

15 мая г. вышла версия 2.1 с английской локализацией интерфейса и сообщений об ошибках.

15 февраля г. вышла версия PascalABC.NET 2.2. Многократно ускорено обращение к символам строки на запись.

28 августа 2015 г. вышла версия PascalABC.NET 3.0. PascalABC.NET стал свободным и распространяется под лицензией LGPLv3.

12 февраля 2016 г. вышла версия PascalABC.NET 3.1. Появились кортежи и срезы, значительно обновлена стандартная библиотека.

29 августа 2016 г. вышла версия PascalABC.NET 3.2. Появились операторы yield и yield sequence, обновлена стандартная библиотека.

30 августа 2017 г. вышла версия PascalABC.NET 3.3. Появились стандартные модули GraphWPF и Graph3D (для Windows Vista и выше), упрощенный цикл loop, операция безопасного среза, кортежное присваивание, поддержка Nullable-типов. Добавлена украинская локализация интерфейса и сообщений об ошибках.

11 февраля 2018 г. вышла версия PascalABC.NET 3.3.5. Добавлен стандартный модуль NumLibABC (учебная библиотека численных методов), реализованы форматные строки и операция возведения в степень. В полную версию дистрибутива (для Windows Vista и выше) интегрирована .NET 4.7.1, для Windows XP оставлен дистрибутив с .NET 4.0.

25 мая 2018 г. вышла версия PascalABC.NET 3.4. Реализовано некоторое подмножество Pattern Matching, расширенный оператор is.

1 сентября 2018 г. вышла версия PascalABC.NET 3.4.2. Реализованы расширенные свойства, расширенные индексные свойства и автосвойства, добавлен модуль WPFObjects как замена устаревшему ABCObjects.

25 мая 2019 г. вышла версия PascalABC.NET 3.5. В Pattern Matching добавлена возможность сопоставления со списками, кортежами и константами.

16 января 2020 г. вышла версия PascalABC.NET 3.6.0. Реализована операция , возвращающая или в зависимости от контекста, а также условная операция:

7 мая 2020 г. вышла версия PascalABC.NET 3.6.3. Реализована операция доступа по индексу с конца a для массивов, списков и строк. Реализована возможность использовать срезы в левой части оператора присваивания: . Значительно ускорен перенаправленный ввод

Вывод данных на экран. Форматированный вывод

Вывод данных на экран и в файл в языке программирования Pascal осуществляется с помощью процедур и . Здесь будет рассмотрен вывод только на экран.

Допустим, нам требуется отобразить на экране пару фраз. Если мы хотим, чтобы каждая из них начиналась с новой строки, то надо использовать writeln(), если нет – то write().

Write() чаще используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран «Введи число: » и не переводим курсор на новую строку, а ждем ввода.

Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.

Во втором случае мы видим, что процедуры вывода (как write() так writeln()) позволяют конструировать выводимую информацию из различных компонент (строк-констант и переменных).

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector