Разработка в среде Turbo pascal программы, нахождения минимального элемента двумерного массива

Сафаров Роман Русланович 

группа 69-13Вт



АЛЬМЕТЬЕВСКИЙ ГОСУДАРСТВЕННЫЙ 

НЕФТЯНОЙ ИНСТИТУТ



КАФЕДРА ИНФОРМАТИКИ



СТРЕЛКИ В БЛОКСХЕМЕ РАССТАВЬ САМ РУЧКОЙ, ПОСМОТРИ В ПРЕДЫДУЩЕЙ РАБОТЕ.



КУРСОВАЯ РАБОТА 

ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА»

РАЗДЕЛ:АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL

НА ТЕМУ: 

«РАЗРАБОТКА В СРЕДЕ TURBO PASCAL ПРОГРАММЫ, нахождения минимального элемента двумерного массива»









Выполнил студент: Сафаров Р. Р.

Группы:69-13 Вт

Проверил: Садриева Л.М. 





АЛЬМЕТЬЕВСК 2010 год





Оглавление



1. Постановка задачи.                                                                                 3

2. Описание алгоритма решения задачи графическим способом.         4

3. Разработка программы на языке программирования.                        5

3.1. Описание блоков укрупненной схемы алгоритмов на языке            программирования.                                                                                    5

3.2. Текст программы.                                                                                9

4. Литература.                                                                                            14

































1.Постановка задачи.

Задан двухмерный массив целых чисел. Найти минимальны элемент среди минимальных элементов столбцов двухмерного массива целых чисел. Столбец, в котором находятся найдены минимальный элемент, упорядочить по возрастанию. Для отладки программы элементы двухмерного массива сформировать с помощью генератора случайных чисел.

Исходным данными являются элементы двухмерного массива, которые должны быть созданы по условию задачи с помощью генератора случайных чисел Random. Функция Random без параметра формирует вещественные числа в диапазоне [0;1). Так как по условию задачи элементами массива должны быть целые числа, то воспользуемся формулой Random(b-a+1)+a, которая  будет выдавать случайные целые числа из диапазона [a,b].

В результате решения задачи будет найден минимальный элемент  среди минимальных элементов столбцов двухмерного массива. Столбец, содержащий найденный минимальный элемент должен быть упорядочен по возрастанию. Для сортировки(упорядочивания) столбца массива по возрастанию используем алгоритм сортировки обменом.

В программе решаются 4 подзадачи:

1. Заполнение двумерного массива

2. Поиск минимального элемента в каждом столбце

3. Поиск минимального элемента среди найденных минимальных элементов столбцов

4. Сортировка столбца с минимальным элементом

5. Вывод преобразованного массива



2. Описание алгоритма решения задачи графическим способом.

   

     Начало



Ввод элементов двумерного массива







Поиск минимальногоэлемента в каждом столбце







Поиск минимального элемента среди найденных минимальных элементов столбцов





Сортировка столбца с минимальным элементом





Вывод преобразованного массива









       конец











		

	

	3.Разработка программы на языке программирования.

3.1. Описание блоков укрупненной схемы алгоритмов на языке            программирования.

Как оговаривалось в постановке задачи, ввод элементов двумерного массива будем осуществлять с помощью генератора случайных чисел. Возьмем, к примеру, интервал от -5 до 15. Тогда, используя формулу Random(b-a+1)+a, получим Random(21)-5. Таким образом, каждый очередной элемент массива будет представлять собой целое число из диапазона [-5,15] и выводится на экран. Цикл работает до достижения переменной i значения n, то есть до конца массива.

Представим алгоритм поиска минимального элемента в каждом столбце двумерного массива. Для хранения значения минимума столбца возьмем переменную minst, для хранения его номера в массиве –imin.

Так как поиск элемента в массиве должен осуществляться по столбцам, то он должен быть организован как внешний цикл. Зафиксировав номер столбца min:=a[1,j], начинаем перебирать элементы построчно: i:=2,n,1. когда все строки будут рассмотрены, в результате сравнения их друг с другом, будет найден самый наименьший элемент. Этот элемент выведем на экран. 

После того, как будет найден минимальный элемент в столбце, с помощью условия mist<min находим минимальный элемент среди минимальных элементов столбцов. Таким образом, в каждом прохождении цикла запоминается значение min:=minst и номер элемента imin:=j, который будет меньше всех предыдущих. Как только будут рассмотрены все элементы массива, значение минимального элемента и его номера будут выведены на экран.

Для сортировки столбца массива используем алгоритм сортировки обменом. Метод основан на том, что весь массив просматривается с конца и в том случае, если из двух соседних элементов «нижний» элемент меньше, чем «верхний», элементы меняются местами. Таким образом,  самый меньший элемент оказывается ближе к началу массива. Отсюда и одно из названий метода «пузырьковая» сортировка. Особенностью данного метода является сравнение, а затем, если нужно, и перестановка соседних элементов.

После сортировки выводим полученный массив на экран. Вывод элементов двумерного массива осуществляется при помощи цикла с параметром.





































3.2. Текст программы.

program variant_73;

uses crt;

const n=20;

var a,b: array [1..n] of integer;

m,j,i,k,r:integer;

begin

clrscr;

writeln('элементы исходного массива:');

randomize;

for i:=1 to n do begin

a[i]:=random(100)+1;

write(a[i]:4);  end;

writeln;

writeln('введите к');

readln(k);

{формирование нового массива}

m:=0;

for i:=1 to n do

if a[i] mod 10 =k then begin m:=m+1; b[m]:=a[i]; end;

writeln('новый массив');

for i:=1 to m do begin

write(b[i]:4);  

end;

{упорядоченный массив}

for i:=1 to m do

for j:=1 to m do

if b[j]<b[i] then begin r:=b[i];

b[i]:=b[j];

b[j]:=r; 

end;

writeln;

writeln('упорядоченный по убыванию массив');

for i:=1 to m do

write(b[i]:4);

readln;

end.

































4.Литература.

1.Фаронов В.В. Pascal.Учебный курс.-м.:Издательство «Нолидж»,1998г.

2.Дарахвелидзе П.,Макаров Е.Программирование в Pascal 4.-спб.:БХВ-СПб.,1999.

3. Шпак Ю.А. Turbo Pascal 7.0 на примерах Издательство "Юниор",М- 2003, 498 с.

4. Потопахин В.В. Turbo Pascal: решение сложных задач. Издательство "БХВ-Петербург", 2006, 208 с.



.



































Приложение





1

Начало

I:=1

I<=N

CLRSCR



I:=I+1

ВЫВОД A[I]:4











		

	

	

	

	

	

	

2

I<=n

I:=I+1

B[M]:=A[I]

M:=M+1

I:=1

M:=0

Ввод K

























		

	

	

	

	

	

	

	

	

	

	

I:=1





	

I<=M	









Вывод B[I]:4





I:=I+1







I:=1





I<=M







J:=1





	

J<=M	



		

	

B[J]<B[I]

I<=M





R:=B[I]





B[I]:=B[J]





B[J]:=R



J:=J+1





I:=I+1



I:=I+1





I<=M







Вывод B[I]:4



	

I:=I+1	







конец

2