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

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

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







 

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



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

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

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

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

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

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

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

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

Кран машиниста усл. № 394 – назначение и устройство Кран машиниста условный номер 394 предназначен для управления тормозами поезда...

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

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