- •Основы алгоритмизации и программирования
- •Часть 1
- •Содержание
- •Введение
- •1.1 Ход работы
- •1.2 Содержание отчёта
- •1.3 Вопросы для допуска к лабораторной работе № 1
- •1.4 Методические указания к лабораторной работе № 1
- •1.4.1 Запуск среды Турбо-Паскаль
- •Открыть окно Heip -помощи можно не только из меню. В таблице 2 показаны клавиши справочной службы.
- •Данные:
- •-Переменные (Значения возникают и могут изменяться в процессе выполнения программы)
- •1) Раздел описаний;
- •Составной оператор
- •Оператор вывода
- •1.5 Вопросы к защите лабораторной работы № 1
- •2 Лабораторная работа № 2. Составление и отладка программ линейной структуры
- •2.1 Ход работы
- •2.2 Содержание отчёта
- •2.3 Вопросы для допуска к лабораторной работе № 2
- •2.4 Методические указания к лабораторной работе № 2
- •2.4.1 Линейные алгоритмические конструкции
- •Задание № 1 Определить декларативную часть предложенной программы. Набрать программу на пк. Составить блок-схему к программе. Варианты индивидуальных заданий указаны в таблице 4.
- •Составить блок-схему и программу для вычисления значения функции y при заданном значении аргумента X.. Варианты индивидуальных зада-ний указаны в таблице 5.
- •Задание № 3
- •1) Составить блок-схему и программу по заданию своего варианта:
- •2.5 Вопросы к защите лабораторной работы № 2
- •3 Лабораторная работа № 3. Составление и отладка программ разветвляющей структуры
- •3.1 Ход работы
- •3.2 Содержание отчета
- •3.3 Методические указания к лабораторной работе № 3
- •3.3.1 Ветвящиеся алгоритмические конструкции
- •Полная форма оператора
- •3.3.2 Варианты заданий Задание № 1
- •3 Варианты заданий Задание №1 Составить программу с использованием символьной переменной по заданиям своего варианты.
- •3.4 Вопросы к защите лабораторной работы № 3
- •4 Лабораторная работа № 4. Составление и отладка программ домашнего задания
- •4.1 Ход работы
- •4.2 Содержание отчета
- •4.3 Методические указания к лабораторной работе № 4
- •4.4 Варианты заданий Задание № 1
- •5 Лабораторная работа № 5. Составление и отладка программ на циклические структуры
- •5.1 Ход работы
- •5.2 Содержание отчёта
- •5.3 Вопросы для допуска к лабораторной работе № 6
- •5.4 Методические указания к лабораторной работе № 6
- •6.4.1 Оператор цикла с параметром
- •1) Сумм
- •2) Количества
- •3) Произведений
- •6.4.2 Оператор цикла с послесловием
- •5.4.3 Оператор цикла с предусловием
- •5.4.4 Пустой оператор
- •5.5 Варианты заданий
- •Варианты индивидуальных заданий указаны в таблице 6.
- •5.6 Вопросы к защите лабораторной работы
- •6 Лабораторная работа № 6. Составление и отладка программ с использованием процедуры и функции
- •6.1 Ход работы
- •6.2 Содержание отчёта
- •6.3 Вопросы для допуска к лабораторной работе № 7
- •6.4 Постановка задачи
- •6.5 Методические указания к лабораторной работе № 7
- •6.6 Вопросы для защиты лабораторной работы № 6
- •Лабораторная работа № 6.1 Выполнение индивидуальной работы по темам: «Циклические структуры, процедуры и функции»
- •1 Ход работы
- •2 Содержание отчета
- •3 Вопросы к защите лабораторной работы № 8
- •4 Вопросы к защите лабораторной работы № 7
- •8 Лабораторная работа №8. Составление и отладка программ со строковыми типами данных (Строки).
- •1 Ход работы:
- •2 Содержание отчёта:
- •3 Варианты заданий:
- •4. Методические указания к лабораторной работе №8
- •5 Вопросы для защиты лабораторной работы №8
- •4 Методические указания к лабораторной работе №9
- •В таблице 2 представлены операции над множествами.
- •Программирование с использованием множеств
- •5 Вопросы для защиты лабораторной работы №9
- •10 Лабораторная работа №10 Составление и отладка программ с комбинированными типами данных ( записи)
- •1 Ход работы:
- •2 Содержание отчёта:
- •3 Методические указания к лабораторная работа №10
- •4 Варианты заданий
- •5 Пример программы:
- •6 Вопросы к защите лабораторной работы №10:
- •11 Лабораторная работа №11 Назначение, открытие и закрытие файлов»
- •1 Ход работы:
- •2 Содержание отчёта :
- •3. Методические указания к лабораторной работе №11
- •4 Вопросы к защите к лабораторной работе №11
- •1 Ход работы :
- •2 Содержание отчёта:
- •6.3 Методические указания к лабораторной работе №11-2 Процедуры работы с каталогами
- •4 Вопросы для защиты лабораторной работе №11-2
- •Лабораторная работа №13-14 Работа с временными и внешни- ми файлами
- •1 Ход работы :
- •2 Содержание отчёта :
- •3 Варианты заданий к лабораторной работе №7 Постановка задачи задание №1 Работа с временными файлами
- •Постановка задачи задание №2 Работа с внешними файлами
- •4 Вопросы к защите лабораторной работы №13-14:
- •16 Лабораторная работа № 16-17 «Поиск ошибок с помощью отладчика»
- •1 Ход работы
- •2 Содержание отчета:
- •3 Методические указания
- •4 Пример учебной программы lnput_integer
- •6 Варианты индивидуальных заданий
- •Лабораторная работа № ……… «Линейные списки»
- •1 Ход работы:
- •2 Содержание отчета
- •7.3 Методические указания
- •4 Вариант индивидуальных заданий к зачету по теме «Динамические структуры данных. Связанные списки»
- •7.5 Вопросы к защите лабораторной работы
- •4 Варианты индивидуальных заданий
- •4 Варианты индивидуальных заданий
- •5 Вопросы к защите лабораторной работы
- •Список использованных источников
4 Методические указания к лабораторной работе №9
Множества -это структурированный тип данных, представляющий собой набор взаимосвязанных по какому – либо признаку или группе признаков объектов, которые можно рассматривать как единое целое.
Каждый объект в множестве называется элементом множества, все элементы множества должны принадлежать одному типу. Этот тип называется базовым типом множества, он задаётся диапазоном, или перечислением, область значений типа множества, это набор всевозможных подмножеств, составленных из элементов базового типа, они указываются в квадратных скобках. Если множество не имеет элементов, оно называется пустым и обозначается пустыми квадратными скобками [ ], количество элементов множества называется его мощностью. В Turbo Pascal в качестве базовых могут использоваться порядковые типы, мощность которых не превышает 256 значений. Порядковые значения, верхние и нижние границы базового типа не должны выходить за пределы диапазона от 0 до 255. в качестве базового типа не рекомендуется использовать тип LongInt, Integer, Word, ShortInt.
Формат записи:
1)type имя типа= Set of элемент1,…элементN;
Var идентификатор: имя типа;
2)Var идентификатор Set of элемент1,…;
Операции над множествами:
In – используется для проверки принадлежности какого – либо значения к указанному множеству, применяется в условных операторах if. При использовании операции in на принадлежность значения и множества в квадратных скобках не обязательно предварительно описывать в разделе описания. Операция in наглядно производит сложные проверки условий значения десяти других операций:
if (a=1) or (a=2) or (a=3) or (a=4) then if a in [1..4] then
часто операция in пытаются записать с отрицанием, это ошибка, правильно будет not (x in M) нахождение простых чисел по методу Сито по определению простым является нарицательное число x>1, которое не разложено на множи-тели, кроме множителей L и х. простые числа, исключая 2, могут быть получе-ны по формуле х=2*L+1, где L – основа это любое число, не присутствующее ни в одной из следующих бесконечных арифметических прогрессий, их число так же бесконечно:
1) 4,7,10,13,16,19,22…
2) 12,17,22,27,32,37…
3)2,31,38,45,52,59,66,73…
А=2k*(к+1); а+2r, a+3r…
R=2k+1 K – номер прогрессии
Если поставлена задача найти всё кроме числа 2, простые числа, не пре-восходящие нуля, заданного числа n, нужно выявить все основы для диапазона [1…n div 2]. Метод решения, строим полное множество [1…n div 2] исключаем из него числа, состоящие из прогрессий, оставшиеся числа используем как осно-ва L, и печатаем это значение 2L+1.
Переменная множественного типа может принимать как все значения множества, так и ни одного. Любой множественный тип может принимать значение [], которое называется пустым множеством.
Пример: type Digits = set of 0..9; Letters = set of 'A'..'Z';
В таблице 2 представлены операции над множествами.
Таблица 2-Операции над множествами
Операция |
Действие |
Результат |
+ |
Объединение |
Порядковое значение c содержится в a+b только тогда, когда он содержится в a или в b. |
- |
Разность |
Порядковое значение c содержится в a-b только тогда, когда оно содержится в a и не содержится в b. |
* |
Пересечение |
Порядковое значение c содержится в a*b только тогда, когда он содержится в обоих множествах a и b. |
Если наименьшим порядковым значением, которое является членом результата операций над множествами, является a, а наибольшим - b, то типом результата будет множество a..b.
Напишем программу использующею множества. На примере программы реализующей детскую считалку.
program kinder; const nmax = 20; var n, {Число игроков} m, {Число слов в считалке}
i, j: integer; krug: set of 1..nmax; begin
Wreteln (‘Введите значения n и m’);
readln(n);
readln(m); krug:=[1..n];{В круге стоит n детей} i:=n; repeat
for j:=1 to m do repeat i:= i mod n+1;
until i in krug;
writeln(i:3); krug:=krug-[i]; until krug=[]; end.
