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

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

Обчислення массиву 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; просмотров: 365. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

Оценка качества Анализ документации. Имеющийся рецепт, паспорт письменного контроля и номер лекарственной формы соответствуют друг другу. Ингредиенты совместимы, расчеты сделаны верно, паспорт письменного контроля выписан верно. Правильность упаковки и оформления....

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

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

Тактические действия нарядов полиции по предупреждению и пресечению групповых нарушений общественного порядка и массовых беспорядков В целях предупреждения разрастания групповых нарушений общественного порядка (далееГНОП) в массовые беспорядки подразделения (наряды) полиции осуществляют следующие мероприятия...

Механизм действия гормонов а) Цитозольный механизм действия гормонов. По цитозольному механизму действуют гормоны 1 группы...

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