- •Часть 1.
- •Оглавление
- •Введение
- •1.Стандартные типы данных
- •1.1.Структура программы
- •1.2.Описание стандартных типов данных
- •Целый тип
- •Вещественный тип
- •Символьный тип
- •Булевский тип
- •Описание используемых стандартных функций.
- •Программы № 15.А
- •Программы № 15.Б
- •Варианты заданий
- •2. Операторы языка.
- •2.1. Составной и пустой операторы.
- •2.2.Условный оператор.
- •2.3.Операторы повторений. Счетный оператор цикла (вариант 1):
- •Счетный оператор цикла (вариант 2):
- •Оператор цикла с предусловием:
- •Оператор цикла с постусловием:
- •2.4.Оператор выбора
- •2.5.Практические задания.
- •Распечатка исходных данных и результатов выполнения программы.
- •Варианты заданий
- •Лабораторная работа № 4. Организация циклов в программе.
- •Цель задания:
- •Образец выполнения задания.
- •3.Численные методы.
- •3.1.Метод итераций
- •3.2.Метод Ньютона
- •3.3. Метод половинного деления.
- •Теорема математического анализа метода половинного деления.
- •Лабораторная работа № 5
- •Описание и блок-схема метода решения: Описание метода итераций:
- •Текст программы.
- •Распечатка результатов работы программы в следующем виде:
- •Лабораторная работа № 5, вариант № 3. Решение нелинейных уравнений методом Ньютона. Постановка задачи для конкретного варианта и исходные данные:
- •Описание и блок-схема метода решения: Описание метода Ньютона:
- •Блок-схема метода Ньютона:
- •Текст программы.
- •Распечатка результатов работы программы в следующем виде:
- •Лабораторная работа № 5, вариант № 3. Решение нелинейных уравнений методом половинного деления. Постановка задачи для конкретного варианта и исходные данные:
- •Описание и блок-схема метода решения: Описание метода половинного деления:
- •Блок-схема метода половинного деления:
- •Текст программы.
- •Распечатка результатов работы программы в следующем виде:
- •Варианты заданий.
- •Случайные числа.
- •Метод Монте-Карло (метод статистических испытаний)
- •Результаты выполнения программы:
- •5. Массивы.
- •5.1. Процедуры и функции.
- •5.2. Одномерные массивы.
- •5.2.1. Описание массивов.
- •5.2.2. Классы задач по обработке массивов.
- •5.2.2.1. Однотипная обработка всех или указанных элементов массивов.
- •5.2.2.2. Задачи, в результате решения которых изменяется структура массива.
- •5.2.2.3. Обработка нескольких массивов одновременно.
- •5.2.2.4. Поисковые задачи для массивов.
- •5.2.2.5. Сортировка массивов.
- •5.2.2.5.1.Сортировка вставкой
- •Результат работы :
- •5.2.2.5.2. Сортировка выбором
- •Результат работы :
- •5.2.2.5.3. Сортировка обменом («пузырьковая сортировка»)
- •Результат работы:
- •5.2.2.5.4. Сортировка фон Неймана (слиянием)
- •Результаты работы:
- •5.2.2.5.5. Шейкер-сортировка
- •Результаты выполнения программы:
- •5.3. Двумерные массивы.
- •5.3.1. Описание двумерных массивов.
- •5.3.2. Сортировка двумерных массивов
- •Результаты работы:
- •Результаты работы:
- •Результаты работы:
- •Результаты работы:
- •Результаты работы:
- •Варианты заданий.
- •6. Обработка строк.
- •Var st1,st2:string[10];
- •6.1. Функции обработки строк.
- •6.2. Процедуры обработки строк.
- •Лабораторная работа № 7.
- •Результаты выполнения программы:
- •Варианты заданий.
- •7. Комбинированные типы. Оператор присоединения
- •7.1. Записи
- •7.2. Оператор присоединения
- •Лабораторная работа № 8. Работа с комбинированными типами данных. Цель задания:
- •Постановка задачи:
- •Содержание отчета:
- •Исходные данные:
- •Текст программы:
- •Результаты выполнения программы:
- •Варианты заданий.
- •8. Множественные типы данных.
- •8.1. Множества.
- •Лабораторная работа № 9.
- •Результаты работы:
- •Методические указания:
- •Варианты заданий.
- •Лабораторная работа № 10. Операции над множествами. Цель задания:
- •Постановка задачи:
- •Содержание отчета:
- •Варианты задания:
- •Текст программы:
- •Результаты программы:
- •Варианты заданий.
- •Часть 2.
- •Оглавление
- •9. Файловые типы данных
- •9.1. Инициализация файла
- •9.2. Файлы и работа с ними
- •Лабораторная работа №11. Работа с внешними файлами
- •Образец выполнения задания. Лабораторная работа №11, вариант № 5. Работа с внешними файлами
- •Анкетные данные на абитуриентов в конце методического пособия.
- •Варианты заданий.
- •9.3. Сортировка файлов.
- •9.3.1. Слияние упорядоченных последовательностей.
- •9.3.2. Сортировка сбалансированным слиянием
- •Результат работы:
- •9.3.3. Сортировка простым слиянием
- •Результат работы:
- •9.3.4. Сортировка естественным слиянием.
- •Результат работы:
- •Результат работы:
- •9.3.5. Сортировка многофазным слиянием.
- •Результат работы:
- •Лабораторная работа №12. Сортировка файлов.
- •Образец выполнения задания.
- •Лабораторная работа №12.
- •Сортировка файлов.
- •Постановка задачи:
- •Анкетные данные на абитуриентов в конце методического пособия. Текст программы:
- •Результат выполнения программы:
- •Варианты заданий.
- •10. Динамическая память.
- •10.1. Указатели.
- •10.2. Списки.
- •Лабораторная работа № 13.
- •Результат работы программы:
- •Варианты задания.
- •Лабораторная работа № 14. Работа со списками. Цель работы:
- •Постановка задачи:
- •Содержание отчета:
- •Вариант задания:
- •Текст программы:
- •Результат работы программы:
- •Результат работы программы:
- •Результат работы программы:
- •Варианты задания.
- •Лабораторная работа № 15.
- •Результат работы программы:
- •Варианты заданий.
- •10.3. Деревья.
- •10.4. Стеки, очереди.
- •Образец выполнения работы.
- •Результат работы программы:
- •Часть II
- •Текст программы t854b:
- •Результат работы программы:
- •Лабораторная работа № 16. Работа со стеками и очередями. Варианты заданий.
- •11. Организация меню с использованием средств среды Turbo Pascal
- •Лабораторная работа №17. Составления меню.
- •Образец выполнения работы.
- •Распечатка результатов работы программы после выполнения пунктов меню 4,5,6 и 8:
- •Варианты заданий.
- •Анкетные данные абитуриентов:
Лабораторная работа № 13.
Исключение элементов списка.
Цель задания:
1. Ознакомиться с возможностью выполнения операции исключения элементов из списка.
2. Закрепление навыков использования переменных ссылочных типов данных.
Постановка задачи:
Составить список учебной группы, содержащей 20 учащихся.
Указать для каждого учащегося оценки, полученные на четырех экзаменах.
Разработать программу, которая вводит с экрана данные о каждом учащемся и заносит эти данные в однонаправленный список.
Обработать список согласно конкретному варианту.
Содержание отчета:
Постановка задачи.
Текст программы и результаты ее выполнения.
Образец выполнения работы.
Лабораторная работа № 13.
Исключение элементов списка.
Цель задания:
1. Ознакомиться с возможностью выполнения операции исключения элементов из списка.
2. Закрепление навыков использования переменных ссылочных типов данных.
Постановка задачи:
Составить список учебной группы, содержащей 20 учащихся.
Указать для каждого учащегося оценки, полученные на четырех экзаменах. Разработать программу, которая вводит с экрана данные о каждом учащемся и заносит эти данные в однонаправленный список.
Обработать список согласно конкретному варианту.
Содержание отчета:
1. Постановка задачи.
2. Текст программы и результаты ее выполнения.
Вариант задания:
Одна оценка 4, а остальные 3.
Текст программы:
{Исключение элементов из списка}
Program ExludingelementsFromList;
Uses CRT;
Type
PStudents= ^TStudents;
TStudents= Record
Name: String[20];
Marks: Array [1..4] of ShortInt;
Next:PStudents;
End;
Var
PS:PStudents; {указатель на последний элемент списка в статической памяти}
{ Процедура заполнения списка }
Procedure Init;
Var
i,y:Integer;
pro:PStudents;
Label
Exits;
Begin
PS^.Next:=nil; {последний элемент списка}
y:=1;
While true Do Begin
New(pro); {выделяем память под переменную с указателем pro}
{Присваиваем значение переменной}
WriteLn('Введите Ф.И.О. ',y,'-го студента, "Enter" - завершение программы');
ReadLn(pro^.Name);
If pro^.Name='' Then GoTo Exits;
WriteLn('Введите оценки студента (всего 4)');
For i:=1 To 4 Do ReadLn(pro^.Marks[i]);
pro^.Next:=PS; {записываем в поле Next указатель на предыдущий элемент}
PS:=pro; {указателю на голову списка присваиваем новое значение
т.е значение текущего элемента}
Inc(y);
End;
Exits : End;
{Процедура удаления элементов из списка }
Procedure Removing;
Var
Head,p1,p2:PStudents;
i,e3,e4:ShortInt;
Label
Exits;
Begin
head:=PS; {первый элемент-голова списка}
p2:=PS; {текущий указатель}
p1:=PS; {указатель на предыдущий элемент}
While True Do Begin
e4:=0; e3:=0;
For i:=1 to 4 Do Begin {подсчет оценок}
If p2^.Marks[i]=4 Then inc(e4);
If p2^.Marks[i]=3 Then inc(e3);
End;
If (e4=1) And (e3=3) Then {проверка условия на удаление}
If (Head=P2) Then Begin {если удаляемый элемент - голова списка}
PS:=PS^.Next; {новая голова}
Dispose(p2); p2:=PS; p1:=PS; Head:=PS;
End
Else Begin {если элемент в середине списка}
p1^.Next:=p2^.Next; {полю Next предыдущего элемента
присваиваем указатель следующего за текущим}
Dispose(p2); p2:=p1^.Next; {уничтожаем ссылку на текущий элемент}
End
Else Begin
p2:=p2^.Next;{если ничего не удалялось
передвигаем указатель на следующий элемент}
p1:=p1^.Next; {передвигаем указатель предыдущего элемента}
End;
If (p2=nil) Then GoTo Exits;
End;
Exits:End;
{Процедура вывода на печать списка }
Procedure PrintOut;
var
p1:PStudents;
Label
Exits;
Begin
p1:=PS;
While True Do Begin
WriteLn(p1^.Name);
If p1^.Next=nil Then GoTo Exits;
p1:=p1^.Next;
End;
Exits:End;
{Тело программы }
Begin
Init;
Removing;
PrintOut;
WriteLn('Нажмите любую клавишу...');
Repeat Until KeyPressed;
End.