Оператор безумовного переходу goto

Мета роботи

Вивчити й набути навичок використання базових керувальних конструкцій та операторів безумовного переходу, умовного переходу та вибору варіанту.

2 Основні теоретичні відомості

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

Для програмної реалізації таких обчислень необхідно використовувати оператори передання управління, котрі дозволяють змінювати порядок виконання операторів програми. У мові Pascalдля цього передбачено інструкції: безумовного переходу - goto, умовного переходу - ifта вибору варіанта - case. Для запису умови переходу необхідно використовувати логічні (булеві) вирази.

Оператор безумовного переходу goto

Оператор goto(йти до) дозволяє передати керування в будь-яку точку коду (програми), котру позначено спеціальною міткою.

Оператор goto має вигляд:

goto<мітка >;

Мітки, на які можна передавати керування, описують ключовим словом label, після якого йде список міток. Кожна мітка може позначатися припустимим в алгоритмічній мові ідентифікатором або цілим без знака числом від 0 до 9999. Наприклад :

Labelstart, 55, second, а;

означає чотири мітки: start, 55, second, а.

Точка, в яку передається керування, позначена ім'ям мітки, після якої йдуть дві крапки й далі оператор, до якого передається керування. Наприклад,

start :S:=0;

Мітка може розташовуватись у будь-якому місці: як перед оператором goto, так і після нього.

Слід уникати передання керування ззовні в середину циклу й заборонено передавати керування до мітки, розміщеної в іншому блоці. Це може призвести до непередбачених наслідків.

Опис міток, самі мітки й оператори goto, які передають на них керування, повинні розміщуватися вмежах області видимості ( блоку).

Розумне застосування оператора gotoробить структуру програми більш прозорою і спрощує її розуміння.

 

2.2 Логічні вирази

Логічні вирази - це послідовність логічних зміних, констант, відношень,

з’єднаних логічними (булевими) операціями, результатом яких є логічне

значення. Логічні значення позначаються стандартними іменами True (істина)

та False (хибність), причому True<False. Логічні константи теж мають тільки

два значення: True та False.

Логічні змінні - це змінні, які набирають одного з цих значень. У розділі

змінних вони повинні бути описані як Boolean, наприклад:

Varp,q: Boolean;

 

Стандартні функції зі значеннями логічного типу подано у таблиці 2.1.

Функція Значення функції
Odd(x) Результат дорівнює True, якщо аргумент х - непарне число, і False— у противному разі; тип х повинен бути цілим
Eoln(f) Результат дорівнює True, якщо при читанні текстового файлу Jдосягнуто кінця поточного рядка, і False- у противному разі
ЕоВД Результат дорівнює True, якщо при читанні текстового файлу / досягнуто його кінця, і False- у противному разі

Найпростішими логічними виразами є відношення (порівняння).

2.2.1 Операції відношення

Операції відношення використовуються для порівняння двох виразів. Вони повертають значення true(істина), якщо вказані відношення виконуються і false(хибність) - в іншому разі. Операції відношення подано в табл. 2.2.

Таблиця 2.2 Операції відношення

Позначення Операція Тип оператора Приклад
    = Дорівнює Прості, множини, покажчики, класи, посилання класів, ін­терфейс, упаковані рядки і=а 5=5 -»true 6=7 ->false
  о Не дорівнює Прості, множини, покажчик, класи, посилання класів, інтерфейс, рядки, упаковані рядки х<>у 6<>7 -»true 5<>5 -» false
  < Менше Прості, рядки, упаковані ряд-ки, рСЬаг a<b
  > Більше Прості, рядки, упаковані ряд-ки, рСЬаг b>x
  <= Менше або дорівнює Прості, множини, рядки, упаковані рядки, рСЬаг шах<=у
  >= Більше або дорівнює Прості, множини, рядки, упаковані рядки, рСЬаг s>=min 7>=5 —> true 5 >=5 —> true 3>=5 -» false

 

