
- •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. Практическое задание
- •Образцы контрольных работ
- •Контрольно-измерительные материалы
1. Стандартные операции с массивами
Массивы предусмотрены в подавляющем большинстве языков программирования и используются в широком круге задач. При этом все-таки имеются некоторые стандартные операции с массивами, которые часто применяются вне зависимости от функциональной направленности решаемой задачи. Это операции поиска в массиве или его части минимального и (или) максимального значения, а также упорядочение массива или его части - выстраивание элементов некоторым образом, обычно просто по возрастанию или убыванию.
Имеется большое разнообразие задач на одномерные массивы. Как и все задачи вообще, условно их можно разделить на три вида:
задачи, решаемые в «одно соображение»;
стандартные задачи;
задачи, решения которых требуют знания вспомогательных алгоритмов, специальных методов и приемов.
Очевидно, что без умения решать задачи первых двух видов невозможно решать нестандартные задачи. Рассмотрим несколько примеров задач первого вида.
1. В массиве а каждый элемент равен 0 или 1. Заменить все нули единицами и наоборот.
Решение: достаточно одного оператора присваивания a[i] : = 1 - a[i] в теле цикла.
2. В массиве каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались все 0, затем все 1 и, наконец, все 2. Дополнительного массива не заводить.
Решение: можно не переставлять элементы массива, а подсчитать количества 0, 1,2 и заполнить массив заново требуемым образом.
3. Даны два n-элементных массива х и у одного типа. Обменять местами все xi| и yi (i = 1,..., n), не используя промежуточные величины.
Решение: обмен можно выполнить в цикле для всех i от 1 до n с помощью серии из трех операторов присваивания: x[i] : = x[i] + y[i]; y[i] : = x[i] - y[i]; x[i] : = x[i]-y[i].
Перечислим стандартные (типовые) задачи на одномерные массивы:
нахождение наибольшего (наименьшего) элемента;
суммирование элементов (безусловное и условное);
подсчет (замена) элементов, удовлетворяющих заданному условию;
поиск заданного элемента:
а) в неупорядоченном массиве;
б) в упорядоченном массиве;
определение заданного расположения элементов;
удаление элемента, включение элемента в заданную позицию;
переразмещение (инвертирование, циклический сдвиг) элементов;
случайная выборка элементов (с повторениями и без повторений);
слияние двух упорядоченных массивов в упорядоченный массив;
сортировка массива (простые методы).
Задача 4
В некоторых видах спортивных состязаний выступление каждого спортсмена оценивается независимо несколькими судьями. Затем из всей совокупности оценок удаляются наиболее высокая и низкая, а для оставшихся оценок вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Если наиболее высокую оценку выставило несколько судей, то удаляется только одна такая оценка. Аналогично поступают с наиболее низкими оценками.
Дано натуральное число п, положительные действительные числа ai,..., а„ (п > 3). Считая, что числа Э|,..., а„ - это оценки, выставленные судьями одному из участников соревнований, определить оценку, которая пойдет в зачет этому спортсмену.
Program LAB11_4;
Const n= 10;
А : Array [l..n] of Real = (5.4,5.6,5.3, 5.8,5.4, 5.5, 5.5,5.6,5.0, 5.7);
Var i: 1. .n;
min, max, sum: Real;
BEGIN {1}
min: = a[l];
max : = a[l];
sum : = a[l];
for i: = 2 to n do
begin {2}
sum : = sum + a[i];
if a[i] > max Then max : = a[i];
if a[i] < min Then min : = a[i];
end; {2}
WriteLn('Оценка в зачет:', (sum - max - min)/(n - 2): 2 : 2);
ReadLn;
END. {1}
Пояснения к задаче 4
Числа-оценки а1 ,..., аn будем считать элементами массива а. Опишем данные в блоке Const как простую (n) и сложную (массив а) константы. После этого они доступны и хранятся внутри программы. Одномерные массивы-константы задаются перечислением их элементов в круглых скобках, что равносильно заданию значения присваиванием: а[1]: = 5.4,..., а[10]: = 5.7.
Пусть max - одна из наивысших оценок, min - одна из самых низких оценок, a sum - сумма всех n (n > 3) оценок, выставленных судьями. Тогда искомую оценку найдем по формуле (sum - max - min)/(n - 2).