ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.03.2025

Просмотров: 696

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

14)Оператор выбора case of

11) Структурный тип строка, как специальная форма массива

10)Структурный тип строка, основы обработки строк

7)Функции: описания и вызовы функций.

8)Процедуры: описание и вызовы процедур.

6)Особенности использования параметров в процедурах и функциях.

25)Общая конструкция языка Паскаль.

24)Алфавит языка, ключевые слова, идентификаторы.

23)Структура программы.

22)Стандартные типы данных, операции, выражения.

21)Оператор присваивания.

18)Композиция условий и операторов.

17) Операторы итерационных циклов.

4)Области действия имён в программах.

2)Понятие о типе Множество в Турбо Паскале.

1)Запись как объединение неоднородных данных.

Обработка записей.

27)Понятие о языках программирования.

26)Система программирования turbo pascal 7.0.

28)Аппаратное и программное обеспечение компьютера.

30)Принцип программного управления.

29)Программы, управляемые событиями.

14)Оператор выбора case of

Оператолр выбора является обобщением оператора if-then-else на случай выбора одного из нескольких возможных продолжений выполнения программы . Выбор осуществляется по ключу выбора .Синтаксическая структура :

Case <ключ выбора >of

<константа выбора 1>:<оператор 1 >

<константа выбора m>:<оператор m>

[else < оператор >].

End;

Где <константа выбора >-значение того же типа , что и ключ выбора

m-число ветвей выбора

При выполнении оператора выбора в начале вычисляется значение ключа , а затем последовательном просмотром ветвей выбора отыскивается такая ветвь, для которой константа выбора совпадает со значением ключа.Ветвь else выполняется только в том случае , когда ни одна ветвь оператора case of не выбрана . Если ветвь else отсутствует , то это эквивалентно ветви else с пустыми операторами.В ветвях выбора вместо констант выбора можно использовать список констант выбора , либо диапазон констант выбора. Операторы выбора являются хорошо структурированными средством выбора из любого числа альтернатив и часто выполняют ту же ф-ию , что и вложенные операторы if-then-else.

11) Структурный тип строка, как специальная форма массива

В Турбо Паскале имеется семейство строковых типов, рассматриваемых как специальная форма массива, а именно одномерный массив символов. Это семейство соответствует по умолчанию следующему описанию:

type string[ <m >] = array [0..m] of char;

где: <m >- максимальная длина строки (число диапазона 0 .. 255).

string- стандартное имя строкового типа, являющееся ключевым словом.

Строки длины до 255 соответствуют типу string (без указания длины строки).

Нулевая позиция строки является специальной позицией, в которой хранится текущая длина строки (код ASCII, представляющий длину строки). Эта позиция автоматически корректируется при операциях над строками. Доступ к компоненту строки (символу строки) осуществляется также как к элементу массива, т.е. по индексу (индексному выражению). Например: st[J+1] {Cимвол в позиции J+1 строки st}. Разрешен доступ, в том числе и к нулевой позиции строки, так что, например ord(st[0]) - длина строки st .

Замечание

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


10)Структурный тип строка, основы обработки строк

Строки относятся к важным средствам представления нечисловой информации, и обработка строк имеет широкие приложения во многих областях использования нечисловой информации (редактирование текстов, логический анализ, автоматизация перевода, распознавание текстов и др.). Посколку строки указанного типа являются разновидностями массива, для них можно применять всё, что применимо к массивам. Кроме того, для обработки строк в Турбо Паскале предусмотрен ряд достаточно удобных и эффективных средств:

Для строк допустим оператор присваивания вида:

< переменная типа string > := < выражение типа string или типа char >;

Над строками допустимы отношения сравнения <,<=,>,>=, =, <>, причём длины сравниваемых строк могут быть различными (меньшая строка при сравнении дополняется справа до выравнивания длин символами chr(0)). Сравнение выполняется посимвольно слева направо по кодам символов таблицы ASCII. Например: 'A' >'1', 'Turbo' < 'TURBO PASCAL'. К строкам применима операция сцепления строк (конкатенация), обозначаемая символом '+'. Например: 'Это -' + 'строка' {соответствует 'Это - строка' }.