Тип результату у всіх випадках Boolean(логічний).

Операнди повинні мати сумісні типи, за винятком типів realта integer, які можуть порівнюватись один з одним. Рядки порівнюють за розширеними кодами множини символів ANSI.

Символьний тип трактують як рядки одиничної довжини. Упаковані рядки можна порівнювати лише за однакової кількості символів. Якщо упакований рядок з п символів порівнюють з типом string, то він трактується як рядок з довжиною п. Операції <, >, <= й >= можна застосувати до операндівPchar, тільки якщо обидва вказівники вказують на один й той самий масив символів.

Приклади відношень та їх результатів подано в табл. 2.3.

Таблиця 2.3 - Приклади результатів відношень

Вираз Результат
у=3 false
false<>true true
‘abc’<’abd’ true
‘abc’>’a’ true

 

2.2.2 Бупеві операції

У булевих операціях використовують операндибулевих типів і повертають результат булевого типу - Boolean(табл. 2.4):

Таблиця 2.4 – Булевы операції

Позначен­ня операцій Математичний запис Операція Тип операндів Приклад
not —і Заперечення (логічне “НІ”) Boolean not a
and л Логічне “І” Boolean у and (x>0)
or V Логічне “АБО” Boolean a or b
xor   Логічне виключне “АБО” Boolean a xorb

 

Компілятор Delphiпідтримує два режими розрахунків операцій ANDі OR: повний і скорочений. У повному режимі усі логічні вирази обчислюють до кінця, навіть якщо після розрахунків першого операнда результат визначено. У скороченому режимі розрахунок переривається, як тільки результат дорівнюватиме True. Тобто, якщо перший операнд дорівнює Trueі результатвизначено, то в скороченому режимі розрахунок перерветься без обчислень другого операнда. Операція компілятора {$В-}, що працює без додаткових вказівок, забезпечує скорочений режим розрахунків, а операція {$В+}-повний. Режим повних розрахунків можна також установити опцією CompileBooleanEvaluationу вікні компілятора.

 

2.2.3 Лорозрядні (побітові) булеві й сдвигові операції

Логічні порозрядні операції оперують з двійковими представленнями цілих чисел, тобто працюють із двійковими розрядами операндів (табл.2.5):

Таблиця 2.5 - Лорозрядні (побітові) булеві й сдвигові операції

Позначення операції Операція Тип операндів Тип результату Приклад
  not Порозрядні операції “НІ” Цілий Цілий not X
  and Порозрядне ИГ>9 Цілий Цілий х and у
  or Порозрядне “АБО” Цілий Цілий х or у
  хог Порозрядне виняткове “АБО” Цілий Цілий х хог у
  shl Порозрядний зсув вліво Цілий Цілий х shl2
  shr Порозрядний зсув вправо Цілий Цілий у shlі

 

Наприклад, X 001101

Y100001

X or Y101101

X and Y 000001

При порозряднихопераціях чинні є такі правила. Результат, що визначає not, має той самий тин, що й її операнд. Результат операцій and, or, хог мас цілий найменший тип, що включає всі значення типів обох операндів. Вирази х shlу і х shrу зміщують значення х вліво і вправо на у бітів. Це еквівалентне помноженню * на 2у. результат має той самий тип що і х.

Розглянемо приклади. Якщо операнди А і В будуть мати тип Byte, то виконання операцій при А=11, У=2 дає результати, подані в таблиці 2.6.

Таблиця 2.6 Десяткові та двійкові значення логічних операцій

Операції Десяткові значення Двійкові значення
ОперандА
ОперандВ
Not А
A and В
A or В
А хог В
A shl В
A shr В

 

Результати логічних операцій, що використовують до операндів цілого типу (порозрядно 1,0) і логічного типів (true, false), подано в таблиці 2.7.

 

Таблиця 2.7 - Результати операцій над даними цілого та логічного типу

