В этом уроке рассмотрим:
- Структуру программы на языке Паскаль
- Примеры простейших программ
- Работу с переменными. Примеры
- Справочная информация по типам данных
- Справочная информация по операторам ввода/вывода
- Справочная информация выражениям и стандартным функциям
Разделы справочной информации внимательно читать не обязательно, к ним стоит обращаться по мере необходимости.
1 Структура программы на Паскаль
PROGRAM имя программы;
(английскими буквами, одно слово. Хотите глубже? То необходимо воспользоваться правилами написания идентификаторов)
USES подключаемые библиотеки (модули);
(дополнительные возможности, их можно подключать к программе в этой строке)
LABEL список меток;
(из одного места программы «прыгать» в другое)
CONST раздел описания констант;
(постоянные величины, их нельзя изменять)
TYPE описание типов переменных;
VAR определение глобальных переменных;
(описание всех переменных величин, которые в программе могут изменяться)
ОПРЕДЕЛЕНИЕ ПРОЦЕДУР;
ОПРЕДЕЛЕНИЕ ФУНКЦИЙ;
BEGIN
основной блок программы
END
.
Разумеется, что не все приведенные выше блоки обязательны для использования. Сейчас приведем тот минимум, который необходимо использовать.
Program ex123; Begin End.
Данная программа ни чего не делает, так как в ней нет ни одного оператора.
2 Пример программы на Pascal
Hello world на паскаль
Результатом данный программы будет вывод на экран строки «Hello, World!».
Program Hello_World; Begin Write('Hello, World'); End.
Запустите Turbo Pascal и перепишите исходный код программы. Теперь запустите программу, это можно сделать зажав сочетание клавиш Ctrl+F9. Результат выполнения программы всегда можно посмотреть зажав сочетание клавиш Alt+F5.
Тут:
Program Hello_World;
— это название вашей программы, зачастую его не используют.- Все что пишется до первого
Begin
— это раздел описания. Здесь программа просто сообщает компилятору сведения об используемых объектах и еще некоторую информацию. - Основной блок кода, так называемый раздел операторов, всегда начинается с
Begin
и заканчиваетсяEnd
. (обратите внимание:Begin
всегда без точки, а последний закрывающийEnd
. всегда с точкой). Write('Hello, World');
— это первый исполняемый оператор в нашей программе, который сообщает компилятору о том, что необходимо напечатать строку"Hello, World!"
.
Стоит отметить, что язык Паскаль не чувствителен к регистру символов, т.е. write()
, Write()
, WRITE()
, и даже WrItE()
— все это для Паскаля означает одно и тоже.
Вычисление суммы двух чисел на Паскаль
Program Summa; { программа называется Summa } Const A = 23; B = 76; var S: integer; begin S := A + B; { сумма чисел A и B } writeln('Сумма чисел 23 и 76 равна: S = ', S); readln { <-- Ожидание нажатия Enter, после которого программа завершится } end.
Предлагаю сразу запустить эту программу, а пояснения к ней можно найти ниже…
3 Константы и переменные. Примеры
Переменные в Pascal, служат для хранения некоторых величин. Переменные тождественны идентификаторам, т.е. для того, чтобы в программе объявить переменную необходимо назвать ее.
3.1 Константы
Те переменные, которые не изменяются, называются константами. Различают следующие типы констант:
- Числовые константы (целочисленные и вещественные). Пример:
const N: integer = 12; //число N – целого типа S: integer = 5; //число S – целого типа pi: real = 3.14; //число «пи» - вещественного
После объявления каждой величины указывается её тип, а потом присваивается значение. Но предыдущая запись тоже верна, поскольку компилятор Паскаля настроен так, что он автоматически определяет тип постоянной. Но этого нельзя сказать о следующем типе чисел – переменных.
- Символьные константы. Единичный символ, записанный в апострофы:
'А', 'В'
- Строковые константы. Некоторая произвольная последовательность символов, заключенная в апострофы:
'Pascal programming language'
Рассмотрим программу «Hello world!» с использованием константы.
Program Hello_World_With_Const; Uses Crt; Const hello = 'Привет, '; Var name:string; Begin ClrScr; Write('Введите имя: '); Read(name); Write(hello, name, '!'); ReadLn End.
В данном случае мы объявили константу hello
равную значению ‘Привет, ‘. Далее в программе достаточно в нужном месте подставить эту константу. Теперь если нам вдруг понадобиться вместо программы, которая здоровается, сделать программу, которая прощается, достаточно в начале программы поменять «Привет, » на «До свидания, » и программа будет прощаться с пользователем.
Если Вы обратили внимание, то в примере у константы не указан явно не указан тип, такие константы называются Обычными константами. Тип обычных констант определяется по их значению.
Помимо обычных констант существуют Типизированные константы. Тип таких констант объявляется явно:
Const Stroka :string = 'Привет'; Number :Integer = 777; Pi :Real = 3.14159;
Дополнительно хочется обратить внимание на апострафы в константах. Если Вам в константе понадобится использовать апострофы, то просто продублируйте их:
Const stroka = 'I''m a programmer!';
3.2 Переменные в Pascal
Для хранения данных, полученных от пользователя, в программе вводятся переменные. К примеру для того, чтобы передать программе имя какого-то человека нам нужно в коде программы записать строчку:
Read(name);
Данная строка сообщает нашей программе о том, что нужно получить данные от пользователя и сохранить их в переменную name
, которую мы указываем в скобках оператора Read
(с англ.: читать).
Хочу обратить Ваше внимание на тот факт, что все идентификаторы(переменные, название программы) в коде Turbo Pascal могут состоять исключительно из символов латинского алфавита (A-Z, a-z), цифр (0-9) и символа нижнего подчеркивания («_»). Также идентификаторы не должны начинаться с цифр.
/* Примеры правильных имен переменных */ variable Variable var1 var_1234 VARIABLE /* Примеры не правильных имен переменных */ -variable 123Var Var-123
Для целых чисел часто используются два основных типа: Integer
и LongInt
. Единственным отличием типов переменных, используемых для одного формата данных, — это Диапазон допустимых значений. К примеру для Integer
диапазон допустимых значений [-32768, 32767]
, то есть минимальным значением для переменной типа Integer
является число -32768
, а максимальным — 32767
.
Переменные перед использованием надо объявить в секции var
, при этом указывается тип переменных. Например:
var N, m: integer; Q, r, t: real;
Секция описания переменных всегда стоит после описания констант (постоянных) – сначала идет конструкция const
, а потом var
.
Теперь попробуем объявить несколько переменных разного типа. Допустим мы хотим знать имя пользователя, его возраст и его рост. Для этого возьмем код программы их первого примера и изменить в соответствии с новыми требованиями.
Program Hello_World_With_Variable; Uses Crt; Var name :string; years, height :Integer; Begin ClrScr; Write('Введите Ваше имя: '); ReadLn(name); Write('Сколько Вам лет? ') ReadLn(years); Write('Какой у Вас рост?(в см) ') ReadLn(height); Write('Привет, ', name, '! Я знаю что тебе ', years, ' лет', ' и твой рост составляет', height, ' см'); ReadLn End.
Хочу обратить ваше внимание на 5 строчку кода. Когда у нас есть несколько переменных одного типа, мы можем объявить их в одной строке, описав их через запятую и после последнего поставить знак двоеточия и написать требуемый тип.
4 Справочная информация по типам данных
Типы данных в Паскале определяют возможные значения переменных, констант, выражений и функций. Они бывают встроенными и пользовательскими. Встроенные типы изначально присутствуют в языке программирования, а пользовательские создаются программистом.
По способу представления и обработки типы данных бывают:
- простые
- структурированные
- указатели
- объекты
- процедуры
В этой статье будут рассмотрены лишь, наиболее простые типы данных, так как на начальных этапах обучения, вашей программе будет проще обойтись, например, без файлов и записей, чем без целочисленных или строковых переменных.
4.1 Целочисленный тип
Сюда входят несколько целочисленных типов, которые различаются диапазоном значений, количеством байт отведённых для их хранения и словом, с помощью которого объявляется тип.
Тип | Диапазон | Размер в байтах |
shortint | -128…127 | 1 |
integer | -32 768…32 767 | 2 |
longint | -2 147 483 648…2 147 483 647 | 4 |
byte | 0…255 | 1 |
word | 0…65 535 | 2 |
Объявить целочисленную переменную можно в разделе Var, например:
Var book: word;
Над переменными этой категории можно выполнять все арифметические и логические операции за исключением деления (/
), для него нужен вещественный тип. Также могут быть применены некоторые стандартные функции и процедуры.
4.2 Вещественный тип
В Паскале бывают следующие вещественные типы данных:
Тип | Диапазон | Память, байт | Количество цифр |
Real | 2.9e-39 … 1.7e38 | 6 | 11-12 |
Single | 1.5e-45 … 3.4e38 | 4 | 7-8 |
Double | 5.0e-324 …1.7e308 | 8 | 15-16 |
Extended | 3.4e-4932 … 1.1e493 | 10 | 19-20 |
Comp | -9.2e63 … (9.2e63)-1 | 8 | 19-20 |
Над ними может быть выполнено большее количество операций и функций, чем над целыми. Например, эти функции возвращают вещественный результат:
- sin(x) – синус;
- cos(x) – косинус;
- arctan(x) – арктангенс;
- ln(x) – натуральный логарифм;
- sqrt(x) – квадратный корень;
- exp(x) – экспонента.
4.3 Логический тип
Переменная, имеющая логический тип данных может принимать всего два значения: true
(истина) и false
(ложь). Здесь истине соответствует значение 1, а ложь тождественная нулю. Объявить булеву переменную можно так:
Var A: Boolean;
Над данными этого типа могут выполняться операции сравнения и логические операции: not , and, or, xor.
4.4 Символьный тип
Символьный тип данных – это совокупность символов, используемых в том или ином компьютере. Переменная данного типа принимает значение одного из этих символов, занимает в памяти компьютера 1 байт. Слово Char определяет величину данного типа. Существует несколько способов записать символьную переменную (или константу):
- как одиночный символ, заключенный в апострофы: ‘W’, ‘V’, ‘п’;
- указав код символа, значение которого должно находиться в диапазоне от 0 до 255.
- при помощи конструкции ^K, где K – код управляющего символа. Значение K должно быть на 64 больше кода соответствующего управляющего символа.
К величинам символьного типа данных применимы операции отношения и следующие функции:
Succ(x)
— возвращает следующий символ;Pred(x)
— возвращает предыдущий символ;Ord(x)
— возвращает значение кода символа;Chr(x)
— возвращает значение символа по его коду;UpCase(x)
— переводит литеры из интервала
4.5 Строковый тип
Строка в Паскале представляет собой последовательность символов заключенных в апострофы, и обозначается словом String
. Число символов (длина строки) должно не превышать 255. Если длину строки не указывать, то она автоматически определиться в 255 символов. Общий вид объявления строковой переменной выглядит так:
Var <имя_переменной>: string[<длина строки>];
Каждый символ в строке имеет свой индекс (номер). Индекс первого байта – 0, но в нем храниться не первый символ, а длина всей строки, из чего следует, что переменная этого типа будет занимать на 1 байт больше числа переменных в ней. Номер первого символа – 1, например, если мы имеем строку S=‘stroka’, то S[1]=s;
. В одном из следующих уроков строковый тип данных будет рассмотрен подробнее.
Перечисляемый тип данных
Перечисляемый тип данных представляет собой некоторое ограниченное количество идентификаторов. Эти идентификаторы заключаются в круглые скобки, и отделяются друг от друга запятыми. Пример:
Type Day=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday); Var A: Day;
Переменная A
может принимать лишь значения определенные в разделе Type
. Также можно объявить переменную перечисляемого типа в разделе Var:
Var A: (Monday, Tuesday);
К данному типу применимы операции отношения, при этом заранее определенно, что Monday<Tuesday<Wednesday
т. д. Также можно применять функции succ, pred, ord,
процедуры inc
и dec
, и использовать операцию присваивания: A:=Tuesday;
4.6 Интервальный тип данных
Когда необходимо задать какой то диапазон значений, то в таких ситуациях применяется интервальный тип данных. Для объявления используется конструкция m..n, где m – минимальное (начальное) значение, а n – максимально (конечное); здесь m и n являются константами, которые могут быть целого, символьного, перечисляемого или логического типа. Описываться величины интервального типа могут как в разделе типов, так и в разделе описания переменных.
Общий вид:
TYPE <имя_типа> = <мин. значение>..<макс. значение>;
Пример:
TYPE Cards = 1..36;
5 Pascal. Операторы ввода-вывода
5.1 Ввод данных
Процедура ввода данных с клавиатуры – Read
(читать). Ее можно представить так:
Read(<Список ввода>);
В качестве списка ввода выступают имена переменных. Во время выполнения оператора ввода данных программа останавливается и ждет, пока они будут введены. Для завершения ввода необходимо нажать Enter
. Если переменных несколько, то они могут вводиться через пробел, либо, введя одну переменную нужно нажать Enter
, потом ввести вторую и т. д.
Для перевода каретки после выполнения оператора Read
на новую строку, следует прибавить окончание ln
:
Readln(<Список ввода>);
Также можно не указывать список ввода:
Readln;
Программа не перейдет к выполнению следующей части до тез пор, пока не выполниться пустой оператор.
5.2 Вывод данных
Для вывода данных в Паскале имеется оператор Write
. Для того, чтобы каретка переводилась на следующую строку, к нему прибавляется окончание ln
и получается Writeln
. В общем виде эти операторы имеют вид:
Write(<Список вывода>); Writeln(<Список вывода>);
Элементами списка вывода являются величины различных типов, в том числе выражения и строки, отделенные друг от друга запятыми, например:
Write(x, y);
Здесь x
и y
– параметры, заключенные в круглые скобки. Возможно использование оператора вывода и без параметров:
Writeln; {Курсор переведется на следующую строку}
Недостаточно просто вывести значение на экран, нужно также сделать это как можно корректнее. Допустим нам нужно в одном операторе Write
вывести значения нескольких переменных (a=1, b=2, c=3
). Пишем:
Write(a, b, c);
После выполнения, на экране действительно отобразятся значения данных переменных, но это понятно компьютеру, а пользователь увидит число 123
. Необходимо придать вид выводимым данным, сделать это в Паскале можно двумя способами:
1) Вписать пробел вручную, например:
Write(a, ‘ ’, b, ‘ ’, c);
2) Воспользоваться возможностью форматированного вывода:
Write(a, b:2, c:2);
Двоеточие относиться к переменной, после которой оно следует, и говорит программе, что при выводе (переменной) нужно выделить место, заданное целым числом (в нашем случае это 2), т. е. под значения, хранящиеся в переменных b
и c
отводиться две клетки, сами они выведутся «прижатыми» к правому краю.
Процедура форматированного вывода может применяться и к другим типам данных, но особого внимания заслуживает вещественный тип. Как известно переменные вещественного типа имеют целую и дробную части, поэтому для них предусмотрена такая форма записи с использованием формата:
Write(32.1012:5:2);
Результат выполнения: 32.101
Формат 5 означает, что всего под число 32.1012
выделено 5 клеток, а 2 – из этих пяти под дробную часть отводиться 2 клетки.
6 Выражения с тандартные функции
6.1 Стандартные функции Pascal
В программировании, довольно часто приходиться выполнять однотипные действия, причем в задачах разного уровня и класса. И для ускорения процесса написания кода эти действия выносят в специальные подпрограммы – стандартные функции. Обращение к такой подпрограмме происходит по ее имени, а в скобках указывается значение аргумента. В следующей таблице указаны те стандартные функции, которые используются в языке программирования Pascal.
Функция | Назначение |
ABS(x) | Вычисление абсолютного значения x: |х| |
SQR(x) | Вычисление квадрата x: x*x |
SIN(x) | Вычисление синуса x: sin x |
COS(x) | Вычисление косинуса x: cos x |
ARCTAN(x) | Вычисление арктангенса x: arctg x |
EXP(x) | Вычисление экспоненты (числа Е) в степени x |
EXP10(x) | Вычисление 10 в степени x |
LN(x) | Вычисление натурального логарифма x |
LOG(x) | Вычисление десятичного логарифма x |
SQRT(x) | Вычисление квадратного корня из x |
A DIV B | Вычисление частного при делении А на В с отбрасыванием остатка |
A MOD B | Нахождение остатка от делении А на В |
TRUNC(x) | Нахождение целой части x |
RANDOM(x) | Псевдослучайное число в интервале [0, x] |
ROUND(x) | Округление значения x в сторону ближайшего целого |
ODD(x) | Проверяет аргумент на нечетность. Результат TRUE, если аргумент нечетный, FALSE – если четный. |
ORD(x) | Возвращает порядковый номер аргумента и, как следствие, преобразует величину порядкового типа в величину целого типа. |
CHR(x) | Определение символа языка Паскаль по его порядковому номеру |
SUCC(x) | Нахождение элемента, идущего после данного в перечне допустимых элементов |
PRED(x) | Нахождение элемента, идущего перед данным в перечне допустимых элементов |
FRAC(X) | Возвращает дробную часть x |
INT(X) | Возвращает целую часть x |
Pi | Значение математической постоянной π |
EOF(x) | Возвращает TRUE, если файл находится в стоянии “конец файла”, иначе FALSE, если нет конца файла |
6.2 Выражения в Pascal
Выражение состоит из переменных, констант, полей в записях, указателей функций, круглых скобок и знаков операций. Для корректной записи выражений необходимо знать не только как обозначаются те или иные операции, функции и т. п., но также стоит предусмотреть приоритеты их выполнения, математические и логические правила, а также некоторые тонкости самого языка. Для более углубленного изучения выражений, стоит рассмотреть несколько примеров.
1) 12+3*3=21 (12+3)*3=45
Как видите выражения в Pascal, имеют такой же приоритет, как и в математике, а с помощью круглых скобок его можно изменить.
2) (a>1) and (a<=20)
Такое логическое выражение возвращает истину, лишь в том случае, когда истинны оба выражения, т. е. если a входит в диапазон от 1 до 20 включительно. Стоит обратить внимание на скобки, здесь они необходимы для изменения приоритета, так как у операторов сравнения он низший.
3) (a+3>0) and (a+3<15) or (b>1) and (b<10)
Условие вернет истину, тогда когда истинными будут два условия слева или справа от OR, а также если они оба будут истинными.
Логическая операция OR (или) суть дизъюнкция в логики и поэтому имеет следующую таблицу истинности:
X | Y | X or Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Ложь имеет место только когда X
и Y
ложны (нули). В том случае, чтобы истина возвращалась только тогда, когда одно из условий верно следует применить оператор XOR (исключающее или):
(a+3>0) and (a+3<15) xor (b>1) and (b<10)
4) x^(a) = exp(a*ln(x))
В Pascal нет функции возведения числа в степень (кроме степени 2), поэтому существует два пути:
1 — умножать число само на себя, какое то количество раз;
2 — воспользоваться функциями экспоненты и натурального логарифма.
В этом примере использованы оба варианта, но если степень, в которую необходимо возвести число, достаточно велика, то предпочтение следует отдать второму способу.
В этой статье я расскажу вам про основные принципы работы с языком Pascal. Информация, выложенная здесь, проста и понятна для начинающих программистов. После изучения этой статьи вы будете владеть первоначальными знаниями о Pascal, и ваш дальнейший процесс обучения будет проходить намного легче чем мог бы быть.
Pascal – один из самых известных языков программирования. Создан в 1968 – 1969 годах швейцарским ученым Никлаусом Виртом, был назван в честь французского математика и физика Блеза Паскаля, и используется для обучения программированию по сей день.
1. Подготовка к работе
Итак, вы решили научиться программировать и начать с языка наиболее для этого подходящего – Pascal. Для начала работы вы должны приобрести (скачать) компилятор.
А что же собственно, такое, этот «компилятор»? Это специальная программа, которая считывает код программы, а затем переводит его на язык машинных кодов. То есть, по сути, все языки программирования – это способ “общения” с компьютером, а компилятор помогает перевести нашу “речь” на понятную ему.
Для Pascal существует немало компиляторов, самые известные из них: Pascal ABC, Free Pascal, Pascal ABC.NET, Turbo Pascal. Все эти программы по-своему хороши, но лично для меня (автора), очень удобен Pascal ABC (или Pascal ABC.NET), поскольку он имеет весьма удобный интерфейс, подробную справку, и даже специально подготовленный для новичков сборник задач.
2. Начало работы
Что ж, перед нами открыто окно компилятора. Чистый, белый (или синий?) лист. Здесь и будут появляться на свет наши первые программы. Перед началом работы следует запомнить, что язык Pascal – это совокупность трёх составляющих: алфавита, синтаксиса (правил написания объектов языка) и семантики (правил использования этих объектов).
Алфавит Pascal состоит из:
- Прописных и строчных букв латиницы: A…Z, a…z;
- Цифр: 0…9;
- Специальных символов: + — * / = < >.,:; ‘ # ( ) { } [ ] и их комбинаций: «>=» «
Задача же синтаксиса и семантики состоит в том чтобы, правильно написать раздел программы и правильно составить ее структуру, в противном же случае наша программа будет работать неправильно (или же не работать вовсе!).
Вам наверное уже не терпится приступить к самой интересной части, так что сейчас мы с вами попробуем написать ваши первые программы.
Структура программы выглядит так:
Program «имя программы»; — заголовок программы;
(Примечание: в конце строки ставится точка с запятой, не во всех, но в большинстве)
Uses (название библиотеки); здесь подключаются библиотеки, которые дают дополнительные возможности при создании программ;
Label (имя метки); здесь, если необходимо, прописываются метки, позволяющие переходить в разные места программы (о них позже);
Const тут указываем переменные с постоянной величиной, например, p=3.14;
Var тут через запятую перечисляем все переменные, а затем, указываем тип данных (Пример: Var: K, L, M: integer; N, O: real; (если несколько типов));
Begin (здесь без точки с запятой)
Дальше следует основной блок программы;
end. – конец программы (обязательно после “end” точка, если только это конец программы, а не операторные скобки).
3. Создание первых программ
Теперь вы знакомы с основной структурой программы. Следует заметить, что из вышеперечисленных разделов обязательными есть только «Var», «Begin» и «end», остальные же могут применяться, если это требуется в ходе выполнения поставленной задачи.
Откройте окно вашого компилятора, и введите следующие строки:
program Programma1;
begin
end.
Нажмите кнопку «Выполнить»(«Run»). Ничего не происходит? Так и есть, ведь наша программа «пустая», мы не указали что она должна делать, потому ничего и не произошло. Обычно принцип работы программы написанной на языке Pascal состоит из трёх этапов: ввод данных – обработка данных – вывод даннных. Теперь познакомимся с оператором “write”. Он служит для как раз для вывода данных без перехода на новую строку. Попробуем его применить, тем самым сделав нашу программу чуть сложнее и интереснее:
program Programma1;
begin
write(‘ Pascal ‘);
end.
Собственно, так он и применяется. Между апострофами мы можем ввести любой текст, на любой раскладке, и после выполнения программы он появится в окне вывода (или в командной строке, смотря какой у вас компилятор). В данном случае, должно появиться слово «Pascal».
3.1. Операторы write, writeln, read, readln
Теперь поговорим о вводе данных. Мы уже познакомились с оператором write, но существуют также и другие. Writeln, к примеру, используется для вывода данных с переходом на новую строку. Зачем? Ну, например чтобы дать какой-нибудь переменной значение:
program Programma1;
var A:integer;
begin
writeln(‘A= ‘); read(A); {ввести значение и «прикрепить» его к переменной A}
write(A); {Вывести значение переменной A}
end.
Как вы видите, я вкратце описал каждое действие в фигурных скобках. Это называется комментарий. В дальнейшем я также буду использовать их для объяснений.
В этом примере для присваивания к переменной значения, введенного с клавиатуры используется оператор read. Мы видим, что при выполнении он прочитал строку в переменную А. А другой оператор, readln работает по другому. Используя его, мы можем сразу ввести нужную строку, и она прочитается в переменную:
program Programma1;
var A:integer;
begin
readln(A);
write(‘A= ‘, A); {строка будет выглядеть так: «А= ‘ введенное значение А ‘ „}
end.
Теперь, когда вы немного знаете о вводе данных, поговорим о том, какие могут быть данные, и как их обрабатывать.
3.2. Типы данных в Pascal
Пока вы читали эту статью, вы, наверное, уже пару раз натыкались на непонятное вам integer. Внимательно изучив основную структуру программы, вы наверняка поняли, что это тип данных. Но что это означает? Давайте поближе с этим познакомимся.
Исходные данные, которые вводятся с клавиатуры или читаются из файла, находяться в переменных, а они, в свою очередь, хранятся в оперативной памяти. Тип данных определяет, какие именно данные можно хранить, и сколько они займут оперативной памяти. Типы данных бывают целыми и вещественными.
•Целые типы данных (для целых чисел):
— byte
Объем памяти значений этого типа составляет 1 байт. Диапазон значений для данного типа: от 0 до 255.
— word
Значения этого типа занимают уже 2 байта памяти, а диапазон значений уже побольше: от 0 до 65535.
— integer (уже нам знакомый)
Значения также занимают 2 байта памяти, диапазон такого же размера, но включает уже и отрицательные числа: -32786…32787.
— LongInt
Объем памяти, занимаемый значением типа равняется 4 байтам. Диапазон значений же полностью соответствует названию типа данных: от -2147483648 до 2147483647
— ShortInt
Значение типа потребляет 1 байт памяти, диапазон относительно небольшой: -128…127.
•Вещественные типы данных (для чисел с дробной частью):
— Real
Занимаемая значением типа память – 6 байт. Число значащих цифр – 11-12. (значащие цифры – это точные цифры, т.е. не округленные). Диапазон значений типа: от 2.9*10-39 до 1.7*1038.
— Double
Размер значения типа – 8 байт. Число значащих цифр – 15-16. Диапазон: 5.0*10324…1.7*10308.
— Extended
Занимает 10 байт. Число значущих цифр – 19-20. Диапазон: 3.4*10-4932…1.1*104932.
Помимо этих, существуют также символьный тип данных (char) и даже логический тип данных (boolean), переменные которого могут принимать значения только true или false.
Итак, мы уже немало узнали о вводе и выводе данных. Теперь же перейдем к самой сложной части – обработке данных.
3.3. Обработка данных. Математические операции. Условия. Логические операции.
Мы уже научились вводить данные в программу, теперь попробуем научиться их обрабатывать. Первое, и самое главное, что нам пригодится в этом деле – оператор присваивания. Выражается он вот так: «:=», и используется для присваивания значения переменной. Примеры: A:=1.5; B:=2+A. Теперь, когда мы знакомы с оператором присваивания, можем рассмотреть математические операции Pascal:
- Сложение (+);
- Вычитание (-);
- Умножение (*);
- Деление (/);
- Целочисленное деление (div) – возвращает целую часть от деления (Пример: 10 div 3 = 3);
- Остаток от деления (mod) – возвращает только остаток от деления (Пример: 5 mod 2 = 1);
Помимо приведенных, существуют еще такие операции и функции для работы с числами:
abs(x) – возвращает модуль от x;
sin(x) – синус угла x (в радианах);
cos(x) – косинус угла x (в радианах);
int(x) – возвращает целую часть от x;
random(число) – случайное число от 0 до заданного;
sqr(x) – квадрат x;
sqrt(x) – квадратный корень x;
inc(x) – увеличить x на 1;
dec(x) – уменьшить x на 1.
Условия
Условия в Pascal играют очень большую роль, особенно если алгоритм выполнения программы разветвленный. Формулируется условие следующим образом:
if (условие 1) then (действие 1 — основное) else (действие 2 — альтернативное)
(if – если, then – то, else – иначе)
При построении условия пользуются логическими операциями and, not, or, xor:
• and – операнд, объединяющий несколько условий в одно. Действие будет выполняться, только если все перечисленные условия будут верны.
program Usloviya;
var a:integer;
begin
readln(a);
if (2*2=4) and (3+2=5) then a:=a+1 else a:=a-1;
write(a);
end.
На этом примере мы видим, что все условия, перечисленные через and верны, потому выполнялось только первое действие, идущее через than. Если хотя бы одно условие не было верно, тогда выполнилось бы второе действие.
• not – логическое действие с условием из одной части. Если условие неверно, то будет выполняться основное действие (первое), если верно – то альтернативное (второе).
program Usloviya;
var b:integer;
begin
readln (b);
if not 5=4 then b:=b+1 else b:=b-1;
write (b);
end.
Условие 5=4 неверно, следовательно, будет выполняться первое действие.
• or (или) – логический оператор для условия из нескольких частей. Основное действие будет выполняться, если верно хотя бы одно условие.
program Usloviya;
var d:integer;
begin
readln (d);
if (5=4+1) or (5=4) then d:=d+1 else d:=d-1;
write(d);
end.
Одно из условий верно, поэтому программа перейдет к основному действию. Тоже повторится, если верными будут все условия. Если же ни одно условие не будет верно, то выполниться альтернативное действие.
• xor – с этим оператором основное действие выполняется, если верно только одно условие. Если верны несколько условий, или же ни одного, то выполнится альтернативное действие.
program Usloviya;
var n:integer;
begin
readln(n);
if (6=4) xor (3=5-2) then n:=n+1 else n:=n-1;
write (n);
end.
(Примечание: Не стоит забывать что приоритет логических операций выше чем математических, поэтому, если одни совмещаются с другими, то желательно выделять математические операции скобками, чтобы не возникало ошибок при выполнении программы.)
Теперь мы с вами знакомы и с основами обработки данных. Осталось поговорить о некоторых дополнительные процедурах, и функциях для управления программой, которые вам не раз пригодяться при дальнейшем обучении на Pascal.
3.4. Процедуры и функции для управления программой
Поговорим о упомянутой раньше метке. Эта процедура очень легка в использовании и позволяет при надобности перейти в любую часть программы, «перескочив» одну из следующих частей, или же наоборот, вернуться в предыдущую часть. Прописывается метка очень просто: сперва описываем метку в разделе меток (см. п. 3. Начало работы. Структура программы), а затем указывается место перехода, а нужный оператор помечается меткой.
program Metka;
label 1,2;
var A, B:integer;
begin
readln (A);
2: if A=5 then goto 1; {2: — действие после перехода на соответствующую метку,}
A:=A+1; {goto — переход на метку}
goto 2;
1: write (A);
end.
На данном примере, программа увеличивает на 1 введенное число, пока оно не станет равным пяти. Тут мы и можем проследить действие метки.
•Delay(время) – остановка программы с задержкой, время в кавычках указывается в миллисекундах.
•Readkey – остановка программы до нажатия клавиши, значение функции – код нажатой клавиши.
•Exit – досрочное завершение процедуры.
Следует заметить, что для работы delay, readkey, и exit необходимо подключить модуль crt (uses crt).
Также посмотрите видео: Паскаль с нуля — первая программа.
4. Заключение
Прочитав эту статью, вы получили базовые знания по языку программирования Pascal. В доступных и понятных формулировках здесь были выложены основные понятия, принципы работы с данным языком. Теперь дело переходит к вам в руки. Если вы правильно воспользуетесь этой информацией, и продолжите обучаться языку Pascal, то вскоре сможете владеть им в совершенстве.
Поняв принцип работы с Pascal, вы сможете изучить и другие языки программирования, и в будущем писать уже более «серьезные» программы, чем те с которыми вы познакомились при изучении этой статьи. Продолжайте учиться! Удачи!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Паскаль, это довольно простой язык программирования. Его используют только для математических подсчетов. Достаточно всего одного дня активного изучения, что бы начать программировать на нем. Пожалуй начнем!
Что научиться программировать надо сначала скачать саму программу в которую вводить код. Скачать ее можно нажав вот СЮДА.
Далее нажимаем кнопку скачать
Важно знать, что данная программа адаптирована ТОЛЬКО под операционную систему “Windows”, и работает программа только на ней
Вас перекидывает на следующую страницу:
После окончания загрузки у вас остается файл в формате .exe, его открываем и устанавливаем как обычную программу.
Далее на рабочем столе у вас появляется иконка “Паскаля”:
Открываем ярлык “Паскаль” и видим это:
Скриншот программы
Что же мы на нем видим:
- Строка ввода программы – сюда мы будем писать код
- Строка ввода данных – сюда будем вводить переменные данные
- Панель управления – проверка программы на ошибки, запуск программы…
Как же строится основа программы (это то, без чего программа не будет работать, это неизменная часть кода):
Program (название программы на латинском без скобочек);
В конце каждой строки обязательно должна быть “;”
Далее:
Var a, b, c : integer;
Var – ввод в программу буквенных переменных, далее перечисляются все буквы через запятую.
После через двоеточие пишем integer если у нас будут целые показатели (или если у нас простейшая программа на сложение вычитание челых чисел)
Или пишем real если у нас будут десятичные дроби ( или же программа где будет присутствовать деление).
И пишем Begin без точки с запятой в конце
(тут будет сама программа)
А в конце пишем End. Точка в конце обязательна на этой строке.
В общей сложности программа будет выглядеть так:
Давайте разберем пример программы на обычной школьной задаче из учебника математики:
“Найдите площадь и периметр прямоугольника по двум сторонам – 2 и 3”
Для этого вспомним ка же решать такую задачу в жизни, нам понадобятся две формулы:
1) S=a*b (формула площади)
2) P=2*(a+b) (формула периметра)
В “Паскале” есть всего 6 математических знаков:
1) сумма +
2) разность –
3) умножение *
4) деление /
5) скобки ()
6) присваивание значения переменной :=
Значит и формулы в “Паскале” будут выглядеть так же.
С формулами разобрались, а как занести данные размеров сторон в программу для дальнейших подсчетов? очень просто, командой:
readln (a);
Вместо “a” может стоять любая буквенная переменная заданная вначале. Значит программа для этой задачи будет выглядеть вот таким образом:
Так, с вводом данных разобрались, как посчитать действие тоже знаем, а как же вывести результат в окно вывода ответа? Тоже очень просто, понадобится команда:
writeln (‘текст’);
Простейшая программа составлена! Надо проверить работает ли она, для этого нажимаем на эту кнопку на панели:
После нажатия, наша программа немного меняет вид:
Это нормально, значит что ваша программа работает!
Теперь перейдем в окно вывода, для этого нажмем на кнопку “Старт”:
После этого у нас начинает мигать курсор в окне вывода:
Вводим первое число ( 2 ), наживаем Enter, вводим второе число ( 3 ), нажимаем Enter. В окне вывода выходит это:
Наша простейшая программа работает отлично! И конечно мы сейчас ее приукрасим:
И соответсвенно вывод тоже изменился: