Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП.doc
Скачиваний:
22
Добавлен:
15.11.2018
Размер:
435.2 Кб
Скачать

Заголовок модуля и связь модулей друг с другом

Заголовок модуля состоит из зарезервированного слова UNIT и следующего за ним имени модуля. Имя должно совпадать с именем дискового файла, в который помещается исходный текст модуля.

Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением

USES <сп.модулей>

Здесь USES - зарезервированное слово {использует);

<сп.модулей> - список модулей, с которыми устанавливается связь; элементами списка являются имена модулей, отделяемые друг от друга запятыми, например:

Uses CRT, Graph, Global;

Интерфейсная часть

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

Исполняемая часть

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

.

program my;

var

a : array [1..10, 1..10] of integer;

i, j : byte;

pr : longint;

begin

pr:=1;

randomize;

for i:=1 to 10 do

for j:=1 to 10 do

begin

a[i,j]:=random(2)+1;

pr:=pr*a[i,j];

end;

writeln('pr = ', pr);

readln;

end.

17. Опишите символьный тип данных в языке программирования Паскаль (Delphi). Приведите пример объявления символьной константы. Перечислите символы, которые могут помещаться в символьную переменную.

Разработайте программу для определения количества пробелов в строке длинной 20 символов.

Символьные переменные

Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт.

Набор значений типа Char, доступных на данной ЭВМ, называется множеством литер этой ЭВМ. Множество литер обычно включает в себя прописные и строчные буквы, цифры от 0 до 9 и ряд других символов. ЭВМ, на которых устанавливается компилятор с языка Паскаль, обычно используют код, называемый ASCII (американский стандартный код обмена информацией).

В системе ASCII закреплены две таблицы кодирования – базовая и расширенная. Базовая таблица закрепляет значение кодов от 0 до 127, а расширенная относится к символам с номерами от 128 до 255.

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

Начиная с кода 32 по код 127 размещены символов английского алфавита, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов.

К символам можно применять операции отношения (<, <=, >, >=, =, <>), при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше. Других операций с символами нет, да они и не имеют смысла.

Стандартных подпрограмм для работы с символами тоже немного (табл. 1.).

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

Название

Описание

Результат

Пояснения

ord

Порядковый номер символа

Целый

ord('b' ) даст в результате 98

ord('ю') даст в результате 238

chr

Преобразование в символ

Символьный

chr (98) даст в результате 'b'

chr(238) даст в результате 'ю'

pred

Предыдущий символ

Символьный

pred (' b' ) даст в результате ' а'

succ

Последующий символ

Символьный

succ(' b' ) даст в результате 'c'

upcase

Перевод в верхний регистр (только для символов из диапазона ‘a’ ..’z’)

Символьный

upcase (' b' ) даст в результате 'B'

Пример:

const

ch = '2';

ch2 = #62;

var

cl,c2: Char;

begin

cl := UpCase('s') ;

c2 := UpCase ('Ф') ;

WriteLn(cl,' ',c2)

end.

program my;

var

s : string[20];

i, n : integer;

begin

s:='Длина строки 20 симв';

for i:=1 to length(s) do

if s[i]=' ' then inc(n);

writeln('n = ', n);

readln;

end.

18. Дайте определение понятия «строка». Опишите структуру объявления строки в языке программирования Паскаль (Delphi). Приведите пример объявления типизированной константы строкового типа. Кратко охарактеризуйте следующие функции для обработки строк: concat, copy, delete, insert, length, pos.

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

Строки

Строка - это последовательность символов, заключенная в апострофы. Ее длина может изменяться от 0 до 255 символов.

Переменная символьного типа должна быть объявлена в разделе объявления переменных.

Определение строкового типа устанавливает максимальное количество символов, которое может иметь строка. Оно имеет следующий вид:

Туре

<имя_типа> = string [<максимальная _длина_строки>];

Тип string (строка) в Турбо Паскале широко используется для обработки текстов и во многом похож на одномерный массив символов array |0..N] of char. В отличие от массива количество символов в строке-переменной может меняться от 0 до N (N - максимальное количество символов в строке). Значение N объявляется в типе string [N] и не должно превышать 255. При отсутствии N считается, что N - 255.

К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY [0..N] OF CHAR, например:

var

st :String;

begin

.....

if st[5] = 'A' then...

end.

Пример объявления строковой константы:

const

s = 'Sample';

s : string = 'Sample2'

CONCAT(S1 [,S2, ... , SN] ) - функция типа STRING; возвращает строку, представляющую собой сцепление строк-параметров SI, S2, ..., SN. Например:

St1 := 'Turbo';

St2 := 'Pascal';

St:=Concat(St1,'-', St2);

дают значение переменной St, равной строке 'Turbo Pascal'.

COPY(ST, INDEX, COUNT) - функция типа STRING; копирует из строки ST COUNT символов, начиная с символа с номером INDEX.

Например, из строки Stl := 'акватория' с помощью оператора St:= Copy(Stl,5,3); будет выделена подстрока St = 'тор'. При этом исходная строка Stl остается без изменения.

DELETE (ST, INDEX, COUNT) - процедура; удаляет СОUNT символов из строки ST, начиная с символа с номером INDEX. Например, после выполнения операторов:

St := 'Строки';

Delete(St,2,2);

Строка St примет значение 'Соки'.

INSERT (SUBST, ST, INDEX) - процедура; вставляет подстроку SUBST в строку ST, начиная с символа с номером INDEX. Например:

St1 := ' PC ';

St2 := 'IBMXT';

lnsert(St1,St2,4);

даст значение переменной St2, равное строке 'IBM PC XT'.

LENGTH (ST) - функция типа INTEGER; возвращает длину строки ST.

POS (SUBST, ST) - функция типа INTEGER; отыскивает в строке STпервое вхождение подстроки SUBST и возвращает номер позиции, с которой она начинается; если подстрока не найдена, возвращается ноль. Например, после выполнения операторов

St := 'В лесу родилась елочка, в лесу она росла';

St1 := 'лес';

n:= Pos(Stl.St);

переменная п примет значение 3.

program slova;

uses crt;

var

stroka:string;

var

i,dlst,kolsl:integer;

begin

clrscr;

writeln(‘Введите исходную строку на английском языке’);

readln(stroka);

dlst:=length(stroka);

kolsl:=0;

for i:=1 to dlst do

if stroka[i]=’ ‘ then kolsl:=kolsl+1;

kolsl:=kolsl+1;

writeln(‘Количество слов в строке:’,kolsl);

end.

19. Дайте определение понятия «множества». Опишите структуру описания множества в языке программирования Паскаль (Delphi). Приведите пример объявления множества. Перечислите операции, допустимые над множествами, а также назначение функций include и exclude.

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