Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Разработка в среде Turbo Pascal программы сортировки элементов строк матрицы
Раздел: Рефераты по информатике
Тип: курсовая работа Добавлен 10:22:10 02 декабря 2010 Похожие работы
Просмотров: 414 Комментариев: 20 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

Альметьевский государственный нефтяной институт

Кафедра информатики

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

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

РАЗДЕЛ: Алгоритмический язык Pascal

НА ТЕМУ:

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

Альметьевск 2010 год


Решения задачи графическим и программным способами по теме «двумерные массивы»

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

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

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

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

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


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

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


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

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

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

2. Сортирование элементов четных строк по возрастанию, нечетных строк по убыванию;

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

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

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


Сортирование элементов четных строк по возрастанию, нечетных строк по убыванию

Сортирование элементов четных строк по возрастанию работает следующим образом: в начале определяем, является ли строка четной. Это определяется с помощью условия If I mod 2 =0, если строка четная, то номер строки делится на 2 без остатка.

В начале находим элемент с наименьшим значением (min) во всей строке и ставится на первое место, а первый элемент при этом ставится на место, где располагался наименьший элемент. Затем наименьший элемент отыскивается уже среди чисел со второго по n элемент, и также меняются местами минимальный среди них и второй элемент и т.д. Для того чтобы не терялись значение элементов массива вместо которых ставятся элементы с наименьшим значение, введена переменная S. Если условие If I mod 2 =0 произошло с остатком, то строка нечетная и начинается сортировка по убыванию. Находим элемент с наименьшим значение во всей строке. Ставим его на последнее место, а последний элемент при этом ставится на место, где располагался наименьший элемент. Чтобы элемент не терялся используем переменную S.



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

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


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





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

Программа начинается со служебного слова Program, после которого следует заголовок программы. В данном случае это massiv. Далее включаем раздел Uses для использования модуля CRT, который применяется для управления работой экрана в текстовом режиме. После названия программы и идентификации используемых модулей следует раздел объявления констант (const) и переменных (var).

В данной программе в разделе констант объявлены константы n=4 (количество строк массива) и m = 5 (количество столбцов массива). В разделе переменных описан целочисленный массив под именем a, целочисленные переменные i, j – счетчики циклов, min – минимальный элемент, imin – индекс минимального элемента, minst – минимальный элемент столбца, k – вспомогательная переменная длясортировки элементов.

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

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

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

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

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

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

for i:=1 to n do

begin

for i:=1 to n do begin

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

write(a[i,j]); end;

writeln;

end;

writeln;

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

Сортирование элементов четных строк по возрастанию, нечетных строк по убыванию

Далее начинаем обработку массива. Обработка массива осуществляется в цикле с параметром for i:=1 to n do по строкам массива. Далее с помощью условия определяем if i mod 2=0 then определяем четность строки.

Задаем цикл с параметром for k:=1 to m do, k это переменная для обозначение столбца массива. Определяем первый элемент массива как минимальный, для того чтобы можно было сравнивать с ним другие элементы и отыскать минимальный из них. Условием if a[i,j]<min сравниваются два элемента одной строки. Если условие выполняется то в минимальный присваивается следующий элемент min:=A[i,j]. Затем меняем местами эти элементы. Переменная S используем промежуточный элемент для хранение элемента массива S:=A[i,k]. Потом заносим в массив A[i,k] минимальный элемент A[i,k]:=min, а в массив A[i,l] восстанавливаем значение из переменной S (A[i,l]:=S).

Если первое условие не выполнилось if i mod 2=0 then то происходит сортировка нечетной строки по убыванию.

Обработка массива начинается с цикла с параметром. Задаем переменную max, в эту перемену присваиваем значение первого элемента max:=a[i,k]. Задаем цикл с параметром for j:=k to m do. Проверяем выполнения условия if a[i,j]>max, если условие выполняется то в переменную max заносим элемент массива a[i,j].

В переменную S заносим значение массиваA[i,k], в массив A[i,k] заносим значение максимального элемента max и восстанавливаем в переменную A[i,l]значение переменной S.

for i:=1 to n do begin

if i mod 2=0 then for k:=1 to m do begin

min:=a[i,k];

for j:=k to m do

if a[i,j]<min then

begin min:=A[i,j]; l:=j;

S:=A[i,k];

A[i,k]:=min;

A[i,l]:=S end; end

else for k:=1 to m do begin

max:=a[i,k];

for j:=k to m do

if a[i,j]>max then

begin max:=A[i,j]; l:=j;

S:=A[i,k];

A[i,k]:=max;

A[i,l]:=S end; end;

end;

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

После сортировки выводим полученный массив на экран стандартными средствами вывода:

for i:=1 to n do

begin

for i:=1 to n do

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

writeln;

end;

где write(a[i,j]:4)– вывод элементов двумерного массива в строку

с указанием количества занимаемых позиций

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

Program massiv;

Uses crt;

Const n=5; m=5;

Var a: array[1..n, 1..m] of integer;

i, j, k,min,max, l, s: integer;

Begin

Clrscr; randomize;

Writeln('исходный:'); begin

For i:=1 to n do

Begin

for j:=1 to m do begin

a[i,j]:=random(21)-5; write(a[i,j]:4); end;

writeln; End; Writeln;end;

for i:=1 to n do begin

if i mod 2=0 then for k:=1 to m do begin

min:=a[i,k];

for j:=k to m do

if a[i,j]<min then

begin min:=A[i,j]; l:=j;

S:=A[i,k];

A[i,k]:=min;

A[i,l]:=S end; end

else for k:=1 to m do begin

max:=a[i,k];

for j:=k to m do

if a[i,j]>max then

begin max:=A[i,j]; l:=j;

S:=A[i,k];

A[i,k]:=max;

A[i,l]:=S end; end;

end;

begin

writeln(результат:'); For i:=1 to n do Begin

for j:=1 to n do write(a[i,j]:4);

Writeln;

end; end;

readln;

End.


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

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


Список используемой литературы

1. А.И. Гусева. Учимся программировать: Pascal 7.0. М. диалог-мифи, 2000г.

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

3. А.Ф. Иванов А. Программирование на алгоритмическом языке Pascal, 2000г.

4. Семакин И.Г., Шестаков А.П. Основы программирования. М.:Академия, 2003г.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита15:25:00 04 ноября 2021
.
.15:24:58 04 ноября 2021
.
.15:24:56 04 ноября 2021
.
.15:24:54 04 ноября 2021
.
.15:24:53 04 ноября 2021

Смотреть все комментарии (20)
Работы, похожие на Курсовая работа: Разработка в среде Turbo Pascal программы сортировки элементов строк матрицы

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(290631)
Комментарии (4189)
Copyright © 2005-2021 HEKIMA.RU [email protected] реклама на сайте