Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Перестановка строк и столбцов массива случайным образом

Тип Реферат
Предмет Информатика и программирование
Просмотров
981
Размер файла
344 б
Поделиться

Ознакомительный фрагмент работы:

Перестановка строк и столбцов массива случайным образом

Министерство сельского хозяйства и продовольствия

Республики Беларусь

УО "Новопольский государственный аграрно-экономический колледж"

Курсовой проект

по дисциплине: "Основы алгоритмизации и программирования"

на тему: Перестановка строк и столбцов массива случайным образом

КП-22СПО.27.34-ПЗ

Новое Поле 2010


Задание

на выполнение курсового проекта

по дисциплине "Основы алгоритмизации и программирования"

Учащейся IIкурса 22 СПО группы УО "Новопольский государственный аграрно-экономический колледж"Хвесечко Мальвины Владимировны

1. Исходные данные: Массив

2. План курсового проекта: Введение

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

1.1Назначение и функции программы

1.2 Математическая формулировка задачи

1.3 Информационная база задачи

1.3.1 Входная информация

1.3.2 Выходная информация

1.4 Системное меню

1.5.Контрольные примеры

2 Описание программы

3 Описание применения

Заключения

Список используемых источников

Приложения

Дата выдачи " "2010 г.

Срок выполнения задания:

Преподаватель Е. А Ермошкина

УТВЕРЖДЕНО

Председатель ЦКГ.Р. Степанькова

Протокол №6 от 14.01.2010 года


Содержание

Введение

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

1.1 Назначение и функции программы

1.2 Математическая формулировка задачи

1.3 Информационная база задачи

1.3.1 Входная информация

1.3.2 Выходная информация

1.4 Системное меню

2. Описание программы

3. Описание применения

Заключения

Список используемых источников

Приложения


Введение

Массив – это множество однотипных элементов, объединённых общим именем и занимающих в компьютере определённую область памяти.

Количество элементов в массиве всегда конечно.

В общем случае массив - это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.

Название регулярный тип (или ряды) массивы получили за то, что в них объединены однотипные (логически однородные) элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элемента в массиве.

В качестве элементов массива можно использовать любой тип данных, поэтому вполне правомерно существование массивов записей, массивов указателей, массивов строк, массивов и т.д.

Элементами массива могут быть данные любого типа, включая структурированные.

Тип элементов массива называется базовым. Особенностью языка Паскаль и Delphi является то, что число элементов массива фиксируется при описании и в процессе выполнения программы не меняется.

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

Тип индекса определяет границы изменения значений индекса. Для описания массива предназначено словосочетание array of (массив из). Одномерные массивы

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

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

Если двумерный массив имеет число строк равное числу столбцов, то такой массив (матрица) называют квадратным, например, массивы 3х3, 4х4, 5х5 и т.д. являются квадратными в отличие от массивов 2х4, 5х3, и.т.д.

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

1.1 Назначение и функции программы

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

1.2 Математическая формулировка задачи

Математическими прообразами массивов являются векторы и матрицы с числовыми компонентами. В языках программирования все элементы массива объединяются общим именем – идентификатором массива. Элементы массива последовательно располагаются в памяти компьютера. При обращении к элементу массива указывается имя массива (идентификатор), индекс и тип. Если каждый элемент массива имеет только один индекс, то такой массив называют линейным или одномерным. Массивы, элементы которых имеют два индекса, называют двумерными.

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

Если двумерный массив имеет число строк равное числу столбцов, то такой массив (матрица) называют квадратным, например, массивы 3х3, 4х4, 5х5 и т.д. являются квадратными в отличие от массивов 2х4, 5х3, и.т.д.

Операции с массивами. Типичными операциями при работе с массивами являются:

· вывод массива;

· ввод массива;

· поиск максимального или минимального элемента массива;

· поиск заданного элемента массива;

· сортировка массива.

Вывод массива. Под выводом массива понимается вывод на экран монитора (в диалоговое окно) значений элементов массива.

Если в программе необходимо вывести значения всех элементов массива, то для этого удобно использовать инструкцию for, при этом переменная-счетчик инструкции for может быть использована в качестве индекса элемента массива.

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

"Лобовое" решение задачи ввода элементов массива — для каждого элемента массива создать поле ввода. Однако если требуется ввести достаточно большой массив, то такое решение неприемлемо. Представьте форму, например, с десятью полями редактирования!

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

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


с а[1] < а[2] < .. .< a[SIZE]

где SIZE — верхняя граница индекса массива.

Сортировка методом обмена

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