Операнд 1 Операнд 2 NOT AND OR XOR
1, true - false
0, false - true »
0, false 0, false true 0, false 0, false 0, false
0, false 1, true true 0, false 1, true 1, true
1, true 0, false false 0, false 1, true 1, true
1 ,true 1 ,true false 1, true 1, true 0, false

 

На рисунку 2.1 зображено логічні блоки у відповідності з міжнародними стандартами.

 

а a+bсхема «АБО», що реалізує операцію логічного додавання

в

 

&
а a*bсхема «І», що реалізує операцію логічного множення

в

 

а aсхема «НІ», що реалізує операцію інверсії

 

 

З логічних блоків складаються складні логічні пристрої. Перед побудовою логічних схем пристроїв логічну функцію мінімізують, тобто приводять до більш простого виду, користуючись співвідношеннями алгебри логіки (булевої алгебри).

Для логічних схем “АБО”, “І” та “НІ” існують технічні схеми, що реалізовують їх на реле, півпровідникових або ферритових елементів. У сучасних комп'ютерів звичайно використовують системи інтегральних елементів, у яких з метою більшої уніфікації в якості базової логічної схеми застосовують одну зі схем: “І”—”НІ” (штрих Шеффера), “АБО”-”НІ” (стрілка Пирса) або “І”-”АБО”-”НІ.

 

2.2.4 Пріоритети й асоціативність операцій

 

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

• За старшинством (пріоритетом) логічні операції поділяють у спосіб, поданий в таблиці 2.8.

 

Таблиця 2.8 - Пріоритети логічних оперaцій

Операція Пріоритет
not Перший
and, shl, shr Другий
or, xor Третій
=,<>,<,>,<=,>=   Четвертий

 

Операції з більш високим пріоритетом виконуються раніш за операції з більш низьким пріоритетом.

Якщо поряд розміщено декілька операцій з однаковими пріоритетами, то послідовність обчислень визначається асоціативно, яка у всіх операцій у ObjectPascalє однакова - зліва направо.

Наприклад: х=уorx=z

У цьому разі послідовність операцій визначають так:

x = (yorx) = z

тому що orмає вищій пріоритет, ніж операція =. Після виконання orоперація = виконається зліва направо.

Порівняно з арифметичними операціями (+, -, *, /, div, mod) операції відношення мають менший пріоритет.

Наприклад, значення відношення 2*5<=17 div3 є false, а відношення 7+3>16-4*3-true.

Слід пам'ятати, що до операндів дійсного типу не варто застосовувати операцію відношення = (дорівнює), тобто ця умова може не виконатись через неточне представлення дійсних чисел у пам'яті комп'ютера та неуникних помилок округлення при обчислюванні виразів. Тому відношення а1=а2 слід замінювати відношенням

abs(al-a2)<eps,

де eps- певна мала величина, котра характеризує похибку округлення.

Дві логічні операції можуть бути записані поряд, якщо другою з них є операція not, наприклад:

хіandnotх2

Логічні операції та операції відношення можуть зустрічатись в одному виразі. Причому відношення, що стоять зліва та справа від знаку логічної операції, має бути взято в дужки, оскільки логічні операції є вищі за пріоритетом.

За допомогою дужок можна змінювати порядок розрахунків. Наприклад, у логічному виразі

1 6 4 2 5 З

(-3>=5) ornot(7<9) and(0<=3)

цифрами зверху показано послідовність виконання операцій: результат виконання операції 1 - False, операції 2 - True, операції 3 - True, операції 4 - False, операції 5 - False, операції 6 - False. Тобто логічний вираз має значення False.

Для деяких типів у Pascalє додаткові операції, що дозволяють формувати складніші умови. Наприклад, для множини визначена операція IN(зарезервоване слово), яка перевіряє, чи входить конкретне значення в множину:

х:=[2,4,6,8,10];

Вираз 2 inх має значення true.

Вираз 5 inх має значення false.

Цей спосіб виконання перевірки більш наглядний. Наприклад, замість .

(і>=1) and(і<=10),

використовуючи операцію in, можна записати

і in[1...10]

Виконуються ці перевірки теж значно ефективніше.

 

Умовний оператор

 

Умовний оператор у Pascalдозволяє виконати один чи два оператора, які входять до нього, залежно від значення логічного виразу.

Оператор має вигляд:

if< логічний вираз >then<оператор1 >else< оператор2>;

де if(якщо), then(то), else(інакше) - службові слова;

операторі, оператор2 - прості чи складені оператори мови.

Оператор if- це єдине речення, тому ані перед then, ані перед elseкрапку з комою ставити не можна. Порядок виконання умовного оператора показано на рис.2.2

 

True(так) False(ні)

Оператор 1
Оператор 2
Оператор 3

 

 


Як видно зі схеми, якщо значення логічного виразу дорівнює true, то виконується операторі, якщо логічний вираз - false, то виконується оператор2(оператор 1 пропускається ). Далі у кожному разі виконується оператор 3, що стоїть за оператором іf Наприклад, фрагмент програми обчислення функції

ІП X, ЯКЩО X > 0 ех, ЯКЩОХ<0

має вигляд

ifх>0 thenу :=ln(x) elseу:=ехр(х);

Тут логічний вираз - відношення х>0, оператор 1 і оператор2 - оператори присвоєння у:=1п(х) і у:=ехр(х).

Існує скорочена конструкція if(без else):

if<логічний вираз>then<оператор1>;

Порядок виконання цього оператора показано на рис. 2.3.

Якщо логічний вираз набирає значення False, то виконується наступний за ifоператор.

У якості операторів можна використовувати складні оператори. Наприклад (фрагмент програми): ifj:=0 then

beginShowMessage(‘Ділення на нуль’);Result:=0;

end// крапка з комою не ставляться !!!

else Result:=I/j;

 

Умова
Оператор 1

 


True(так) False (ні)

 

 

Рисунок 2.3 Схема скороченого оператора умовного переходу

 

Умовні оператори можуть бути необмежено вкладеними один в одного.

В деяких випадках складно розібратися, у якій послідовності виконуються такі вкладені оператори.Наприклад: ifa>bthen

ifа>е thenс:=1 elseс:=2;

Тут важко зрозуміти, в якому разі виконується оператор С:=2,: коли хибна є умова а>b або коли вона є правдива, але хибна є умова а>е.

У таких випадках чинне є правило: elseналежить до найближчого оператора if.

У даному прикладі частина elseс:=2належить до найближчого оператора ifа>е then,а не до оператора ifa>bthen.

Треба намагатися запису ваги подібні вкладені оператори максимально наочно, використовуючи відступи із пропусків, уникати заплутаних складових і великого рівня вкладеності.

Треба намагатися запису ваги подібні вкладені оператори максимально наочно, використовуючи відступи із пропусків, уникати заплутаних складових і великого рівня вкладеності.

Приклад.Обчислити значення функції за формулою:

 

Y =

 

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

Перший варіант:

ifх> 0 then

ifх>= 1 then y:=sqrt (х)/2

else y:=exp(l/3*ln (x))/3 else y:=exp(l/4*ln(abs(x)))/4;

Другий варіант, простіший, може бути виконано за допомогою логічних операцій і послідовності незалежних умовних операторів:

ifx<=0then y:=exp(1.4*ln(abs(x)))/4;

if (x>0) and (x<l) theny:=exp(l ,3*ln(x))/3;

ifx>=ltheny:=sqrt(x)/2;

На відміну від попереднього випадку, тут завдання розв’язано за допомогою трьох умовних операторів, тоді як там використано лише один оператор, але з укладеннями.

Другий варіант е більш переважним з точки зору зручності читання та наочності програми.

 

2. 4 Оператор вибору варіанта

 

Оператор вибору варіанта є узагальненням умовного оператора: він дає можливість виконувати один з деяких операторів в залежності від значення певного виразу, що називається селектором.

У загальному вигляді оператор має вигляд :

case<селектор>of

<список-констант-1> : < оператор 1>;

<список-констант-2> : < оператор 2>;

……………………………………………

<список-констант-№> : < оператор N>;

else< оператор N+l>end;

Тут case(у разі), of(із), end(кінець) - службові слова;

<селектор> — вираз будь-якого скалярного типу, окрім дійсного; відповідно з цим і списки констант не можуть мати дійсний тип;

<оператор> - будь-який оператор мови, зокрема складений;

<список констант> - список відокремлених комами можливих значень селектора. Ці константи повинні мати той самий тип, що і селектор, вони називаються позначками варіантів. Позначка варіантів не описується у розділі Label, на неї не можна посилатися в операторі goto.

Оператор варіанта діє у такий спосіб. Якщо значення селектора дорівнює значенню однієї з констант, то виконується оператор, який помічений цією константою (позначкою). Після цього керування передається за межі оператора варіанта.

Якщо значення селектора не збігається з жодною з констант, то виконується оператор N+l. Else- необов’язкова частина. Якщо вона відсутня і значення селектора не збігається з жодною з позначок, то керування передається за межі оператора. На відміну від оператора if, перед elseнеобхідно ставити “;

Наприклад,

casenomer of

2: y:=g;

4: y:=g*x;

6: y:=g*sqrt (abs(X));

end;

Якщо селектор nomerдорівнюватиме 4, то виконається оператор y:=g*x, і управління буде надано операторові, розміщеному після слова End.

У операторі варіанта в якості константи припускається використання списку констант.

Наприклад,

casesof

‘+’, ‘-‘, ‘*’, ‘/’:p:=1;

'а', ‘b’: р:=2;

‘;’: р:=3;

end;

Змінна sмає бути описана у розділі опису як символьна. Якщо значенням sбуде один із символів‘+’, ‘-‘, ‘*’, ‘/’,то змінна р матиме значення 1. Якщозначенням sбуде символ 'а' або 'b', то р набере значення 2. Якщо sприйме значення ‘;’ то р дорівнюватиме 3.

Тип виразу селектора може бути визначено користувачем.

 

2.5 Приклади розв’язання задач із операторами ifі case

Приклад 1. Визначити приналежність заданого дійсного числа х до одного з двох відрізків: [а,Ь] або [c,d].

Якщо х належить одному з відрізків, то вивести повідомлення “Належить”, у противному разі - “Не належить”.

Пояснення.Виведення у вікно повідомлення реалізовується процедурою ShowMessageабо функцією MessageDlg. Процедура ShowMessageвиводить на екран просте діалогове вікно з текстом повідомлення з однією командною кнопкою ОК. Загальний вигляд процедур ShowMessageтакий:

ShowMessage («Повідомлення»);

Заголовок вікна повідомлення у цьому разі збігається з ім'ям файла проекту.

Функція MessageDlgдозволяє додати повідомлення однієї зі стандартних позначок Windows, наприклад, позначкою “Увага”, а також задати кількість і тип командних кнопок.

Схема алгоритму програми зображена на рис. 2.4.

 

Початок
Введення a, b, c, d, x
Xналежить до [a,b] чи [c,d]
«Не належить»
«Належить»
Кінець

 

 


Ні Так

 

 

Форма проекту з вхідними даними та результатом має вигляд:

 

Текст програми

