Вход

Матрицы

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 292994
Дата создания 15 июня 2014
Страниц 27
Мы сможем обработать ваш заказ (!) 29 марта в 18:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
950руб.
КУПИТЬ

Описание

Курсовая на тему Матрицы ...

Содержание

ВВЕДЕНИЕ 3
1. Аналитическая часть 4
1.1. Turbo Pascal 4
2. Постановочная часть 5
2.1. Постановка задачи 5
2.2 Описание алгоритма 16
3. Проектная часть 21
3.1. Написание программы 21
ЗАКЛЮЧЕНИЕ 24
Список использованной литературы 25
ПРИЛОЖЕНИЕ. Листинг программы 26

Введение

ВВЕДЕНИЕ
Тема данной работы «Работа с матрицами». В работе описываются способы структурированных типов Турбо-Паскаль – массивы.
Показаны способы описания массивов, заполнение массивов конкретными значениями, вывод массивов на экран. Особое внимание уделяется двумерным массивам – матрицам.
Рассмотрены программы, которые позволяют производить следующие действия над матрицами: упорядочивать элементы матриц в строках или в столбцах по возрастанию или убыванию, удалять и менять местами строки или столбцы матриц, перемножать матрицы, получать матрицы заданного вида, переставлять блоки матриц, производить вычисления в матрицах.
Данная работа написана на языке программирования Pascal.
Все части заданий сложены в одну программу для удобства использования

Фрагмент работы для ознакомления

