Матрица. Обработка массивов

Автор: Пользователь скрыл имя, 15 Октября 2013 в 17:31, курсовая работа

Краткое описание

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

Оглавление

1. Введение
2. Обработка массивов
2,1. Задание
2,2. Массивы
2,3. Сортировка массивов
2,4. Алгоритм решения задачи
2,5. Программа в паскале
2,6. Результаты вычислений
3. Заключение
4. Список литературы

Файлы: 1 файл

akmanov.docx

— 30.49 Кб (Скачать)

Минобрнауки России

Федеральное государственное бюджетное  образовательное

учреждение высшего профессионального  образования

«Ижевский государственный технический  университет

им. М. Т. Калашникова»

(ИжГТУ)

 

 

 

 

 

 

 

 

 

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

по информатике

 

 

 

 

 

 

 

 

 

 

 

 

Студент: Акманов Д.С.                                       Преподаватель: Дресвянников Д.Г.

группа Б1-712-1зШ                                              Оценка__________________

 

 

 

 

 

 

 

Ижевск 2013

 

 

Содержание:

1. Введение

2. Обработка массивов

   2,1. Задание

   2,2. Массивы

   2,3. Сортировка массивов

   2,4. Алгоритм решения  задачи

   2,5. Программа в  паскале

   2,6. Результаты вычислений

3. Заключение

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Введение

 

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

А вот это не так просто. Расчеты, проводимые даже на современных компьютерах, могут длиться несколько дней и даже недель. Обратимся к примерам. Длительность расчета в системе моделирования процесса литья металлов ProCAST зависит от количества элементов в расчетной модели, качества конечно-элементной сетки и заданных параметров расчета (шаг по времени, количество расчетных полей и т.п.). Предположим, что качество сетки удовлетворяет требованиям алгоритмов и все параметры заданы правильно. Тогда при стандартном наборе решателей (моделируется заполнение формы расплавом, охлаждение и прогноз пористости) длительность расчета технологического процесса для несложной отливки составит от двух до трех дней — в зависимости от количества элементов. Если добавить к стандартному набору решателей расчет напряжений или модель микроструктуры, время расчета увеличится уже до трех-четырех дней. И это при условии, что расчет идет стабильно. Если же предположить, что расчетная сетка окажется не совсем хорошего качества, велика вероятность возникновения проблем с устойчивостью и сходимостью при работе гидродинамического модуля. Это чревато непрогнозируемым увеличением времени расчета, а то и полной остановкой процесса.

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

 

 

 

 

 

2. Обработка массивов

   2,1. Задание

 

В массиве  целых положительных и отрицательных  чисел A[5,5], полученном случайным образом, вычислить сумму элементов четвертой строки и главной диагонали. Если сумма элементов главной диагонали больше суммы элементов четвертой строки, то все положительные, четные числа удвоить. В противном случае выбрать из массива все нечетные, отрицательные числа и записать их в новый массив.

 

2,2. Массивы

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

 

Одномерные массивы 

 

Алгоритмы сортировки одномерных массивов. Сортировка - один из наиболее распространённых процессов современной обработки данных. Сортировкой называется распределение элементов массива в соответствии с определёнными правилами. Например, сортировка массива по возрастанию или убыванию его элементов. Обменная сортировка (метод "пузырька"). Алгоритм начинается со сравнения 1-го и 2-го элементов массива.

Если 2-й элемент меньше 1-го, то они меняются местами. Этот процесс  повторяется для каждой пары соседних элементов массива, пока все N элементов  не будут обработаны. За один "проход" массива самый большой элемент  встанет на старшее (N-е) место. Далее  алгоритм повторяется, причем например "проходе" первые (N-p) элементов  сравниваются со своими правыми соседями. Если на очередном "проходе" перестановок не было, то алгоритм свою работу закончил. Таким образом, самые "легкие" элементы в процессе исполнения алгоритма  постепенно "всплывают".

 

Двумерные массивы Паскаля  – матрицы

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

Для работы с массивом как  единым целым используется идентификатор  массива без указания индекса  в квадратных скобках. Массив может участвовать только в операциях отношения "равно", "не равно" и в операторе присваивания. Массивы, участвующие в этих действиях, должны быть идентичны по структуре, т. е. иметь одинаковые типы индексов и одинаковые типы компонентов. Например, если массивы А и В описаны как var А, В: array[1..20] of real; то применение к ним допустимых операций даст следующий результат: выражение результат А=В True, если значение каждого элемента массива А равно соответствующему значению элемента массива ВА<>ВTrue, если хотя бы одно значение элемента массива А не равно значению соответствующего элемента массива ВА:=В все значения элементов массива В присваиваются соответствующим элементам массива А. Значения элементов массива В остаются неизменны.