{Оброблення події натиснення кнопки “Розв’язок" }

Procedure TForml.ButtonlClick(Sender: TObject);

Vara,b,c,d,x:Real;

begin

a:=StrToFloat(Editl .Text);

b:=StrToFloat(Edit2.Text);

c:=StrT oFloat(Edit3 .Text);

d:=StrToFloat(Edit4.Text);

x:=StrT oFloat(Edit5 .Text);

і f (A<=x)And(x<=b)or(c<=x)and(x<=d)

thenShowMessage (' Належить')

elseShowMessage (' He належить');

end;

Приклад 2. Написати програму, котра вводить число з клавіатури й повідомляє парне воно чи непарне.

Пояснення. Перевірку на парність можна виконати двома способами: використовувати стандартну функцію Odd(), яка повертає значення true, якщо її аргумент є непарний, або перевіряти, чи дорівнює остача від ділення числа на 2 (операція mod).

Схема алгоритму програми зображена на рис. 2.5.

Початок
N
N-парне
t ABQABgAIAAAAIQC2gziS/gAAAOEBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10u eG1sUEsBAi0AFAAGAAgAAAAhADj9If/WAAAAlAEAAAsAAAAAAAAAAAAAAAAALwEAAF9yZWxzLy5y ZWxzUEsBAi0AFAAGAAgAAAAhALVvFXjsAQAA6wMAAA4AAAAAAAAAAAAAAAAALgIAAGRycy9lMm9E b2MueG1sUEsBAi0AFAAGAAgAAAAhAKrhNJfgAAAACwEAAA8AAAAAAAAAAAAAAAAARgQAAGRycy9k b3ducmV2LnhtbFBLBQYAAAAABAAEAPMAAABTBQAAAAA= " strokecolor="black [3040]" strokeweight="1pt"/>
«Число парне»
«Число не парне»
Кінець

 

 


Ні Так

 

Рисунок 2.5 - Схема алгоритму

Текст программи:

Program project 1;

{$APPTYPE CONCOLE}

Uses sysutils;

VarN: integer;

Begin

// введення числа

Writeln(‘Введітьчисло’);

Readln(N);

//виведення повідомлення

IfOdd(N) thenWriteln(‘Числонепарне’)

Else Writeln(‘Числопарне’);

Readln

End.

Пояснення. Програму написано в стилі MSDOS. Це консольний додаток. Ззовні він має вигляд програми з текстовим інтерфейсом, але здатні звертатись до більшості функцій Windows.

Для того, щоб створити консольний додаток, треба дати команду FileNew(ФайлСоздать) і у діалоговому вікні NewItens(Створення програми) обрати позначку ConsoleWizard(Майстер консольних додатків).

Система Delphi-5автоматично згенерує в текстовому редакторі код (заготовку додатку).

Program projectl;

{SAPPTYPE CONCOLE}

Uses SysUtils;

Begin

// Insert uses code here;

 

 

{ Тут вставте вихідний текст }

End.

Директива {SAPPTYPECONCOLE}повідомлює, що ця програма є консольний додаток.

За допомогою ключового слова Usesпідключають стандартний модуль SysUtils.

Консольна програма спілкуватись з користувачем за допомогою графічного інтерфейсу не може. Для цього потрібні простіші засоби обміну інформацією з людиною.

У Pascalє дві стандартні процедури Readln(для введення даних) і Writeln(для виведення даних), які можна використовувати в консольних додатках.

Процедура Readlnвиконує введення значення з клавіатури й передання його в змінну. При введенні списку змінних їхні значення треба відокремлювати пропусками. Після закінчення введення необхідно натиснути клавішу Enter. У процедурі Readlnможе не бути жодного параметра. Тоді при її виконанні програма просто очікує натиснення Enter.

Процедури Writeі Writelnслугують для виведення даних. При звертанні до Writeвиведення даних здійснюється у рядок, а при кожному звертанні до Writelnвиведення значень починається з нового рядка.

Якщо Writelnне має параметрів, то відбувається пропускання рядка. Для першого пробного запуску у головний логічний блок програми можна помістити лише один оператор Readln:

Begin

Readln

End

Ця програма просто виведе чорне консольне вікно й закриється, коли буде натиснуто клавішу Enter.

 

Приклад 3. Обчислити значення у для трьох варіантів параметрів:

1) а=-3,7; b=5,6; c=tg|bx|,

2) а=0,81; b=-2,4; c=tg|bx|,

