- •Основы алгоритмизации и программирования
- •Введение
- •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. Организация форматного вывода данных на языке Паскаль
- •Вопросы для самопроверки
- •Лабораторная работа №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. Двумерные массивы
- •Полная форма описания матрицы:
- •Формирование элементов случайным образом:
- •Формирование элементов матрицы при вводе с клавиатуры:
- •Фрагменты программ по обработке 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_1 составление программ с использованием подпрограмм - процедур
- •Методические указания
- •Варианты заданий
- •8.3. Подпрограммы-функции (function)
- •Вопросы для самопроверки
- •Лабораторная работа №8_2 составление программ с использованием подпрограмм - функций
- •Варианты заданий
- •8.4. Рекурсия
- •8.4.1. Вычисление факториала
- •8.4.2. Формы рекурсивных процедур
- •8.4.3. Числа Фибоначчи
- •Вопросы для самопроверки
- •9. Модули
- •Структура модуля
- •Interface
- •Implementation
- •Вопросы для самопроверки
- •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. Запись файла
- •Вопросы для самопроверки
- •13.1. Объявление множества
- •13.2. Операции над множествами
- •13.3. Сравнение множеств
- •Include (s, I);
- •13.4. Старшинство множественных операций
- •Вопросы для самопроверки
- •Лабораторная работа №13 множества
- •Варианты заданий
- •Горячие клавиши
- •Библиографический список
- •Оглавление Введение 3
- •1. Программирование на языке Паскаль 5
- •1.1. Структура программы 5
- •2. Организация форматного вывода данных на языке Паскаль 17
- •Лабораторная работа №7_1.
- •Лабораторная работа №7_2.
- •Лабораторная работа №8_2.
Лабораторная работа №13 множества
Цель работы. Получить навыки в задании переменных множественного типа и выполнении простейших операций над ними.
Задание. Работа с множественными типами данных.
Постановка задачи. Ознакомиться с конечным и упорядоченным множеством символов.
Варианты заданий
Подсчитать количество цифр в исходной символьной строке и написать все, кроме пробелов, знаков операций и знаков препинания.
Подсчитать количество букв в исходной символьной строке и напечатать все, кроме цифр, включая пробелы, знаки операций и препинания.
Из множества целых чисел от1 до 30 выделить множество простых чисел.
Имеются два множества символьного типа: X=[A,B,D,R,H]; Y=[R,A,H,D]. Сформировать новое множество X(Y*Y)+(Y-Y) и вывести его на печать.
Сформировать множество LAT, в которое входят только латинские буквы, встретившиеся во входной строке.
Построить и напечатать множество, элементами которого являются встречающиеся в последовательности цифры от 0 до 9 и знаки арифметических операций.
Задать два произвольных символьных множества и произвести с ними все возможные операции.
Дан текст, содержащий N символов. Распечатать, какие из указанных символов (L, T, Z) входят в данный текст.
Подсчитать количество цифр в исходной символьной строке и напечатать все, кроме пробелов и знаков операций.
Напечатать множество, элементами которого являются встречающиеся в последовательности буквы от F до М и знаки арифметических операций.
Пусть A есть множество, определенное с базовым типом х. Предположим, что low и high являются соответственно первым и последним значением базового типа х. Определить количество элементов во множестве А.
Даны два множества A и В с одним и тем же базовым типом. Определить суммарное количество элементов в A и В.
Даны два множества A и В с одним и тем же базовым типом. Определить новое множество, равное пересечению элементов A и В.
Даны два множества A и В с одним и тем же базовым типом. Определить разность элементов A и В.
Даны два множества A и B с одним и тем же базовым типом. Напишите программу, проверяющую принадлежность A к В.
Даны два множества A и B с одним и тем же базовым типом. Напишите программу, проверяющую идентичность элементов A и В.
Содержимое всего множества нельзя отпечатать непосредственно предложением writeln. Для заданного множества A и его базового типа x (первый и последний элементы которого есть low и high) напишите процедуру, печатающую элементы множества A.
Даны два множества A и В. Постройте из них следующее множество: A*В- A.
Даны два множества A и В. Постройте из них следующее множество: A - (A - В).
Даны два множества A и В. Постройте из них следующее множество: (A+В) - (A - В) - (В - A).
Даны два множества A и В. Постройте из них следующее множество: (A - В)+(B- A)+A*В.
Дан текст из цифр и строчных латинских букв, за которыми следует точка. Определить, каких букв - гласных (а, е, i, о, и) или согласных - больше в этом тексте.
Написать функцию, подсчитывающую общее количество цифр и знаков «+», «-», «*», входящих в строку s.
Дано 100 целых чисел от 1 до 50. Определить, сколько среди них чисел Фибоначчи. Числа Фибоначчи можно определить следующим образом: Первое и второе равны 1; каждое последующее (начиная с третьего) есть сумма двух предшествующих. Вот так выглядит начало такой последовательности: 1,1,2,3,5,8,...
Написать функцию, определяющую количество дней в месяце m (не високосного года). В современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех, которые делятся на 100 и не делятся на 400. Например, 1900 г. - не високосный, 2000 г. - високосный.
Даны два множества A и В. Постройте из них следующее множество: A*(A- B).
Даны два множества A и В. Постройте из них следующее множество: A + (A + В).
Даны два множества A и В. Постройте из них следующее множество: (A+В) * (A - В) + (В - A).
Даны два множества A и В. Постройте из них следующее множество: (A - В)*(B- A)-A*В.
Дан текст из цифр и строчных латинских букв, за которыми следует точка. Определить, каких букв – заглавных (A, E, F, H, L) или строчных - больше в этом тексте.
Приложение 1
Тестовые вопросы для проверки теоретического материала по разделу «основы алгоритмизации и программирования»
Шестиугольник на блок-схеме обозначает процесс
вычислений;
останова программы;
принятия решения;
модификации;
передачи данных;
пуска программы
подпрограмму.
Описательная часть программы Турбо Паскаль включает раздел
констант;
переменных;
функций;
типов;
подключения модуля;
процедур;
меток;
операторов;
заголовок программы;
Заголовок основной программы в среде Турбо Паскаль обозначают служебным словом
var
label
type
procedure
end.
const
end;
function
begin
begin…end
uses
program <имя программы>
Служебным словом fileобозначают тип
целый;
типизированный файл;
одномерный массив;
вещественный;
символьный;
текст;
записи;
строковый;
перечисляемый;
логический;
двумерный массив;
тип-диапазон;
нетипизированный файл;
множество;
Тип данных shortintв среде Турбо Паскаль занимает памяти (в байтах)
1
2
4
6
8
Оператор объявления новой константы
const <имя константы> : <значение>;
var <имя переменной> = <тип>;
const <имя константы> : <тип>;
type <имя типа> = <тип>;
var <имя переменной> : <значение>;
type <имя типа> : <тип>;
const <имя константы> = <значение>;
var <имя переменной> = <значение>;
type <имя типа> : <значение>;
Простая форма условного оператора
if <условие> then <оператор>;
if < условие > then begin <оператор >; end else <оператор >;
if < условие > then begin < оператор >; end;
if< условие >then< оператор >else< оператор >;
if < условие > then begin < оператор >; end else begin < оператор >; end;
if< условие >then< оператор >elsebegin< оператор >;end;
К данным типа диапазон применимы функции и операторы
Succ
writeln
Pred
Readln
:=
Ord
Краткая форма объявления типа данных «строка» имеет вид
var <имя пер.> : string;
var <имя пер.> : text;
var<имя пер.> :array<нач_индекс..кон_индекс>of<тип элементов>;
var <имя пер.> : file of <тип>;
var <имя пер.> : record <имя поля> : <тип>; end;
var<имя пер.> :array<нач_индекс1..кон_индекс1, нач_индекс2..кон_индекс2>of<тип элементов>;
var <имя пер.> : file;
Объявление одномерного массива размерностью 10 элементов вещественного типа
Var a : array[1..10] of real;
Var a : array[1..10, 1..2] of integer;
Var a : array[1..10, 2..3] of string;
Var a : array[0..9, 4..6] of real;
Var a : array[3..12] of char;
Var a : array[0..9] of integer;
Var a : array[2..11] of integer;
Var a : array[0..9] of string;
Var a : array[3..12, 0..1] of char;
Оператор вывода значений элементов двумерного массива
For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random;
For i:=1 to 10 do For j:=1 to 10 do readln(a[I, j]);
For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random(11);
For i:=1 to 10 do For j:=1 to 10 do writeln(a[I, j]);
For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random-5;
For i:=1 to 10 do For j:=1 to 10 do read(a[I, j]);
For i:=1 to 10 do For j:=1 to 10 do a[I, j]:= random(11)-5;
For i:=1 to 10 do For j:=1 to 10 do write(a[I, j]);
Произведение отрицательных элементов массива
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then inc(k);
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:=k*1;
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then dec(k);
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:= k*a[i];
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:=k+1;
For i:=1 to n do For j:=1 to n do if a[I, j] < 0 then k:= k+a[i];
Стандартная функция Турбо Паскаля преобразует строковый аргумент в его численное представление
Length();
Upcase();
Copy();
Pos();
Insert();
Delete();
Val();
Оператор Турбо Паскаля после создания текстового файла позволяет ввести в файл дополнительную информацию
Assign();
Reset();
Read();
Close();
Eof();
Append();
Eol();
Rewrite();
Write();
Erase();
Результатом оператора include([3..9],2) является
True
[0,12,3,4,5,6]
[2,3..9]
[2,3,4,5,6,7,8,9]
[3,6]
False
[ ]
[6,7,8,9]
[0,1,2,3,6]
Приложение 2