Слайд 1Занятие 2
Структура программы. Типы данных. Основные операторы языка Pascal.
Слайд 2Структура программы
Program ИмяПрограммы;
Uses ИмяМодуля1, ИмяМодуля2,…;
Label ИмяМетки1, ИмяМетки1, …;
Const
ИмяКонстанты =
ЗначениеКонстанты;
Type ИмяТипа = ЗначениеТипа;
Var ИмяПеременной: Тип;
Begin
{инструкция основной программы}
end.
Слайд 3Раздел uses
Раздел uses позволяет подключать стандартные и пользовательские библиотечные модули.
Пример:
uses Crt, Dos, MyLib.
Слайд 4Раздел описания меток
Перед любым оператором языка Паскаль можно поставить метку, что
позволяет выполнить прямой переход на этот оператор с помощью оператора перехода go to из любого места программы.
Формат.
Label <имя, …>;
Пример.
Label
Metka1, Metka2, 111, Blok10;
Слайд 5Раздел описания меток (продолжение)
После записи метки в разделе операторов следует двоеточие,
показывающее компилятору, что идентификатор используется как метка:
Label
M1, M2; {описание меток}
Begin
. . .
M1: <оператор> {Использование М1 в разделе операторов}
. . .
M2: <оператор> {Использование М2 в разделе операторов}
End.
Слайд 6Раздел описания констант
Константами называются элементы данных, значения которых в процессе выполнения
программы не изменяются.
В Pascal используются константы следующих видов: числовые, логические (булевские), символьные и строковые.
Формат
Const ИмяКонстанты = ЗначениеКонстанты;
Слайд 7Примеры записи констант
Например:
G = 9.8;
{вещественная константа}
L = maxint/2+1; {maxint – зарезервированная константа}
nmax = 100; {целая константа}
nmin = -nmax;
s = ‘абвгд’; {строковая константа}
kod = $123; {шестнадцатеричная константа}
Name = ‘Петя’; {строковая константа}
Слайд 9Раздел описания типов данных
Тип данных может быть либо описан непосредственно
в разделе описания переменных, либо определяться идентификатором типа. Стандартные типы не требуют описания в отличие от типов, образованных пользователем.
Формат: type <имя типа> =<значение типа>;
Пример.
Type
LatLetter = (‘A’ . . ’z’);
Days = 1 . . 31;
Matr = array [1 . . 10] of integer;
Слайд 10Раздел описания переменных
Пример.
Type matr=array [1 . . n, 1 . .
m] of real;
{задан тип mart- таблица с n строк и m столбцов}
var martiha: mart;
{задан массив marticha типа mart, который был объявлен ранее в разделе type}
x1, x2: integer;
svm: real;
znak: char;
flag: boolean;
Слайд 11
Все типы данных, используемые в Turbo Pascal можно разделить на две
большие группы:
скалярные (простые) – базовые типы, не содержащие в себе каких-либо компонентов;
структурированные (составные) – строятся на базе скалярных.
Слайд 13Вещественные типы данных
Real (вещественный);
Single (с одинаковой точностью);
Double (с двойной точностью);
Extended (с
повышенной точностью);
Comp (сложный).
Слайд 14Символьный тип данных
Символьный тип char определяется множеством значений кодовой таблицы ЭВМ.
Каждому символу приписывается целое число в диапазоне от 0 до 255. Для кодировки используется код ASCII. Для размещения в памяти переменной символьного типа требуется 1 байт.
Слайд 15Логический тип данных
Логическим или булевским называется тип данных, представляемых двумя значениями
True (истина) и False (ложь). При описании величин этого типа используется слово boolean. При размещении в памяти переменной булевского типа требуется 1 байт.
Слайд 16Перечисляемый тип –
тип данных, заданных списком принадлежащих ему значений. Формат:
type
типа> = (<значение1,…, значениеN>);
var ИмяПеременной: ИмяТипа;
Пример.
type days = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);
var day: days;
season: (winder, spring, summer, autumn);
Слайд 17Интервальный тип
Формат.
type
= . . Константа2>;
var
ИмяПеременной: ИмяТипа;
Пример.
const min=1; max=31;
type days=min . . max;
var rab_days, bol_days: days;
Слайд 18Структурированные типы данных:
строки;
массивы;
множества;
записи;
файлы;
указатели;
процедурные типы.
Слайд 19Массив
Массив - совокупность данных одного типа с общим для всех элементов
именем. Элементы массива пронумерованы, а обратиться к каждому из них можно по номеру. Номер элементов массива называется индексом, а сами элементы массива — переменные с индексами.
Характеристики массива:
тип:;
размерность (ранг) — количество индексов массива;
диапазон изменения индекса — определяется количеством элементов в массиве.
Слайд 20Описание массива
В общем виде описание массива выглядит так:
Var ИмяМассива: array [НижняяГраница
. . ВерхняяГраница] of ТипЭлементов;
Например:
Var a: array [1..100] of integer;
b: array [0..50] of char;
c: array [-3..4] of boolean;
Для двумерного массива:
var a: array [1..3, 1..4] of integer;
Слайд 21Операции с массивами
Другое способ описания массива
type day = [ Monday .
. Sunday];
var temperature: array[day] of real;
Типичными операциями при работе с массивами являются:
Вывод массива;
Ввод массива;
Поиск максимального и минимального элемента массива;
Поиск заданного элемента массива;
Сортировка массива.
Слайд 22Описание строк
Var ИмяСтроки: ключевое слово [ ];
В [ ] помещается константа
целого типа, которая задает максимально допустимую длину строки.
Например:
1) Var Z : string;
2) Var Z:string [длина]
3) Var Stroka: string [255];
Слайд 23Процедуры и функции работы со строками
1. delete (s, p, n,);
Удаление n
символов строки s начиная c позиции p.
2. insert (s1, s2, p);
Вставка строки s1 в строку s2, начиная с позиции p.
3. length (s) - вычисляет текущую длину в стволах строки s. Результат – целочисленный тип.
n: =length (‘Иванов’); {n=6}
m: =length (‘Невский проспект’); {m =16}
Слайд 24Процедуры и функции работы со строками (продолжение)
4. copy (s,p,n) - выделяет
из строки s подстроку длиной n символов, начиная с позиции p.
5. contact (s1, s2, …, sn) - выполняет сцепление строк s1, s2, … , sn в том порядке, в каком они указаны в списке параметров.
6. pos ( s1, s2) - обнаруживает первое появление в строке s2 подстроки s1.
Слайд 25Процедуры преобразования данных числового типа в строку символов, а строку в
число
7. str (number, s) - преобразование числового значения величины number в строку s.
8. val (s, number, code) - преобразует значение s в величину целочисленного или вещественного типа и помещает результат в number. Code - целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение code = 0, если ошибка обнаружена (строковое значение не переводится в цифровое), code будет содержать номер позиции 1-го ошибочного символа, а значение number не определено.
Слайд 26Примеры.
S1: = ‘5.78’; S2: = ‘5,78’;
Val (S1, num1,cod1);
Val (S2, num2,
cod2);
{в результате cod1 = 0; cod2 = 2- второй символ ошибочный}
Слайд 27Условный оператор if
I вариант.
If then
begin
{эти инструкции выполняются, если
Условие истинно}
end
else
begin
{эти инструменты выполняются, если Условие ложно}
end;
Слайд 28Условный оператор if
II вариант
if then
begin
end.
В последнем случае говорят о сокращённой форме условного оператора.
Слайд 29Оператор Case
Инструкция case имеет вид:
case I of
M1, …, Mn: S1;
N1, …,Nn:
S2;
. . . . . . . .
P1, …, Pn: SJ
else K
end;
Слайд 30Примеры
сase i of
1: z : = i+10;
2: z : = i+100;
3:
z : = i+1000;
end;
case i of
1..10 : writeln (‘Число’, i:4, ‘в диапазоне 1-10’);
11..20: writeln (‘Число’,i:4, ‘в диапазоне 11-20’);
21..30 : writeln (‘Число’, i:4, ‘в диапазоне 21-30’)
else (‘Число вне диапазона’)
end;
выражение i может быть integer, char, boolean.