На (рис. 1.2.1) цифрой 1 обозначено исходное состояние массива и перестановки на первом проходе, цифрой 2 — состояние после перестановок на первом проходе и перестановки на втором проходе, и т. д.

Рисунок 1.2.1 ― Процесс сортировки массива

Следует отметить, что максимальное необходимое количество циклов проверки соседних элементов массива равно количеству элементов массива минус один. Вместе с тем, возможно, что массив реально будет упорядочен за меньшее число циклов. Например, последовательность чисел 5 1 2 3 4, если ее рассматривать как представление массива, будет упорядочена за один цикл, и выполнение оставшихся трех циклов не будет иметь смысла.

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

Если вся таблица содержит однородную информацию, например, только целые числа, то такая таблица может быть представлена как двумерный массив.

В общем виде инструкция объявления двумерного массива выглядит так:

Vary <имя >:Array[1..N,1..M] of <тип >;

где:

· Имя — имя массива;

· array — слово языка Delphi, указывающее, что объявляемый элемент данных является массивом;

· 1..N,1..M — целые константы, определяющие диапазон изменения индексов и, следовательно, число элементов массива;

· Тип — тип элементов массива.

1.3 Информационная база задачи

Для того чтобы использовать элемент массива, нужно указать имя массива и индексы элемента. Первый индекс обычно соответствует номеру строки таблицы, второй — номеру колонки.

При работе с таблицами (массивами) удобно использовать инструкцию for. Например, фрагмент программы, вычисляющий количество проданных за год автомобилей одного наименования, выглядит так:

s := 0;

for j := 1 to 12 do

s := s + itog[2, j];

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

s:=0;

for i:= 1 to 6 do // шесть моделей автомобилей

for j := 1 to 12 do //12 месяцев s := s + itog[i,j];

В приведенном фрагменте программы каждый раз, когда внутренний цикл (цикл по j) завершается, во внешнем цикле значение i увеличивается на единицу и внутренний цикл выполняется вновь. Таким образом, к текущему значению переменной s последовательно прибавляются значения элементов массива itog: itog[l,l], itog[l,2], ..., itog[l,12], itog[2,l], itog[2,2], itog[2,12] и т. д.

Массивы, элементы которых имеют два индекса, называют двумерными.

Двухмерный массив удобно представить в виде матрицы с двойными индексами.


В таком массиве каждый элемент имеет двойной индекс. Первая цифра индекса указывает номер строки, вторая номер столбца. Элементы, где номер строки и номер столбца одинаковы, называют элементами главной диагонали. Так как каждый элемент массива имеет индекс, то индекс показывает место элемента в массиве.

Генератор случайных чисел. Случайные числа – результаты случайного выбора в конечном множестве значений (игровой кубик, жребий, лотерея).

Randomize – процедура установки начального состояния генератора случайных чисел. При повторном выполнении программы будут получаться разные наборы случайных чисел.

Функция random(x) – датчик случайных чисел в диапазоне от 0 до x-1 на языке Паскаль. Random(В-А+1)+А; - от А до В.

1.3.1 Входная информация

Дан массив, в котором расставлены числа случайным образом, где будет осуществляется перестановка строк и столбцов.

1.3.2 Выходная информация

Мы получили массив с случайно расставленными числами, в котором переставляются строки и столбцы указанными нами способами.

1.4 Системное меню

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

StringGrid ― служит для представления текстовых данных в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство Cell. А ещё этот Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. Пример использования компонента StringGrid для ввода массива — программа, осуществляющая поиск в массиве заданного элемента.

А так же на форме присутствуют 6 Edit’ов и 5 Button’ов.

Edit ― стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы. В первые два Edit'а мы вводим саму розмерность матрицы по которой и рысуется вся таблица. В следующих четырех Edit’ах мы указываем номера строк или столбцов при помощи, которых и выполняется перестановка строк и столбцов случайным образом, а так же мы указываем размерность самой таблицы.

Button позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом. При нажатии кнопки Button мы перестанавливаем строки и столбцы. НА форме (рис.2) присутствует кнопка "Нарисовать матрицу" - эта кнопка создает только очертания матрицы, а кнопка "Заполнить" заполняет уже нарисованную нами таблицу рандомно поставленными числами. Кнопки "ОК" выполняют действия перестановки строк и столбцов. А так же есть ещё одна кнопка Button, которая означает ВЫХОД, при нажатии на эту кнопку наша программа, которая запускается, после выполнения определенных операций, автоматически закрывается.