3) а=2,5; b=0,6; c=tg|bx|

за формулами

 

Y=

 

Значення х=0,5 ввести із компонента Edit, результати обчислень вивести в компонент Мето.

Пояснення. Компонент Меmо - це багаторядкове текстове вікно для введення чи виведення значень даних програми. У вікні компонентів Delphiвона має позначення, зображене на рис. 2.6.

 

 

Основні властивості компонента Мето:

· Name- ім’я компонента у программі,

· Lines- вікно для введення чи редагування початкових даних програми,

· ScroIlBars- встановлення у вікні Мето лінійки прокручування. Ця властивість може приймати одне із значень: None, Vertical, Gorizontal, Both(відсутня, вертикальна, горизонтальна, обидві).

Основні методи компонента Мето:

· Clear- очищення вікна Мето,

· Lines.Add(s)- додавання рядка Sу вікно Мето.

 

Текст програми:

{Оброблення події натиснення кнопки "Пуск" }

ProcedureTForml.ButtonlClick(Sender: TObject);

Vara,b,c,d,x,y: real; s:integer; Label 88;

begin

x:= StrToFloat(Editl .Text);

s:=l;

{ Селектор }

88: case s of

1: begin a:=-3.7; b:=5.6; c:=abs(sin(b*x)/cos(b*x)); end;

2: begin a:=0.81; b:=-2.4; c:=abs(sin(b*x)/cos(b*x)); end;

3: begin a:=2.5; b:=0.6; c:=abs(sin(b*x)/cos(b*x)); end;

end;

if x<a then y:=sin(exp(a+c))+sqr(x);

if (x>=a) and (x<b) then y:=exp((l/3)*ln(a+abs(5.3*b)))+c;

if x>=b then y:=sqr(cos(a))+sin(x*x)-b*c;

// виведення результатів у Memo

