Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Обчислення массиву Calculation






4. Код програми:

Program lab2_2;

type arr=array [1..10,1..10] of real; {new array type}

var mas:arr; {variables array type}

n, {number of lines}

m, {number of columns}

i,j, {counters}

imax,jmax:integer; {position of maximum number in array}

max:real; {maximum number in array}

flag:boolean; {flagok for incorrect value}

{------------------Browse----------------------}

procedure Browse(mas:arr;n,m:integer); {display array}

{mas – array arr type, n- number of lines, m – number of colomn}

begin

for i:=1 to n do {circle for lines}

begin

for j:=1 to m do {circle for column}

write(mas[i,j]:6:2,' '); {input array element}

writeln; {outputting as a matrix}

end; {end of for}

writeln;

end; {end of Browse}

{------------------Input Array------------------}

procedure InputArr(var masiv:arr;var n,m:integer); {entering of array}

{mas – array arr type, n- number of lines, m – number of colomn}

var key:char; {user answer}

range1,range2:integer; {range of values array elements}

begin

writeln;

writeln('Result of lab2_2');

writeln('Variant 5, made by Znakhurenko Viktoriya');

writeln('mas[1..n,1..m].'); {entering capacity of array}

repeat {do while positive number}

write('Enter number of lines in array <=10 '); {entering lines in array}

readln(n); {input number of lines}

until (n>0) and (n<=10); {circle by entering correct value}

repeat {do while positive number}

write('Enter number of colunms in array <=10 '); {entering columns in array}

readln(m); {input number of column}

until (m>0) and (m<=10); {circle by entering correct value}

repeat {do while correct variant}

writeln; {menu for type of entering}

writeln('Oppurtunites of filling array elements');

writeln('1. Random '); {random generation of number}

writeln('2. Keyboard entering'); {input from keyboard by user}

write('Your choise [1/2] '); {possible variant of filling array}

readln(key); {get user choise}

until(key=1)or(key=2); {possible variant of filling}

if(key=1) then {random filling}

repeat {do while entering range is corrrect}

writeln;

write('border of range random numbers low and high range ');

readln(range1,range2); {reading range of filling}

until(range1<range2); {low range must be less than high one}

for i:=1 to n do {circle for lines}

for j:=1 to m do {circle for column}

masiv[i,j]:=random(range2-range1+1)+range1; {randomind number from [range1;range2] }

end {end of if}

else {keyboard entry}

begin

write('Array mas: '); {users inputing numbers from keyboard}

for i:=1 to n do {circle for lines}

begin

for j:=1 to m do {circle for column}

read(masiv[i,j]); {reading current element}

writeln; {outputting as a matrix}

end; {end of for}

writeln;

end; {end of else}

writeln;

end; {end of InputArr}

{----------------Maximal Element Position---------------------------}

procedure MaxElemPos(var imax,jmax:integer;mas:arr;n,m:integer);

{mas – array arr type, n- number of lines, m – number of column,

imax – line index of maximal element, jmax – column index of maximal element}

var max:real; {maximum element}

begin

imax:=1; {init line index}

jmax:=1; {init column index}

max:=mas[imax,jmax]; {take first element as maximal}

{definition of max element of c array}

for i:=1 to n do {circle for lines}

for j:=1 to m do {circle for column}

if(max<abs(mas[i,j])) then {current element is bigger than max}

begin

max:=abs(mas[i,j]); {remember current element as max}

imax:=i; {index of current line}

jmax:=j; {index of current column}

end; {end of if}

end; {end of MaxElemPos }

{-------------Exchange---------------------}

procedure Exchange(var mas:arr; n,m:integer;max:real);{change diagonal elements on maximum}

{mas – array arr type, n- number of lines, m – number of column}

begin

for i:=1 to n do {circle }

mas[i,i]:=max; {exchange diagonal elements}

end;

{-------------Calculation-----------------------}

procedure Calculation(var mas:arr;n,m:integer);

{mas – array arr type, n- number of lines, m – number of column}

begin

MaxElemPos(imax,jmax,mas,n,m); {maximum element of array}

max:=abs(mas[imax,jmax]); {remember max element}

writeln('Max element is ',max:6:2,' in [ ',imax,', ',jmax,' ] position');

if (max<>0) then {check by correct values}

for i:=1 to n do {circle for lines}

for j:=1 to m {circle for column}do

mas[i,j]:=mas[i,j]/max {calculation elements}

else {division by zero}

begin

writeln('error division by zero!');

flag:=false; {change flagok division by zero}

end; {end of else}

Browse(mas,n,m); {Output array}

Exchange(mas,n,m,max); {changing diagonal elements}

end; {end of Calculation }

{----------------Main program------------------}

begin

flag:=true; {init flagok not division by zero}

randomize; {for generation random numbers}

InputArr(mas,n,m); {entering array}

Browse(mas,n,m); {display array}

Calculation(mas,n,m); {formation new array}

if(flag=true)then {condition not division by zero}

Browse(mas,n,m); {Output array}

writeln;

readln;

end. {end of program}


 

5. Screen Shot результатів

 

6. Аналіз роботи

Як ми бачимо зі ScreenShot’ів, ми ввели 3 варіанти даних.

Введення кількості рядків та стовпчиків масиву, при умові n<=10. Завдання елементів масиву може здійснюватися генерацією випадкових чисел та самостійно користувачем.

1. При виборі першого типу введення, користувач вводить матрицю з клавіатури.

2. При генерації випадкових чисел необхідно задати їх діапазон. Якщо діапазон 5 та 10 чи -10 та 20, отримуємо масиви матрицю, знаходимо максимальний за модулем елемент, а також обчислюємо масив шляхом ділення на цей елемент, якщо він не дорівнює нулю. Заміна елементів головної діагоналі на цей елемент.

Здійснене зациклення програми при введенні діапазону, перша границя не є меншою за другу, а також можливість введення чисел або з клавіатури, або генерацією випадкових чисел.

 







Дата добавления: 2015-09-04; просмотров: 392. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

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

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

Основные симптомы при заболеваниях органов кровообращения При болезнях органов кровообращения больные могут предъявлять различные жалобы: боли в области сердца и за грудиной, одышка, сердцебиение, перебои в сердце, удушье, отеки, цианоз головная боль, увеличение печени, слабость...

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия