Разработка программы смены строк местами

 
















Разработка программы смены строк местами


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


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

Дана матрица размером MxN. Зеркально отразить её элементы относительно горизонтальной оси (при этом поменяются 1-я и n-ая строки массива).

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


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


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


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

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

.Ввод элементов двумерного массива (матрицы).

.Поиск элементов.

.Вывод элементов

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

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

















Смена строк местами


Представим алгоритм, в котором мы меняем первую и последнюю строки местами. Для этого мы используем 3 цикла и дополнительный массив temp.

Всё это выглядит в блок-схеме следующим образом:



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

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
















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


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

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

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

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

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

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

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

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

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

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

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


for i:=1 to n do beginj:=1 to m do begin[i, j]:=random(30)+1;(a[i, j]:3);;

writeln;

end;


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

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

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

Смена строк местами

Следующая программа реализует алгоритм в котором мы меняем строки местами. Более подробно про этот алгоритм написано выше.

Фрагмент программы:


for i:=1 to m do

temp[i]:=a [1, i];i:=1 to m do[1, i]:=a [n, i];i:=1 to m do [n, i]:=temp[i];


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

После действия нашей программы выводим преобразованный массив:


for i:=1 to n do beginj:=1 to m do(a[i, j]:3);;

end;


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


Листинг программыNum_1;crt;, j, n, m: integer;:array [1.. 100,1..100] of integer;:array [1..100] of integer;;;('vvedite kolichestvo strok n ');(n);('vvedite kolichestvo stolbcov m ');(m);i:=1 to n do beginj:=1 to m do begin[i, j]:=random(30)+1;(a[i, j]:3);;;;;('Zadanie 1. Preobrazovanie massiva ');i:=1 to m do[i]:=a [1, i];i:=1 to m do[1, i]:=a [n, i];i:=1 to m do[n, i]:=temp[i];i:=1 to n do beginj:=1 to m do(a[i, j]:3);;

end;

readkey;

end.

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

Ниже приведен результат выполнения программы c помощью ввода различных входных данных.

pascal алгоритм программа строка


Список литературы


1.Иванов А.Ф., Потапова О.Н., Салихова Г.Л. Основы алгоритмического языка Pascal. - Альметьевск: тип. АлНИ, 2007 г.

2.Павловская Т.А. Паскаль. Программирование на языке высоко уровня.-СПб.: - Питер, 2004 г.

.Немнюгин С.А. Turbo Pascal: учебник - СПб.: - Питер, 2001 г.

.Окулов С.М. Основы программирования.-Москва, 2008 г.

5. Попов В., «Паскаль и Дельфи. Самоучитель» - СПб.: «Питер», 2003 г.



Разработка программы смены строк местами 1. Постановка задачи Разработка в среде Turbo

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