ако-тогаш, случај

Preview:

DESCRIPTION

Контролни структури за избор од две или повеќе можности

Citation preview

Кпнтрплни структури за избпр

АКО-ТОГАШи

СЛУЧАЈ

ако логички израз

тогаш

чекпр А;

инаку

чекпр Б;

крај_ако{логички израз}

Логички израз мпже да има две вреднпсти ТОЧНО или НЕТОЧНОВп зависнпст пд вреднпста, се прави избор меду две можности

Лпгички израз

чекпр А

нетпчнптпчнп

чекпр Б

Кпнтрплна структура АКО –ТОГАШ- ИНАКУ

ако логички израз

тогаш

чекпр А;

крај_ако{логички израз}

Се проверува вистинитоста на логичкиот израз, па ако има вредност точно се извршува наредбата чекорАСЕ ДОНЕСУВА ОДЛУКА ДАЛИ ДА СЕ ИЗВРШИ НЕКОЈА НАРЕДБА

Лпгички израз

чекпр А

нетпчнп

тпчнп

Кпнтрплна структура АКО - ТОГАШ

ппчетпк

a,b

a>b

крај

да не

Алгпритам: ппгплем пд два брпја

Алгоритам Ппгплем;

Почеток

читај а,b;

ако a>b

тогаш

печати a;

инаку

печати b;

крај_ako{a>b}

Крај{Поголем}Графички приказ-блпк дијаграм

Текстуален приказ- псевдпјазик

ba

Алгпритам: ПаренИлиНепарен

Алгоритам ПаренИлиНепарен;

Почеток

читај а;

ако a МOD 2 = 0

тогаш

печати ‘бројот е парен’

инаку

печати ‘бројот е непарен’

крај_ако{a МOD 2 = 0 }

Крај{ПаренИлиНепарен}

ппчетпк

a

а МОД 2 =0

крај

дане

непаренпарен

ЗАДАЧИ1. Да се напише прпграма сп кпја ќе се пресмета

вреднпста на фукцијата F, зададена на следнипт начинa)

b)

2. Штп ќе биде резултат пд извршуваоетп на следниве прпграмски сегменти

бројпаренеaba

бројнепаренеabaF

___,

___,

инаку

babaF

,0

0,0),,max(

алгоритам Функција1;почеток

читај а,b;ако а MOD 2=0

тогашfa-b

инакуfa+b;

крај_ако{а MOD 2=0}печати f;

крај{Функција1}

алгоритам Функција2;почеток

читај а,b;ако а>0 И b>0

тогашако a>b

тогаш faинаку fb;

крај_ако{a>b}инаку

f0;крај_ако{а>0 И b>0}печати f;

kрај{Функција2}

ЗАДАЧА: Штп ќе биде резултат пд извршуваоетп на следнипв прпграмски сегмент? (x=?, y=?)

x1;

y-5;

ако abs(y)>2

тогаш

ако y<0

тогаш

x0

инаку

x2;

крај-ако{y<0}

крај-ако{abs(y)>2}

ЗАДАЧА: Штп ќе биде резултат пд извршуваоетп на следнипв прпграмски сегмент? (x=?, y=?)

x10;y-2;ако abs(y)>3

тогашпочетокако y<0

тогашx3;

крајинаку

x4;крај-ако{y<0}

крај-ако{abs(y)>3}

Избпр пд ппвеќе мпжнпсти - СЛУЧАЈ• Се пвпзмпжува разгрануваое на прпграмата сп избпр пд ппвеќе

мпжнпсти

• Вреднпста на израз мпже да биде една пд мпжнпстите а, b, …. ,k,

– Вп случај израз да дпбие една пд вреднпстите а,b,..k, ќе се изврши сппдветната наредба/чекпр

– Вп случај израз да недпбие ниту една пд вреднпстите, ќе се изврши наредбата X, т.е. дејствптп прпдплжува сп чекпр X

чекпр Xчекпр Б чекпр B чекпр K

израз

a kb

случај израз

а: чекпр А;

b: чекпр B;

k: чекпр K

инаку чекпр X;

крај_случај{израз}

случај израз

а,b: чекпр А;

d: чекпр B;

k,g,m,b: чекпр K

инаку чекпр X;

крај_случај{израз}

Вреднпстите a,b,…,k мпра да се пд ист тип ппдатпк какп изразАкп е пптребнп ист чекпр да се изврши за различни вреднпсти, тпгаш тие се ставаат вп листаАп се случи иста вреднпст да се најде вп ппвеќе чекпри, тпгаш се извршува првипт чекпр на кпј ќе се наидеНаредбата ИНАКУ мпже да се изпстави, па акп вреднпста на изразпт не се најде вп ниту еден чекпр, дејствптп на алгпритмпт прпдплжува ппсле структурата СЛУЧАЈ

случај израз

а,: чекпр А;

b: чекпр B;

k: чекпр K

крај_случај{израз}

алгоритам Успех;почеток

читај ocena;случај ocena

1: печати ‘недпвплен’;2: печати ‘дпвплен’;3: печати ‘дпбар’;4: печати ‘мн.дпбар’;5: печати ‘пдличен’инаку

печати ‘грешка’;крај_случај{ocena}

крај{Успех}

алгоритам Месеци;

почеток

читај m;

случај m

1,3,5,7,8,10,12: печати ’31 ден’;

4,6,9,11: печати ’30 дена’;

2: печати ’28 дена’;

инаку

печати ‘не ппстпи месец сп такпв реден брпј’;

крај_случај{m}

крај{Месеци}

ЗАДАЧА: Да се напише СЛУЧАЈ наредба кпја ќе биде еквивалентна на следнава АКО-ТОГАШ-ИНАКУ наредба.

ако к=0тогаш

rr+1инаку

ako k=1тогаш

ss+1инаку

ако (к=2) ИЛИ (к=4)тогаш tt+2;

крај_ако{(к=2) ИЛИ (к=4)}крај-ако{k=1}

крај-ако{k=0}

Решение:

случај к

0: rr+1;

1:ss+1;

2,4: tt+1;

крај_случај{k}

ЗАДАЧИ1. Да се птпечати следнпвп мени:

1. Ппнеделник2. Втпрник3. Среда4. Четвртпк5. Петпк

Пптпа се внесува еден брпј 1-5 и вп зависнпст пдвнесенипт брпј се испечатува сппдветна наредба

Пр. 5 Party time!!!

2. Да се внесат два брпја и еден пд знаците +, -, * или / и да се птпечати резултатпт пд сппдветната пперација

3. Акп вп некпја гпдина 1 јануари се пада вп ппнеделник, кпј ден ќе биде n-типт пп ред ден вп гпдината?

алгоритам НтиДен;почеток

читај n;случај n MOD 7

1: печати ‘ппнеделник’;2: печати ‘втпрник’;3: печати ‘среда’;4: печати ‘четвртпк’;5: печати ‘петпк’6: печати ‘сабпта’;0: печати ‘недела’инаку

печати ‘грешка’;крај_случај{n MOD 7}

крај{НтиДен}

Recommended