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

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

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






 

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 оперирует с двумя категориями...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

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