Язык программирования Паскаль (версия PascalABC.NET)
Основы языка Pascal
Линейные программы
Язык Pascal
Язык Паскаль был разработан в 1970 г. швейцарским учёным Никлаусом Виртом для обучения студентов программированию как язык, обеспечивающий интуитивно понятный синтаксис. Он был назван в честь французского математика, физика и философа Блеза Паскаля.
Блез Паскаль
Никлаус Вирт
В 80-е годы наиболее известной реализацией стал компилятор Turbo Pascal фирмы Borland, в 90-е ему на смену пришла среда программирования Delphi, которая стала одной из лучших сред для быстрого создания приложений под Windows. Наиболее известной свободной реализаций языка Паскаль является Free Pascal. На основе FreePascal создана свободная мультиплатформенная среда Lazarus, аналогичная среде Delphi.
PascalABC.NET
PascalABC.NET — это:
- язык программирования Pascal нового поколения, сочетающий простоту классического языка Паскаль и огромные возможности платформы .NET;
- бесплатная, простая и мощная среда разработки.
запуск программы
окно редактора
окно вывода
Общие сведения о языке программирования Pascal
Алфавит языка Pascal состоит из букв латинского алфавита ( не различаются заглавные и строчные буквы ), цифр и специальных знаков (знаков препинания, арифметических и других).
Величины – константы и переменные.
Константы – величины, не изменяющие своего значения при выполнении программы.
Числовые константы могут записываться в обычной форме (3.14; -0.5) или в форме с плавающей точкой (экспоненциальной форме) (1.23E+8 = 1,23х10 8 = 123000000; 4.5E-4 = 4,5х10 -4 = 0,00045) .
Символьная константа – один символ, заключенный в апострофы ('a'; 'b'; '=') .
Строковая константа – последовательность символов, заключенная в апострофы ('ответ'; 'a + b =') .
Логическая константа – одно из двух значений True (истина) и False (ложь) .
Общие сведения о языке программирования Pascal
Переменная – величина, которая может изменять свое значение при выполнении программы. Каждая переменная имеет имя, тип и значение.
Значения переменных хранятся в ячейках оперативной памяти.
Тип переменной определяет способ хранения данных в памяти компьютера и допустимые операции над ними.
Имя (идентификатор) – любая последовательность латинских букв или цифр, начинающаяся с буквы, буквой считается также символ подчеркивания "_".
N, N1, massa, massa_tela – правильно ; 1N, масса, massa tela – неправильно .
Структура программы на языке Pascal
Операторы – языковые конструкции для записи действия, выполняемого над данными в процессе решения задачи. В конце каждого оператора и каждого раздела программы ставится символ «;». Допускается произвольное разделение операторов на строки, но лучше выделять структуру визуально.
заголовок программы (может отсутствовать)
Program ;
Const ;
Var ;
Begin
;
;
…
End .
раздел описаний
раздел операторов
Основные типы данных PascalABC.NET
Название
Целый без знака
Обозначение
Допустимые значения
byte
Целый со знаком
Вещественный
Размер в памяти
0 … 255
integer
real
Символьный
1 байт
-2147483648 … 2147483647
4 байта
char
Строковый
-1.8∙10 308 … 1.8∙10 308
8 байтов
Произвольный символ Unicode
(в классическом Паскале -32 768… 32 767)
string
Логический
2 байта
Произвольная последовательность символов
boolean
2 байта на символ
(в классическом Паскале ASCII)
True (Истина) или False (Ложь)
1 байт
Пример описания констант и переменных:
const pi= 3.14 ;
var i,j: integer ; a,b: real ; x: string ;
Выражения и операции
Выражение – это конструкция, возвращающая значение некоторого типа. Простыми выражениями являются переменные и константы.
Сложные выражения строятся из простых с помощью операций, функций и скобок. Данные, к которым применяются операции, называются операндами .
Используется линейная форма записи выражений (в одну строку).
Арифметические операции
Операция
Сложение
Обозначение
+
Пример
Вычитание
Умножение
3 + 4 = 7
-
Деление
7 - 2 = 5
*
Целочисленное деление
/
2 * 2 = 4
8 / 2 = 4
div
Остаток от деления
9 div 2 = 4
mod
9 mod 2 = 1
Выражения и операции
Функции имеют определенное имя и один или несколько аргументов в скобках. Функция возвращает свое значение в то место программы, из которого она вызывается.
Некоторые стандартные функции языка Паскаль
Функция
Назначение
abs(x)
модуль x
Тип аргумента
sqrt(x)
Тип результата
integer, real
квадратный корень из x
sin(x)
как у аргумента
синус угла x в радианах
cos(x)
integer, real
integer, real
real
косинус угла x в радианах
round(x)
округление х до ближайшего целого
real
integer, real
int(x)
frac(x)
real
целая часть x
real
integer
дробная часть x
integer, real
random
integer
случайное число в интервале [0, 1)
random(x)
integer, real
real
случайное число в интервале [0, x)
―
real
integer
integer
x 0 больше или равно x 0 x = меньше или равно x = 0 x " width="640"
Выражения и операции
Логические выражения могут содержать величины или выражения, которые сравниваются между собой с помощью операций сравнения. Логическое выражение может принимать лишь два значения: «истина» или «ложь».
Операции сравнения
Операция
Символы
равно
Пример
=
не равно
x = 0
больше
меньше
x 0
больше или равно
x 0
x
=
меньше или равно
x = 0
x
Выражения и операции
Приоритет выполнения операций:
1) операции в скобках; 2) вычисление функций; 3) умножение и деление, div, mod; 4) сложение и вычитание;
5) операции сравнения. Операции одинакового приоритета выполняются в порядке записи слева направо.
Например:
1
8
3
5
6
7
2
4
(-b + sqrt(b*b – 4*a*c))/(2*a)
Основные операторы языка Pascal
Оператор присваивания
Присваивает переменной, имя которой находится слева от знака := (знак присваивания) значение выражения, находящегося справа. Старое значение переменной при этом стирается.
Общий вид оператора:
:= ;
Например: В памяти:
a := 5 ;
b := a;
c := a+b;
c := c+ 1 ;
b
a
c
5
5
10
11
Основные операторы языка Pascal
Оператор вывода
Вывод данных из оперативной памяти на экран осуществляется с помощью оператора Write :
Write ( , ,..., ) ;
На экран в одну строку выводятся значения переменных и выражений, строковые значения выводится на экран без апострофов.
Например:
Write ( 'Масса равна ' , m, ' кг' );
Для m=15 в окне вывода появится:
Масса равна 15 кг
Основные операторы языка Pascal
Оператор вывода
Для корректного вывода необходимо предусмотреть разделители в списке.
В окне вывода:
Например:
120300
Write ( 1, 20, 300 );
Write ( 1, ', ', 20, ', ', 300 );
1, 20, 300
Если использовать оператор WriteLn , то после вывода будет осуществлен переход на новую строку.
1
20
300
Writeln ( 1 );
Writeln ( 20 );
Writeln ( 300 );
Основные операторы языка Pascal
Оператор вывода
Форматный вывод позволяет задать количество позиций на экране, занимаемых выводимой величиной.
Write ( :x:y );
Здесь x – общее количество позиций, отводимых для числа; y – количество позиций в дробной части числа.
Например:
Write ( 'm=' , m: 5 : 1 );
В окне вывода:
m= 15.0
Для целых чисел указывается только общее количество позиций:
Write ( 'm=' , m: 5 );
m= 15
Основные операторы языка Pascal
Оператор ввода
Для ввода значений переменных с клавиатуры в процессе выполнения программы служит оператор Read :
Read ( , ... , ) ;
При выполнении оператора:
- компьютер переходит в режим ожидания данных (в окне вывода появляется поле «Вод данных:»);
- пользователь вводит данные с клавиатуры через пробел;
- для завершения ввода пользователь нажимает клавишу Enter;
- введенные значения присваиваются переменным, указанным в списке.
Типы и порядок следования вводимых значений должны соответствовать списку ввода.
После выполнения оператора ReadLn курсор переходит на новую строку.
Основные операторы языка Pascal
Оператор ввода
Желательно перед оператором ввода вывести на экран поясняющий текст для пользователя.
Например:
Write ( 'Введите a, b, c: ' );
Readln (a, b, c);
Writeln ( 'a+b+c=' , a+b+c);
В окне вывода:
Введите a, b, c: 5 7 9
a+b+c=21
В памяти:
b
c
a
7
9
5
Основные операторы языка Pascal
Оператор комментария
Используется для включения в программу любых пояснений, предназначенных человеку.
Комментариями считается любой текст после символов // до конца строки, либо любой фрагмент текста, заключенный в фигурные скобки { . . . } . При выполнении программы комментарии игнорируются.
Например:
//при выполнении этот текст игнорируется
{при выполнении
этот текст игнорируется}
Трассировка линейной программы
Для данного алгоритма составьте таблицу значений переменных (трассировку алгоритма) при x=2 . Что появится на экране?
начало
Program Lin_pr;
Var x, y, z: integer ;
Begin
write ( 'Введите x:' );
readln (x);
y := x*x;
y := y*y;
x := x*y;
z := x+y;
write ( 'z=' , z)
End .
ввод x
вывод z
конец
Трассировка линейной программы
Для данного алгоритма составьте таблицу значений переменных (трассировку алгоритма) при x=2 . Что появится на экране?
Program Lin_pr;
Var x, y, z: integer ;
Begin
write ( 'Введите x:' );
readln (x);
y := x*x;
y := y*y;
x := x*y;
z := x+y;
write ( 'z=' , z)
End .
Переменные
x
y
-
z
-
2
-
4
16
32
48
Щелчок – шаг программы
Задача 1
Составить программу для вычисления длины окружности и площади круга по заданному радиусу.
Program Okrug;
Const pi= 3.1415 ; //число пи
Var r,c,s: real ;
Begin
writeln( 'Вычисление длины окружности и площади круга' );
write ( 'Введите радиус: ' );
readln (r);
c:= 2 *pi*r; {длина окружности}
s:=pi*r*r; {площадь круга}
writeln ( 'c=' , c: 8 : 2 );
writeln ( 's=' , s: 8 : 2 );
End .
Задача 2
Составить программу, меняющую местами значения двух переменных
Program Obmen;
Var a, b, t: integer ;
Begin
write ( 'Введите a, b: ' );
readln (a, b);
t:=a; //временная переменная
a:=b;
b:=t;
write ( 'a=' , a, ' b=' , b)
End .
Задача 3
Составить программу, вычисляющую сумму цифр введенного с клавиатуры целого трёхзначного числа
{Трёхзначное число x = a•100 + b•10 + c,
где а, b, с - цифры этого числа}
Program Summa3;
Var x, a, b, c, s: integer ;
Begin
write ( 'Введите трехзначное число: ' );
readln (x); //ввод числа
a:=x div 100 ; //выделяем 1 цифру
b:=x mod 100 div 10 ; //выделяем 2 цифру
c:=x mod 10 ; //выделяем 3 цифру
s:=a+b+c ; //сумма цифр
writeln ( 'Сумма его цифр равна ' , s)
End .