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

Пояснення до алгоритму. Функція fp знаходиться в циклі основного алгоритму, безпосередньо у виразі, і використовується для обчислення добутку елементів масиву Y

Читайте также:
  1. Загальні пояснення до виконання реферату
  2. Ілюстрації. Кількість ілюстрацій повинна бути достатньою для пояснення тексту, що викладається.
  3. На відміну від прогнозу і гіпотеза і версія можуть бути націлені (і в більшості випадків націлюються) не на повідомлення про якесь явище, а на його пояснення, хоча і можливе.
  4. Покрокове виконання алгоритму
  5. Поняття алгоритму
  6. Поняття алгоритму. Основні властивості алгоритмів
  7. Пояснення вчителя.
  8. Пояснення гри. Вибір способу шикування гравців для пояснення гри і місце керівника.
  9. Пояснення до алгоритму
  10. Пояснення до алгоритму
  11. Пояснення до алгоритму
  12. Пояснення до алгоритму

Функція fp знаходиться в циклі основного алгоритму, безпосередньо у виразі, і використовується для обчислення добутку елементів масиву Y. Їй передаються два фактичних параметри: поточний розмір масиву і сам масив. Результат функції щоразу вміщується в її ім’я. Комірка р є локальною змінною і використовується для обчислення добутку.

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

Алгоритм мовою Паскаль:

Program F;

const m=10;

type arr = array [1..m] of real;

Function Fp (count: word; A: arr): real;

var i: word; p: real;

Begin

p:=1;

for i:=1 to count do

p:=p*A[i]; Fp:=p;

end;

const n=20;

var x: array [1..n] of real; y: arr; s: real; j: word;

Begin

s:=0;

for j:=1 to n do

S:=S+Fp(j, y)*x[j];

writeln (‘S=’, S:8:2);

end.

 

Приклад 3. Скласти алгоритм-функцію обчислення біномінальних коефіцієнтів, використовуючи допоміжний алгоритм-функцію обчислення факторіала. Нагадаємо, що біномінальним коефіцієнтом називається число

 

Основний алгоритм: Допоміжний алгоритм-функція:
АЛГ fc (ціл n, m) ПОЧ ціл R R:=Fact(n)/(Fact(m)*Fact(n – m) ДРУКУВАТИ R КІН АЛГ цілFact (ціл N) ПОЧ ціл і, Р Р:=1 дляі від 1 до N пц Р:=р*і кц Fact:=P КІН  

Алгоритм мовою Паскаль:

Program Bin_coef;

Function Fact(a: byte): longint;

var F:l ongint; i: byte;

Begin

F:=1;

for i:=1 to a do

F:=F*i;

Fact:=F;

end;

var n, m: byte; R: longint;

Begin

write (‘ введіть n та m’);

readln (n, m);

R:=Fact(n)/Fact(m)*Fact(n – m);

writeln (‘R=’, R);

end.

 

Зверніть увагу, що оскільки n!=1*2*3*…*n, то значення факторіала збільшується настільки швидко, що значення вже 14! не вміщується в жоден стандартний цілочисельний тип, зокрема в найбільший longint. Однак, враховуючи, що біномінальний коефіцієнт знаходять як відношення факторіалів, можна виконати скорочення, зменшивши таким чином чисельник та знаменник дробу. Щоб скорочення було найоптимальнішим, необхідно визначити, який з множників m! чи (n – m)! Більший, і поділити саме на нього. Тоді одержимо:

а) якщо m>(n – m) m!

в) якщо , скорочуємо на (n – m)!

Враховуючи вищесказане, можна змінити функцію Fact таким чином, щоб вона знаходила добуток всіх натуральних чисел у діапазоні від а до b, тобто: Fact:=a*(a+1)*(a+2)*…*(b – 1)*b

Алгоритм мовою Паскаль:

Program Bin_coef;

Function Fact (a, b: byte): longint;

var i: byte; F: longint;

Begin

F:=1;

for i:=a to b do

F:=F*i;

Fact:=F;

end;

var n, m: byte; R: longint;

Begin

write (‘введіть n та m’);

readln (n, m);

if m>n – m

then R:=Fact(m+1, n)/Fact(1, n – m)

else R:=Fact(n – m+1, n)/Fact(1, m);

writeln (‘R=’, R);

end.

 

Приклад 4. Дано квадратну матрицю цілих чисел і квадратне рівняння a1x2+bx+c=0. Треба знайти корінь повного квадратного рівняння, якщо відомо, що його коефіцієнти визначаються в такий спосіб:

1) а1 – кількість простих чисел, розташованих на головній діагоналі;

2) b – мінімальний елемент, розташований нижче від головної діагоналі матриці;

3) с – середнє арифметичне елементів, розташованих на бічній діагоналі матриці.

Основний алгоритм має вигляд:

АЛГ Приклад 4 (ціл n, таб a[1:n, 1:n], дійсн х1, х2, літ s)

АРГ n, a

РЕЗ x1, x2, s

ПОЧ

S:=’ це не повне квадратне рівняння ‘

a1;=KPGD9n, a0

b:=minng(n, a)

c:=sapd(n, a)

якщо a1>0 і b>0 i c>0

то

викликати КВУР (a1, b, c, x1, x2, s)

якщо s=’ є розв’язок ‘

то

ДРУКУВАТИ ‘ корені рівняння: х1= ‘, x1 ‘x2=’, x2

iнакше ДРУКУВАТИ s

Все

інакше ДРУКУВАТИ s

Все

КІН

 

Допоміжні алгоритми і алгоритми-функції мають вигляд:

АЛГ ціл kpgd(ціл n, таб A[1:n, 1:n]) ПОЧ ціл і k:=0 для і від 1 до n пц якщо prost(A[i, i]=0 то k:=k+1 все кц kpgd:=k КІН АЛГ ціл minng(ціл n, таб A[1:n, 1:n]) ПОЧ ціл і, j, min min:=A[2, 1] для і від 3 до n пц для j від 1 до i – 1 пц якщо A[i, j] <min то min:=A[i, j] все кц кц minng:=min КІН

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)