
- •1. Дайте определение следующим понятиям: алгоритм, программа, алгоритмический язык, транслятор, компилятор, интерпретатор.
- •2. Опишите общую структуру программы на языке программирования Паскаль (Delphi). Приведите пример оператора присваивания. Опишите и приведите примеры структур операторов ввода и вывода информации.
- •Вещественные типы
- •6. Перечислите основные математические функции в языке Паскаль. Приведите пример использования математической процедуры генерации случайных чисел.
- •Стандартные математические функции
- •7. Объясните назначение условного оператора в языке программирования Паскаль (Delphi). Опишите структуру условного оператора. Приведите пример фрагмента блок-схемы с условием.
- •Условный оператор if
- •8. Объясните назначение оператора выбора (варианта) в языке программирования Паскаль (Delphi). Опишите структуру оператора выбора (варианта). Приведите пример фрагмента блок-схемы с условием.
- •Оператор выбора (варианта)
- •9. Охарактеризуйте сущность логических операций в Паскале, опишите логический тип данных. Приведите таблицы истинности для операций and и or.
- •Логические операции, логический тип данных
- •Операторы организации циклов
- •Оператор повтора for
- •Циклы с неизвестным числом повторений
- •Массив. Одномерные массивы
- •Массив. Многомерные (двумерные) массивы
- •14. Опишите общую структуру процедуры в языке программирования Паскаль (Delphi). Запишите общий вид вызова процедуры. Перечислите варианты формальных параметров.
- •Процедуры
- •15. Опишите общую структуру функции в языке программирования Паскаль (Delphi). Запишите общий вид вызова функции. Перечислите основные отличия процедуры от функции.
- •Функция
- •16. Дайте определение понятия «модуль» (unit). Опишите структуру Unit-a (разделы interface, implementation).
- •1. Структура модуля
- •Заголовок модуля и связь модулей друг с другом
- •Интерфейсная часть
- •Исполняемая часть
- •17. Опишите символьный тип данных в языке программирования Паскаль (Delphi). Приведите пример объявления символьной константы. Перечислите символы, которые могут помещаться в символьную переменную.
- •Символьные переменные
- •Множества
- •20. Дайте определение записи. Напишите структуру объявления записи в языке программирования Паскаль (Delphi). Приведите пример объявления записи. Приведите пример обращения к отдельным полям записи.
- •21. Дайте понятие сортировки. Изложите общие принципы сортировки выбором, вставкой, обменом.
- •Сортировка
- •Сортировка простым обменом (метод «пузырька»)
- •Сортировка выбором
- •Сортировка вставкой
- •22. Дайте определение рекурсии, рекурсивной функции. Кратко опишите достоинства и недостатки рекурсии. Сформулируйте главное требование к рекурсивным подпрограммам.
- •Рекурсия
- •Программирование клавиатуры
- •Понятие стека
- •Понятие очереди
- •Операции с указателями
- •25. Дайте определение файла в Паскале. Перечислите типы файлов. Приведите общие процедуры обработки файлов. Дайте определение текстового файла. Назовите процедуры для работы с текстовыми файлами.
- •Общие процедуры и функции обработки файлов
- •Текстовые файлы
- •Способы представления ориентированного и неориентированного графа
- •Объект, способы описания
- •Свойства характерные для многих компонентов
- •29. Дайте понятие класса в языке программирования Delphi. Приведите отличие классов от других типов. Дайте понятие о структуре класса, его составляющих: полях, методах и свойствах.
- •Классы в Delphi
- •Компоненты
Заголовок модуля и связь модулей друг с другом
Заголовок модуля состоит из зарезервированного слова 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.
Разработайте программу решения задачи, в которой определить каких букв в строке больше, гласных или согласных. Исходные данные строки вводятся с клавиатуры.