- •2. Задание
- •3. Метод решения
- •4. Порядок выполнения работы
- •5. Контрольные вопросы
- •2. Характеристики основных файловых систем
- •3. Операции с файловой структурой
- •3.1. Проводник
- •3.2. Файловый менеджер
- •4. Задание
- •5. Порядок выполнения работы
- •6. Контрольные вопросы
- •Лабораторная работа №3 Архивирование данных
- •1. Общие сведения об архивировании данных
- •2. Архивирование данных с помощью программы WinRar
- •3. Задание
- •2. Форматы текстовых файлов
- •3. Текстовый редактор Блокнот (NotePad)
- •4. Текстовый редактор WordPad
- •5. Задание
- •6. Порядок выполнения работы
- •7. Контрольные вопросы
- •Лабораторная работа №5 Разработка текстовых документов в процессоре Microsoft Word
- •1. Общие сведения о процессоре Microsoft Word
- •2. Приемы работы с текстами в процессоре Microsoft Word
- •2.1. Создание документа
- •2.2. Ввод текста
- •2.3. Форматирование текста
- •3. Сохранение документа
- •4. Приемы и средства автоматизации разработки документов
- •4.1. Работа со стилями
- •4.2. Шаблоны
- •5. Внедрение объектов, созданных другими приложениями
- •6. Задание
- •7. Порядок выполнения работы
- •8. Контрольные вопросы
- •2. Графический редактор Paint
- •2.1. Окно программы Paint
- •2.2. Задание размера рабочей области
- •2.3. Основные чертежно-графические инструменты
- •2.4. Трансформация изображений
- •2.5. Ввод текста
- •3. Встроенный графический редактор Microsoft Word
- •4. Порядок выполнения работы
- •5. Контрольные вопросы
- •6. Варианты заданий
- •3. Блок схема алгоритма
- •4. Реализация алгоритма в среде Delphi
- •5. Результаты счета
- •6. Порядок выполнения работы
- •7. Контрольные вопросы
- •8. Варианты заданий
- •3. Блок-схема алгоритма
- •4. Реализация алгоритма в среде Delphi
- •5. Результаты счета
- •5. Порядок выполнения работы
- •6. Контрольные вопросы
- •7. Варианты заданий
- •Лабораторная работа №9 Составление программ поиска, сортировки и накапливания результата
- •1. Задача поиска
- •2.Реализация алгоритма поиска максимального элемента в среде Delphi
- •3. Сортировка и упорядочение массива.
- •4. Накапливание результата
- •5. Вычисление математического ожидания случайной дискретной величины
- •6. Порядок выполнения работы
- •7. Контрольные вопросы
- •8. Варианты заданий
- •Список литературы
- •Приложение 1. Варианты контрольных заданий
- •Приложение 2. Требования к оформлению отчета по лабораторным работам
- •1. Объем и содержание отчета
- •2. Оформление отчета
- •Приложение 3. Титульный лист к отчету
- •Приложение 4 Блок-схемы алгоритмов к лабораторной работе № 6
- •Приложение 5 Текст программы на языке Паскаль для вычисления корней квадратного уравнения
- •Приложение 6 Текст программы на языке с для вычисления корней квадратного уравнения
- •Приложение 7 Текст программы на языке Паскаль для вычисления приближенного значения экспоненциальной функции
- •Приложение 8 Текст программы на языке c для вычисления приближенного значения экспоненциальной функции
- •Ответственный за выпуск ________________
- •420111, Казань, к.Маркса, 10
Лабораторная работа №9 Составление программ поиска, сортировки и накапливания результата
Цель занятия: ознакомление с задачами поиска сортировки и накапливание результата, и приобретение навыков составления программ для решения этих задач.
1. Задача поиска
Из множества значений, например из массива чисел, требуется выбрать одно или несколько чисел удовлетворяющих некоторому критерию. Алгоритм решения этой задачи называется циклическим, причем при каждом проходе цикла анализируется один элемент массива, поэтому рационально для хранения чисел использовать массив.
Пример 9.1. Найти максимальный элемент массива А(n).
Введем переменную max, в которой будем хранить максимальное значение из рассмотренных на данный момент. По окончании перебора в ней будет храниться искомое значение. В качестве начального значения max целесообразно выбрать значение первого элемента массива, а просмотр массива начинать со второго элемента. Блок-схема алгоритма приведена на рис.9.1.
Рис.9.1. Блок схема алгоритма поиска максимального элемента массива A
В результате работы алгоритма переменная max получит значение равное максимальному числу в массиве А. При изменении критерия отбора меняется тело цикла, но сама циклическая структура решения сохраняется.
2.Реализация алгоритма поиска максимального элемента в среде Delphi
После запуска Delphi и открытия окна формы (модуль Form1) разместим в нем следующие объекты:
-
поле редактирования Edit1 – для вывода результатов поиска;
-
метки Label1Label2 – для вывода заголовков, пояснений и результатов;
-
кнопки Button1 и Bitbtn1 – для управления работой программы;
-
таблица StringGrid1 для ввода исходного массива.
Для этого на панели визуальных компонент (вкладки Standard и Additions) щелчком мыши выбираются объекты Edit, Label, Button, Bitbtn и StringGrid и вставляются в указываемое курсором место формы. Далее с помощью инспектора объектов (Object Inspector) определяются заголовки объектов Form1, Label1, Label2 путем ввода соответствующего текста в поле Caption вкладки Properties. Например, для окна Form1 в поле Caption вводится текст «Программа нахождения максимального элемента»; для метки Label1 – «введите элементы массива», для метки Label2 – «максимальный элемент массива», для кнопки Button1 – «найти».
Общий вид окна формы с выбранными компонентами представлен на рис.9.2.
Рис.9.2. Окно формы (модуль Form1) программы в Delphi
При размещении в окне формы объектов автоматически добавляются соответствующие этим объектам описания в исходный код программы (модуль Unit1).
Для управления работой программы с каждой кнопкой связывается событие Щелкнуть (Click) и задается, что при щелчке на кнопке 1 (объект Button1) программа должна ввести массив из полей таблицы StringGrid1. Далее после двойного щелчка кнопки Button2 и попадания снова в окно кода вводятся операторы, реализующие алгоритм поиска максимального элемента и вывод его в поле Text объекта Edit1. В результате, в окне кода будет представлен следующий текст программы:
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Buttons;
Type TForm1 = class(TForm)
StringGrid1: TStringGrid;
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);// поиск максимума
const n=10;
var a:array[1..10] of real;//описание исходного массива
i, j :integer; // параметры циклов
max :real;// здесь будет храниться максимальный элемент
begin
for i:=1 to n do // считываем элементы массива из StringGrid1
a[i]:=strToFloat(form1.StringGrid1.cells[0,i-1]);// преобразуем строку в число
max:=A[1];
for i:=2 to n do
if max<A[i] then max:=A[i] ;
form1.Edit1.Text:=floatToStr(max) // вывод результата в элемент edit1
end; end.
Трансляция и запуск на выполнение программы производится с помощью команды Run меню Run или нажатия клавиши F9. Если выдается сообщение об ошибках, то их следует исправить и снова запустить программу на выполнение. При отсутствии в программе синтаксических ошибок откроется окно аналогичное окну формы (рис.9.2), и далее программа будет ожидать действий пользователя. Пользователь может задать значения исходного массива, щелкнуть кнопку Button1 для нахождения максимума или щелкнуть кнопку Bitbtn1 для завершения работы программы. На рис.9.3 показан результат работы программы
Рис.9.3. Результаты работы программы
Пример 9.2. Найти номер наименьшего по модулю элемента в массиве А(n).
Рис.9.4. Блок схема алгоритма поиска номера наименьшего по модулю элемента
По окончании работы программы переменная k будет указывать на номер наименьшего по модулю элемента в массиве А(n), а min будет равно этому минимуму.