You are on page 1of 7

Факултет за електротехника и информациски технологии, Скопје

Институт за компјутерски технологии и инженерство

Писмен испит по
ПРОГРАМИРАЊЕ И АЛГОРИТМИ
Термнин 1 група 1
06.11.2013

1. (30 поени) Да се напише C програма која што во зависност од внесените


временски услови ја печати временската прогноза. Корисникот го внесува
присуството/отсуството на следните временски услови:
1. сонце
2. облаци
3. ветер
4. магла
5. дожд
6. снег
Временската прогноза се дијагностицира на следниот начин:
сончево: секогаш кога има сонце, а при тоа може да има и ветер
умерено облачно: секогаш кога има облаци, а при тоа може да има сонце
или ветер
облачно и врнежливо: секогаш кога има облаци и дожд, а при тоа може да
има и ветер
снежно: секогаш кога има снег и облаци, а при тоа може да има и магла

2. (30 поени) Двајца играчи играат табланет се додека некој од нив не добие 3
партии. Една партија е добиена доколку некој од нив освои повеќе од
половина од вкупните поени. Од еден шпил карти (52 карти), се бројат
вкупно 22 карти и на тоа се додаваат уште 3 карти за играчот кој освоил
поголем вкупен број на карти во тековната партија.
За првиот играч внесувате информација колку вкупно карти освоил во една
партија и колку од нив се бројат (доколку внесете невалидна информација
внесувате пак), а за вториот играч само го пресметувате бројот на вкупни и
преброиви карти (она што останало според дадените информации погоре).
Во зависност од добиените информации за двајцата играчи го одредувате
победникот во тековната парија и откако ќе го добиете вкупниот победник
(првиот кој добил 3 партии) ја прекинувате играта и го печатите неговото
име.

Пример:
Играч 1 Играч 2
Вкупно Преброиви Вкупно Преброиви
карти карти карти карти
Партија 1 33 11 +3 √ 19 11
Партија 2 20 10 32 12 +3 √
Партија 3 40 18 +3 √ 12 4
Партија 4 10 5 42 17 +3 √
Партија 5 15 8 37 14 +3 √
победник
(Бонус 5 поени) Да се реши со посебна функција.

3. (30 поени) Да се напише функција во C програмскиот јазик која како


аргумент добива мала буква. Функцијата треба да ја пресмета сумата на
ASCII кодовите на малите букви почнувајќи од внесената буква, се до

90 мин.
последната буква т.е. ‘z’. Доколку не е внесена мала буква, функцијата да
врати -1.

(10 поени) Да се напише дополнително и рекурзивна верзија на


функцијата.
Институт за компјутерски технологии и инженерство
Писмен испит по
ПРОГРАМИРАЊЕ И АЛГОРИТМИ
Термнин 1 група 2
06.11.2013

1. (30 поени) Да се напише C програма која што му овозможува на


корисникот да внесе две бои, и потоа ја печати новата боја која се добива со
комбинирање на внесените бои. Корисникот ги внесува кодовите на следните
бои:
црна = 1
бела = 2
црвена = 3
жолта = 4
сина = 5
За мешањето на боите важат следните услови:
- црна боја помешана со бела боја дава сива боја, а помешана со било која
друга боја дава црна боја
- бела боја помешана со било која друга боја (освен црна) ја дава таа боја
- црвена боја помешана со жолта дава портокалова боја, а црвена боја
помешана со сина дава виолетова боја
- жолта боја помешана со сина боја дава зелена боја

2. (30 поени) Двајца играчи играат игра со фрлање на две коцки. Секоја
коцка има 6 страни со соодветни вредности: 1,2,...,6. Во една партија секој
од играчите ги фрла двете коцки и го пресметува збирот на добиените
вредности. Ако збирот е 2, 3 или 12, играчот ја губи партијата, ако збирот е
7 или 11, играчот ја добива партијата, додека ако збирот има друга
вредност, играчот продолжува да ги фрла коцките се додека не го добие
истиот збир како претходно (ја добива партијата) или се додека не доибе
збир 7 (ја губи партијата).
Вредностите за паднатите броеви на коцките за двајцата играчи ги
внесувате од тастатура, наизменично за едниот па за другиот. Играта
прекинува кога еден од играчите ќе изгуби или ќе добие три партии. Ако
внесете недозволени вредности, внесувате повторно.

Пример:
Играч 1 Играч 2
Коцка Коцка 2 Резултат Коцка Коцка Резултат
1 1 2
5 6 (5+6=11) 3 4 (3+4=7)
добива добива
1 2 (1+2=3) губи 1 1 (1+1=2) губи
4 4 (4+4=8) пак 3 3 (3+3=6)пакф
6 2 фрла 4 5 рла
(6+2=8) добива 2 4 (4+5=9)пакф
рла
(2+4=6)
добива
3 2 (3+2=5) пак 3 5 (3+5=8)
5 2 фрла 4 3 (4+3=7) губи
(5+2=7) губи
6 6 (6+6=12)губипр / / /
екин
(Бонус 5 поени) Да се реши со посебна функција
3. (30 поени) Да се напише функција која како аргументи добива два знака.
Функцијата како резултат треба да ја врати сумата на ASCII кодовите на
знаците помеѓу првиот и последниот знак (притоа да не се вклучи
последниот знак во сумата). Доколку првиот знак е со помала ASCII
вредност од вториот знак, тогаш функцијата да врати -1.
(10 поени) Да се напише дополнително и рекурзивна верзија на
функцијата.