Действия над элементами массива После объявления массива каждый его элемент можно обработать, указав идентификатор (имя) массива и индекс элемента в квадратных скобках. Например, запись Mas[2], VectorZ[10] позволяет обратить- ся ко второму элементу массива Mas и десятому элементу массива VectorZ.

При работе с двумерным  массивом указываются два индекса, с n-мерным массивом - n индексов. Например, запись MatrU[4,4] дела- ет доступным для обработки значение элемента, находящегося в чет- вертой строке четвертого столбца массива MatrU. Индексированные элементы массива называются индексированными пе- ременными и могут быть использованы так же, как и простые пере- менные. Например, они могут находиться в выражениях в качестве операндов, использоваться в операторах for, while, repeat, вхо- дить в качестве параметров в операторы Read, Readln, Write.

 

 

 

 

 

 

 

2,3. Сортировка массивов

 

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

если встречается более "легкий" (с меньшим значением) элемент, то они меняются местами;

при встрече с более "тяжелым" элементом, последний  становится "эталоном" для сравнения, и все следующие сравниваются с ним .

В результате наибольший элемент оказывается в самом  верху массива.

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

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

 

Сортировка вставками

Второй метод называется метод вставок., т.к. на j-ом этапе мы "вставляем" j-ый элемент M[j] в нужную позицию среди элементов M[1], M[2],. . ., M[j-1], которые уже упорядочены. После этой вставки первые j элементов массива M будут упорядочены. 

Сортировка посредством выбора

Идея сортировки с помощью  выбора не сложнее двух предыдущих. На j-ом этапе выбирается элемент наименьший среди M[j], M[j+1],. . ., M[N](см. процедуру FindMin) и меняется местами с элементом M[j]. В результате после j-го этапа все элементы M[j],M[j+1],. . ., M[N]будут упорядочены.В программе, как уже было сказано, используется процедура FindMin, вычисляющая индекс lowindex элемента, наименьшего среди элементов массива с индексами не меньше, чем startindex:

 

 

  

 

 

2,5. Программа в паскале

 

 

program zadanie_vtoroe;

uses crt;

var

a : array[1..5, 1..5] of longint;

b : array[1..25] of longint;

i, j, z : integer;

S4, Sg : longint;

begin

clrscr;

randomize;

for i:=1 to 5 do

begin

for j:=1 to 5 do

begin

a[i,j]:= random(500)+(-250);

write(a[i,j]:5,' ');

end;

writeln;

end;

S4:=0;

Sg:=0;

for i:=1 to 5 do

begin

S4:=S4+a[4,i];

Sg:=Sg+a[i,i];

end;

writeln('summa4=', S4);

writeln('summa glavnoi diagonali=', Sg);

if Sg>S4

then

begin

writeln('summa glavnoi diagonali bolshe summi 4-oi stroki');

for i:=1 to 5 do

for j:=1 to 5 do

if(a[i,j] mod 2=0) and (a[i,j]>0)

then

a[i,j]:=2*a[i,j];

for i:=1 to 5 do

begin

for j:=1 to 5 do

begin

write(a[i,j]:5,' ');

end;

writeln;

end;

readln;

end

else

begin

writeln('s4>sd');

for i:=1to 5 do

for j:=1 to 5 do

if (a[i,j]<0) and (a[i,j] mod 2<>0)

then

begin

z:=z+1;

b[z]:=a[i,j];

end;

for i:=1 to z do

begin

write(b[i]:5,' ');

writeln;

end;

readln;

end;

end.

 

 

 

 

 

 

 

 

 

 

 

 

2,6. Результаты вычислений

 

242         95       203        -27        -19

-113     -186       184         70        -12

231       -22        121     -177        -20

137     -134      -168     -184          87

-216     -178       182     -179       -108

summa4=-262

summa glavnoi diagonali=-115

summa glavnoi diagonali bolshe summi 4-oi stroki

484         95       203       -27        -19

-113     -186       368      140        -12

231       -22        121    -177        -20

137     -134      -168     -184          87

-216     -178       364     -179       -108

 

 

 

232      -165     233     180     -32

-191         28    -123    -123     -80

193      -235    -194       74     -53

166      -104     190       82      -78

149       230     167    -109     -13

summa 4=256

summa glavnoi diagonali=135

s4>sd

-165

-191

-123

-235

-53

-109

-13

 

 

 

 

 

 

 

3. Заключение

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

1. Перминов О. Н. Язык программирования Паскаль : Справочник. — М.: Радио и связь, 1989

2. Майоров А.А. Компьютер и Интернет, Росмэн-Пресс, 2001.

3. Перевод с англ. Ли К., Основы  САПР (CAD/CAM/CAE), С.-П.: Питер, 

4. Хейфец А.Л., Инженерная  компьютерная графика. AutoCad: Опыт преподавания и широта взгляда М.: Диалог-МИФИ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Информация о работе Матрица. Обработка массивов