Memo1.Lines.Add(‘x=’+ FloatToStr(x) + ’ y=’ + FloatToStr(y) +IntToStr(s)+,{i - варіант’);

if s<=3 then goto 88;

end;

 

3.Контрольні запитання

  1. Які програми називаються розгалуженими?
  2. Назвіть оператори, котрі дозволяють змінювати порядок виконання операторів програми.
  3. Запишіть оператор умовного переходу (повна форма), накресліть структурну схему його роботи.
  4. Запишіть оператор умовного переходу (скорочена форма), накресліть структурну схему його роботи.
  5. До складу умовного оператора може входити лише один оператор. Як бути, якщо необхідно використати декілька операторів?
  6. Які можливості має оператор варіанта?
  7. Назвіть правила запису «селектора».
  8. Як «працює» оператор варіанта?
  9. Запишіть загальну форму оператора безумовного переходу. В яких випадках він виконується?
  10. Запишіть фрагмент програми обчислення Z:

Z=

Лабораторне завдання

Скласти структурну схему алгоритму та програму обчислення значень Yдля трьох варіантів значень параметрів за формулами, зазначеними в індивідуальному завданні. Індивідуальне завдання взяти з таблиці 2.9 згідно порядкового номера, прізвища студента в списку групи.

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

 

 

N вар Формули виразів Варіанти параметрів
y= 1.u=Sin x 2.u=Cos x 3.u=tg x
y= 1.a=0.4;b=2.3;z= 2.a=0.2;b=0.8;z= 3.a=0.7;b=2.1;z=0.8
y= 1.b=-1.6; m=0.9;n=-1.4 2.b=4.5;m=-0.5;n=2.2 3.b=-4.5;m=0.5;n=-1.5
y= 1.a=0.2;b=0.5;z= 2.a=0.15;b=0.2z= 3.a=0.9;b=5;z=
y= 1.a=-4.2;b=5.3;c=1.5 2.a=0.35;b=-1.8;c=-1.8 3.a=2.8;b=-0.6;c=2.0
y= 1.a=-5;b=2.5z=Ln 2.a=-3;b=5;z=Ln 3.a=-10;b=3;z=Ln
y= 1.a=3.2;b=-0.7;c=2.2 2.a=10.5;b=-2.5;c=5.6 3.a=5.4;b=3;c=2.6
y= 1.k=3.1;m=5.15n==0.5 2.k=0.78;m=-2.4;n=4.5 3.k=1.1;m=0.95;n=0.41
y= 1.a=-2.2;b=7.2;z= 2.a=-1.5;b=3.2;z= 3.a=-5;b=5.5;z=
y= 1.a=101;b=9;c=1112 2.a=120;b=1005;c=600 3.a=91;b=303;c=712  
y= 1.a=-1b=3.4;z=tgbx 2.a=-3.2;b=5.5;z=tg 3.a=-5.2b=7.2;z=tg
y= 1.k=4;m=-14.7;n=-0.7 2.k=3;m=6.5;n=3.14 3.k=5;m=-11;n=0.45
y= 1.k=1.33;r=0.85;s=3.5 2.k=0.9;r=3.3;s=1.2 3.k=1.57;r=0.75;s=2.15
y= 1.a=0.5;b=4.5;z= 2.a=0.5;b=3.7;z= 3.a=0.5;b=2.7;z=
y= 1.a=3.5;b=-0.73;c=2.5 2.a=15.4;b=-5.6;c=3.5 3.a=5.1;b=4;c=2.7
y= 1.a=0.2;b=0.5z= 2.a=1.2;b=2.5;z= 3.a=0.5;b=1.2;z=
y= 1.a=0.2;b=0.75;z=Lntgbx 2.a=2.4;b=2.4;z=Lntgbx 3.a=5.1;b=6.1;z=Lntgbx
y= 1.a=6;b=3.2;z= 2.a=3;b=6; z= 3.a=2.7;b=1.8; z=  
y= 1.a=2.2;b=2.4;c=Ln 2.a=1.6;b=1.7;c= c=Ln 3.a=1.3;b=4.2;c=Ln
y= 1.a=0.8;b=2.4;f= 2.a=1.2;b=4.2;f= 3.a=3.4;b=8.1;f=
y= 1.a=4.5;b=8.4;z=tgb 2.a=8.2;b=15.2; z=tgb 3.a=1.7;b=0.5; z=tgb  
y= 1.a=0.3;b=0.9;z=Sin 2.a=4.3;b=5.15;z=Sin 3.a=6.5;b=7.5;z=
y= 1.a=1.5;b=6.4;z=Ln 2.a=1.9;b=4.6; z=Ln 3.a=0.6;b=12.4; z=Ln
y= 1.a=3.7;b=8.7;z=tgbx 2.a=9.3;b=10.5;z=tgabx 3.a=2.1;b=5.7;z==tg
y= 1.a=1.5;b=5.7;z=Ln 2.a=3.7;b=8.4; z=Ln 3.a=a=4.4;b=5.6; z=Ln
Обчислити дійсні корені рівняння а +b+c=0. Якщо коренів немає, то повідомити про це: «Коренів немає». 1.a=0.5;b=6;c=-5 2.a=-3;b=0.4;c=10 3.a=2;b=3;c=5
y= 1.a=0.5;b=1.5;p=-4 2.a=-1;b=0.5;p=-4 3.a=-2;b=0;p=-4
Визначити, чи можна побудувати трикутник з наданими сторонами (a,b,c). Якщо не можна –надрукувати 0, інакше – «ТАК, МОЖЛИВО». 1.a=5;b=5;c=10 2.a=10;b=10;c=5 3.a=10;b=5;c=2
Змінній К присвоїти номер чверті плоскості, в якій знаходиться точка з координатами x,y. Координати x,y ввести з дисплею за завданням викладача.
Значення змінних a,b,c поміняти місцями таким чином, щоб було а<b<c. a=-5;b=5;c=2; a=5;b=-5;c=2; a=2;b=5;c=15