Шпора по Паскалю

Procedure…имя .список формальных параметров…;…блок…;

Формальные параметры – это те объекты, над которыми описаны действия в процедуре и которые заменяются фактическими параметрами при обращении к ней. Параметры:

1.Значения (копия значения);

2.Перемещения (передача адреса);

3.Процедуры;

4.Функции.

1.Определяют исходные данные для работы процедуры, которые не желательно изменять в процессе её выполнения.

2.Определяют, как правило, выходные данные процедуры, которые передаются в основную программу.

Фактические параметры должны соответствовать формальным параметрам по количеству, типу и месту расположения.

Б21.Структурированные типы данных: массивы.

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

Массив – группа данных одинакового типа, имеющая одно имя.

Индекс – обозначение порядкового номера элемента.

Элемент массива – индексированная переменная.

Массив М1 (одномерный, вектор); М[1], М[2],…

Массив М2 (двумерный, матрица); М[1,1], М[1,2], М[2,1], М[2,2].

Описание массива.

Array[ .тип индекса .] of .тип элемента

Для ввода и вывода используются циклы.

Пример!!!

Б24.Функции. Описание функций и обращение к ним.

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

Обращение к ф-ии ,как и к стандартным ф-ям, осуществляется из выражения, в котором в качестве операнда записывается имя ф-ии и фактические параметры.

После выполнения ф-ии вычисленные значения присваиваются имени ф-ии и передаётся выражение.

Function Fun(a, b: real): real;

…end; {fun}

…y:=Fun(x, 2); writeln(fun(k, l));

if fun(m, n) > 0 then…

Б25.Рекурсивные процедуры и ф-ии.

При использовании проц. и ф-ий встречается обращения их к самим себе, называемое рекурсивным.

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

X^n=1(если n=0); X^n=X*X^(n-1)(если n >0);

n!=1(если n=0); n!=n*(n-1)!(если n > 0). Пример!!!

Б26.Записи. Описание записей. Оператор присоединения (а).

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

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

Ввод, вывод и др. операции над записью выполняются для отдельных полей, в соответствии с их типами.

(а)Позволяет сократить текст программы за счёт исключения повторяющихся частей: имён полей, записей.

With .имя поля, имя записи(,) .do .оператор

Б27.Записи с вариантной частью(1).

Case имя сектора (:) тип of конст. (,)

(:) ( список полей )

Б28.Множества.

Множества – ограниченный, не упорядоченный набор различных элементов базового типа.

Set…of…порядковый тип

Z:=[0,2 4,8]; b:=[‘a’ ‘d’, ‘k’];

g:=[Penza, Moscow].

Элементы множества не упорядочены, поэтому:

[1,3,7]=[3,7,1]=[1,7,3,1,3,7];

a:=[3 6,8 10]; b:=[2 5,8 9];

a*b---[3 5,8]; a+b---[1 6,8 10];

a - [4,6,8]---[1,3,5,10];

Реализовать вычисление первых простых чисел до заданного n методом “решета Эратосфена”; n=15.

ISH=[2,3,4,5,6,7,8,9,10,11,12,13,14,15];REZ[?]

m=2 REZ[2]

m=3 REZ[2,3]

m=5 REZ[2,3,5]

m=7 REZ[2,3,5,7]

m=11 REZ[2,3,5,7,11]

m=13 REZ[2,3,5,7,11,13]

Б29.Файл. Стандартные процедуры работы с ф. Не типизированные ф.(а)

Файл – именованная область памяти на внешнем носителе, предназначенная для хранения данных.

Упорядоченная совокупность произвольного числа однотипных компонент с последовательным методом доступа.

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

Для доступа к записи файла используется текущий указатель, который в начале работы с файлом должен указывать на начальную запись, имеющую № 0. При выполнении операции текущий указатель автоматически перемещается.

Типы файлов:

1.Типизированные – записи которых имеют жёсткую структуру, типа record.

2.Текстовые – состоящие из символов и строковых структур.

3.Нетипизированные – файлы без какой-либо структуры.

Процедуры и ф-ии для всех типов ф-ов.

1.Assign(имя файла,‘имя системного ф.’) устанавливает связь между переменной файлового типа в ПАСКАЛЬ-программе и конкретными физическими файлами на магнитных носителях.

Assign(f, ‘A:\file.dat’);

2.Reset(имя файла) – подготовка к чтению;

Rewrite(имя файла) – подготовка к записи;

3.Read(F) – чтение из файла F

Write(F) – запись в файл F

4.Eof(F) – достигнут ли конец файла при записи?

5.Uose(F) – закрытие файла.

6.Erase(F) – стирание файла.

7.Rename(F, ‘STR’) – переименование.

8.Truncate(F) – усечение файла по текущему положению указателя

9.Файлы параметров процедур могут передаваться по ссылке.

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

Особенности исполнения стандартных процедур и функций.

Rewrite(F, lblock); Reset(F, lnlock);

Lblock – размер передаваемого блока в байтах (по умолч. 128 байт).

Filesize, Filepos, Seek – используют компоненты длиной lblock каждый.

Blockread(F, buf, nmax, n) – из F в buf считывается максисум nmax блоков; n – фактически прочитано.

Б30.Текстовые файлы.

Текстовые файлы отличаются от типизированных следующими признаками:

1.Их элементами являются символы.

2.Их текстовые строки делятся с помощью метода конца строки, генерируемых при нажатии клавиши ENTER.

3.Спомощью процедуры readln метод строки считывается с помощью writeln метода конца строки.

4.При чтении из файла и записи в файл данные преобразуются автоматически.

Стандартные процедуры и функции для текстовых файлов:

Eoln(F) – конец строки;

Read(f, x1, x2,…xn) – чтение из f в x1…xn;

Write(f, x1,x2,…xn) – запись в f из х1…хn;

Append(f) – открыть текстовый файл для дополнения.

Б40.Графические проц. и ф-ии для работы с графическими примитивами типа “линия”.

Line(x1,y1,x2,y2{integer}) – вычерчивается отрезок прямой от (х1, у1) до (х2, у2)

LineTo(x,y) – от текущей позиции курсора до (x,y);

LineRel(dx,dy) – от текущей позиции курсора до ((x+dx),(y+dy));

MoveTo(x,y) – курсор устанавливается в точку (x,y);

MoveRel(dx,dy) - курсор устанавливается в точку ((x+dx),(y+dy));

PutPixel(x,y,Color) – закрашивает точку (x,y) в цвет Color.

Б41.Графические проц. и ф-ии для работы с дугами и геометрическими фигурами.

Arc(x,y{integer},w1,w2,r{word}) – из центра с координатами (x,y) вычерчивается дуга с радиусом r, от угла w1 до угла w2.


Страница: