- •Министерство образования и науки российской федерации
- •Содержание
- •Пояснительная записка
- •Допуск студентов к выполнению практических занятий
- •Порядок выполнения практических занятий
- •Требования к структуре, содержанию и оформлению отчетов по лабораторным работам
- •Порядок защиты практических занятий
- •Порядок оценивания практического занятия
- •Практическое занятие №1
- •Теоретический материал:
- •Ход работы и задания:
- •Контрольные вопросы и задания:
- •Практическое занятие №2
- •Теоретические сведения:
- •Ход работы:
- •Задания к работе:
- •Контрольные вопросы:
- •Практическое занятие №3
- •Теоретический материал:
- •Задания:
- •Ход работы: Для каждой задачи в тетрадь оформите блок-схему и листинг программы
- •Контрольные вопросы и задания:
- •Практическое занятие №4
- •Теоретический материал:
- •Задания:
- •Ход работы: Для каждой задачи в тетрадь оформите блок-схему и листинг программы
- •Контрольные вопросы и задания:
- •Практическое занятие №5
- •Теоретический материал:
- •Задания:
- •Ход работы: Для каждой задачи в тетрадь оформите блок-схему и листинг программы
- •Контрольные вопросы и задания:
- •Практическое занятие №6
- •Теоретический материал:
- •Задания:
- •Ход работы: Для каждой задачи в тетрадь оформите блок-схему и листинг программы
- •Контрольные вопросы и задания:
- •Практическое занятие №7
- •Теоретический материал:
- •Задания:
- •Ход работы: Для каждой задачи в тетрадь оформите блок-схему и листинг программы
- •Контрольные вопросы и задания:
- •Практическое занятие №8
- •Теоретический материал:
- •Задания:
- •Ход работы: Для второй задачи в тетрадь оформите листинг программы с комментариями
- •Контрольные вопросы и задания:
- •Практическое занятие №9
- •Теоретический материал:
- •Задания:
- •Ход работы: в тетрадь оформите листинг второй программы с комментариями
- •Контрольные вопросы и задания:
- •Практическое занятие №10
- •Теоретический материал:
- •Задания:
- •Ход работы: в тетрадь оформите листинг второй программы с комментариями
- •Контрольные вопросы и задания:
- •Практическое занятие №11
- •Теоретический материал:
- •Задания:
- •Ход работы: в тетрадь оформите листинг второй программы с комментариями
- •Контрольные вопросы и задания:
- •Контрольные вопросы и задания:
- •Практическое занятие №13
- •Теоретический материал:
- •Задания:
- •Ход работы: в тетрадь оформите листинг второй программы
- •Initgraph (g,m,’путь к графическим драйверам’);
- •Контрольные вопросы и задания:
- •Практическое занятие №14
- •Теоретический материал:
- •Задания: в тетрадь оформите листинги программ
- •Ход работы:
- •Контрольные вопросы и задания:
- •Практическое занятие №15
- •Теоретический материал:
- •Задания:
- •Ход работы: в тетрадь оформите блок-схемы и листинги 2, 3, 4 и 5 задач
- •Контрольные вопросы и задания:
- •Практическое занятие №16
- •Теоретический материал:
- •Задания:
- •Ход работы: в тетрадь оформите блок-схемы и листинги программ
- •Контрольные вопросы и задания:
- •Практическое занятие №17
- •Теоретический материал:
- •Задания:
- •Ход работы: в тетрадь оформите блок-схемы (функций и основных программ и листинги программ
- •Контрольные вопросы и задания:
- •Практическое занятие №18
- •Теоретический материал:
- •Задания:
- •Ход работы: в тетрадь запишите функции, использованные при решении задач
- •Контрольные вопросы и задания:
- •Список литературы
- •Основная литература
- •Дополнительная литература
- •Шарафутдинова Светлана Анатольевна основы алгоритмизации и программирования
- •625000, Тюмень, ул. Володарского, 38.
- •625039, Тюмень, ул. Киевская, 52
Контрольные вопросы и задания:
В чём заключается особенность объявления данных динамической структуры?
Что выполняет операция разыменования?
С помощью каких процедур происходит распределение памяти под динамические переменные?
Какие состояния может принимать указательная переменная?
Каким образом выражаются динамические свойства несвязанных динамических данных?
В чём заключаются отличия при обработке стека и очереди?
Рекомендуемая литература: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 2.3, 2.4, 2.5.
Практическое занятие №12
Тема: Разработка собственного модуля
Цель: закрепление знаний и навыков по созданию пользовательских модулей, изучение с практической стороны преимуществ модульного программирования.
Вид работы: фронтальный.
Время выполнения: 2 часа.
Теоретический материал:
Модуль (UNIT) – программная единица, текст которой компилируется независимо (автономно). Внутренняя структура модуля (тексты программ и т.д.) скрыта от пользователя.
Заголовок модуля
UNITимя модуля;
Интерфейсная часть
INTERFACEначало раздела объявлений;
USESиспользуемые при объявлении модули;
LABELподраздел объявления доступных глобальных меток;
CONSTподраздел объявления доступных глобальных констант;
TYPEподраздел объявления доступных глобальных типов;
VARподраздел объявления доступных глобальных переменных;
PROCEDUREзаголовки доступных процедур;
FUNCTIONзаголовки доступных функций;
Реализационная часть
IMPLEMENTATIONначало раздела реализации;
USESиспользуемые при реализации модули;
LABELподраздел объявления скрытых глобальных меток;
CONSTподраздел объявления скрытых глобальных констант;
TYPEподраздел объявления скрытых глобальных типов;
VARподраздел объявления скрытых глобальных переменных;
PROCEDUREтела доступных и скрытых процедур;
FUNCTIONтела доступных и скрытых функций;
Инициализационная часть
BEGIN
Операторы, которые выполняются при подключении модуля;
END.
Задания:
Создайте модуль для вычисления факториала некоторого числа. В основной программе, не объявляя никаких переменных, осуществите вывод на экран факториалов чисел a и b.
Напишите программу для ввода некоторого числа X и вывода факториала этого числа. В программе должны использоваться два модуля: модуль для проверки, является ли число X целым и положительным, модуль для вычисления факториала (можно применить модуль, созданный для решения предыдущей задаче).
Ход работы:
В тетрадь оформите листинги программ и модулей с комментариями
1. Основная программа, согласно условию, будет содержать подключение модуля, ввод чисел a и b, вызов функции для каждого числа и вывод результата на экран. Текст программы можно представить так:
usees unitF; {подключение модуля}
begin
writeln(‘введите два числа’);
readln(a,b); {ввод переменных, описанных в модуле}
f1:=factor(a);{вызов функции, описанной в модуле; вычисление факториала от a}
f2:=factor(b); {вызов функции, описанной в модуле; вычисление факториала от b}
writeln(‘факториал числа а = ’, f1);
writeln(‘факториал числа b = ’, f2);
readln;
end.
Модуль создаётся отдельно от основной программы. Его название должно совпадать с именем файла, в котором он записан (unitF). Для удобства использования модули сохраняют с расширениями pas и tpu, т.к. откомпилированный модуль нельзя исправить. В интерфейсной части модуля описываются переменные a, b типа integer и переменные f1, f2 типа longint (для записи результата используется тип с наибольшим диапазоном из целых типов), описывается функция factor. В реализационной части находится не только описание функции, но и сама функция. Инициализационная часть будет пустой. Текст модуля unitF (файлы unitF.tpu и unitF.pas):
unit unitF; {заголовок модуля}
interface {интерфейсная часть}
var a, b: integer; {описание переменных доступных из вызывающий модуль программ}
f1, f2: longint;
function factor(x: integer): longint; {описание доступной программам функции}
implementation {реализационная часть}
function factor(x: integer): longint; {тело функции}
var i: inttger; {локальные переменные}
f: longint;
begin
f;=1;
for i:= 1 to x do {цикл для вычисления факториала}
f:=f*i;
factor:=f; {имени функции всегда присваивается результат}
end; {завершение функции}
end. {закрытие модуля, пустая инициализационная часть}
2. Решение этой задачи упрощается тем, что в предыдущей уже разработан модуль для вычисления факториала. Следовательно, необходимо создать ещё один модуль и исправить вызывающую программу. В модуле proverka находится функция: является ли число, от которого вычисляется факториал, положительным и целым, это проверяется так:
ost:=x-round(x); {определение дробной части числа x}
if (x>=0) and (ost=0) then writeln(‘факториал числа = ’,factor(round(x)))
else writeln(‘от данного числа не возможно найти факториал’);
Если x неотрицательное и целое число, то вызывается функция для вычисления факториала из модуля unitf - factor.