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

Then begin. then writeln (‘корені рівняння x1=’, x1:8:2, ‘x2=’, x2:8:2)

Читайте также:
  1. A COMPUTER COURSE FOR BEGINNERS
  2. Else begin
  3. Then begin
  4. Then begin
  5. Then begin
  6. Then begin

F:=kvur (k1, k2, k3, y1, y2);

if F=twe

then writeln (‘корені рівняння x1=’, x1:8:2, ‘x2=’, x2:8:2)

else writeln (‘ дійсних коренів не існує ‘)

else writeln (‘ це не повне квадратне рівняння ‘)

end.

 

Зверніть увагу, що функція kvur повертає значення true (істина), якщо квадратне рівняння має корені, і false (хиба), якщо квадратне рівняння не має дійсних коренів. Значення коренів передаються через параметри-змінні.

 

ПАМ’ЯТАЙТЕ, ЩО НА ПОЧАТКУ ПРОГРАМИ МАСИВ НЕОБХІДНО ЗАПОВНИТИ ОДНИМ З ОПИСАНИХ РАНІШЕ МЕТОДІВ (З КЛАВІАТУРИ АБО ГЕНЕРАТОРОМ ВИПАДКОВИХ ЧИСЕЛ)!

 

Приклад 5. Селище складається з n будинків, розташованих уздовж прямої дороги з однієї сторони на рівних відстанях. У селищі проводять телефонний зв’язок. У таблиці Т зазначено, скільки телефонних апаратів треба встановити в кожному будинку. Написати алгоритм, що визначає, у якому будинку потрібно встановити АТС, щоб сумарна відстань від АТС до всіх телефонних апаратів була мінімальною. Кожний телефон пов’язаний з АТС окркмим проводом.

 

Основний алгоритм має вигляд: Допоміжний алгоритм має вигляд:
АЛГ АТС (ціл n, j, ціл таб T[1:n]) АРГ n, T РЕЗ j ПОЧ ціл і, S, Smin j:=1; Сума_відстаней (n, j, Smin, T) дляі від 2 до n пц Сума_відстаней (n, i, S, T) якщо S<Smin то j:=i; Smin:=S все кц ДРУКУВАТИ j КІН   АЛГ Сума_відстаней (ціл n, j, S, ціл таб T[1:n]) АРГ n, j, T РЕЗ S ПОЧ ціл і S:=0 дляі від 1 до n пц S:=S+T[i]*|i – j| кц КІН

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

АЛГ ціл АТС (ціл n, ціл таб T[1:n])

ПОЧ ціл і, j, Smin, S

j:=1

Smin:=Sr(n, j, T)

для і від 2 до n

пц

S:=Sr(n, i, T)

якщо S<Smin то j:=i; Smin:=S все

кц

АТС:=j

КІН

 

АЛГ ціл Sr(ціл n, j, ціл таб T[1:n])

ПОЧ ціл і, S

S:=0

для і від 1 до n

пц

S:=S+T[i]*|i – j|

кц

Sr:=S

КІН

 

А тепер наведемо допоміжні алгоритми, що виконують виведення елементів одновимірного та двовимірного масивів на екран монітора.

Оформимо алгоритм розв’язування задачі мовою Паскаль з використанням допоміжної функції, що знаходить суму відстані від цих будинків до заданого з урахуванням кількості телефонних апаратів у кожному будинку.

Program ATS;

const n=200;

type arr = array [1..n] of word;

Function Sum (A: arr; P: word): longint;

var i: word; S: longint;

Begin

S:=0

for i:=1 to n do

S:=S+A[i]*abs(i-p);

Sum:=S;

end;

var T: arr; k, j:word; S, Smin: longint;

Begin

Smin:=Sum(T, 1);

k:=1;

for j:=2 to n do

Begin

S:=Smin(T, j);

if S<Smin


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

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



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