- •Введение
- •1. Программирование на языке Паскаль
- •1.1. Структура программы
- •1.2. Типы данных
- •1.2.1. Целый тип данных
- •1.2.2. Логические типы данных – Boolean
- •1.2.3. Данные символьного типа
- •1.3. Операторы языка программирования Турбо Паскаль
- •1.3.1. Операции в Турбо Паскаль
- •1.3.2. Правила вычисления выражений
- •1.3.3. Встроенные функции в Турбо Паскаль
- •1.3.4. Описание констант и переменных
- •1.3.5. Операторы в Турбо Паскаль
- •Вопросы для самопроверки
- •Лабораторная работа №1 Организация программ линейных структур
- •2. Организация форматного вывода данных на языке Паскаль
- •Варианты задания
- •3. Организация программ разветвляющихся структур
- •3.1. Полная форма условного оператора
- •3.2. Краткая форма условного оператора
- •Вопросы для самопроверки
- •Лабораторная работа №3 Организация программ разветвляющихся структур
- •Варианты заданий
- •4. Организация циклических процессов
- •Лабораторная работа №4 Составление циклических программ
- •Варианты заданий
- •Методические указания
- •Варианты заданий
- •5. Программирование структур с вложенными циклами
- •Вопросы для самопроверки
- •Лабораторная работа №5 программирование структур с вложенными циклами. Вычисление суммы ряда
- •Методические указания
- •Варианты заданий
- •6. Перечислимые и ограниченные типы данных
- •6.1 Перечислимый тип данных
- •6.2. Ограниченный тип данных
- •6.3. Оператор выбора (варианта)
- •Вопросы для самопроверки
- •Лабораторная работа №6 Перечислимые и ограниченные типы данных
- •Варианты заданий.
- •7. Регулярные типы данных
- •7.1. Одномерные массивы
- •7.1.1. Краткая форма объявления одномерного массива
- •7.1.2. Полная форма объявления одномерного массива
- •7.1.3. Доступ к элементам массива
- •Вопросы для самопроверки
- •Лабораторная работа №7_1 регулярные типы данных. Массивы
- •Варианты заданий
- •7.2. Двумерные массивы
- •Вопросы для самопроверки
- •Лабораторная работа №7_2 регулярные типы данных. МАтрицы
- •Варианты заданий
- •7.3. Сортировка элементов массива
- •7.3.1. Сортировка методом «пузырька»
- •7.3.2. Сортировка вставками
- •7.3.3. Сортировка посредством выбора
- •7.3.4. Быстрая сортировка
- •8. Составление программ с использованием подпрограмм
- •8.1. Область видимости идентификатора переменной
- •8.2. Подпрограммы - процедуры (procedure)
- •8.2.1. Формальные и фактические параметры
- •Вопросы для самопроверки
- •8.3. Подпрограммы-функции (function)
- •Вопросы для самопроверки
- •Лабораторная работа №8_2 составление программ с использованием подпрограмм - функций
- •Варианты заданий
- •8.4. Рекурсия
- •8.4.1. Вычисление факториала
- •8.4.2. Формы рекурсивных процедур
- •8.4.3. Числа Фибоначчи
- •Вопросы для самопроверки
- •9. Модули
- •Вопросы для самопроверки
- •Лабораторная работа №9 составление программ с использованием модулей
- •Варианты заданий
- •10. Строковые типы данных (String)
- •10.1 Операции со строками
- •10.2. Стандартные процедуры и функции для строк
- •10.3. Хранение строк
- •Вопросы для самопроверки
- •Лабораторная работа №10 обработка символьной информации
- •Варианты заданий
- •11. Комбинированные типы. Записи (Record)
- •11.1 Записи с фиксированными частями
- •11.2. Оператор with…do
- •11.3. Вариантные записи
- •Вопросы для самопроверки
- •Лабораторная работа №11 Комбинированные типы. Записи
- •Варианты заданий
- •12. Файлы
- •12.1. Классификация файлов
- •12.1.1. Чтение файла
- •12.1.2. Запись файла
- •Вопросы для самопроверки
- •Лабораторная работа №12 организация работы с внешней памятью
- •Варианты заданий
- •13. Множества
- •13.1. Объявление множества
- •13.2. Операции над множествами
- •13.3. Сравнение множеств
- •13.4. Старшинство множественных операций
- •Вопросы для самопроверки
- •Лабораторная работа №13 множества
- •Варианты заданий
- •Библиографический список
13.4. Старшинство множественных операций
(высший) * - пересечение;
+, - - объединение, разность;
(низший) =, <>, >, <, in – равенство, неравенство, подмножество, принадлежность.
Например, определить результат выражения:
M1 := [‘a’, ‘e’, ‘x’];
M2 := [‘x’];
M3 := [‘a’..’z’];
If (M3 – M1 * M2 >= [‘p’]) and (‘a’ in M3) then writeln (‘Да’);
Задача 13.1. В строке определить цифры и количество букв.
Листинг программы
program Task;
uses crt;
var m, m1 : set of char;
s : string; i, n, l : byte;
begin
clrscr;
m := ['0'..'9'];
m1 := ['a'..'z'];
writeln ('Введите в строку символы, содержащие цифры и буквы');
readln (s);
n := 0; {Обнуление счётчика количества цифр}
writeln ('Вывод строки цифр: ');
for i := 1 to length (s) do
if (s[i] in m) and not (s[i] in m1) then
begin
inc (n);
write (s[i]);
end;
writeln;
writeln ('Их количество: ', n:3);
l := 0; {Обнуление счётчика количества букв}
writeln ('Вывод строки букв: ');
for i := 1 to length (s) do
if (s[i] in m1) and not (s[i] in m) then
begin
inc (l);
write (s[i]);
end;
writeln;
writeln ('Их количество: ', l:3);
readln;
end.
Задача 13.2. В строке определить количество пробелов.
Листинг программы
program Task;
uses crt;
var m, m1, m2 : set of char;
s : string; i, k : byte;
begin
clrscr;
m := ['0'..'9'];
m1 := ['a'..'z'];
m2 := [' '];
writeln ('Введите в строку символы, содержащие цифры, буквы и пробелы');
readln (s);
k := 0; {Обнуление счётчика количества пробелов}
for i := 1 to length (s) do
if (s[i] in m2) and not
(s[i] in m1) and not
(s[i] in m) then inc (k);
writeln;
writeln ('Их количество: ', k:3);
readln;
end.
Задача 13.3. Написать программу, в которой функция подсчитывает общее количество цифр и знаков арифметических операций, входящих в строку.
Листинг программы
program task;
type st = string[100];
var s1 : st;
function chet (s : st) : integer;
var i,k : integer;
begin
k := 0;
for i := 1 to length (s) do
if (s[i] in ['0'..'9', '+', '-', '*', '/']) then inc (k);
chek := k;
end;
begin
clrscr;
writeln ('Введите строку символов');
readln (s1);
writeln ('Количество цифр и знаков ариф. операций', chet (s1));
readln;
end.
Задача 13.4. Программа позволяет выполнять операции над множествами и содержит процедуру, которая передаёт множество.
Листинг программы
program task;
uses crt;
type m = set of 'a'..'z';
var b, b1, b2 : m;
procedure print (a : m);
var c : char;
begin
for c := 'a' to 'z' do
if c in a then write (c);
end;
begin
clrscr;
b1 := ['a'..'f'];
b2 := ['t'..'z'];
writeln ('Первое множество');
print (b1);
writeln ('Второе множество');
print (b2);
writeln ('Первое множество + Второе множество');
b := b1 + b2;
print (b);
readln;
end.