Произведением матрицы В размера (4*6) на матрицу С размера (6*3) является матрица D размера (4*3), элементы которой определяются по формулам: Что бы описать двумерный массив можно использовать несколько способов.Первыйспособ:type t = array[1..m, 1..n] of integer; vara: t; Второй способ var a : array[1..m, 1..n] of integer;Третий и четвертый способыЕще два способа описания массивов основываются на следующих соображениях. В описании массива t = array [n1..n2] ofs; в качестве базового типа s может выступать не только один из стандартных типов, т.е. real, integer, longint, но и ранее описанный в программе тип. Пусть тип s, в свою очередь, был описан как массив: s = array[m1..m2] ofinteger; и пусть переменная a - это переменная типа t, тогда a[k] - это переменная типа s, а a[i][j] - переменнаятипа integer.Отсюда вытекает такой способ описания: type s = array[1..m] of integer; {Описание массива строки}t = array[1..n] of s; {Описание таблицы} var a : t; {Описывается имя массива} Таким образом, здесь мы видим последовательное описание, вначале строк, потом всей таблицы и наконец имени массива. Такую запись можно сократить и сделать более компактной, например: type t = array[1..m] of array[1..n] of integervar a : t;В зависимости от конкретной задачи, а порой личного вкуса можно пользоваться тем или иным способом (но самым важным является то, чтобы описание было понятным, надо всегда помнить, что вашу программу кто-то будет читать или пользоваться ей). Так, третий массив может быть описан следующим способом: constm = 4; n = 5;type s = array[1..m] of integer;t = array[1..n] of s;var a : t;Для ввода массива необходимо организовать два цикла. Один цикл по количеству строк, а второй - по количеству элементов в строке, т.е. по количеству столбцов.Простые методы сортировки массивов:перестановкойобменомвставкамиСортировка - это процесс упорядочивания информации по определенному признаку. Цель сортировки - облегчение последующего поиска элементов. Это почти универсальный вид обработки информации, с которым мы встречаемся в жизни повсеместно.Метод выбора. Сортировка посредством выбора представляет собой один из самых простых методов сортировки. Он предполагает такую последовательность действий. Сначала находим минимальный элемент массива. Найденный элемент меняем местами с первым элементом. Затем повторяем процесс с п-1 элементами, начиная со второго, потом с п-2 элементами, начиная с третьего и т.д. до тех пор, пока не останется один, самый большой элемент массива.Приведем текст программы, реализующий данный алгоритм.Program sortl; Var a: array [1..20] of real; j, i, n, imin: integer; min:real; BeginWriteln('Введите количество чисел п<=20:'); Readln(n);Writeln('Введите массив:'); for i:=l to n do Read(a[i]); Readln;for j:=l to n-1 do {цикл поиска минимальных элементов массива} beginmin:=a[j]; {начальное значение для поиска минимума} imin:=j; {начальное значение индекса минимального элемента} for i:=j+l to n do {цикл поиска минимума и его индекса} if a[i]<min then {если элемент меньше уже найденного минимального}beginmin:=a[i]; {запоминем элемент} imin:=i {запоминаем его индекс} end;{меняем местами найденный минимум и первый элемент текущего массива} a[imm]:=a[j]; a[j]:=min; end;for i:=l to n do Write(a[i]:6:2); Writeln; End.Метод вставки.Сортировку вставками можно описать следующим образом. В исходном состоянии считают, что сортируемая последовательность состоит из двух последовательностей: уже сортированной (она на первом шаге состоит из единственного - первого элемента) и последовательности элементов, которые еще необходимо сортировать. На каждом шаге из сортируемой последовательности извлекается элемент и вставляется в первую последовательность так, чтобы она оставалась сортированной. Поиск места вставки осуществляют с конца, сравнивая вставляемый элемент ai с очередным элементом сортированной последовательности аj. Если элемент ai больше аj, его вставляют вместо aj+1, иначе сдвигают аj вправо и уменьшают j на единицу. Поиск места вставки завершают, если элемент вставлен или достигнут левый конец массива. В последнем случае элемент ai вставляют на первое место. Разрабатывая алгоритм, избавимся от проверки достижения начала массива. Прием, позволяющий отменить эту проверку, называется «проверка с барьером». С использованием этого приема проверка организуется так, чтобы из цикла поиска места вставки в любом случае происходил выход по первому условию. Для этого достаточно поместить вставляемый элемент перед первым элементом массива, как элемент с индексом 0. Этот элемент и станет естественным барьером для ограничения выхода за левую границу массива. Приведем текст программы, реализующей данный алгоритм.Program sort2; Vara:array[0..20] of real;B:real;i,j,n: integer; BeginWriteLn('Введите количество чисел п<=20.');ReadLn(n);WriteLn('Введите массив.'); for i:=l to n do Read(a[i]); ReadLn;for i:-2 to n do {начиная со второго элемента до конца массива} beginB:=a[i]; {запоминаем i-й элемент}а[0]:=В; {этот же элемент записываем в а[0] - это барьер}j:=i-l; {индекс i запоминаем в j}while B<a[j] do {пока очередной рассматриваемый элемент больше 1-го элемента} begina[j+1]:=a[j]; {сдвигаем элемент} j:=j-l; {уменьшаем j на 1} end;a[j+1]:=B; {как только найдено место, туда записывается В} end;WriteLh('Отсортированный массив:'); for i:=l to n do Write(a[i]:6:2); WriteLn; End.Метод обменов.Алгоритм прямого обмена основывается на сравнении пары соседних элементов. Если расположение элементов не удовлетворяет условиям сортировки, то их меняют местами. Сравнения и перестановки продолжают до тех пор, пока не будут упорядочены все элементы. Определить, что элементы упорядочены, можно, считая количество выполненных перестановок: если количество перестановок равно нулю, то массив отсортирован.Приведем программу, реализующая данный алгоритм.Program ex;Var a: array [1..20] of Real;i,j,n,l,k: integer; b:real;BeginWriteLn( "Введите размер массиваN< =20 '); ReadLn(n);for i := 1 ton do Read(a[i]); ReadLn;WriteLn( 'Исходный массив: '); for i := 1 to n do Write(a[i]:7:2); WriteLn;k:=l; {количество перестановок, начальное значение не равно 0 } i:=l; {номер очередного просмотра, в начале равен 1 } while k<>0 do {пока есть перестановки}begink:=0; {обнуляем количество перестановок} for j:=l to n-l do {цикл сравнения соседних элементов} if a[j]>a[j+l] then {если предыдущий элемент больше последующего, то}begin{осуществляем перестановку}b:=a[j];a[j]:=a[j+1];a[j+1]:=b;k:=k+l; {счетчик перестановок увеличиваем на 1} end;i:=i+l; {увеличиваем номер просмотра на 1 } end;WriteLn(' Отсортированный массив ');for i := 1 to n do Write (a[ij:7:2); WriteLn;WriteLn(' Количество проходов ', i:3); End.Алгоритмы вставки и удаления элементов массиваВключить элемент z на i-е место.n:=n+1;for j:=n-1 down to i do s[j+1]:=s[j];s[i]:=z;Исключить элемент с i-го места.for j:=i to n-1 do s[j]:=s[j+1];n:=n-1;Описание алгоритмаПеред тем как начать составлять программу распишем пошагово каждый компонент .В первую очередь дадим имя программе, опишем переменные. В нашем случае это i,j,k:integer- целый тип данных и x,mn:real- вещественный тип данных. Так же описан массив, состоящий из n вещественных элементов vara,b,c,d,e:array[1..n,1..n] of real. В конечном виде это выглядит так:program matricy;uses crt;const n=6;var a,b,c,d,e:array[1..n,1..n] of real; i,j,k:integer; x,mn:real;Следующим этапом будет описание матрицы А. В этой части будет вписан размер матрицы и закон, по которому определяется каждый элемент матрицы А, закон в первоначальном виде выглядит так: В программе он выглядит следующим образом:begin a[i,j]:=(i+j)*sin(j)/cos(i); write(a[i,j]:8:3); end;В конечном результате эта часть выглядит так:beginclrscr;writeln('Исходная матрицаA:');for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=(i+j)*sin(j)/cos(i); write(a[i,j]:8:3);end;writeln; end;Этапом номер три будет описание матрицы В. Надо получить матрицу В, осуществив соответствующие преобразования над матрицей А, а именно: упорядочить элементы в строках по возрастанию. For i:=1 to n do, for j:=1 ton-1 do, fork:=j+1 to n do- операторы цикла.

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

Список использованной литературы
1. Голицына О. Л., Партыка Т. Л., И. И. Попов «Языки программирования»
2. Ушаков Д. М., Юркова Т. А. «Паскаль для школьников»
3. Фаронов В. В. «Turbo Pascal 7.0. Практика программирования»
4. http://www.coolreferat.com/Программы_в_среде_Turbo_Pascal
5. http://www.coolreferat.com/Обработка_матриц_2
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00465
© Рефератбанк, 2002 - 2024