- •Введение
- •1. Общие положения
- •1.1. Понятие алгоритма. Данные в задачах и алгоритмах
- •1.2. Понятие о технологии разработки программ. Принципы и этапы разработки программ
- •1.3. Состав документации по отдельным этапам
- •1. Задача
- •9. Структурные тесты
- •1.4. Нисходящая разработка и нисходящая отладка
- •2. Процесс разработки программы на примере решения типовой задачи
- •2.1. Разработка алгоритма и программы уровня 0 с заглушками
- •2. Входные данные
- •3. Выходные данные
- •5. Функциональные тесты
- •6. Метод
- •7. Алгоритм
- •8. Программа на паскале. Диалоговый вариант
- •9. Структурные тесты
- •2.2. Отладка программы с заглушкой
- •2.3. Общая схема перехода от метода к алгоритму решения
- •2.4. Разработка алгоритма и программы для примера
- •2. Входные данные
- •5. Функциональные тесты
- •6. Метод
- •7. Алгоритм
- •8. Программа на паскале
- •9. Структурные тесты
- •2.5. Отладка полной программы
- •2.6. Список заданий
- •3. Организация хранения данных с позиций эффективности отладки и использования программы
- •3.1. Как лучше хранить, вводить и выводить данные
- •3.2. Использование текстовых файлов для хранения входных и выходных данных
- •3.3. Использование параметров в Паскаль-программах
- •3.4. Задание
- •4. Некоторые методы решения типовых задач
- •4.1. Поиск экстремальных значений (максимума, минимума) в одномерном массиве
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •4.2. Поиск элемента, удовлетворяющего заданному условию
- •2. Входные данные
- •6. Метод
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •4.3. Задача со сложной логикой
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •4.4. Упорядочение одномерного массива
- •3. Выходные данные
- •6_А. Метод включения
- •6_Б. Метод пузырька
- •4.5. Список заданий
- •5. Работа с двумерными массивами (матрицами)
- •5.1. Схема обработки матриц
- •5.2. Ввод и вывод матрицы
- •5.3. Пример решения задачи
- •3. Выходные данные
- •6. Метод
- •5.4. Список заданий
- •6. Оформление алгоритмов в виде процедур
- •6.1. Основные положения
- •6.2. Кодирование процедур на языке Паскаль
- •6.3. Специфика оформления процедур ввода – вывода
- •6.4. Рекомендации по оформлению процедур
- •6.5. Примеры разработки процедур
- •3. Выходные данные
- •6. Метод
- •3 Истина, если все элементы строки больше 1, ложь, в противном случае . Выходные данные
- •7. Описание процедуры
- •8. Кодирование на паскале
- •9. Структурные тесты
- •2. Входные данные
- •3. Выходные данные
- •4. Аномалии не рассматриваем
- •6. Метод
- •7. Алгоритм
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •8. Кодирование на паскале
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •8. Кодирование на паскале
- •2. Входные данные
- •3. Выходные данные
- •6. Метод
- •7. Описание процедуры
- •8. Кодирование на Паскале
- •6.6. Список заданий
- •7. Внешние модули (unit) в турбо-Паскале
- •7.1. Суть и описание модуля
- •7.2. Связь модуля с другими модулями и главной программой. Область действия описаний объектов
- •7.3. Специфика оформления процедур ввода – вывода в модулях
- •7.4. Примеры оформления процедур во внешних модулях
- •7.5. Задания
- •7.6. Обработка многомодульных программ в среде турбо-Паскаль
- •8. Контрольные вопросы к главе 1
- •К главе 2
- •К главе 3
- •К главе 6
- •К главе 7
- •Заключение
- •Литература
- •Приложение 1. Базовые структуры алгоритмов
- •Приложение 2. Простые типы в Паскале
- •Приложение 3. Структура типов данных в языке Паскаль
- •Содержание
2.6. Список заданий
Следуя приведенным рекомендациям и образцу и пользуясь таблицей базовых структур, предлагается решить приведенные ниже задачи типа «Точки в круге» в два этапа:
согласно §§ 2.1 и 2.2 разработать и отладить программу с заглушками;
согласно §§ 2.3 – 2.5 раскрыть абстракцию обработки данных и завершить разработку и отладку программы.
Найти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок.
Подсчитать по отдельности суммы С1 иС2 и количестваМ1 иМ2 отрицательных и положительных элементов заданного одномерного массива.
Выделяя из заданных элементов X1,X2, … ,Xnположительные, для которых к тому же справедливо равенствоsinXi≤0, найти число и произведение таких элементов.
Найти сумму и общее количество тех элементов заданного массива X1,X2, … ,Xn, абсолютная величина которых отличается отРне более, чем наТ(РиТ– заданные величины).
Для заданного массива X1,X2, … ,Xnнайти среднее арифметическоеСХэлементов, имеющих четные номера и притом положительных, а для заданного массиваY1,Y2, … ,Ynнайти среднее арифметическоеСYэлементов, имеющих нечетные номера и притом отрицательных.
При заданных элементах X1,X2, … ,Xnнайти по отдельности суммыС1 иС2 и количестваМ1 иМ2 элементов, значения которых соответственно большеРи меньше –Р.
При заданных X1,X2, … ,XnиY1,Y2, … ,Yn, проверяя на равенство элементы пар (X1,Y1), (X2,Y2), … ,(Xn,Yn), подсчитать число случаев равенства элементов пар; одновременно найти среднее арифметическое элементовX1,X2, … ,Xn.
Вычислить куб суммы и число тех элементов заданного массива X1,X2, … ,Xn, значения которых меньшеRили находятся в пределах отТдоР.
При заданной величине Аи заданных элементахX1,X2, … ,XnиY1,Y2, … ,Ynопределить число произведений видаXiYi, удовлетворяющих условиюXiYi≤А, и сумму таких произведений.
Найти среднее арифметическое тех элементов одномерного массива X, значения которых не превышаютX1, включая и сам элементX1. Найти также среднее арифметическое всех элементов данного массива.
Найти , гдеСХиСY– средние арифметические положительных элементов заданных массивовX1,X2, … ,XnиY1,Y2, … ,Ynсоответственно.
Найти сумму и число тех элементов заданного массива X1,X2, … ,Xn, каждый из которых, во-первых, больше элемента с тем же номером из другого заданного массиваY1,Y2, … ,Yn, а, во-вторых, положителен.
При заданных абсциссах X1,X2, … ,Xnи ординатахY1,Y2, … ,Ynnточек плоскостиX0Yопределить, у какого числа этих точек положительна как абсцисса, так и ордината, а также найти среднюю ординату всех прочих точек из числа заданных.
При заданных АиВподсчитать, сколько кругов с заданными радиусамиR1,R2, … ,Rnимеют большую площадь, чем прямоугольник со сторонамиА,В.
При заданных абсциссах X1,X2, … ,Xnи ординатахY1,Y2, … ,Ynnточек плоскостиX0Yподсчитать количество точек, ордината которых больше абсциссы, и сумму расстояний от начала координат для всех заданных точек.
При заданных А1,А2, … ,Аn,В1,В2, … ,ВnиС1,С2, … ,Сnдля каждой изnтроек вида (Аi,Вi,Сi) проверить, может ли быть построен треугольник со сторонамиАi,Вi,Сi; при этом подсчитать число треугольников и сумму их периметров.
При заданных абсциссах X1,X2, … ,Xnи ординатахY1,Y2, … ,Ynnточек плоскостиX0Yподсчитать, сколько из них находится в пределах круга заданного радиусаRс центром в начале координат, а также среднее арифметическое расстояния от начала координат для всех заданных точек.
При заданных числах ХТ, YТ, абсциссахX1,X2, … ,Xnи ординатахY1,Y2, … ,Ynnточек плоскостиX0Yопределить, в каком числе случаев расстояние между одной из таких точек и точкой с координатамиХТ,YТпревышает заданную величинуВ, и найти средние координаты для заданной совокупности точек, исключая точку (ХТ,YТ).
Найти среднее арифметическое не равных нулю элементов заданного массива X1,X2, … ,Xnи подсчитать число элементов с неотрицательными значениями (включая и равные нулю).
Изменить значения всех положительных элементов заданного массива X1,X2, … ,Xnделением каждого из них на его номер в массиве и подсчитать число отрицательных элементов данного массива.
При заданных X1,X2, … ,XnиY1,Y2, … ,Ynзаменить значение каждого неположительного элемента массиваX1,X2, … ,Xnабсолютной величиной соответствующего (по номеру) элемента массиваY1,Y2, … ,Ynи подсчитать количество замен.
При заданных элементах X1,X2, … ,XnиY1,Y2, … ,Ynполучить массивТ1,Т2, … ,Тn, элементы которого получают значения по правилу:Тi =max(Хi,Yi), и подсчитать, сколько элементовТiполучило значенияХi.
При заданных элементах X1,X2, … ,Xnподсчитать число неотрицательныхXiи сформировать массив элементовY1,Y2, … ,Ynпо правилу:
В заданном массиве X1,X2, … ,Xnзаменить значения отрицательных элементов их абсолютными величинами; при этом подсчитать число элементов, равных нулю.
Подсчитать, сколько среди заданных элементов X1,X2, … ,Xnотрицательных, и изменить значение каждого положительного элемента путем его деления на значение последующего члена (элементXnполагать заведомо отрицательным).
Сформировать массив элементов Y1,Y2, … ,Ynна основе заданного массиваX1,X2, … ,Xn, используя правило:
При этом подсчитать число элементов Xi, равных нулю.
В заданном массиве X1,X2, … ,Xnизменить значения всех положительных элементов, умножив их значения наК, а отрицательные элементы уменьшить вдвое; при этом подсчитать количество элементов, абсолютная величина которых не превышаетL.
При заданных X1,X2, … ,XnиY1,Y2, … ,Ynзаменить в массивеХзначения тех элементовXi, для которых выполняется условиеXi-Yi≤Е, значениями элементовYi, и подсчитать число произведенных замен.
При заданныхX1,X2, … ,XnиY1,Y2, … ,Ynзаменить значение каждого элемента массиваYновым значением, определяемым по правилу:Yi= и подсчитать число случаев равенстваXiиYi.
При заданных X1,X2, … ,Xn,Y1,Y2, … ,Ynи Z1,Z2, … ,Znполучить новые значения этих элементов, последовательно рассматривая тройки (XiYi, Zi):Xiследует задать наименьшее из этих значений, Zi– наибольшее, аYi– оставшееся значение данной тройки.