- •Пояснительная записка
- •Программирование на алгоритмическом языке 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. Тема: «Создание установочного диска».
- •Задание
Решение:
1 шаг 3 шаг
Х У Z
2 шаг
Перенесем верхушку пирамиды, состоящую из (n-1)-го диска, с первого стержня на второй, затем перенесем один диск с первого стержня на третий, а потом перенесем верхушку пирамиды, состоящую из (n-1)-го диска, со второго стержня на третий.
Далее повторим алгоритм переноса, но уже для (n-1)-го диска, затем для (n-2)-го диска и так далее, пока не опустимся до одного диска.
Распишем алгоритм по шагам.
Положим:
Х – исходное состояние;
У – промежуточное состояние;
Z – конечное состояние. (см. рис. выше)
1 шаг – перенести (n-1) диск со стержня Х на стержень У, используя стержень Z как вспомогательный;
2 шаг – перенести один нижний диск со стержня Х на стержень Z;
3 шаг – перенести (n-1) диск со стержня У на стержень Z, используя свободный стержень Х.
Таким образом имеем рекурсивный вызов процедуры:
Procedure Hanoi (n: word; x, y, z: char);
begin
if n=1
then writeln (‘Переложить’, x, ‘на’, z)
else
begin
hanoi (n-1, x, z, y); {1 шаг}
writeln (‘Переложить’, x, ‘на’, z); {2 шаг}
hanoi (n-1, x, z, y); {3 шаг}
end
end; {hanoi}
Задания для самостоятельного решения.
Напишите рекурсивную процедуру для ввода с клавиатуры последовательности чисел (окончание ввода – 0) и вывода ее на экран в обратном порядке.
Используя рекурсию написать программу перевода натурального числа из десятичной системы счисления в двоичную.
Напишите программу с использованием рекурсии для поиска наименьшего элемента массива.
Лабораторная работа №20.
Тема: «Разработка программ создания, корректировки и просмотра типизированных файлов».
Цель работы: 1. Изучение файловых типов в языке Pascal
2. Получение навыков при обработке (корректировке. просмотре) типизированных файлов.
ЗАДАНИЕ 1
Прочитать из файла целые числа и вывести их на экран.
Решение:
Напишем фрагмент программы:
. . .
Assign (F1, ‘A: int. dat);
{связываем файловую переменную с файлом на диске}
Reset (F1); {открываем файл для чтения}
while not EOF (F1) do {пока не достигнут конец файла}
begin
read (F1, n); {считываем очередное число}
write (n, ‘ ‘); {выводим его на экран}
end;
close (F1); {закрываем файл}
. . . . . . .
ЗАДАНИЕ №2.
В файле dan.dat записаны целые числа(см. Задание №1). Вычислить сумму элементов файла и результат вместе с исходными данными записать в файл dan1.dat.
Вопросы для обсуждения.
Сколько переменных нужно для решения данной задачи? Каких?
Как определить конец файла?
Как считывать элементы и файла dan1.dat?
Как записать данные в файл dan1.dat?
Решение:
Program summa;
Var
F1,F2: file of integer:
{файловые переменные}
S, N: integer;
Begin
{С файловой переменной F1 связываем файл на диске}
assign (F1, ‘ dan.dat);
reset (F1); {открываем файл для чтения}
{С файловой переменной F2 связываем файл на диске}
assign (F2, ‘ dan1.dat);
write (F2);
{Открываем файл F2 для записи}
S:=0;
While not eof (F1) do
{проверка на конец файла F1}
begin
read (F1,N); {чтение элемента из файла F1}
write(F2,N); {запись элемента в файл F2}
S:=S+N; {накопление суммы}
end;
{Запись суммы элементов в конец файла F2}
write(F2, S);
write(‘Результат находится в файле dan1. dat’);
close(F1); {закрываем файл F1}
close(F2); {закрываем файл F2}
readln
end.