Институт за компјутерски технологии и инженерство


Писмен испит по
90 мин.
ПРОГРАМИРАЊЕ И АЛГОРИТМИ
Термнин 2 група 1
06.11.2013

1. (30 поени) Во Да се напише C програма која што во зависност од


внесените банкноти и прозводи, кои сака да ги купи корисникот, на излез ги
печати следните информации:
- колку пари треба да додаде корисникот за да ги купи избраните производи,
во случај доколку нема внесено доволно пари
- колку кусур треба да му се врати на корисникот, во случај доколку има
внесено доволно пари (ако нема кусур, да се испечати: Нема кусур!)

Корисникот може да внесе максимум 3 банкноти со вредност од: 10, 50 или


100 денари, а при тоа може да купи најмногу два производа:

Производ Цена Код на производ


Смоки 10 1
Чоколадо 40 2
Кока кола 30 3
Вода 20 4
2. (30 поени) Еден готвач на располагање има 3 полици на кои ги сместува
тукушто испечените пити. На почеток готвачот кажува колкава тежина можат
да поддржат трите полици. Како што ги пече питите, ја внесува тежината на
секоја од нив. Питите ги сместува последователно на трите полици, се додека
има место. Кога веќе не може да сместува повеќе пити, прекинува со печење.
Да се прикаже колку пити успеал да смести на секоја од трите полици и колкава
тежина останала неискористена на секоја од трите полици.
Пример:
Полица 1 (500 Полица2(100 Полица 3
г) 0г) (700 г)
Пита 1 (200 Пита 3 (90 г) Пита 6 (200
г) Пита 4 (300 г)
Пита 2 (220 г) Пита 7 (210
г) Пита 5 (250 г)
г) Пита 8 (220
Пита 6 (330 г)
г)
Вкупно пити 2 4 3
Неискористе 80 г 30 г 70 г
на тежина
(Бонус 5 поени) Да се реши со посебна функција
3. (30 поени) Да се напише функција која како аргумент добива два броја.
Функцијата треба да ги собере двата броеви преку собирање на нивните
цифри кои се наоѓаат на иста позиција во бројот. Доколку збирот на
цифрите на броевите на конкретна позиција надминува 9, тогаш се
пренесува +1 во збирот на следните цифрите на следната позиција.
Пример:
Пренос: 0 1 0 0
Број 1: 1234
Број 2: 5683
Резултат: 6 9 1 7

(10 поени) Да се напише рекурзивна верзија од функцијата

90 мин.
Институт за компјутерски технологии и инженерство
Писмен испит по
ПРОГРАМИРАЊЕ И АЛГОРИТМИ
Термнин 2 група 2
06.11.2013

1. (30 поени) Да се напише C програма која што ќе ја испечати цената на


кафето, кое што сака да го купи корисникот од кафемат. Во програмата се
внесуваат следните три влезови: тип на кафе, информација дали кафето
треба да биде топло или ладно и информација дали кафето треба да биде со
шлаг или без шлаг. Иницијално, цената на кафето е дадена во наредната
табела
Тип на кафе Цена Код на
производ
капучино 40 1
макијато 30 2
нес кафе 50 3
еспресо 20 4

Оваа цена на кафе (од табелата) треба да се зголеми за 10 денари, доколку


се избере топло кафе. На сличен начин, цената на кафето расте за 20 денари,
доколку се избере кафе со шлаг.

2. Во еден трговски центар работат 3 лифтови. Денес во трговскиот центар


има многу гужва и покрај трите лифтови стои редар кој кажува колкава
тежина може да пренесе секој од лифтовите. Луѓето влегуваат еден по еден,
секој кажувајќи ја својата тежина. Откако ќе се наполнат трите лифта,
редарот кажува колку луѓе влегле во секој лифт и уште колку место
останало неискористено во нив.
Пример:
Лифт 1 (300 Лифт 2 (200 Лифт 3 (250
кг) кг) г)
Човек 1 (70 Човек 5 (80 Човек 7 (55
кг) кг) кг)
Човек 2 (90 Човек 6 (70 Човек 8 (100
кг) кг) кг)
Човек 3 (60 Човек 9 (70
кг) кг)
Човек 4 (55
кг)
Вкупно пити 4 2 3
Неискористе 25 кг 50 кг 25 кг
на тежина

4. За (30 поени) Да се напише функција која како аргумент добива два броја.
Функцијата треба да го одземе од првиот број вториот број преку
одземање на цифрите кои се наоѓаат на иста позиција во броевите.
Доколку цифрата на првиот број е помала од цифрата на вториот број,
тогаш се позајмува 1 од левата цифра. Може да се земе дека во броевите
нема нули.
Пример:
Позајмица: 1 0 0 0
Број 1: 5678
Број 2: 2713
Резултат: 2965
(10 поени) Да се напише рекурзивна верзија од функцијата

90 мин.