ФЭА / Информатика / КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПОИСКА В МАТРИЦЕ МИНИМАЛЬНОГО ЭЛЕМЕНТА В УПОРЯДОЧЕННЫХ СТРОКАХ
(автор - student, добавлено - 18-09-2017, 21:51)
Скачать:
КАФЕДРА ИНФОРМАТИКИ
КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПОИСКА В МАТРИЦЕ МИНИМАЛЬНОГО ЭЛЕМЕНТА В УПОРЯДОЧЕННЫХ СТРОКАХ
выполнил студент проверил
Оглавление
Оглавление.. 2 1. ПОСТАНОВКА ЗАДАЧИ.. 3 2. Описание алгоритма решения задачи графическим способ ом... 4 2.1 Укрупненная схема алгоритма и ее детализация. 4 2.2 Блок – схема алгоритма. 9 3. Разработка программы на языке программирования pascal. 11 3.1 Описание блоков укрупненной схемы алгоритмов на языке программирования PASCAL. 12 3.2 Листинг программы.. 15 3.3 Тестирование программы.. 18 4. Список литературы... 19
1. ПОСТАНОВКА ЗАДАЧИ
Дана матрица размерами M x N. Найти минимальный среди элементов тех строк, которые упорядочены либо по возрастанию, либо по убыванию. Если упорядоченные строки в матрице отсутствуют, то вывести 0. Для отладки программы матрицу сформировать с помощью генератора случайных чисел. Для эффективного использования функции Random необходимо перед ее использованием выполнить процедуру Randomize, которая инициализирует генератор псевдослучайной последовательности. Полученные значения построчно выводятся на экран. 2. Описание алгоритма решения задачи графическим способ ом
2.1 Укрупненная схема алгоритма и ее детализация
Детализация укрупненной схемы алгоритма В программе решается 4 подзадачи: 1. Заполнение двумерного массива; 2. Поиск упорядоченных строк по возрастанию и минимальных элементов этих строк; 3. Поиск упорядоченных строк по убыванию и минимальных элементов этих строк; 4. Поиск минимального элемента в одномерном массиве и вывод минимального элемента; Ввод элементов двумерного массива Ввод элементов двумерного массива будем осуществлять с помощью генератора случайных чисел. Возьмем, к примеру, интервал от 1 до 9. Тогда, используя формулу Random(b-a+1)+a, получим Random(9)+1. Таким образом, каждый очередной элемент массива будет представлять собой целое число из диапазона [1, 9] и выводится на экран. Цикл работает до достижения переменной i значения M, то есть до конца массива.
Поиск упорядоченных строк по возрастанию и минимальных элементов этих строк Поиск упорядоченных строк осуществляется с помощью двух циклов. Так как поиск элемента в массиве должен осуществляться по строкам (т.е. по i), то он должен быть организован как внешний цикл. Если будет найдена упорядоченная строка, то ее минимальный элемент будет записан в одномерный массив. Так же здесь будет изменяться переменная для определения количества упорядоченных строк.
Поиск упорядоченных строк по убыванию и минимальных элементов этих строк
Поиск упорядоченных строк осуществляется с помощью двух циклов. Так как поиск элемента в массиве должен осуществляться по строкам (т.е. по i), то он должен быть организован как внешний цикл. Так как поиск упорядоченных строк осуществляется по убыванию, то условие поиска будет выглядеть следующим образом: A[i , j]<=A[i , j+1] Если будет найдена упорядоченная строка то ее минимальный элемент будет записан в одномерный массив.
Поиск минимального элемента в одномерном массиве и вывод минимального элемента
Если переменная F не изменилась на протяжении выполнения всей программы то это означает что упорядоченных строк нет, и поэтому выводим ноль, а если изменилась, то осуществляем поиск минимального элемента в одномерном массиве среди минимальных элементов упорядоченных строк и затем выводим его. Все это можно представить в виде следующего фрагмента блок-схемы:
2.2 Блок – схема алгоритма3. Разработка программы на языке программированияpascal
Программа начинается со служебного слова Program, после которого следует заголовок программы. В данном случае это mass. Далее включаем раздел Uses для использования модуля CRT, который применяется для управления работой экрана в текстовом режиме. После названия программы и идентификации используемых модулей следует раздел объявления констант (const) и переменных (var). В разделе переменных описаны целочисленные массивы под именами a и b, целочисленные переменные i, j – счетчики циклов, min – минимальный элемент, m, n – вводимые переменные, равные количеству строк и столбцов соответственно, z – вспомогательная переменная для поиска упорядоченных строк,оискай элемент, льзуемых мо-ограммирования то осуществляем поиск минимального элемента в одномерном массиве среди f - вспомогательная переменная для определения количества минимальных элементов. Тело программы или раздел операторов начинается со слова begin и заканчивается end. В этом разделе описываем действия, которые должна выполнить программа согласно выбранного алгоритма. Так как в программе подразумевается ввод данных с экрана и вывод полученных результатов на экран, перед началом программы его необходимо очистить от ненужной информации. Это проделывает процедура clrscr, которая описана в модуле Crt. Перед первым обращением к функции random необходимо с помощью вызова процедуры randomize инициализировать программный генератор случайных чисел, иначе при каждом запуске программы датчик будет выдавать одни и те же числа. 3.1 Описание блоков укрупненной схемы алгоритмов на языке программированияPASCAL.
Ввод элементов двумерного массива Для формирования массива сначала выполняется запрос и ввод размера m и n. writeln('Введите размер матрицы:'); write(Количество строк='); readln(m); write('Количество столбцов='); readln(n); Writeln('Вывод исходного массива:'); Затем во вложенных циклах по счетчикам I и J элементам массива присваиваются случайные значения при помощи функции Random. Для эффективного использования этой функции необходимо перед ее использованием выполнить процедуру Randomize, которая инициализирует генератор псевдослучайной последовательности. Полученные значения построчно выводятся на экран. For i:=1to M do begin For j:=1 to N do begin A[i,j]:=random(9)+1; Write (A[i,j],' '); End; WRITELN; End; Поиск упорядоченных строк по возрастанию и минимальных элементов этих строк. Поиск будет осуществляться с помощью двух циклов, сравнивающих элементы строки если условие не выполняется то строка упорядочена по возрастанию. Так как строка упорядочена по возрастанию то минимальным элементом будет являться первый элемент строки, и затем его заносим в одномерный массив. Поиск упорядоченных строк по возрастанию, изложенный графическим способом, реализуем в следующем фрагменте программы: f := 1; For i:=1 to M do Begin z:=0; For j:=1 to N-1 do if A[i,j]>=A[i,j+1] Then z:=1; If z=0 Then begin b[f] := a[i,1]; f := f+1; end; End; Здесь также задается вспомогательная переменная f . Поиск упорядоченных строк по убыванию и минимальных элементов этих строк Этот процесс аналогичен процессу со строками по возрастанию. Фрагмент программы, реализующий поиск упорядоченных строк по убыванию приведен ниже: For i:=1 to M do Begin z:=0; For j:=1 to N-1 do if A[i,j]<=A[i,j+1] Then z:=1; If z=0 Then begin b[f] := a[i,N]; f := f+1; end; End; Поиск минимального элемента в одномерном массиве и вывод минимального элемента После поиска упорядоченных строк и их минимальных элементов находим самый минимальный элемент среди всех минимальных в одномерном массиве. f := f-1; if f = 0 then writeln(0) else begin min := b[1]; for i := 1 to f do if b[i] < min then min := b[i]; end; writeln('Минимальный элемент=',min); end; 3.2Листинг программыProgram mass; uses crt; var a : array[1..10,1..10] of integer; b : array[1..10] of integer; i,j,min,z,m,n,f : integer; Begin clrscr; writeln('Введите размер матрицы:'); write(Количество строк='); readln(m); write('Количество столбцов='); readln(n); Writeln('Вывод исходного массива:'); Randomize; For i:=1 to M do begin For j:=1 to N do begin A[i,j]:=random(9)+1; Write (A[i,j],' '); End; Writeln; End; f := 1; For i:=1 to M do Begin z:=0; For j:=1 to N-1 do if A[i,j]>=A[i,j+1] Then z:=1; If z=0 Then begin b[f] := a[i,1]; f := f+1; end; End; For i:=1 to M do Begin z:=0; For j:=1 to N-1 do if A[i,j]<=A[i,j+1] Then z:=1; If z=0 Then begin b[f] := a[i,N]; f := f+1; end; End; f := f-1; if f = 0 then writeln(0) else begin min := b[1]; for i := 1 to f do if b[i] < min then begin min := b[i]; end; writeln(‘Минимальный элемент=’,min); end; readln; END. 3.3 Тестирование программыНиже приведены результаты выполнения программы на примере различных входных данных.
4. Список литературы
1.Иванов А.Ф., Потапова О.Н., Салихова Г.Л. Основы алгоритмического языка Pascal. – Альметьевск: типография АГНИ, 2007. 2.Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0 - Киев: "ВЕК+", 2000. 3.Немнюгин С.А. Turbo Pascal. Учебник - СПб.: Издательство «Санкт - Петербург», 2001. 4.Фаронов В. В. Delphi 4. Учебный курс. - М.: Издательство «Нолидж», 1998. 5.Андреева Т.А. Программирование на языке PASCAL. – М.: Издательство «Бином», 2006.
Похожие статьи:
|
|