
- •230701 Прикладная информатика (по отраслям)
- •Содержание
- •Требования к минимуму содержания основной профессиональной образовательной программы по специальности 080802 Прикладная информатика (по отраслям)
- •Рабочая программа
- •Пояснительная записка
- •Тематический план учебной дисциплины
- •Содержание учебной дисциплины
- •Тема 1.4. Составление алгоритмов с помощью блок-схем
- •Тема 1.5. Методы и правила надежного программирования. Способы конструирования программ
- •Раздел IV. Процедуры и функции.
- •Тема 4.1. Подпрограммы
- •Тема 4.2. Параметры и аргументы, связь формальных и фактических параметров
- •Раздел V. Программирование рекурсивных алгоритмов
- •Тема 5.1. Рекурсивные процедуры и функции
- •Тема 5.2. Примеры рекурсивного программирования
- •Раздел VIII. Ввод и вывод информации: текстовые файлы
- •Тема 8.1. Файлы и их виды
- •Тема 8.2. Оперирование текстовыми файлами.
- •Раздел IX. Структурированный тип записи
- •Тема 9.1. Записи и их описание
- •Тема 9.2. Использование таблиц с разнотипными полями. Записи.
- •Раздел X. Модульное программирование
- •Тема 10.1. Методы работы с модулями. Стандартные модули языка Pascal.
- •Тема 10.2. Создание модульных программ
- •Критерии оценок
- •Литература
- •Теоретический курс Основные понятия языка Состав языка
- •Алфавит и лексемы
- •Константы
- •Имена, ключевые слова и знаки операций
- •Типы данных
- •Классификация типов
- •Стандартные типы данных Логические типы
- •Целые типы
- •Вещественные типы
- •Символьный тип
- •Порядковые типы
- •Приведение типов
- •Линейные программы
- •Переменные
- •Выражения
- •Структура программы
- •Оператор присваивания
- •Процедуры ввода-вывода
- •Ввод с клавиатуры
- •Вывод на экран
- •Операторы ветвления
- •Условный оператор if
- •Оператор варианта case
- •Операторы цикла
- •Цикл с предусловием while
- •Цикл с постусловием repeat
- •Цикл с параметром for
- •Рекомендации по использованию циклов
- •Процедуры передачи управления
- •Оператор перехода goto
- •Перечисляемый тип данных
- •Интервальный тип данных
- •Массивы
- •Двумерные массивы
- •Операции
- •Процедуры и функции для работы со строками
- •Множества
- •Операции над множествами
- •Текстовые файлы
- •Бестиповые файлы
- •Компонентные файлы
- •Прямой доступ
- •Совместимость типов
- •Совместимость по присваиванию
- •Подпрограммы
- •Процедуры
- •Функции
- •Глобальные и локальные переменные
- •Виды параметров подпрограмм
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Открытые массивы и строки
- •Параметры процедурного типа
- •Рекурсивные подпрограммы
- •Описание модулей
- •Использование модулей
- •Стандартные модули Паскаля
- •Модуль System
- •Модуль Crt
- •Модули Dos и WinDos
- •Модуль Graph
- •Модуль Strings
- •Задания для самостоятельной работы студентов
- •1. Знакомство с интегрированной средой программирования pascal
- •1. Общие положения
- •Начало работы
- •Интерфейс ide
- •Комбинации клавиш
- •2. Подготовка текста программы
- •5. Компиляция
- •5.1. Ошибки времени компиляции
- •6. Пробный запуск программы на выполнение
- •6.1. Ошибки времени выполнения программы
- •7. Запуск программы на исполнение
- •8. Завершение работы
- •9. Практическое задание
- •2. Организация работы программ линейной структуры
- •1. Управление режимами вывода данных на экран дисплея
- •1.1. Управление положением курсора на экране монитора
- •1.2. Стандартный модуль crt. Подключение модулей с помощью Uses. Процедура очистки экрана дисплея ClrScr. Функция ReadKey
- •1.3. Процедуры работы с цветом (TextColor,TextBackground)
- •2. Практическое задание – решение задач линейной структуры
- •3. Решение задач с условием
- •3. Составной оператор
- •Практическое задание – решение задач с условием
- •4. Решение задач на множественный выбор
- •5. Организация циклов с помощью оператора for
- •1.Особенности циклов
- •2. Оператор цикла с параметром (со счетчиком) for ... Do
- •3. Вложенные циклы
- •2.1. Структура вложенных циклов
- •6. Организация циклов с помощью оператора while
- •7. Организация циклов с помощью оператора repeat
- •8. Организация программ с использованием процедур
- •1. Общие положения
- •2. Описание процедуры, оператор процедуры
- •2.1. Формальные и фактические параметры
- •2.2. Параметры-значения и параметры-переменные
- •2.3. Область действия имен
- •2.4. Процедуры без параметров
- •3. Массив в процедуре
- •9. Организация программ с использованием функций
- •10. Организация программ с использованием рекурсий
- •1. Особенности рекурсии
- •11. Решение задач на обработку элементов одномерного массива
- •1. Стандартные операции с массивами
- •12. Решение задач на обработку элементов двумерного массива
- •1. Многомерные массивы
- •2. Ввод-вывод двумерного и многомерного массива
- •3. Стандартные (типовые) задачи на двумерных массивах
- •4. Практическое задание - решение задач с использованием массивов
- •13. Решение задач по обработке символьных данных
- •1. Таблица кодирования символов
- •Б азовая таблица кодировки ascii
- •2. Запись символов, специальные и управляющие символы
- •3. Операции отношения
- •4. Встроенные функции
- •14. Решение задач по обработке строковых данных
- •1. Внутреннее представление строки
- •2. Операции над строками
- •3. Строковые встроенные функции
- •4. Примеры использования процедур и функций
- •5. Практическое задание
- •Методические указания
- •15. Решение задач по обработке множественного типа
- •1. Описание множественного типа
- •2. Присваивание значений переменным множественного типа
- •3. Операции над множествами
- •3.6. Нахождение элемента во множестве
- •3.7. Приоритеты операций при работе с множествами
- •4. Практическое задание
- •16. Решение задач по обработке структурированного типа - запись
- •1. Описание записи
- •2. Обращение к элементу записи
- •3. Оператор присоединения
- •4. Практическое задание
- •Образцы контрольных работ
- •Контрольно-измерительные материалы
3. Массив в процедуре
Если в процедуру нужно передать в качестве параметра не просто одно значение, а массив, то фактическим параметром должно быть имя массива. При этом формальный параметр указывается после слова Var вместе с типом массива. Само же описание массива делается в разделе Туре основной программы.
Задача 4
Найти максимальные элементы массивов a, b и номера этих элементов. Подпрограмму поиска оформить в виде процедуры.
Program Lab8_4;
Uses Crt;
{Тип данных Vector будет определять тип формального параметра}
Type Vector = Array [l .. 200] of Real;
Var a, b: Vector;
i, k: Integer;
max: Real; {максимальный элемент}
nmax: Integer; {номер максимального элемента}
{Описание процедуры нахождения максимального элемента в массиве}
Procedure Maxl (x: Vector; L: Integer; Var rmax: Real; Var n: Integer);
Var j: Integer;
Begin {1}
rmах: = x [1];
n: = 1;
For j: = 2 To L Do
If x [j] > rmax Then
Begin {2}
rmax: = x [j];
n: =j;
End; {2}
End; {1}
{Исполнимая часть головной программы}
Begin {3}
ClrScr;
Write ('Введите размер массивов:');
ReadLn (k);
TextColor (Yellow);
Randomize;
{Заполнение массива а с помощью датчика случайных чисел}
For i: = 1 То k Do
Begin {4}
a[i]:=Random(10);
Write ('a[', i, '] = *, a[i]:4:2);
End; {4}
{Обращение к процедуре Maxl для поиска максимального элемента и его номера в массиве а}
Maxl (a, k, max, nmax);
TextColor (Red);
WriteLn ('max =', max: 4: 2, 'nmax ='. nmax: 4);
WriteLn (' ');
TextColor (Yellow);
{Заполнение массива b с помощью датчика случайных чисел}
For i:= l To k Do
Begin {5}
b[i]:= Random (100);
Write ('b [', i,'] =', b [i]: 4: 2);
End; {5}
TextColor (Red);
{Обращение к процедуре Maxl для поиска максимального элемента и его номера в массиве b}
Maxl (b, k, max, nmax);
WriteLn ('max = ', max: 4: 2, 'nmax = ', nmax: 4);
WriteLn ('Нажмите любую клавишу');
ReadKey;
End. {3}
Протокол работы программы:
Введите размер массивов: 4
а [1] = 0.00
а [2] = 7.00
а [3] = 1.00
а [4] = 6.00
max = 7.00 птах = 2
b [1] = 2.00
b [2] = 15.00
b [3] = 27.00
b [4] = 25.00
max = 27.00 птах = 3
Пояснения к программе.
Решение этой задачи мы начали с написания процедуры поиска максимального элемента и его номера в массиве, которой присвоили имя Maxl. У этой процедуры имеем 4 параметра:
параметры - значения: массив х и его размер L (тип Integer). Для указания типа массива необходимо ввести новый тип данных (назовем его Vector);
параметры-переменные: rmax (в ней возвращается максимальный элемент массива х) типа Real и n (номер максимального элемента в массиве) типа Integer.
Заголовок процедуры выглядит так:
Procedure Maxl (x: Vector; L: Integer; Var rmax: real; Var n: Integer):
9. Организация программ с использованием функций
Другой вид подпрограммы - функция - оформляется аналогично процедуре. Отличительные особенности функции: она имеет только один результат выполнения (но может иметь несколько входных параметров). Результат обозначается именем функции и передается в основную программу.
Функция описывается так:
Function <имя> (<список формальных параметров>); <тип результата>;
<Разделы описаний и объявлений функции>;
Begin
<Раздел команд функции, где должна быть
Такая команда: имя: = выражение>;
End;
Если функция изменяет значения формальных параметров-переменных или значения глобальных по отношению к данной функции переменных, то говорят, что функция имеет побочный эффект. Применение функций с побочным эффектом нарушает структурированность программы, поэтому их использование нежелательно.
Среди входящих в функцию операторов должен обязательно присутствовать хотя бы один оператор присваивания, в левой части которого стоит имя данной функции. Этот оператор и определяет значение, вырабатываемое функцией.
Допустимыми типами результата являются:
все разновидности вещественного типа;
строковый тип;
скалярный тип (то есть все разновидности целого типа, булев, символьный, перечислимый типы) ;
указатель.
Вызов функции осуществляется только из выражений с помощью указателя функции:
<имя> (<список фактических параметров>);
После выполнения функции выработанный ею результат используется в качестве значения указателя функции в том выражении, в которое входит этот указатель. При вызове функции передача фактических параметров производится так же, как и при вызове подпрограммы.
Задача 1
Требуется найти разность факториалов F = т! - к! Напомним, что факториал представляет собой произведение я чисел натурального ряда: п! = 1 * 2 * 3.. п.
Program Lab9_1;
Uses Crt;
Var m, k: Integer;
F: Integer;
{Описание функции вычисления факториала}
Funktion Fact (n: Integer): Integer;
Var p, i: Integer;
Begin
p:= l;
For i: = 1 to n Do
p: = p* i;
Fact: = p;
End;
{Исполнимая часть головной программы}
Begin
ClrScr;
Write ('Введи значения m, k:');
ReadLn (m, k);
F: = Fact (m)-Fact (k);
WriteLn ('F =', F: 5);
End.
Пояснения к программе.
Вычисление факториала мы оформили в виде функции с именем Fact: Funktion Fact (n: Integer): Integer;
Результат вычисления факториала обозначается ее именем. Тип функции - Integer. Формальным параметром является переменная целого типа n. Вызывается функция по своему имени Fact с указанием фактических параметров т и к: F: = Fact (m)- Fact (k);
Протокол работы программы.
Введи значения m, k: 5 4
F = 96