При немалом усердии смотрим результат.Наша форма на данный момент имеет следующий вид представленный на (рис. 1.4.1):


Рисунок 1.4.1 ― Форма программы


2. Описание программы

Данная программа содержит четыре процедуры, каждая из них выполняет свои операции заданные мной. Две процедуры, переводят из строковых значений, в числовые:

1) procedure Button1Click(Sender: TObject);

2) procedure Button2Click(Sender: TObject);

Процедура"Выхода":

procedure Button3Click(Sender: TObject);

Она работает следующим образом: при нажатии на кнопку "Выход", программа заканчивает свою работу и закрывается.

При помощи этой процедуры:

procedureButton4Click(Sender: TObject); ― мы можем создать массив, с размерностью указанной нами в ручную. Эта процедура выполняет только те действия или операции при помощи которых мы можем осуществить появление самой "таблицы" массива

Данная процедура "procedureFormCreate(Sender: TObject);" выводит два диалоговых окна с сообщением подсказкой.

Эта процедура "procedureButton5Click(Sender: TObject);" процедура заполнения, она рандомно или (случайным образом) заполняет массив "таблицу".


3. Описание применения

При запуске этой программы у нас появляется диалоговое окно приветствия, имеющее следующий вид (рис. 3.1).

Рисунок 3.1 ― Диалоговое окно программы

При нажатии на кнопку "ОК" у вас появится ещё одно диалоговое окно изображенное на (рис.3.2), в котором будет указан инструктаж что надо делать Если строго выполнять все указания диалоговых окон то у вас все получится.

Рисунок 3.2 – Окно создания массива (таблицы)

При нажатии а кнопку "ОК" появится Диалоговое окно формы (рис. 3.3), значения (1,1) обведенные красным это значения в которые можно ввести все те числа какие вам захочется. Сейчас я вам покажу как все это должно выглядеть. Для начала мы введем числа (рис.3.4). Потом при нажатии на кнопку "Нарисовать массив" Выскочит следующее окно пояснение изображенное на (рис. 3.5). После нажатия на кнопку "ОК" у нас появится таблица с заданной нами розмерностью . Ниже приведены рисунки "Диалоговых окон" при помощи которых идет пояснение каждого хода программы (краткий инструктаж по программе). На (рис.3.8) изображено окно (предупреждение), которое отвечает за то что когда вы введете число больше чисел заданных в массиве то вам будет выведено окно предупреждение, и вы будете вынуждены ввести заново числа только те числа которые входят в пределы массива заданного вами. На (рис.3.9) изображено окно предупреждение которое отвечает за то, что при введении одинаковых чисел в пределе массива, то оно вас предупредит что бы вы этого не делали. К (рис.3.10) и (рис.3.11) идут аналогичные пояснения как и к (рис.3.8) и (рис.3.9) но только для столбцов.

Рисунок 3.3 – Диалоговое окно "форма"


Рисунок 3.4 – Пример ввода чисел

Рисунок 3.5 – Пояснение к следующим действиям

Рисунок 3.6 – Диалоговое окно

Рисунок 3.7 – Диалоговое окно


Рисунок 3.8 – Диалоговое окно

Рисунок 3.9 – Диалоговое окно

Рисунок 3.10 – Диалоговое окно


Рисунок 3.11 – Диалоговое окно

Рисунок 3.12 – Диалоговое окно

Рисунок 3.13 – Диалоговое окно


Рисунок 3.14 – Диалоговое окно

Если вы действовали строго по этим рисункам то вы добились успеха.

Заключение

В ходе работы с курсовым проектом я научилась работать с компонентами и другими данными.

Данная программа имеет множество кнопок, при помощи которых можно выполнить определенны операции. Такие как создание массива и саму перестановку строк и столбцов.

Эту программу можно оптимизировать добавив строку "Меню".

Но данная программа содержит ещё и множество диалоговых окон "уведомлений", при помощи которых и происходит весь процесс выполнения программы.

матрица массив программа диалоговый


Список используемых источников

1. Чертик А.А., Борисок В.В., Корвель Ю.И. Delphi. Трюки и эффекты. СПб.: Питер, 2007. С. 10-48, 72-90.

2. Флёнов М.Е. Delphi в шутку и в серьез: что умеют хакеры. СПб.: Питер, 2006. С. 15-102.

3. Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов. 48-49, 306-316.

4. Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов. 49-51, 317-352.

5. Бобровский С.И. Delphi 7. Учебный курс. СПб.: Питер, 2008. С. 151-182.


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

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

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно