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

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

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







 

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



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

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

Устройство рабочих органов мясорубки Независимо от марки мясорубки и её технических характеристик, все они имеют принципиально одинаковые устройства...

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

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

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

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