О САЙТЕ
Добро пожаловать!

Теперь вы можете поделиться своей работой!

Просто нажмите на значок
O2 Design Template

ФЭА / Информатика / КУРСОВАЯ РАБОТА ПО ДИСЦИПЛИНЕ «ИНФОРМАТИКА» РАЗДЕЛ: АЛГОРИТМИЧЕСКИЙ ЯЗЫК PASCAL НА ТЕМУ: «Разработка в среде Turbo Pascal программы поиска максимального элемента матрицы»

(автор - student, добавлено - 20-06-2014, 20:46)

СКАЧАТЬ:  kursach.zip [468,88 Kb] (cкачиваний: 128)

 

 

 

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

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

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

НА ТЕМУ:

«Разработка в среде Turbo Pascal программы поиска максимального элемента матрицы»

 

 

Оглавление

Оглавление.. 2 

ПОСТАНОВКА ЗАДАЧИ.. 

ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ ГРАФИЧЕСКИМ СПОСОБОМ... 4 

Укрупненная схема алгоритма. 5

Детализация укрупненной схемы……………………………………….6

алгоритма……………………………..........................................................7

Блок-схема алгоритма. 8

РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCAL.. 9 

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

Листинг программы.. 13

Тестирование программы.. 15

 

 

                             1.ПОСТАНОВКА ЗАДАЧИ

 

Разработка в среде Turbo Pascal программы поиска максимального элемента матрицы 

Дана матрица А размера MxN

Найти максимальный элемент среди минимальных элементов всех строк.

Для отладки программы исходный массив сформировать с помощью генератора случайных чисел.

 

 

 

2.ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ ГРАФИЧЕСКИМ СПОСОБОМ 

 

Укрупненная схема алгоритма 

 

 

Детализация укрупненной схемы алгоритма

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

  1. Ввод элементов массива.
  2. Нахождение максимального элемента.
  3. Вывод найденного элемента.

 

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

 

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

 

 

Нахождение максимального элемента

 

Представим алгоритм, в котором мы максимальный элемент среди минимальных элементов всех строк. Это реализуется с помощью основного цикла, который переключает строки и вложенного, который ищет минимальные элементы в каждой строке. Затем идёт условие, которое проверяет каждый элемент на его величину, оставляя только наибольший.

 Все это можно представить в виде следующего фрагмента блок-схемы:

 

 

Вывод найденного элемента

 

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

 

 

Блок-схема алгоритма

 

     3.РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ PASCAL

Программа начинается со служебного слова Program, после которого следует заголовок программы.

Далее включаем раздел Uses для использования модуля CRT, который применяется для управления работой экрана в текстовом режиме.

После названия программы и идентификации используемых модулей следует раздел переменных (var).

В разделе переменных описан целочисленный массив под именем a, целочисленные переменные i, j счетчики циклов, temp – вспомогательная переменная для сортировки элементов и т.д.

Тело программы или раздел операторов начинается со  слова begin и заканчивается end. В этом разделе описываем действия, которые должна выполнить программа согласно выбранному алгоритму.

Так как в программе подразумевается ввод данных с экрана и вывод полученных результатов на экран, перед началом программы его необходимо очистить  от  ненужной  информации.  Это проделывает процедура clrscr, которая описана в модуле Crt.

Перед первым обращением к функции random необходимо с помощью вызова процедуры randomize инициализировать программный генератор случайных чисел, иначе при каждом запуске программы датчик будет выдавать одни и те же числа. 

 

 

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

 

Ввод элементов массива.

Рассмотренный фрагмент блок-схемы для реализации ввода элементов двумерного массива на языке Pascal будет представлен в следующем виде:

 

for i:=1 to n do begin

    for j:=1 to m do begin

        a[i,j]:=random(20)-5;

        write(a[i,j]:3);

    end;

writeln;

end;

 

Запись write(a[i,j]:3) обозначает, что для вывода каждого элемента на экран отводится 3 позиции.

Следующий оператор random с параметрами генерирует случайно взятое число и помещает его в текущий элемент массива. Так мы можем быстро заполнить массив интересующим нас диапазоном чисел.

Добавим в конце оператор writeln без параметров для более удобного восприятия информации с экрана.

 

 

 

 

 

 

Вывод найденного элемента

 

После нахождения элемента с помощью нашего алгоритма, мы выводим значение на экран стандартными средствами вывода: 

 

writeln('Максимальный элемент среди минимальных: ', max, '[', max_i, ',',max_j,']');

 

где write(…)– вывод элемента в строку с указанием количества занимаемых позиций. 

 

 

Листинг программы 

Program xxx;

uses crt;

var

i, j, max, min, max_i, max_j, min_i, min_j, m, n:integer;

a:array [1..100, 1..100] of integer;

 

begin

clrscr;randomize;

write('Введите количество строк: ');readln(n);

write('Введите количество столбцов: ');readln(m);

 

for i:=1 to n do begin

    for j:=1 to m do begin

        a[i,j]:=random(20)-5;

        write(a[i,j]:3);

    end;

writeln;

end;

writeln;

writeln('Задание 1. Нахождение максимального элемента среди минимальных');

max:=-10;

for i:=1 to n do begin

    min:=a[i,1];

    min_i:=i;

    min_j:=j;

    for j:=1 to m do

        if a[i,j]<min then begin

           min:=a[i,j];

           min_i:=i;

           min_j:=j;

           end;

    if min>max then begin

       max:=min;

       max_i:=min_i;

       max_j:=min_j;

       end;

end;

 

writeln('Максимальный элемент среди минимальных: ', max, '[', max_i, ',',max_j,']');

readkey; end.

 

  

Тестирование программы 

Ниже приведены результаты выполнения программы на примере

различных входных данных. 

 


Ключевые слова -


ФНГ ФИМ ФЭА ФЭУ
Copyright 2018. Для правильного отображения сайта рекомендуем обновить Ваш браузер до последней версии!