
- •Пояснительная записка
- •Программирование на алгоритмическом языке pascal
- •«Ознакомление с работой в интегрированной среде Borland Pascal»
- •Задание 1
- •Ход работы:
- •Загрузите систему Borland Pascal.
- •После входа в систему появляется рабочий экран (рис. 2).
- •Изучите пункты главного меню.
- •Задание 2
- •Методические указания к лабораторным занятиям для учащихся.
- •Лабораторная работа №1
- •Вопросы для самоподготовки:
- •Краткие теоретические сведения
- •Задание 1
- •Ход выполнения работы.
- •Задание 2
- •Лабораторная работа №2
- •Краткие теоретические сведения
- •Правила работы с условным оператором.
- •Вопросы для самоподготовки:
- •Задание 1
- •Задание 2.
- •Задание 3
- •Правила организации цикла с параметром.
- •Вопросы для самоподготовки:
- •Задание 1
- •Задание 2
- •Решение:
- •Задачи для самостоятельного решения.
- •Лабораторная работа №4. Тема: «Разработка, отладка и испытание простых циклических алгоритмов и программ с неизвестным числом повторений».
- •Краткие теоретические сведения
- •Вопросы для самоподготовки:
- •Задание 1
- •Решение:
- •Задание 2
- •Домашнее задание
- •Вопросы для самоподготовки:
- •Определим необходимые формулы:
- •Составим графическую схему алгоритма.
- •Составим таблицу соответствия переменных.
- •В соответствии с пунктами 2 и 3 составьте программу.
- •Задание 2
- •Задание 3
- •Решение:
- •Составим графическую схему алгоритма:
- •Составим таблицу соответствия переменных
- •Составим программу на языке Pascal.
- •Задание 4
- •Лабораторная работа №6. Тема: «Разработка, отладка и испытание циклических алгоритмов и программ с известным числом повторений с внутренними ветвлениями».
- •Задание
- •Задание 2
- •Решение:
- •Задание 3
- •Решение:
- •Задание 4 (задачи повышенной сложности)
- •Решение:
- •Задания для самостоятельного решения. Напишите программы с использованием процедур.
- •Дана последовательность слов. Напечатайте все слова, предварительно преобразовав каждое из них по следующему правилу:
- •Задание 5
- •Решение:
- •Задание 8 (повышенной сложности)
- •Решение:
- •Задание для самостоятельного решения:
- •(Повышенной сложности)
- •Лабораторная работа №8. Тема: «Разработка алгоритмов и программ методом пошаговой детализации. Обработка двумерных массивов. Организация ввода-вывода с помощью текстовых файлов».
- •Вопросы для самоподготовки:
- •Краткие теоретические сведения
- •Задание 1
- •Задание 2
- •Решение:
- •Составим графическую схему алгоритма.
- •Составляем таблицу соответствия переменных.
- •Составляем программу на языке программирования Pascal.
- •Задание 3
- •Задание 4
- •Лабораторная работа №9. Тема: «Разработка алгоритмов и программ решения различных задач с использованием библиотечных модулей пользователя».
- •Краткие теоретические сведения
- •Задание
- •Задача для самостоятельного решения.
- •Лабораторная работа №10. Тема: «Разработка алгоритмов и программ обработки строк. Использование множеств для решения задач».
- •Вопросы для самоподготовки:
- •Задание 6
- •Решение:
- •Задачи для самостоятельного решения:
- •Лабораторная работа №11. Тема: «Разработка алгоритмов и программ с использованием методов внутренней сортировки».
- •Задание
- •Решение:
- •Для каждой команды в одной строке введите через пробел
- •Задание для самостоятельного решения:
- •Лабораторная работа №12. Тема: «Разработка рекурсивных алгоритмов и программ».
- •Краткие теоретические сведения
- •Задание.
- •Лабораторная работа №13. Тема: «Разработка алгоритмов и программ с использованием процедур и функций модулей crt и dos».
- •Краткие теоретические сведения
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание.
- •Краткие теоретические сведения
- •Решение:
- •Задание 2
- •Андреев
- •Задание для самостоятельного решения.
- •Лабораторная работа №16. Тема: «Разработка алгоритмов и программ с использованием динамических структур данных».
- •Краткие теоретические сведения
- •Задание
- •Задание для самостоятельного решения
- •Задача о «Ханойских башнях».
- •Решение:
- •Задания для самостоятельного решения.
- •Задание для самостоятельного решения:
- •Задания для самостоятельного решения:
- •Лабораторная работа №22. Тема: «Разработка программ обработки созданных файлов».
- •Постановка задачи
- •Содержание отчета
- •Варианты задания:
- •Лабораторная работа №23. Тема: «Разработка программ с использованием прерываний bios и dos, процедурных типов».
- •Краткие теоретические сведения
- •Константы
- •Задание
- •Задание для самостоятельного решения.
- •Лабораторная работа №25. Тема: «Разработка простейших программ с использованием компонентов страницы Standart».
- •Вопросы для самоподготовки:
- •Задание 1
- •Лабораторная работа №26. Тема: «Разработка программ обработки массивов с использованием компонентов страницы Standart».
- •Задание
- •Procedure tForm1.Button2Click (Sender: tObject); {обработка массива}
- •Лабораторная работа №32. Тема: «Разработка программ создания и использования мультимедийных возможностей».
- •Задание
- •Лабораторная работа №34. Тема: «Создание и использование справочной системы».
- •Краткие теоретические сведения
- •Задание
- •Ход работы:
- •Лабораторная работа №35. Тема: «Создание установочного диска».
- •Задание
Лабораторная работа №12. Тема: «Разработка рекурсивных алгоритмов и программ».
Цель работы: закрепить полученные навыки использования рекурсивных вызовов подпрограмм.
Краткие теоретические сведения
Объект называется рекурсивным, если он содержит сам себя или определен с помощью самого себя.
Рекурсивным может быть и определение
функции. Так, например, факториал:
Одним из способов определения такой
функции является рекурсивный способ:
Пример 1. Подсчитать факториал
FUNCTION FACT (N: INTEGER): INTEGER;
BEGIN
IF N=0
THEN FACT:=1
ELSE FACT:=N*FACT (N-1)
END;
Пример 2. Вывести в обратном порядке цифры целого положительного числа N.
PROCEDURE REVERSE (N: INTEGER);
BEGIN
WRITE (N MOD 10);
IF (N DIV 10)>0
THEN REVERSE (N DIV 10)
END;
Задание.
Необходимо составить программу с использованием рекурсии в соответствии со своим вариантом.
Замечание: под инвертированием понимают перестановку первого и последнего элементов данной части массива, второго и предпоследнего и т.д.
Вариант |
Задание |
1 |
Поменять местами первый элемент массива с самым левым минимальным элементом, а затем поделить все элементы массива на минимальное значение. |
2 |
Поменять местами последний элемент массива с самым правым максимальным элементом, а затем умножить все элементы массива на заданное число. |
3 |
Инвертировать часть массива с первого элемента до самого правого минимального элемента. |
4 |
Инвертировать часть массива с левого максимального элемента до последнего. |
5 |
Поменять местами самый правый минимальный элемент со вторым элементом массива, а затем поделить элементы первой половины массива на найденное минимальное число.
|
6 |
Поменять местами самый левый максимальный элемент с элементом, номер которого задан, а затем помножить все элементы массива на найденное максимальное значение. |
7 |
Инвертировать часть массива с первого элемента до элемента с заданным номером, после чего определить номер и значение самого последнего минимального элемента. |
8 |
Инвертировать часть массива с элемента, номер которого задан, до последнего элемента, после чего определить номер значение самого последнего максимального элемента. |
9 |
Поменять местами самый левый минимальный элемент со вторым элементом массива, а затем поделить на найденное минимальное значение все элементы второй половины массива. |
10 |
Поменять местами самый правый максимальный элемент с предпоследним элементом массива, а затем умножить на найденное максимальное значение элементы, стоящие с первого по найденный номер максимального. |
11 |
Инвертировать часть массива с последнего минимального до последнего элемента массива. |
12 |
Инвертировать часть массива с элемента, номер которого задан, до последнего максимального элемента массива. |
13 |
Поменять местами последний элемент массива с первым минимальным элементом, а затем поделить на заданное число все элементы, начиная с номера, где был найденный минимальный элемент, до последнего элемента массива. |
14 |
Поменять местами первый максимальный элемент с элементом, номер которого задан, после чего умножить все элементы массива на найденное максимальное значение. |
15 |
Из каждого элемента, начиная с заданного номера и до последнего, вычесть значение максимального элемента, затем поменять местами первый элемент массива с элементом под заданным номером. |
16 |
Определить номер и значение самого последнего минимального элемента массива. Инвертировать первую половину массива. |
17 |
Поменять местами элемент с заданным номером и самый левый минимальный элемент, после чего все элементы, имеющие номера с первого по заданный, поделить на найденное минимальное значение. |
18 |
К каждому элементу с первого по самый левый максимальный добавить заданное число, после чего поменять местами второй элемент с найденным максимальным. |
19 |
Поменять местами предпоследний элемент массива с элементом, номер которого задан. Определить в полученном массиве номер и значение последнего минимального элемента и умножить на него все элементы массива. |
20 |
Поменять местами третий элемент с последним максимальным, а затем вычесть найденное максимальное значение из всех элементов первой половины массива. |
21 |
Все элементы массива поделить на заданное число, а затем в полученном массиве поменять местами самый левый минимальный элемент с последним элементом. |
22 |
Определить номер и значение первого максимального элемента, помножить все элементы, после найденного на это максимальное значение, в заключение поменять местами первый и последний элементы массива. |
23 |
Инвертировать часть массива, расположенную между элементами с заданными номерами, затем определить номер и значение последнего минимального элемента. |
24 |
Определить самый правый максимальный элемент во второй половине массива, вычесть полученное максимальное значение из всех элементом первой половины массива, после чего поменять местами первый элемент массива с найденным максимальным элементом. |
25 |
Определить самый левый минимальный элемент среди части массива с первого элемента по элемент с заданным номером, поменять местами найденный элемент с последним элементом массива, затем поделить все элементы массива на найденное минимальное. |
26 |
Определить самый левый максимальный элемент среди элементов, стоящих после элемента с заданным номером, умножить все элементы массива на найденное максимальное значение, а затем поменять первый элемент и предпоследний. |
27 |
Определить номер и значение самого правого минимального и инвертировать вторую половину массива. |
28 |
Поменять местами самый последний максимальный элемент в первой половине массива с самым первым минимальным элементом во второй половине массива. |
29 |
Все элементы, стоящие, начиная с заданного номера до первого минимального элемента, увеличить на значение последнего элемента массива, затем поменять местами второй и предпоследний элементы массива. |
30 |
Инвертировать часть массива, расположенную между самым левым минимальным в первой половине массива и самым правым максимальным во второй половине массива. |