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

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

Процедура обчислення масиву






 

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

Program lab2_1;

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

var a,b,c:mas; {variables mas type}

n, {number elements of array}

i, {counter}

range1,range2:integer; {border of range random numbers}

tmp:real; {temperory}

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

procedure Browse(masiv:mas;ch:char);

{masiv- array, ch – name of this array}

begin

write('Array ',ch,': '); {name of array}

for i:=1 to n do {circle of outputting array}

write(masiv[i]:4:2,' '); {display array}

writeln;

end; {end of Browse}

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

procedure Input;

var key:byte; {user answer}

begin

writeln;

writeln('Result of lab2_1');

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

writeln('c[i]=1,a[i]=b[i]'); {task of lab}

writeln(' 1/(a[i]-b[i]),a[i]<>b[i]');

repeat {do while input correct value}

write('Enter number elements of array <=10 '); {entering size of array}

readln(n); {reading number elements}

until (n>0) and (n<=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}

begin

repeat

writeln; {menu of border generation numbers}

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 {randoming number from [range1;range2] }

begin

a[i]:=random(range2-range1+1)+range1; {randoming values of a array}

b[i]:=random(range2-range1+1)+range1; {randoming values of b array}

end; {end of for}

writeln;

end {end of if}

else

begin

write('Array A: '); {user’s inputing numbers from keyboard}

for i:=1 to n do {circle of reading a array values}

read(a[i]);

writeln;

write('Array B: '); {user’s inputing numbers from keyboard}

for i:=1 to n do {circle of reading b array values}

read(b[i]);

writeln;

end; {end of else}

writeln;

end; {end of Input}

{-------------------Max Element Position---------------------}

function MaxElemPos(masiv:mas;n:integer):integer; {definition of maxcimal element of c array}

{masiv – array in which is finding max element, n – number of elements in masiv}

var maxpos:integer; {counter of max position}

max:real; {maximum number in array}

begin

max:=masiv[1]; {take first element of array as max}

maxpos:=1; {position of max element is 1}

for i:=2 to n do {circle for finding max element of array}

if(max<masiv[i]) then {compare current array element with max value}

begin

max:=masiv[i]; {remember max element}

maxpos:=i; {remember position of this max element}

end; {end of if}

MaxElemPos:=maxpos; {value of function}

end; {end of MaxElemPos}

{------------------Calculation с array----------------------}

procedure Calculation(masiv1:mas;masiv2:mas; var arr:mas);

{masiv1, masiv 2 – arrays for calculation arr elements}

var maxp:integer; {position of max element}

begin

for i:=1 to n do {circle for calculation arr}

begin

if masiv1[i]<>masiv2[i] then {condition 1}

arr[i]:=1/(masiv1[i]-masiv2[i]) {expression 1}

else c[i]:=1; {expression 2}

end; {end of for}

writeln;

Browse(arr,'c'); {Outout с array}

maxp:=MaxElemPos(arr,n);

{uses function MaxElemPos to get position of max element in arr array with n elements}

writeln('Max element of array c is ',arr[maxp]:4:2,' that is in ',maxp,' position ');

{change places max element of array and last element of it}

tmp:=arr[maxp]; {temp variable for saving max element’s value}

arr[maxp]:=arr[n]; {rewrite last element in max element position}

arr[n]:=tmp; {write max element in last position}

end; {end of Calculation}

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

begin

randomize; {for generation random numbers}

Input; {Input data}

Browse(a,'a'); {display array1, a – variable mas type}

Browse(b,'b'); {display array2, b – variable mas type}

Calculation(a,b,c); {formation с array, a, b – arraies used for calculation с array elements}

writeln('After change last and max element of array');

Browse(c,'c'); {display changed c array}

writeln;

readln;

end. {end of program}


 

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

 

 

 

 

 

 

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

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

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

1. При генерації випадкових чисел необхідно задати їх діапазон. Якщо діапазон 3 та 12, отримуємо масиви а та b, а також обчислений масив с з максимальним елементом 1.00, що є другим елементом. Після обміну місцями максимального та останнього елемента маємо змінений масив с.

2. Здійснений захист від вводу неможливої кількості елементів масиву(0<n<=10).

При введенні чисел з клавіатури максимальний елемент знаходиться у 3 позиції, тобто третій елемент міняється місцями з останнім та отримуємо остаточну відповідь.

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

 







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




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


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


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


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

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

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

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

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

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