Стандартные процедуры обработки строк:

Delete(st, Npos, count) -удаление из строки st, начиная с позиции Npos под- строки длины count .

Insert(subst, st, Npos) -вставка в строку st подстроки subst с позиции Npos.

Стандартные функции обработки строк:

Length(st) -длина строки st (без учёта нулевой позиции строки).

Copy(st, Npos, count) -выделение из строки st подстроки длиной count, на чиная с позиции Npos.

Pos(subst, st) -позиция начала первого вхождения подстроки subst в строку st (если подстрока не найдена, то pos=0).

Основными элементарными задачами обработки строк являются: управление пробелами в строке (удаление лишних пробелов, удаление пробелов в начале или в конце строки, выравнивание длин строк вставкой пробелов и др.), анализ частот символов, либо подстрок, поиск подстрок по заданным критериям (первого вхождения, всех вхождений, по образцу, по шаблону и др.), подстановка подстрок и другие.


7)Функции: описания и вызовы функций.

В отличие от процедур, функции не являются отдельными операторами. Функции возвращают значения и предназначены для использования в составе выражений или в качестве выражений. Это накладывает определенный отпечаток на синтаксическую структуру описания функций, которая имеет вид:

function < имя функции >[(<список формальных параметров>)]:<тип функции >;

< описание локальных имён >

begin

< тело функции - последовательность операторов >

end;

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

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

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

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

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

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


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

Замечание

Используя так называемый расширенный синтаксис, можно вызывать функцию как процедуру (т.е. как оператор). Для включения расширенного синтаксиса имеется директива компилятора {$X+}. Это находит применение при инициализации динамических объектов.

Приведем пример программы triangle2, отличающейся от triangle1 тем, что вместо процедуры d использована функция dist:

program triangle2; {Программа, вычисляющая длины сторон треугольника АВС}

uses CRT;

type point = array [1..2] of real; {тип- точка на плоскости}

var A,B,C:point; {вводимые точки}

ch:char;

function dist(X,Y:point):real;{ расстояние между точками X и Y }

begin dist:= sqrt(sqr(X[1]-Y[1])+sqr(X[2]-Y[2]))

end { dist};

BEGIN TextBackground(cyan);TextColor(white);ClrScr;

window(10,5,60,10);TextBackground(green); ClrScr;

repeat

writeln(' Введите координаты вершин A,B,C:');

writeln('A[1] A[2] B[1] B[2] C[1] C[2] ');

readln(A[1],A[2],B[1],B[2],C[1],C[2]);

writeln(' Длины сторон треугольника АВС:');

writeln(' AB=',dist(A,B):2:2,' AC=',dist(A,C):2:2,' BC =',dist(B,C):2:2);readln(ch)

until ch=' ';

END {triangle}.


8)Процедуры: описание и вызовы процедур.

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

Синтаксическая форма описания процедуры имеет вид:

procedure <имя процедуры> (< список формальных параметров >);

< описание локальных имен процедуры >

begin

< тело процедуры - последовательность операторов процедуры >

end;

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

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

собой еще один механизм передачи параметров между процедурой и внешней средой.

Выполнение процедуры заканчивается либо при достижении слова end, завершающего раздел операторов, либо при выполнении оператора exit.

Вызов процедуры имеет следующую синтаксическую форму:

<имя процедуры>(<список фактических параметров>);

где фактические параметры перечисляются в списке через запятую.

Пример программы на Турбо Паскале, использующей процедуру:

program triangle1;{Программа, вычисляющая длины сторон треугольника АВС}

uses CRT;

type point = array [1..2] of real; {тип- точка на плоскости}

var A,B,C:point; {вводимые точки}

AB,BC,AC:real; {стороны треугольника}

ch:char;

procedure d(X,Y:point; var r:real);{ расстояние между точками X и Y }

begin r:= sqrt(sqr(X[1]-Y[1])+sqr(X[2]-Y[2])) end { d};

BEGIN TextBackground(cyan);TextColor(white);ClrScr;

window(10,5,60,10);TextBackground(green); ClrScr;