Основи на програмирање

Size: px
Start display at page:

Download "Основи на програмирање"

Transcription

1 Универзитет Гоце Делчев - Штип Факултет за информатика Д-р Владо Гичев Основи на програмирање ноември 2007 Штип

2 I Програмирање и решавање на проблеми Основни фази во компјутерското програмирање Во денешно време компјутерите се составен дел во сите области на нашето живеење Името компјутер доаѓа од англискиот збор computer и може да се дефинира како: компјутер е електронски уред кој може да се програмира и кој може да процесира, чува и враќа податоци Целта на овој текст е накратко да ги покрие основните концепти на компјутерското програмирање Се поставува прашањето што се подразбира под поимот програмирање Човековото деjcтвување и неговите мисли се поврзани со логички низи од активности кои се вршат свесно или несвесно На пример, кога вртиме страница од книга ние несвесно извршуваме логичка низа од активности: 1 ја подигаме дланката; 2 ја поместуваме раката кон десната страна од книгата; 3 го фаќаме десниот горен агол од листот; 4 го свртуваме листот, така што можеме да читаме на другата страница; 5 ја тргаме раката од книгата Или друг пример Масовното производство се извршува преку операции кои се случуваат по точно определен редослед Од горепосоченото може да дефинираме: - програмирање е процес на планирање и извршување на одредени операции и настани; - компјутерско програмирање е процес на планирање на низа чекори кои компјутерот треба да ги следи; - компјутерска програма е низа од инструкции кои компјутерот треба да ги изврши За да напишеме компјутерска програма, ние мора да поминеме низ три фази кои содржат свои подфази 1 Фаза на решавање на проблемот: - анализа и спецификација или дефинирање на проблемот и разбирање што треба да врши решението; - генерално решение на проблемот (алгоритам), што значи развивање на логичка низа од чекори кои го решаваат проблемот; - верификација која подразбира следење на чекорите од алгоритамот за да се потврди дали решението навистина го решава проблемот 1

3 2 Фаза на имплементација: - конкретно решение (компјутерска програма), што значи преведување на алгоритамот во програмски јазик-кодирање; - тестирање кое се состои од оставање на компјутерот да ги врши инструкциите и да даде резултат Овој резултат се проверува рачно и ако има грешки повторно се анализираaт програмата и алгоритамот да се утврди од каде доаѓаат грешките и се прават корекции Откако програмата е напишана, влегува во третата фаза: одржување 3 Фаза на одржување: - користење на програмата; - одржување, што подразбира модификација на програмата, заради потребa од промени или корекции на грешки кои се појавуваат при неговото користење Горенаведените три фази, заедно го сочинуваат животниот циклус (животниот век) на програмата Во првата фаза, програмерот го анализира проблемот и развива генерално решение (алгоритам) Алгоритам претставува чекор-по-чекор (step-by-step) процедура за решавање на проблемот во конечен број чекори Програмскиот јазик претставува множество од правила, симболи и клучни зборови кои се употребуваат да се конструира компјутерска програма Освен горенаведените три фази, документацијата е важен дел од програмирањето Документацијата вклучува: пишани објаснувања на проблемот што се решава и организација на решението, коментари вметнати во програмата и кориснички прирачници кои објаснуваат како да се употребува програмата Во текот на животниот циклус на програмата, на неа може да работат повеќе луѓе и цел на документацијата е овие програмери да ја разберат вашата програма Значи, документацијата е пишан текст и коментари кои ја прават програмата разбирлива за луѓето што ја употребуваат и модификуваат Информации, податоци и програмски јазици Откако програмата е напишана, на компјутерот тpeбa да му се дадат информации, односно податоци кои се неопходни за да се реши проблемот Информација е кое било сознание кое може да се пренесе На пример, тврдењето квадратот е четириаголник чии страни се еднакви и заемно нормални е информација Податок (data) е информација во форма која компјутерот може да ја употребува На пример, според горенаведеното тврдење и според должината на 2

4 страната на квадратот како податок, компјутерот може да ја определи површината и периметарот на квадратот Порано како податоци во компјутерите најчесто се употребувале броеви и букви Освен овие типови на податоци, модерните компјутери процесираат и звук, слики и сл Секој вид на податок може да биде претставен со комбинација од цифрите 0 и 1 Ова е бинарна форма на претставување на податоците Значи, за разлика од децималниот броен систем (база-10), кој ги вклучува цифрите од 0 до 9 за претставување на броевите, бинарниот броен систем (база-2) ги вклучува цифрите 0 и 1 Зборот bit (binary digit) се однесува на единична цифра 0 или 1 и претставува мерка за информација На пример, од 10 бита можат да бидат претставени 10 2 (1024) различни шеми од 0 и 1 Byte е група од 8 бита со која можат да се претстават 2 8 (256) шеми од 0 и 1 Во компјутерот, секој карактер (на пр А,?, с) обично се претставува со byte Групите од 16, 32 и 64 бита се нарекуваат зборови Бинарниот броен систем, сè уште се употребува за претставување на податоците во компјутерот Шемите на битови кои претставуваат податоци варираат од компјутер до компјутер За среќа, во денешно време податоците се внесуваат во облик на броеви, букви и симболи, кои компјутерот автоматски ги конвертира во бинарна форма Сите податоци во компјутерот, било да се работи за инструкции или чисти податоци, се сместени во меморијата и се претставени во бинарна форма Чистите податоци (броеви, букви и сл) и инструкциите се разликуваат само по начинот на кој компјутерот ги употребува Значи, можно е компјутерот да ги процесира своите инструкции како податоци Единствен програмски јазик кај првобитните компјутери бил тн машински јазик Машинскиот јазик е јазик кој е составен од бинарно кодирани инструкции кои се употребуваат директно од компјутерот Бидејќи различни компјутери употребуваат различни бинарни кодови за секоја инструкција, машинскиот код за еден компјутер е различен од машинскиот код за друг компјутер, иако тие решаваат ист проблем За олеснување на работата на програмерите, подоцна бил развиен assembly јазикот За разлика од машинскиот јазик, инструкциите во assembly јазикот не можат да бидат извршени директно од компјутерот Едно од фундаменталните откритија во компјутерската наука е дека компјутерот може да ги процесира сопствените инструкции во форма на податоци Ова својство се употребува во асемблерот (assemblеr) и компајлерот (compiler) Асемблер (Assembler) е програма која го преведува асембли (assembly) јазикот во машински код Иако напредок во однос на машинскиот јазик, асембли (assembly) јазикот е повторно врзан за инструкциите на конкретниот компјутер Конечно, компјутерските 3

5 научници развија виши програмски јазици кои се полесни за употреба, бидејќи во нив инструкциите се блиски до англискиот јазик Примери за виши програмски јазици се C++, FORTRAN, COBOL, Ada и др За разлика од ниските програмски јазици (машински и assembly) во кои кодирањето зависи од конкретната машина, вишите програмски јазици се портабилни, што значи дека ист код напишан на виш програмски јазик може да се извршува на различни машини Ова е постигнато со стандардизација на вишите програмски јазици Компајлер (Compiler) е програма која го преведува вишиот програмски јазик во машински код Програмата напишана на виш програмски јазик се нарекува изворна програма Компајлерот ги третира инструкциите во програмата (инструкциите за влез на податоци, инструкциите за пресметување, инструкциите за излез и др) како влезни податоци и ја преведува изворната програма во машински јазик, наречена објектна програма (сл1) Значи, објектната програма е верзија на изворна програма во машински јазик I zvor na pr ogr ama Objekt na pr ogr ama Составни делови на компјутерот сл 1 Најголем број од компјутерите имаат шест основни компоненти: мемориска единица, аритметичко-логичка единица, контролна единица, влезни единици, излезни единици, периферни единици за чување на податоци Мемориската единица е внатрешна единица за чување и манипулирање на податоци Таа се состои од мемориски ќелии (мемориски локации) кои имаат свои интерни адреси 4

6 Делот од компјутерот што ги извршува инструкциите е наречен централна процесорска единица (CPU) и таа има две компоненти: аритметичко-логичка единица и контролна единица Аритметичко-логичката единица е компонента на централната процесорска единица која ги извршува аритметичките и логичките операции Контролната единица е компонента на централната процесорска единица која ги контролира акциите на другите компоненти, така што инструкциите (програмата) се извршуваат во точен редослед Влезно-излезните единици се дел од компјутерот кој прифаќа податоци кои треба да се процесираат (влез) и ги прикажуваат резултатите од тоа процесирање (излез) Компјутерите може да имаат повеќе уреди, односно единици прикачени на нив Сите од овие уреди се познати под едно име периферија Такви уреди се: скенери, ЦД-ром, ДВД-ром, модеми, дигитални камери, микрофони, слушалки итн Периферна единица е влезна, излезна или помошна единица за чување податоци која е прикачена на компјутерот Помошна единица за чување податоци (Auxiliary storage device) е единица (уред) која ги чува податоците надвор од главната меморија на компјутерот Физичките компоненти на компјутерот со еден збор се нарекуваат хардвер (hardware) Множеството од програми со кои располага компјутерот се нарекува софтвер (software) Оперативен систем е множество од програми кои ги управуваат сите компјутерски ресурси (текстот е лекториран) II Синтакса и семантика на C++ и процес на програмски развој Елементи на C++ програмите Во претходната поглавје кажавме дека потпрограмите ни овозможуваат одвоено да пишуваме делови од програмa Потпрограмите во C++ јазикот се нарекуваат функции и C++ програмата е збир од една или повеќе функции На пример, ако сакаме програмата да ни пресметува квадрат и куб на одреден природен број, програмата може 5

7 да се состои од три функции (сл21) Една главна функција (main) и две додатни функции: - Ssquare, која ќе пресметува квадрат на дадениот број и - Cube, која ќе пресметува трет степен (куб) на дадениот број сл 21 6

8 Програмскиот код во C++ за пресметување на квадрат и куб од бројот 27 е следниов (сл 22): сл 22 Во секоја од трите функции, инструкциите меѓу левата и десната заграда и го означуваат телото на функцијата Извршувањето на програмата секогаш започнува со првата инструкција во main функцијата Функциите Square и Cube се примери на функции кои враќаат вредност (value-returning functions) Карактеристика на функција која враќа вредност е таа да враќа само една вредност и тоа на местото од каде што е повикана Зборот int на почетокот на првата линија од функцијата Square - int Square (int n) покажува дека функцијата враќа целобројна вредност на местото од каде што се повикува, те Square(27) во функцијата main Главната функција, main, е исто така функција која враќа вредност и тоа 0, ако извршувањето поминало во ред, или друга вредност ако нешто при извршувањето било погрешно Оваа вредност main ја враќа на оперативниот систем 7

9 Синтакса и семантика Програмскиот јазик е множество од правила, симболи и специјални зборови кои се употребуваат при креирањето на програмата Постојат правила за синтаксата (граматика) и семантиката (логика) Синтакса - формални правила кои укажуваат како валидни инструкции се пишуваат во одреден програмски јазик Семантика - множество од правила кои го определуваат значењето (логиката) на инструкциите напишани во програмскиот јазик Идентификатор (име на нешто во програмата) во C++ мора да биде барем буква или долна црта ( _ ) кои можат, но не мораат, да бидат следени од низа букви, долни црти и цифри Следните се валидни програмерски дефинирани идентификатори во C++: suma_na_kvadrati, count, id_broj, PI, totalscore Следните се невалидни програмерски дефинирани идентификатори во C++ : 40_casa името почнува со нумерички карактер, Get Data се јавува недозволен, blank, карактер во името, 20-dena се јавува недозволен, -, карактер во името, cena_vo_$ се јавува недозволен, $, карактер во името, int резервиран збор во C++ Последниот пример е резервиран збор во C++ и програмерот не може да го употребува како име на идентификатор Податоци и типови на податоци Компјутерската програма оперира со податоци кои можат да се чуваат интерно во меморијата, надворешно на диск или лента, или да се внесуваат преку уред (како тастатура, скенер и др) Во C++ секој податок мора да биде од специфичен тип Типот на податокот определува како податокот е претставен во компјутерот и видовите на процесирање кои компјутерот може да ги врши врз него 8

10 Тип на податок Конкретно множество од податочни вредности, заедно со множество од операции на тие вредности Типовите на податоци кои се употребуваат често се дефинирани внатрешно во C++ Примери на овие стандардни (или built-in) типови се int (за целобројни броеви), float (за децимални броеви кои вклучуваат децимална точка) и char (за карактери) Освен овие стандардни типови, C++ им дозволува на програмерите да дефинираат нивни сопствени типови на податоци programmerdefined (или user-defined) типови Тип на податок char претставува стандарден тип на податок и опишува податоци кои се состојат од еден алфанумерички карактер-буква, цифра или специјален симбол: A a 3 $ + - % и др Секој карактер во C++ е ограничен со апострофи На пример, карактерот 3 и интегер бројот 3 се чуваат на различен начин во меморијата на компјутерот Вообичаена операција врз карактери е споредување на два карактера Така A е помало од B, 3 е помало од 8 итн Собирањето на два карактера е можна но невообичаена операција Тип на податок string (стринг) претставува низа од карактери затворени во наводници i На пример, следниве се стрингови во C++: "Problem Solving" "C++" "Programming and " " " Стрингот мора да биде испишан комплетно во една линија На пример, стрингот: овој стринг е невалиден, бидејќи е испишан на повеќе од една линија е невалиден, бидејќи почнува на една линија, а завршува на друга и компајлерот јавува грешка при компилација Наводниците не се дел од стрингот, но служат само да го разграничат стрингот од другите делови на C++ програмата Типот на податок string не е дел од C++ јазикот (не е built-in тип) Тој е програмски дефиниран тип на податок кој е предефиниран во C++ стандардна библиотека, која претставува голема колекција на претходно напишани функции и типови на податоци која секој C++ програмер може да ја користи Вообичаени операции на стрингови се: - определување на должина на стринг; - пребарување на стринг за конкретен карактер; - поврзување на два или повеќе стринга во еден 9

11 Именување на елемeнти: декларации Идентификаторите можат да се употребуваат за именување на константи и променливи Вредностите на константите не можат да се менуваат во текот на извршувањето на програмата, а вредностите на променливите можат Декларација е инструкција во програмата која го поврзува името (идентификаторот) со описот на елементот во C++ програмата Во декларацијата ние го именуваме идентификаторот и опишуваме што тој претставува На пример, декларацијата int count означува дека count е променлива од тип integer Кога се декларира променливата, компајлерот обезбедува нејзина локација во меморијата Значи, декларација е инструкција што го поврзува идентификаторот со константа, променлива, програмерски дефиниран тип на податок или функција, така што програмерот се повикува на тој елемент преку неговото име Декларациите за константи, променливи, програмерски дефинирани типови на податоци и функции се различни во C++ јазикот Променлива се дефинира како локација во меморијата, која се повикува преку идентификатор и која содржи вредност која може да се менува Следната инструкција декларира sredeninicijal да биде променлива од тип char: char sredeninicijal; Во еден ред може да се декларираат повеќе променливи од ист тип На пример: int count, ocena, zbir; што има ист ефект како и следниве три декларации: int count; int ocena; int zbir; Константи се единечните карактери (затворени во апострофи) и стрингови (затворени во наводници) Примери за константи се: A 8 $ Programming and Problem Solving with C++ Во C++ како и во математиката, константата е вредност која не се менува Кога користиме актуелна вредност на константата во програмата, велиме дека користиме литерална вредност или литерал 10

12 Литерална вредност е вредност на константата запишана во програмата Освен како литерал, константата во програмата може да се јави и како именувана (симболична) константа Во овој случај се декларира име на константа и во декларацијата се доделува вредноста Следното се декларации на именувани константи: const string STARS = "********"; const char BLANK = ' '; const string BOOK_TITLE = "Programming and Problem Solving with C++"; const string MESSAGE = "Error condition"; значи Добра програмерска практика е преку коментар да се опише што константата На пример: const float MAX_HOURS =400; // Maksimalen broj na normalni casovi vo nedelata const float OVERTIME =15; // Faktor za prekuvremena rabota Извршни инструкции Доделување Вредноста на променливата може да се постави или промени преку инструкцијата за доделување На пример, инструкцијата lastname = "Lincoln" доделува стринг "Lincoln" на променливата lastname Значи, инструкцијата за доделување е инструкција која ја доделува вредноста на изразот од десната страна, во променливата од левата страна на операторот = Variable = Expression ; Дадени декларации: string firstname; string middlename; string lastname; string title; char middleinitial; char letter; Следниве инструкции на доделување се валидни: firstname = "Abraham" ; middlename = firstname; middlename = "" ; lastname = "Lincoln"; title = "President"; middleinitial = ' '; 11

13 letter = middleinitial; а следниве не се валидни инструкции на доделување: middleinitial = A - стринг не може да се додели во променлива од тип карактер letter = firstname; Стринг не може да се додели во променлива од тип карактер firstname = Thomas; Thomas е недеклариран идентификатор Edison = lastname; Само променлива може да се појави од левата страна на = lastname = ; Изразот од десната страна на = е испуштен Стрингов израз Иако не може да се изврши аритметика на стрингови, типот на податок string (стринг) овозможува специјална операција наречена конкатенација, која како оператор користи + Резултат од конкатенацијата (поврзувањето) е нов string (стриинг) кој се состои од првиот string (стринг) на кој му е прилепен вториот string (стринг) На пример, по дадените инструкции: string booktitle; string phrase1; string phrase2; phrase1 = "Programming and "; phrase2 = "Problem Solving"; можеме да напишеме booktitle = phrasel + phrase2; при што вредноста која ќе се додели на booktitle е "Programming and Problem Solving" Очигледно е дека за конкатенацијата не важи комутативниот закон Така booktitle = phrase2 + phrase1; на booktitle ќе и ја додели вредноста "Problem SolvingPrograniming and " Output (Излез) Инструкцијата cout «"Hello"; на стандардниот излезен уред (обично монитор) ќе ги покаже карактерите Hello Променлива cout е предефинирана во C++ системите да означи output stream (излезен тек) Излезниот тек претставува бескрајна низа од карактери кои одат кон излезниот уред Добиениот излез од следниве две инструкции: cout «"The title is "; 12

14 cout «booktitle + ", 2nd Edition"; е ист со излезот од инструкцијата cout «"The title is " «booktitle + ", 2nd Edition"; Ако вредноста на booktitle е American History и во двата случаи како излез ќе добиеме The title is American History, 2nd Edition Ако во излезот сакаме да го прикажеме карактерот, на пример, ако сакаме излез Al "Butch" Jones тогаш инструкцијата во C++ е: cout «"Al \"Butch\" Jones"; Обично инструкциите за излез се проследени со идентификаторот endl кoj означува крај на линија На пример, излезот од: cout << Univerzitet \ Goce Delcev\ ; cout << Stip ; e Univerzitet Goce Delcev Stip a izlezot od: cout << Univerzitet \ Goce Delcev\ << endl; cout << Stip ; e Univerzitet Goce Delcev Stip Конструкција на програма C++ програмите се состојат од функции, од кои една функција мора да го носи името main Програмата, исто така, може да содржи декларации кои лежат надвор од која било функција Синтактичката шема на програмата и на функција се дадени на сликата што следува 13

15 Сл 23 Како што се гледа од сл23, функцијата се состои од глава (heading) и тело (body) на функцијата Следното е пример на програма со само една функција (main) Програмата започнува со коментар кој објаснува што тој работи Веднаш по коментарот се појавуваат следниве линии: #include <iostream> #include <string> using namespace std; #include линиите му наложуваат на C++ системот да ја вметне во нашата програма содржината на датотеките именувани како iostream и string Првата датотека содржи информации кои & требаат на C++ програмата за да направи излез Втората датотека содржи информации за програмерски дефинираниот тип на податок string (стринг) Потоа доаѓаат декларации на константи по кои следува функцијата main Првата линија во функцијата е heading на функцијата: резервираниот збор int, името на функцијата и потоа загради Телото на функцијата вклучува декларации на две променливи, a потоа следуваат извршни инструкции На крајот, функцијата main враќа 0 на оперативниот систем 14

16 Нешто повеќе за излезот Креирање празни линии Вертикалните празни линии се контролираат со користење на манипулаторот endl во излезната инструкција Видовме дека низа од излезни инструкции продолжува да пишува карактери во иста линија, додека endl не ја прекине линијата На пример, низата од излезни инструкции: cout «"Hi there, " «endl «endl; cout «"Lois Lane" «endl; креира output Hi there Lois Lane Како што се гледа со два endl манипулатори еден по друг, се креира празна линија на излезот Истиот излез ќе се добие со користење на следнава инструкција: cout «"Hi there, " «endl «endl «"Lois Lane" «endl; Вметнување бланко карактери во линијата Хоризонталните празни места во излезот можат да се контролираат со вметнување екстра-бланко карактери На пример, овој излез: 15

17 Може да се постигне преку инструкциите: cout << * * * * * * * * * << endl << endl; cout << * * * * * * * * * * << endl << endl; cout << * * * * * * * * * << endl << endl; За да се појават празните карактери на излезот, тие треба да бидат затворени во наводници На пример, инструкцијата: cout «'*' «' * ' ; дава излез * * додека cout «'*' «<< ' * ' ; дава излез * * III Нумерички типови, изрази и output Преглед на C++ типови на податоци Стандардните или built-in типови на податоци во C++ се организирани во едноставни типови, структуирани типови и адресни типови (сл 3-1 во референца 1) Оваа глава ги разгледува integral и floating типовите на податоци 16

18 Интегрални типови на податоци Типовите на податоци char, short, int и long се познати како интегрални типови (или integer типови), затоа што тие реферираат на integer вредности Во C++ наједноставна форма на integer вредност е низа од една или повеќе цифри: Запирки не се дозволени Минус знакот кој претходи на integer вредност го прави integer-от негативен: Исклучок е специјалниот тип на податоци unsigned int кој прима само позитивни целобројни вредности и нула Овие типови на податоци се чуваат во ќелии во меморијата, при што на следната слика (сл32) е илустрирана должината на ќелијата во зависност од типот на податокот Сл 32 Програмерите скоро секогаш користат декларација int за манипулирање со целобројни вредности Во исклучителни случаи, кога се процесираат многу големи броеви (кои се надвор од рангот на int типот), треба да се користи long декларацијата На некои персонални компјутери рангот на int вредностите е од до Почесто рангот на int вредностите е од до Ако програмата се обиде да пресмета вредност надвор од овој ранг, резултатот е integer overflow Floating-Point типови на податоци Floating-point (или floating) типовите се користат за претставување на децимални (real) броеви Floating-point броевите имаат целоброен дел и децимален дел 17

19 со децимална точка меѓу нив Може да се случи целобројниот или децималниот дел (но не двата) да се испуштени од бројот Еве неколку примери на float типови на податоци: Исто како и интегралните типови (сл5), така и float типовите имаат различна должина Така float е со најмала должина, поголем е double и најголема должина во меморијата зафаќа long double Floating-point вредностите во научна нотација се претставуваат со експонент На пример, наместо да напишеме 3504 x 1012, во C++ ние пишуваме 3504E12 E претставува exponent на база 10 Еве неколку примери на броеви во научна нотација: E E4 7E20 Декларации за нумерички типови На сличен начин како што деклариравме char и string типови, можеме да декларираме нумерички типови Декларација на именувани константи Во случај на декларации на именувани константи, литералите во декларацијата се нумерички наместо стрингови Во следните примери, првите четири се декларации на нумерички константи, а последните два се примери на константи од char и string типови Декларација на променливи Нумеричките променливи се декларираат на ист начин како char и string променливите, освен што користиме имиња на нумерички типови Следниве се валидни декларации на променливи: int radius; // Radius na krug float sum = 0; // Zbir inicijaliziran na 0 float strana; // Strana na kvardat 18

20 int ocena; double alpha; // Ocenka na studentot (od 6 do 10) 99 za kraj // Agol vo radijani Аритметички оператори и изрази Изразите се состојат од константи, променливи и оператори Следните се валидни аритметички изрази: alpha + 2 rate alpha rate alpha * num Основни (built-in) аритметички оператори во C++ се: + унарен плус - унарен минус + собирање - вадење * множење / делење (делење на децимални броеви Резултат: децимален број) (делење на цели броеви Резултат: цел број без остаток) 19

21 % модул (делење на цели броеви Резултат: остатокот од делењето) Унарен оператор Оператор што има само еден операнд Бинарен оператор Оператор што има два операнда Примери на аритметички изрази и нивни вредности: Во горните примери, операндите се литерални вредности Освен литерали, операндите можат да бидат и константи или променливи Примери: Во претпоследниот пример, променливата alpha се јавува од двете страни на инструкцијата за доделување, = Математички оваа равенка нема решение, но во програмирањето ваков вид на доделување се среќава многу често и значи: зголеми ја старата вредност на alpha за 1 и резултатот додели го на новата вредност на alpha Така што, ако alpha било 3, новата вредност на alpha ќе биде 4 20

22 Следува едноставна програма која користи аритметички изрази: Increment и Decrement оператори Освен горенаведените аритметички оператори C++ располага и со increment и decrement оператори: ++ Increment -- Decrement Овие се унарни оператори кои земаат една променлива како операнд Како операнди можат да се јават целобројни или децимални броеви и ефектот е да се додаде 1 на (или одземе 1 од) операндот На пример, ако вредноста на num е 8, инструкцијата num++ ; го зголемува num за 1 и по нејзино извршување вредноста на num е 9 Истиот ефект се постигнува со инструкцијата num = num + 1; но C++ програмерите го преферираат increment операторот ++ и -- операторите можат да бидат употребени или како префикс оператори ++num; 21

23 или postfix оператори num++ ; Двете од овие инструкции имаат ист ефект, те додаваат 1 на num C++ дозволува користење на ++ и -- во средина на поголем израз На пример: alpha = num++ * 3; Во овој случај postfix формата не дава ист резултат со prefix формата Сложени аритметички изрази Тука разгледуваме посложени изрази кои содржат повеќе од еден оператор и изразите кои содржат мешани типови на податоци Правила на приоритет Основните аритметички оператори (унарен +, унарен -, + за собирање, - за одземање, * за множење, / за делење и % за модул) се подредени на ист начин како и математичките оператори во поглед на приоритетите на извршување на операциите Највисок приоритетен степен: унарен + унарен - Среден степен: * / % Најнизок степен: + - Кога аритметичкиот израз има неколку оператори со ист приоритетен степен, извршувањето се врши од лево кон десно Следуваат неколку примери: Имплицитна и експлицитна конверзија на типовите на податоци Integer и floating-point вредностите се чуваат различно во меморијата на компјутерот Што се случува ако во аритметичкиот израз или во инструкцијата за доделување помешаме integer и floating-point вредности? Инструкција на доделување Ако имаме декларации: int someint ; float somefloat; тогаш изгледа дека инструкцијата за доделување somefloat = 12; 22

24 ќе внесе integer вредност 12 во somefloat, но тоа не е точно Компајлерот прво имплицитно (автоматски) го конвертира 12 во 120 и тогаш доделува 120 во somefloat Инструкцијата someint = 48; исто така предизвикува имплицитна конверзија, при што доделува вредност 4 на someint Имплицитната конверзија од float во integer е опасна, бидејќи може да доведе до погрешни резултати кога програмерот не сакајќи доделува float на integer somefloat = 3 * someint + 2; someint = 52 / somefloat - anotherfloat; Програмерот зa да ја нагласи намерата да прави конверзија, треба експлицитно да ја најави конверзијата На пример: somefloat = float(3 * someint + 2); someint = int(52 / somefloat - anotherfloat); Долните две инструкции доведуваат до ист резултат во someint someint = somefloat + 82; someint = int(somefloat + 82) Разликата е во тоа што во втората инструкција се гледа намерата на програмерот, а во првата инструкција не е јасно дали програмерот ја превидел имплицитната конверзија од float во integer Аритметички изрази Имплицитна конверзија се јавува и во изрази кои содржат мешан тип на податоци someint * somefloat 48 + someint - 3 Вакви изрази се нарекуваат изрази од мешан тип Израз од мешан тип е израз кој содржи операнди од различни типови на податоци Кога integer и floating-point вредност се поврзани со оператор, настанува имплицитна конверзија како што следува: 1 integer вредноста привремено се конвертира во floating-point вредност; 2 се извршува операцијата; 3 резултатот е floating-point вредност Повикување на функција и библиотечни функции Функции кои враќаат вредност (Value-Returning Functions) На почетокот од втората глава прикажавме програма која се состои од три функции: main, Square и Cube Да се задржиме на следната инструкција од програмата: 23

25 cout «" and the cube of 27 is " «Cube(27) «endl; Во оваа инструкција main му налага Cube да пресмета куб од 27 и да го врати резултатот назад на main Cube(27) е повик на функција Компјутерот привремено ја остава main функцијата да чека и ја стартува Cube функцијата Кога Cube ја завршува својата работа, компјутерот се враќа на main и продолжува таму каде што застанал Во горниот повик на функцијата, бројот 27 се нарекува аргумент (или актуелен параметар) Аргументот овозможува функцијата која се повикува да работи за различни вредности На пример, може да се напишат инструкции како: cout «Cube (4); cout «Cube(11); Листата на аргументи е начин да функциите комуницираат меѓу себе Некои функции како Square и Cube, имаат само еден аргумент во листата на аргументи Некои функции како main, немаат аргументи, а некои функции имаат два, три или повеќе аргументи во листата, кои се одделени со запирки Функциите кои враќаат вредност се користат во аритметички изрази на сличен начин како што се користат и променливите На пример: someint = Cube(2) * 10; Ова се неколку карактеристики на функциите кои враќаат вредност: Повикот на функцијата се користи во израз Тој не се појавува како издвоена инструкција во програмата Функцијата пресметува вредност која е на располагање за користење во изразот Функцијата враќа точно една вредност (резултат) Ни повеќе ни помалку Аргументот во функцијата не мора да биде литерал Тој може да биде променлива, константа и аритметички израз како: alpha = Cube(int1 * int1 + int2 * int2) ; Аргументот дури може да биде повик на функција На пример: alpha = Cube(Square(int1) + Square(int2)); Библиотечни функции 24

26 Следувaaт мал број на предефинирани функции кои се наоѓаат во некои стандардни библиотеки: Користењето на библиотечни функции е лесно Следувa програмски сегмент кој користи библиотечна функција: Void функции Досега, во оваа глава, разгледувавме само функции кои враќаат вредност Во C++ постојат и функции кои не враќаат вредност или тн void функции На пример: void CalcPay ( ) : CalcPay е пример на функција која не враќа вредност на својот повикувач Таа само извршува некоја акција и завршува Void функција се повикува различно valuereturning функција Повикувањето на void функција е од издвоена stand-alone инструкција 25

27 CalcPay (payrate, hours, wages) ; Значи, можеме да резимираме, Value-returning функција е функција која враќа една и само една вредност на својот повикувач и се повикува од израз Void функција (процедура) е функција која не враќа вредност на својот повикувач и се повикува од издвоена инструкција Форматирање на Output Да се форматира излезот значи да се контролира како тој се појавува на излезниот уред (монитор, принтер или датотека) Досега видовме како се генерираат празни редови и празни места во еден ред За понатамошна контрола на излезот користиме тн манипулатори C++ стандардната библиотека содржи многу манипулатори, но сега ние разгледуваме само пет: endl, setw, fixed, showpoint, and setprecision Манипулаторите endl, fixed и showpoint доажаат со претпроцесор инструкцијата #include <iostream> Другите два манипулатора, setw и setprecision, бараат вклучување на датотеката iomanip во претпроцесорот #include <iomanip>: #include <iostream> #include <iomanip> using namespace std; cout «setw(5) «somelnt; Манипулаторот setw е кратенка од "set width" и овозможува контрола колку позиции на карактери му се доделени на следниот податок што треба да оди на излез Аргументот на setw е integer израз наречен fieldwidth specification Следниот податок ќе биде десно подреден, пополнет со бланко позиции од лево за да се пополни fieldwidth спецификацијата На пример: 26

28 Сетирањето на ширината на полето е еднократна акција, додека следниот податок не отиде на излез По овој излез, ширината на полето се ресетира на 0, што значи прошири го полето само онолку колку што му треба на следниот податок што оди на излез cout «"Hi" «setw(5) «ans «num; полето се ресетира на 0 откако излезе ans Како резултат ние добиваме излез Hi Манипулаторот наречен fixed се користи со цел излезот да се појавува во децимален наместо во научен формат cout «fixed «38 * x; Ако на излез оди цел број, C++ не ја прикажува децималната точка На пример, вредноста 950 се покажува на излезот како 95 Манипулаторот showpoint обезбедува излез на број со децимална точка: cout «showpoint «floatvar; Манипулаторот setprecision го контролира бројот на децимални места на излезот На пример, може да се случи да излез од cout «"Tax is $" «price * 005; биде Tax is $ За да се прикаже бројот со две (заокружени) децимални места, инструкцијата за излез е cout «fixed «setprecision(2) «"Tax is $" «price * 005; Следуваат неколку примери со манипулатори: 27

29 Следната табела дава краток преглед на манипулаторите што ги разгледувавме во оваа глава: 28

30 (лекториран текст) IV Прогрaмски инпут Откако програмaта е напишана, треба да се предвиди на кој начин ќе се внесуваат податоците Лошо решение е ако податоците се директно внесени како литерали во програмата Тогаш за процесирање на различни влезни вредности, треба постојано да се менува програмата Приложување податоци во програмите Една од најголемите предности кај компјутерите е што програмата може да се употребува со различни групи на податоци За да се направи тоа, треба податоците да се чуваат посебно од програмата Тогаш инструкциите во програмата ги копираат вредностите од групата на податоци во променливите на програмата По доделување на вредностите на променливите, програмата може да изврши пресметувања (сл 41 преземена од сл 4-1 во референца 1) сл 41 Процесот на доделување вредности од надворешна група податоци се нарекува input (инпут) Податоците за програмата можaт да дојдат од влезен уред или од датотека која се наоѓа на некој периферен уред (најчесто диск) 29

31 Влезен тек и еxtraction оператор (») Влезниот тек (input stream) може да се сфати како бескрајна низа од карактери кои доаѓаат во програмата од влезниот уред The concept of a stream is fundamental to input and output in C++ За да користиме влезен или излезен тек треба да користиме препроцесорска директива: #include <iostream> Хедер (Header) датотеката iostream содржи дефиниција на два типа на податоци: istream и ostream Ова се типови на податоци кои претставуваат input и output тек респективно Хедер (Header) датотеката, исто така, содржи декларации како istream cin и ostream cout Како што веќе видовме, вредностите се праќаат на излез cout со користење на insertion (вметнувачки) operator («), што значи стави на : cout << 3 * price На сличен начин, влезните податоци се добиваат од cin со користење на extraction операторот (») или доби од : cin>> cost Кога компјутерот ја извршува оваа инструкција, тој го внесува следниот број кој е втипкан на тастатурата (на пример 425) и го чува во променливата cost Еxtraction операторот» има два операнда Од лево е влезниот тек (во наједноставен случај променливата cin) Десниот операнд е променлива во која се внесува влезниот податок Операторот» може да се користи неколку пати во една инструкција за input (внос) На пример, нема разлика меѓу инструкцијата: cin» length» width; и парот на инструкции: cin» length; cin» width; За разлика од податоците специфицирани во излезната инструкција, кои можат да бидат константи, променливи или изрази, податоците специфицирани во влезната инструкција треба да бидат имиња на променливи Кога бара следна влезна вредност во текот, операторот» ги скока (игнорира) тн whitespace карактери Whitespace карактери се бланко и одредени непринтабилни карактери, како на пример карактерот што означува крај на линија 30

32 По игнорирање на whitespace карактерите, операторот» добива податоци од влезниот тек Ако програмaта бара карактер од тип char, влезот застанува штом еден карактер е влезен Ако бараниот тип на податок е int или float, влезот застанува штом се појави несоодветен карактер за овој тип на податок Еве неколку примери: Читачки маркер и карактер за нова линија Секоја влезна линија има невидлив карактер за нова линија (end-of-line карактер) што му кажува на компјутерот каде една линија завршува и следната почнува За да ја најде следната влезна вредност, операторот» ја поминува границата на линијата преку end-of-line карактерот Карактерот за нова линија се генерира со притискање на копчето Return или Enter Исто така, овој карактер се генерира кога програмата користи endl манипулатор во инструкцијата за излез Овој карактер е nonprintable контролен карактер кој системот го препознава како значење за нова линија, без разлика дали се работи за input или output Во C++ програма, на newline 31

33 карактер се реферира со користење на два симбола \n, backslash и n без бланко меѓу нив На пример, карактер за нова линија може да додели на char променлива ch = '\n'; Карактер за нова линија може да се вметне директно во string, како и кој било принтабилен карактер: cout «"Hello\n"; Последната инструкција има ист ефект како инструкцијата: cout «"Hello" «endl; Следуваат неколку примери на програмски инструкции, вредност на променливите по извршена инструкција и позиција на маркерот во влезниот тек, пред и по извршувањето на инструкцијата во програмата Читање на char карактери со get функцијата Како што беше споменато, операторот» игнорира whitespace карактери (како бланко и карактери за нова линија) Да претпоставиме дека chl и ch2 се char променливи и програмaта ја извршува следнава инструкција: cin >> ch1 >> ch2 Ако влезниот тек се состои од R 1 тогаш операторот >> доделува 'R' на chl, го игнорира бланко карактерот и доделува 1' во ch2 Ако сакаме да направиме внос на бланко карактер во променлива од тип char горната инструкција не работи Типот на податок istream обезбедува алтернатива на читање на карактери преку get функцијата, која не ги игнорира whitespace карактерите Бидејќи оваа функција (метод во објектно-ориентираното програмирање) е вградена во типот на податок istream, таа се повикува на различен начин од функциите што ги разгледувавме досега и користи dot нотација Повикувањето на функцијата изгледа вака: cinget(somechar) Забележете дека повикувањето на get функцијата употребува синтакса на повикување на void функција Ефектот од горниот повик е внос на следниот карактер од влезниот тек во променливата која се јавува како аргумент (somechar) Овој карактер може да биде и непринтабилен карактер (на пример, бланко) Аргументот на get функцијата мора да биде променлива Користејќи ја get функцијата, ние сега можеме да ги внесеме сите три карактери од влезната линија: R 1 Ние можеме да користиме три последователни повикувања на get функцијата: cinget(ch1); cinget(ch2); cinget(ch3); или можеме да ги користиме следниве инструкции: cin» ch1; cinget(ch2); 32

34 cin» ch3; Освен get функцијата, влезниот тек има вградено и функција за прескокнување карактери Тоа е функција со два аргументa, која се повикува како во следниот пример: cinignore(200, '\n'); Првиот аргумент е int израз, а вториот char вредност Во овој пример, функцијата му кажува на компјутерот да ги игнорира (скокне) следните 200 input карактери или да ги игнорира карактерите до наоѓањето на карактер за нова линија (newline карактер) Валиден е условот што прв се исполнува Еве неколку примери кои користат char променлива и три int променливи i, j и k: Внос (читање) на string (стринг) податоци За внос на карактери во string (стринг) променлива, повторно може да се користи операторот» Од порано знаеме дека овој оператор ги игнорира whitespace карактерите На пример, ако имаме ваков програмски сегмент: string firstname; string lastname; cin» firstname» lastname; и влезниот тек (stream) изгледа вака: Mary Smith 18 тогаш влезната инструкција во програмскиот сегмент доделува четири карактери Mary во firstname, пет карактери Smith во lastname и го напушта влезниот тек како 18 Ако во стрингот сакаме да имаме празни (бланко) карактери, вносот со овој оператор е неуспешен Тогаш ја користиме функцијата getline Повикот на оваа функција изгледа вака: 33

35 getline(cin, mystring); Повикот на функцијата бара два аргумента Првиот е влезниот тек (овде cin) и вториот аргумент е string променлива Оваа функција не скока whitespace карактери и продолжува додека не го достигне end-of-line карактерот, \n Ова значи дека getline функцијата доделува цела влезна линија на вториот аргумент На пример за следниот сегмент: string inputstr; getline(cin, inputstr); и влезна линија Mary Smith 18 Резултатот од повикот на getline е сите 17 карактери од влезната линија (вклучувајќи и бланко карактери) да се доделуваат на inputstr, а читачкиот маркер се позиционира на следната линија Интерактивен Input/Output Интерактивна програма е програма во којa корисникот директно комуницира со компјутерот Корисникот за да внесе податоци во интерактивна програма, програмерот во својата програма треба да предвиди влезни промптови (input prompts) кои претставуваат пораки кои се јавуваат на мониторот и му појаснуваат на корисникот што треба да внесе Освен влезните промптови, програмерот во својата програма треба да предвиди тн echo printing што претставува прикажување на податоците кои корисникот ги внел, така што корисникот ќе направи контрола на својот внос пред податоците да се процесираат Во следниот програмски сегмент е прикажано правилно користење на промптови и echo printing: 34

36 Неинтерактивен Input/Output Општ пример на неинтерактивен I/O на големи компјутерски системи е batch процесирањето Овој метод е ефективен, кога програмата на внос или излез има голема количина на податоци Кога програмата треба да чита многу податоци, вообичаено е тие податоци да се внесат претходно во датотека на дискот Ова му овозможува на корисникот да нaправи промени или корекции во податоците пред да ja стартува програмата Ако програмата прави излез на голем број податоци, излезот се праќа во датотека или на брз печатар Програмите дизајнирани за неинтерактивен I/O не прикажуваат промптови Датотеки (Files) Датотека е именуван дел од периферниот уред кој чува збир на информации (на пример, програмски код кој е внесен преку едиторот) Информациите во датотеката обично се чуваат на периферен уред, најчесто диск Нашите програми можат да читаат податоци од датотека на ист начин како што читаат податоци од тастатура и можат да го пишуваат излезот во датотека на ист начин како што го пишуваат излезот на монитор Кога се работи за голема количина на влезни податоци, многу е полесно тие да се внесат преку едитор во датотека, отколку да се внесуваат интерактивно преку тастатура Исто така, кога програмата праќа голем број податоци на излез, излезот полесно се анализира кога се впишува во датотека, отколку да се гледа на монитор Користење на датотеки Ако сакаме нашата програма да користи датотеки, треба да направиме четири работи: 1 претпроцесорот треба да вклучи header file fstream; 2 да се декларираат датотечните текови (file streams ) што ќе бидат користени во програмата; 3 да се припреми секоја датотека за читање или впис со користење на вградената функција open; 4 да се специфицира името на датотечниот тек во секоја влезна или излезна инструкција 35

37 Вклучување (Including) на Header датотеката fstream Ова вклучување се постигнува со претпроцесорската директива: #include <fstream> Преку header датотеката fstream, C++ стандардната библиотека дефинира два типа на податоци, ifstream и ofstream (кои означуваат input file stream и output file stream) Сите istream операции за кои зборувавме: extraction операторот (»), get функцијата и ignore функцијата се исто така валидни за ifstream типот Исто така, сите ostream операции: insertion операторот («) и манипулаторите се валидни за ofstream типот Декларирање на датотечните текови (file streams) Во програмата stream се декларираат променливите на ист начин како што се декларира која било променлива Значи, прво се специфицира тип на податок и потоа име на променлива: int somelnt; float somefloat; ifstream infile; оfstream outfile; ifstream indata; ofstream outdata; // Holds map distances in inches // Holds walking distances in miles Забележете дека ifstream типот се однесува само за влезни, а ofstream типот само за излезни датотеки Значи не може да се чита и пишува во иста датотека Oтворање на датотеки Во нашиот пример, ние сакаме да читаме од датотека indata и да запишуваме во датотека outdata Релевантните датотеки се отвораат со следниве инструкции: indata open ("walkdat ); outdataopen("resultsdat"); Двете инструкции се однесуваат на повикувања на функции Во секој повик на функција, аргументот е литерален стринг затворен во наводници 36

38 Функцијата open прво ја поврзува stream променливата која се користи во програмата со физичката датотека на дискот Следната работа што ја прави open е во зависност од тоа дали датотеката е влезна или излезна Ако датотеката е влезна (input), open функцијата го поставува читачкиот маркер на првиот податок во датотеката Ако датотеката е излезна, open функцијата проверува дали датотеката веќе постои Ако датотеката не постои, open креира нова празна датотека, а ако веќе постои, open ја брише нејзината содржина и го поставува маркерот за впишување на почетокот на празната датотека Како вписот напредува, маркерот за пишување додава (допишува) податоци додека не заврши на крајот на датотеката Специфицирање на File Streams во Input/Output инструкциите Како што нагласивме, сите istream операции се исто така валидни за ifstream типот и сите ostream операции се валидни за ofstream типот Така, за да читаме од или впишуваме во датотека, сè што треба да направиме е во нашите влезни и излезни инструкции да ги замениме cin и cout со соодветните file текови (streams) На пример, можеме да ја напишеме следнава инструкција: indata>>distance1>>distance2>>distance3>>distance4>>scale; која му кажува на компјутерот да чита податоци од датотеката indata наместо од cin На сличен начин сите излезни инструкции наместо cout ќе впишуваат во outdata outdata<< Total mileage for the day <<totmiles<< miles << endl; Run-Time внос на име на датотека Aргументот што го употребувавме во open функцијата беше литерален стринг На пример: ifstream infile; infileopen("datafiledat"); Ако сакаме да ја направиме програмата пофлексибилна, име на датотека која постои на дискот можеме да внесеме во време на извршување на програмата (run-time) Општа техника е на корисникот да му се покаже промпт на кој тој ќе го впише името на датотеката Во принцип следниот код треба да го дозволи тоа: ifstream infile; string filename; cout «"Enter the input file name: "; cin» filename; infileopen(filename); // Compile-time error 37

39 Овој код генерира грешка во компилација Проблемот е во тоа што open функцијата не прима аргумент од тип string Функцијата open очекува аргумент од тип C string (така е наречен бидејќи потекнува од C јазикот) За да горниот код работи коректно, стринг променливата треба да се конвертира во C string Типот на податок string располага со value-returning функција по име c_str, која на стринг променлива може да се примени како што следува: filename c_str() Оваа функција враќа C string Примарната намена на c_str функцијата е да им дозволи на програмерите да повикуваат библиотечни функции кои очекуваат C strings како аргументи Користејќи ја c_str функцијата, ние можеме да го кодираме run-tirne влезот на името на датотеката како што следува: ifstream infile; string filename; cout «"Enter the input file name: "; cin» filename; infile open (filename c str ()) ; Пад на влезот Да претпоставиме дека извршуваме програма Програмата нè промптира да внесеме integer, а ние внесуваме некои букви преку тастатура Влезната операција паѓа поради невалидни податоци Во терминологијата на C++ велиме дека cin влегол во fail state Штом текот влезе во fail state секоја понатамошна I/O операција која го користи тој тек е null операција, те нема никаков ефект Но компјутерот не го прекинува извршувањето на програмата, туку ги врши инструкциите со претходните вредности на променливите Најчеста причина за пад на вносот е невалиден внос Честа причина е и непостоење на влезната датотека од која треба да се чита Да претпоставиме дека програмата има int променливи i, j и k, чии моментални вредности се 10, 20 и d 30 соодветно Програмата ги извршува следниве две инструкции: cin>>i>>j>>k; cout<< i: <<i<< j: << k: <<k; Ако на влез имаме: тогаш програмата дава output: i: 1234 j: 20 k: 30 38

40 Да анализираме што се случило Кога почнал да чита, на првиот податок cin влегол во fail state, бидејќи за читање на int тип наишол на До тогаш ја примил само новата вредност на i Откако влегол во fail state, секој обид за внос нема ефект и другите две променливи остануваат со старите вредности 39

41 (лекториран текст) V Услови, логички изрази и контролна структура - селекција Тек на контрола е редоследот по кој компјутерот ги извршува инструкциите во програмата Текот на контролата, нормално, е секвенцијален (сл 51) Тоа значи дека кога една инструкција е завршена, контролата преминува на следната инструкција во програмата сл 51 Кога сакаме текот на контролата да биде несеквенцијален, ние користиме контролни структури кои претставуваат специјални инструкции кои ја предаваат контролата на инструкцијата, поинаква од онаа инструкција која доаѓа следна во програмата Контролна структура е инструкција која се користи да го промени секвенцијалниот тек на контролата Селекција Контролната структура селекција (или разгранување) ја користиме кога сакаме компјутерот да избере меѓу алтернативни акции Правиме тврдење (assertion) кое е или точно (true) или погрешно (false) Ако тврдењето е точно (true), компјутерот извршува една инструкција (statement), ако е погрешно (false), тогаш извршува друга инструкција (сл 52) Способноста на компјутерот да решава проблеми е резултат на неговата способност да прави одлуки и извршува различни низи од инструкции 40

42 сл 52 Услови и логички изрази Поставувањето прашања во C++ се сведува на составување на тврдења кои се точни или погрешни Компјутерот го цени (evaluates) тврдењето да провери дали е точно (true) или погрешно (false) Тип на податок (bool) Во C++ типот на податок bool е built-in и се состои од само две вредности, константите true (точно) и false (погрешно) Клучниот збор bool е кратенка од Boolean и вредностите од овој тип се користат за тестирање на услови во програмата, така што компјутерот може да направи одлука Накратко bool податокот е поврзан со контролната структура - селекција Променливите од типот bool се декларираат како променливите од другите прости типови: bool dataok; //True if the input data is valid bool done; // True if the process is done bool taxable; // True if the item has sales tax Логички изрази Во програмските јазици, тврдењата имаат форма на логички изрази (тн Boolean изрази) Како што аритметичкиот израз е составен од нумерички вредности и операции, логичкиот израз се состои од логички вредности и операции Секој логички израз има една од двете вредности: true или false Ова се неколку примери на логички изрази: - Boolean променлива или константа; - израз по кој следи релационен оператор по кој следи израз; 41

43 - логички израз по кој следи логички оператор по кој следи логички израз Наједноставен логички израз е само променлива или константа од типот bool Променлива од типот bool може да прими само две вредности true или false На пример, ако dataok е декларирана како променлива од типот bool, тогаш dataok = true е валидна инструкција на доделување Релациони оператори Друг начин за доделување вредност на Boolean променлива е таа да се сетира еднаква на резултатот на споредување два израза со релационен оператор Релационите оператори ја тестираат врската меѓу две вредности Во следниот програмски сегмент, lessthan е Boolean променлива, а i и j се int променливи: cin» i» j ; lessthan = (i < j); // Споредува i и j со "помало од" // релационен оператор и доделува //true или false на lessthan Следното се релации кои можеме да ги тестираме во C++: = = Equal to (еднакво на)! = Not equal to (не е еднакво на) > Greater than (поголемо од) < Less than (помало од) >= Greater than or equal to (поголемо од или еднакво на) <= Less than or equal to Израз по кој следува релационен оператор, а по него повторно израз се нарекува релационен израз Резултатот на релационен израз е од типот bool На пример, ако x е 5, а y е 10, сите од следниве изрази имаат вредност true: x!= y y > x x < y y >= x x <= y Освен нумерички вредности, може да се споредуваат и карактери Ако x е 'M' и y е 'R', Вредноста на изразот x < y е true, бидејќи 'M' доаѓа пред 'R' во абецедата и во ASCII (American Standard Code for Information Interchange) множеството на карактери 42

44 Од друга страна, во ASCII големите букви доаѓаат пред малите Така: 'M' < 'R' и m < r имаат вредност true, но 'm' < 'R има вредност false Секогаш треба да се споредуваат податоци од ист тип Кога се споредуваат различни типови на податоци, тоа треба да биде наведено со експлицитна конверзија somefloat >= float(somelnt) Ако се споредуваат bool вредности со нумерички вредности, компјутерот имплицитно ја конвертира вредноста false во 0, и true во 1 Значи, ако boolvar е bool променлива изразот boolvar < 5 добива вредност true, затоа што и 0 и 1 се помали од 5 Следуваат примери: Треба да се внимава како релационен оператор место = =, по грешка не се стави операторот за доделување = Овие два оператора имаат многу различни ефекти во програмата Споредување на стрингови Како операнди на релациониот оператор можат да се јават два стринг објекта (константи или променливи), како: mystring < yourstring или стринг објект и C string: mystring >= "Johnson" Меѓутоа, ако и двата операнда се од тип C string, ќе се добијат неточни резултати Споредувањето на стрингови ја следи редоследната низа во множеството на карактери (на пример ASCII ) Кога компјутерот ја тестира врската меѓу два стринга, тој почнува од првите карактери на стринговите, aко се еднакви, продолжува да ги 43

45 споредува вторите карактери итн Тестирањето завршува кога двата карактерa не се еднакви или кога и крајните карактери се еднакви Ако сите карактери се еднакви, тогаш и стринговите се еднакви, инаку стрингот кај кој карактерот е помал во ASCII е помал стринг На пример: Ако се споредуваат два стринга со различна должина, при што карактерите на пократкиот и подолгиот стринг до крајот на пократкиот стринг се еднакви, тогаш пократкиот стринг се евалуира како помал На пример, за word2 = Small изразот word2 < "Smaller" има вредност true Логички оператори Во математиката, логичките оператори AND, OR и NOT земаат логички изрази како операнди C++ користи специјални симболи за логички оператори: && (за AND), за OR) и! (за NOT) Со комбинирање на релациони оператори со логички оператори, може да се направат посложени тврдења На пример, сакаме да определиме дали резултатот од испит е поголем од 90 и резултатот од колоквиум е поголем од 70 Во C++, ние би го напишале изразот (тврдењето на овој начин): finalscore>90 && midtermscore> 70 Операторите && и секогаш се појавуваат меѓу два изразa, те тие се бинарни оператори Операторот NOT (!) е унарен оператор и тој зема само еден операнд Тој претходи на единичен логички израз и дава спротивен резултат од евалуацијата на изразот Ако (grade == 'A' ) е false, тогаш! (grade == 'A' ) е true Со NOT можеме да го менуваме значењето на тврдењето На пример:!(hours > 40) 44

46 е еквивалентно на hours <= 40 Следниве изрази се еквивалентни (изразите од левата колона со соодветните изрази од десната колона) Забележете го шаблонот: левиот израз е ист со десниот со додаден унарен оператор! како и релациони и логички оператори сменети во спротивни ( = = наместо! = и наместо &&) Логички оператори можат да оперираат на резултати од споредувања Исто така, може да оперираат на променливи од типот bool На пример, наместо евалуирање на сложениот израз: iselector = (age >= 18 && district == 23, може да се користат два меѓурезултата со вклучување на две дополнителни Boolean променливи, isvoter и isconstituent: isvoter = (age >= 18) ; isconstituent = (district == 23); iselector = isvoter && isconstituent Двете табели подолу ги прикажуваат резултатите од применување на операторите: && и врз логички изрази (претставени овде со Boolean променливи x и y) 45

47 Евалуација по скратена постапка Табела 51 Го разгледуваме логичкиот израз: i == 1 && j > 2 Некои програмски јазици користат полна евалуација на логичките изрази Со полната евалуација компјутерот прво ги евалуира двата подизраза (i == 1 и j > 2) пред да оперира со && операторот и да добие краен резултат За разлика од полната, C++ користи скратена (или условна) евалуација на логичките изрази Евалуацијата се врши од лево кон десно и компјутерот престанува да го евалуира изразот штом ја дознае вистинската вредност на целиот израз На пример, AND (&&) операторот запира со евалуација ако првиот израз што го евалуира е false (табела 51) Во последниот пример, ако i = 9 со евалуација на подизразот i = = 1, како false, целиот израз е false При евалуација на израз со OR ( ) оператор, ако вредноста на подизразот е true, јасно е дека целиот израз е true (табела 51) На пример: c <= d e==f Ako c <= d јасно е дека целиот претходен израз е true Приоритет на оператори Во следната листа е прикажан редоследот на приоритети на аритметички релациони и логички оператори 46

48 Како што може да се забележи во листата, унарните оператори имаат највисоко ниво на приоритет и тие оперираат први во изразот Најнизок приоритет има операторот доделување и тој оперира последен Операторите на исто ниво на приоритет се претставени во иста линија и приоритетот кај нив е од лево кон десно Релациони оператори со Floating-Point типови Досега зборувавме само за споредување на int, char и string вредности Тука разгледуваме float променливи Не споредувајте еднаквост на floating-point броеви Поради тоа што мали грешки најверојатно можат да се појават во најмалите (најдесните) децимални места при аритметичко оперирање со децимални броеви, ретко се случува два децимални броја да бидат еднакви На пример, го разгледуваме следниот сегмент кој користи две float променливи именувани оnethird и x: onethird = 10 / 30; x = onethird + onethird + onethird; Во овој момент очекуваме x = 1, односно евалуацијата на x = = 1 да е true Но поради лимитирана машинска прецизност, многу е веројатно дека вредноста на x не е 1, туку некој број како Затоа, тврдењето x = = 1 е false Кога се оперира со = = на децимални броеви, исправно е наместо тврдењето r = = s да се евалуира тврдењето fabs(r - s) <= tol, каде што r и s се кои било floating-point броеви, а tol е толеранција која зависи од природата на проблемот и обично е многу мал floating-point број (на пример, tol = 00001) If Инструкција If инструкцијата е основна контролна структура што овозможува разгранување на текот на контролата Со неа можеме да поставиме прашање и избереме пат на акцијата: ако (if) одреден услов постои тогаш (then) изврши една акција инаку (else) изврши друга акција Во време на извршување на оваа инструкција, компјутерот извршува само една од две акции If-Then-Else форма 47

49 Во C++, If инструкцијата може да се јави во две форми: If-Then-Else форма и If- Then форма Let's look first at the If-Then-Else Here is its syntax template: If инструкција (If-Then-Else форма) if ( Израз ) Statement1A else Statement1B Вредноста на израз е од тип bool Во време на извршувањето (run time), компјутерот го евалуира изразот Ако вредноста е true, компјутерот ја извршува инструкцијата StatementlA Ако вредноста е false, се извршува StatementlB StatementlA често се нарекува then-клаузула; StatementlB, else-клаузула Сликата 5-3 го илустрира текот на контролата на If-Then-Else На сликата, Statement2 е следната инструкција која што следува по целата If инструкција сл 53 If-Then-Else формата не го користи зборот then Значи, then клаузулата (Statement1A) доаѓа веднаш по условот Следниот програмски сегмент прикажува како се пишува If инструкцијата во програмата if (hours <= 400) pay = rate * hours; else pay = rate * (400 + (hours - 400) * 15); cout «pay; 48

50 Од аспект на инструкциите на компјутерот, горниот код вели: Ако часовите се помалку или еднакви на 40, пресметај регуларна плата и печати плата, но ако часовите се повеќе од 40, пресметај регуларна плус прекувремена плата и печати плата Инструкцијата за излез (печатење на монитор) е инструкција која не припаѓа на контролната структура Сликата 5-4 го покажува текот на контролата на оваа If инструкција Сл 54 Следниот програмски сегмент е превенција од делење со 0 if (divisor!= 0) result = dividend / divisor; else cout «"Division by zero is not allowed" «endl; Блокови (композитни инструкции) Во последниот пример, да претпоставиме дека кога именителот е 0 сакаме да направиме две работи: да испечатиме порака за грешка и да доделиме на променливата result вредност 9999 Ни требаат две инструкции во иста гранка, но изгледа дека синтаксата нè лимитира само на една инструкција Ние сакаме низа од инструкции во else-клаузулата За да го постигнеме тоа, низата од инструкции ја затвораме во големи загради и формираме блок (композитна инструкција) 49

51 инструкција 1 инструкција 2 кого компајлерот го третира како една инструкција За нашиот пример: if (divisor!= 0) result = dividend / divisor; еlse cout «"Division by zero is not allowed" «endl; result = 9999; If-Then Форма Некогаш се среќаваме со проблеми во кои ако одреден услов е исполнет треба да извршиме некоја акција, а ако не не треба да извршиме ништо Со други зборови, сакаме компјутерот да ја прескокне низата од инструкции ако одреден услов не е задоволен Ова може да се направи ако ја оставиме else гранката празна: if (a <= b) c = 20; else ; Подобар начин е да го испуштиме else делот Во овој случај ја добиваме If-Then формата на If инструкцијата Синтаксата изгледа вака: If инструкција (If-Then форма) if (Израз) Инструкција 50

52 Сл 55 Следното е пример за If-Then > if (age < 18) cout «"Not an eligible "; cout «"voter" «endl Како што имавме случај со двете гранки на If-Then-Else, и гранката во If-Then може да биде блок На пример, пишуваме програма за пресметување на данок на личен доход Една од линиите на формуларот кажува Извади го износот на линија 23 од износот на линија 17 и внеси го резултатот на линија 24 Ако резултатот е негативен внеси 0 и означи го полето 24А Овде можеме да ја користиме If-Then формата: result = line17 - Iine23; if (result < 00) cout «"Check box 24A" «endl; result = 00; Iine24 = result; Што ќе се случи ако ги испуштиме левата и десна заграда во горниот код? result = line17- Iine23; // Incorrect version if (result < 00) cout «"Check box 24A" «endl; result = 00; Iine24 = result; И покрај индентацијата (вовлекување на инструкциите во then клаузулата,) компајлерот ја зема оваа клаузула како клаузула со една инструкција, бидејќи не е затворена во блокови Ако резултатот е негативен (помал од 0), програмата работи добро Но ако почетниот резултат е позитивен, компјутерот ја скока then клаузулата и продолжува на инструкцијата по If инструкцијата Тоа е инструкцијата за доделување 51

53 која го сетира резултатот на 0 Така резултатот постојано добива вредност 0, без разлика што е неговата пресметана вредност Вгнездени If инструкции Не постојат ограничувања кои инструкции можат да бидат во If структурата, If во If е валидно If во If во If, исто така Кога ставаме If во If, ние креираме вгнездена контролна структура (nested control structure) Главно, секој проблем кој вклучува повеќенасочна гранка multiway branch (повеќе од два алтернативни патишта) може да биде кодиран користејќи вгнездени If инструкции На пример, за да испечатиме име на месец ако е даден неговиот реден број ние треба да користиме низа од невгнездени If инструкции: if (month == 1) cout «"January"; if (month == 2) cout «"February"; if (month == 3) cout «"March"; if (month == 12) cout «"December"; Со ова решение, контролата мора да помине низ целата низа од If инструкции, а исто така повеќе од една алтернатива (повеќе од еден услов) можат да бидат задоволени Со користење на вгнезден If имаме: if (month == 1) cout «"January"; elseif (month ==2) cout «"February"; elseif (month ==3) cout «"March"; elseif (month ==4) // Nested If // Nested If // Nested If Со оваа варијанта, If структурата се прекинува кога условот е задоволен, а со тоа се прифаќа само една алтернатива Припадност на else клаузулата во вгнезденa If структура 52

54 Кога имаме вгнезден If се поставува прашањето на кое If припаѓа else клаузулата На пример, во следниот код: if (average < 700) if (average < 600) cout «"Failing"; else cout «"Passing but marginal"; If се појавува двапати, а else само еднаш Правило е дека кога нема присуство на блок инструкција, else припаѓа на првото претходно if кое не е спарено со else Ако во последниот програмски сегмент сакаме else да се однесува на надворешното if, тогаш надворешната if-then клаузула треба да се претвори во блок: if (average >= 600) // Correct version if (average < 700) cout «"Passing but marginal"; else cout «"Failing"; Овој програмски сегмент семантички е идентичен со претходниот 53

55 VI/ Циклус (Looping) Во претходната глава наведовме дека текот на контрола во програмот може да се разликува од физичкиот редослед на инструкциите Физичкиот редослед е редослед во кој инструкциите се јавуваат во програмот Редоследот во кој ние сакаме инструкциите да се извршуваат се нарекува логички редослед If инструкцијата е еден начин кој го прави логичкиот редослед различен од физичкиот редослед Контролната структура циклус е друг начин Циклусот извршува една или повеќе инструкции повеќе пати, се додека еден или група услови не се исполнети Циклус (Loop) е контролна структура која предизвикува една или група од инструкции да се извршуваат повторливо While инструкција While инструкцијата како и If инструкцијата, тестира услов while ( Expression ) Statement while (inputval!= 25) cin» inputval; While инструкцијата е контролна структура циклус (looping) Инструкцијата што треба да се изврши секој пат при поминувањето на циклусот се вика тело на циклусот Во горниот пример, тело на циклусот е влезната инструкција која чита вредност за inputval While инструкцијата наложува да се извршува читањето на inputval повторно и повторно се додека влезната вредност не е еднаква на 25 Како и во условот на If инструкцијата, условот во While инструкцијата може да биде израз од било кој тип на податок Скоро секогаш условот е логички (Boolean) израз Ако не е, неговата вредност имплицитно се конвертира во тип bool 54

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 3: Input/Output

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 3: Input/Output C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 3: Input/Output Objectives In this chapter, you will: Learn what a stream is and examine input and output streams Explore

More information

C++ Input/Output: Streams

C++ Input/Output: Streams C++ Input/Output: Streams 1 The basic data type for I/O in C++ is the stream. C++ incorporates a complex hierarchy of stream types. The most basic stream types are the standard input/output streams: istream

More information

Melbourne 21st - 30th September. Perth 6th October. Newcastle 6th October. Auckland 13th - 14th October. Sydney 24th - 25th November

Melbourne 21st - 30th September. Perth 6th October. Newcastle 6th October. Auckland 13th - 14th October. Sydney 24th - 25th November MFF2012_A2_poster.indd 2 9/16/2012 9:54:24 PM Australasian premiere of Milcho Manchevski s award winning masterpiece Mothers Melbourne 21st - 30th September Perth 6th October Newcastle 6th October Auckland

More information

Implementation of Supply Chain Management (SCM) in pharmaceutical company, general principles and case study

Implementation of Supply Chain Management (SCM) in pharmaceutical company, general principles and case study Macedonian pharmaceutical bulletin, 60 (2) 75-82 (2014) ISSN 1409-8695 UDC: 658.86/.87:661.12 Case study Implementation of Supply Chain Management (SCM) in pharmaceutical company, general principles and

More information

Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language

Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language Simple C++ Programs Engineering Problem Solving with C++, Etter/Ingber Chapter 2 Simple C++ Programs Program Structure Constants and Variables C++ Operators Standard Input and Output Basic Functions from

More information

Basics of I/O Streams and File I/O

Basics of I/O Streams and File I/O Basics of This is like a cheat sheet for file I/O in C++. It summarizes the steps you must take to do basic I/O to and from files, with only a tiny bit of explanation. It is not a replacement for reading

More information

SEIZURES AFTER USE AND ABUSE OF TRAMADOL. University Toxicology Clinic, Skopje, R. Macedonia 2. University Neurology Clinic, Skopje, R.

SEIZURES AFTER USE AND ABUSE OF TRAMADOL. University Toxicology Clinic, Skopje, R. Macedonia 2. University Neurology Clinic, Skopje, R. Prilozi, Odd. biol. med. nauki, MANU, XXXIII, 1, s. 313 318 (2012) Contributions, Sec. Biol. Med. Sci., MASA, XXXIII, 1, p. 313 318 (2012) ISSN 0351 3254 UDC: 615.212.3.065:616.853 CASE REPORT SEIZURES

More information

Answers to Selected Exercises

Answers to Selected Exercises DalePhatANS_complete 8/18/04 10:30 AM Page 1049 Answers to Selected Exercises Chapter 1 Exam Preparation Exercises 1. a. v, b. i, c. viii, d. iii, e. iv, f. vii, g. vi, h. ii. 2. Analysis and specification,

More information

THREE PERIODS OF HEALTH SYSTEM REFORMS IN THE REPUBLIC OF MACEDONIA (1991 2011)

THREE PERIODS OF HEALTH SYSTEM REFORMS IN THE REPUBLIC OF MACEDONIA (1991 2011) Prilozi, Odd. biol. med. nauki, MANU, XXXIII, 2, s. 175 189 (2012) Contributions, Sec. Biol. Med. Sci., MASA, XXXIII, 2, p. 175 189 (2012) ISSN 0351 3254 UDK: 614.2:005.591.4(497.7)"1991/2011" THREE PERIODS

More information

70 th fiaf Congress 04 th 10 th May 2014. Skopje. Newsletter No.2

70 th fiaf Congress 04 th 10 th May 2014. Skopje. Newsletter No.2 Newsletter No.2 70 th fiaf Congress 04 th 10 th May 2014 Skopje Министерство за култура на Република Македонија Ministry of Culture of the Republic of Macedonia Кинотека на Македонија Cinematheque of Macedonia

More information

EX.VTP.MK.02.01 FAVV-AFSCA 1/5

EX.VTP.MK.02.01 FAVV-AFSCA 1/5 ВЕТЕРИНАРНО ЗДРАВСТВЕН СЕРТИФИКАТ ЗА МЕСО ОД ЖИВИНА ЗА УВОЗ ВО РЕПУБЛИКА МАКЕДОНИЈА Health Certificate for meat of poultry (POU) for dispatch to the Republic of Macedonia Certificat sanitaire pour les

More information

Member Functions of the istream Class

Member Functions of the istream Class Member Functions of the istream Class The extraction operator is of limited use because it always uses whitespace to delimit its reads of the input stream. It cannot be used to read those whitespace characters,

More information

Parte I: Informazioni sulla partita spedita /Дел I: Детали за испратената пратка

Parte I: Informazioni sulla partita spedita /Дел I: Детали за испратената пратка CERTIFICATO VETERINARIO ВЕТЕРИНАРНО ЗДРАВСТВЕН СЕРТИФИКАТ Health Certificate MP-PR/ MP-PR per i prodotti a base di carne e stomaci, vesciche ed intestini trattati destinati all esportazione verso la Repubblica

More information

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement? 1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members

More information

Lab 2 - CMPS 1043, Computer Science I Introduction to File Input/Output (I/O) Projects and Solutions (C++)

Lab 2 - CMPS 1043, Computer Science I Introduction to File Input/Output (I/O) Projects and Solutions (C++) Lab 2 - CMPS 1043, Computer Science I Introduction to File Input/Output (I/O) Projects and Solutions (C++) (Revised from http://msdn.microsoft.com/en-us/library/bb384842.aspx) * Keep this information to

More information

7.7 Case Study: Calculating Depreciation

7.7 Case Study: Calculating Depreciation 7.7 Case Study: Calculating Depreciation 1 7.7 Case Study: Calculating Depreciation PROBLEM Depreciation is a decrease in the value over time of some asset due to wear and tear, decay, declining price,

More information

Ubuntu. Ubuntu. C++ Overview. Ubuntu. History of C++ Major Features of C++

Ubuntu. Ubuntu. C++ Overview. Ubuntu. History of C++ Major Features of C++ Ubuntu You will develop your course projects in C++ under Ubuntu Linux. If your home computer or laptop is running under Windows, an easy and painless way of installing Ubuntu is Wubi: http://www.ubuntu.com/download/desktop/windowsinstaller

More information

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program. Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to

More information

The University of Alabama in Huntsville Electrical and Computer Engineering CPE 112 01 Test #4 November 20, 2002. True or False (2 points each)

The University of Alabama in Huntsville Electrical and Computer Engineering CPE 112 01 Test #4 November 20, 2002. True or False (2 points each) True or False (2 points each) The University of Alabama in Huntsville Electrical and Computer Engineering CPE 112 01 Test #4 November 20, 2002 1. Using global variables is better style than using local

More information

Passing 1D arrays to functions.

Passing 1D arrays to functions. Passing 1D arrays to functions. In C++ arrays can only be reference parameters. It is not possible to pass an array by value. Therefore, the ampersand (&) is omitted. What is actually passed to the function,

More information

Appendix K Introduction to Microsoft Visual C++ 6.0

Appendix K Introduction to Microsoft Visual C++ 6.0 Appendix K Introduction to Microsoft Visual C++ 6.0 This appendix serves as a quick reference for performing the following operations using the Microsoft Visual C++ integrated development environment (IDE):

More information

LEAD DISTRIBUTION IN SOIL DUE TO LITHOGENIC AND ANTHROPOGENIC FACTORS IN THE BREGALNICA RIVER BASIN

LEAD DISTRIBUTION IN SOIL DUE TO LITHOGENIC AND ANTHROPOGENIC FACTORS IN THE BREGALNICA RIVER BASIN 289 Geologica Macedonica, Vol. 29, No. 1, pp. 53 61 (2015) GEOME 2 In print: ISSN 0352 1206 Manuscript received: Април 1, 2015 On line: ISSN 1857 8586 Accepted: Април 30, 2015 UDC: 504.3:622.343.445(497.73)

More information

C++ Language Tutorial

C++ Language Tutorial cplusplus.com C++ Language Tutorial Written by: Juan Soulié Last revision: June, 2007 Available online at: http://www.cplusplus.com/doc/tutorial/ The online version is constantly revised and may contain

More information

Cloud Computing and Mobile Web Applications (120 ЕCTS)

Cloud Computing and Mobile Web Applications (120 ЕCTS) Study program Faculty Cycle Cloud Computing and Mobile Web Applications (120 ЕCTS) Contemporary Sciences and Technologies Postgraduate ECTS 120 Offered in Skopje Description of the program The study program

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from

More information

Fondamenti di C++ - Cay Horstmann 1

Fondamenti di C++ - Cay Horstmann 1 Fondamenti di C++ - Cay Horstmann 1 Review Exercises R10.1 Line 2: Can't assign int to int* Line 4: Can't assign Employee* to Employee Line 6: Can't apply -> to object Line 7: Can't delete object Line

More information

A brief introduction to C++ and Interfacing with Excel

A brief introduction to C++ and Interfacing with Excel A brief introduction to C++ and Interfacing with Excel ANDREW L. HAZEL School of Mathematics, The University of Manchester Oxford Road, Manchester, M13 9PL, UK CONTENTS 1 Contents 1 Introduction 3 1.1

More information

Formatting Numbers with C++ Output Streams

Formatting Numbers with C++ Output Streams Formatting Numbers with C++ Output Streams David Kieras, EECS Dept., Univ. of Michigan Revised for EECS 381, Winter 2004. Using the output operator with C++ streams is generally easy as pie, with the only

More information

An Incomplete C++ Primer. University of Wyoming MA 5310

An Incomplete C++ Primer. University of Wyoming MA 5310 An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages

More information

Chapter One Introduction to Programming

Chapter One Introduction to Programming Chapter One Introduction to Programming 1-1 Algorithm and Flowchart Algorithm is a step-by-step procedure for calculation. More precisely, algorithm is an effective method expressed as a finite list of

More information

Pemrograman Dasar. Basic Elements Of Java

Pemrograman Dasar. Basic Elements Of Java Pemrograman Dasar Basic Elements Of Java Compiling and Running a Java Application 2 Portable Java Application 3 Java Platform Platform: hardware or software environment in which a program runs. Oracle

More information

1. The First Visual C++ Program

1. The First Visual C++ Program 1. The First Visual C++ Program Application and name it as HelloWorld, and unselect the Create directory for solution. Press [OK] button to confirm. 2. Select Application Setting in the Win32 Application

More information

El Dorado Union High School District Educational Services

El Dorado Union High School District Educational Services El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.

More information

The C++ Language. Loops. ! Recall that a loop is another of the four basic programming language structures

The C++ Language. Loops. ! Recall that a loop is another of the four basic programming language structures The C++ Language Loops Loops! Recall that a loop is another of the four basic programming language structures Repeat statements until some condition is false. Condition False True Statement1 2 1 Loops

More information

Answers to Review Questions Chapter 7

Answers to Review Questions Chapter 7 Answers to Review Questions Chapter 7 1. The size declarator is used in a definition of an array to indicate the number of elements the array will have. A subscript is used to access a specific element

More information

The little endl that couldn t

The little endl that couldn t This is a pre-publication draft of the column I wrote for the November- December 1995 issue of the C++ Report. Pre-publication means this is what I sent to the Report, but it may not be exactly the same

More information

Object-Oriented Programming in Java

Object-Oriented Programming in Java CSCI/CMPE 3326 Object-Oriented Programming in Java Class, object, member field and method, final constant, format specifier, file I/O Dongchul Kim Department of Computer Science University of Texas Rio

More information

C++ Essentials. Sharam Hekmat PragSoft Corporation www.pragsoft.com

C++ Essentials. Sharam Hekmat PragSoft Corporation www.pragsoft.com C++ Essentials Sharam Hekmat PragSoft Corporation www.pragsoft.com Contents Contents Preface 1. Preliminaries 1 A Simple C++ Program 2 Compiling a Simple C++ Program 3 How C++ Compilation Works 4 Variables

More information

C++ Outline. cout << "Enter two integers: "; int x, y; cin >> x >> y; cout << "The sum is: " << x + y << \n ;

C++ Outline. cout << Enter two integers: ; int x, y; cin >> x >> y; cout << The sum is:  << x + y << \n ; C++ Outline Notes taken from: - Drake, Caleb. EECS 370 Course Notes, University of Illinois Chicago, Spring 97. Chapters 9, 10, 11, 13.1 & 13.2 - Horstman, Cay S. Mastering Object-Oriented Design in C++.

More information

While Loop. 6. Iteration

While Loop. 6. Iteration While Loop 1 Loop - a control structure that causes a set of statements to be executed repeatedly, (reiterated). While statement - most versatile type of loop in C++ false while boolean expression true

More information

THE POSSIBILITY OF EDUCATION ABOUT RELIGIOUS CULTURE IN PUBLIC SCHOOLS

THE POSSIBILITY OF EDUCATION ABOUT RELIGIOUS CULTURE IN PUBLIC SCHOOLS Originalni naučni rad Inoue Nobutaka 1 UDK: 37.032:2(520) THE POSSIBILITY OF EDUCATION ABOUT RELIGIOUS CULTURE IN PUBLIC SCHOOLS I Recent Argument on Religious Education in Japan Arguments on religious

More information

Sequential Program Execution

Sequential Program Execution Sequential Program Execution Quick Start Compile step once always g++ -o Realtor1 Realtor1.cpp mkdir labs cd labs Execute step mkdir 1 Realtor1 cd 1 cp../0/realtor.cpp Realtor1.cpp Submit step cp /samples/csc/155/labs/1/*.

More information

Comp151. Definitions & Declarations

Comp151. Definitions & Declarations Comp151 Definitions & Declarations Example: Definition /* reverse_printcpp */ #include #include using namespace std; int global_var = 23; // global variable definition void reverse_print(const

More information

CpSc212 Goddard Notes Chapter 6. Yet More on Classes. We discuss the problems of comparing, copying, passing, outputting, and destructing

CpSc212 Goddard Notes Chapter 6. Yet More on Classes. We discuss the problems of comparing, copying, passing, outputting, and destructing CpSc212 Goddard Notes Chapter 6 Yet More on Classes We discuss the problems of comparing, copying, passing, outputting, and destructing objects. 6.1 Object Storage, Allocation and Destructors Some objects

More information

! " # $ %& %' ( ) ) *%%+, -..*/ *%%+ - 0 ) 1 2 1

!  # $ %& %' ( ) ) *%%+, -..*/ *%%+ - 0 ) 1 2 1 !" #$%&%'())*%%+,-..*/*%%+- 0 )12 1 *!" 34 5 6 * #& ) 7 8 5)# 97&)8 5)# 9 : & ; < 5 11 8 1 5)=19 7 19 : 0 5)=1 ) & & >) ) >) 1? 5)= 19 7 19 : # )! #"&@)1 # )? 1 1#& 5)=19719:# 1 5)=9 7 9 : 11 0 #) 5 A

More information

Integrating the C++ Standard Template Library Into the Undergraduate Computer Science Curriculum

Integrating the C++ Standard Template Library Into the Undergraduate Computer Science Curriculum Integrating the C++ Standard Template Library Into the Undergraduate Computer Science Curriculum James P. Kelsh James.Kelsh@cmich.edu Roger Y. Lee lee@cps.cmich.edu Department of Computer Science Central

More information

What is a Loop? Pretest Loops in C++ Types of Loop Testing. Count-controlled loops. Loops can be...

What is a Loop? Pretest Loops in C++ Types of Loop Testing. Count-controlled loops. Loops can be... What is a Loop? CSC Intermediate Programming Looping A loop is a repetition control structure It causes a single statement or a group of statements to be executed repeatedly It uses a condition to control

More information

Chapter 9 Text Files User Defined Data Types User Defined Header Files

Chapter 9 Text Files User Defined Data Types User Defined Header Files Chapter 9 Text Files User Defined Data Types User Defined Header Files 9-1 Using Text Files in Your C++ Programs 1. A text file is a file containing data you wish to use in your program. A text file does

More information

Lecture 3. Arrays. Name of array. c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] c[8] c[9] c[10] c[11] Position number of the element within array c

Lecture 3. Arrays. Name of array. c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] c[8] c[9] c[10] c[11] Position number of the element within array c Lecture 3 Data structures arrays structs C strings: array of chars Arrays as parameters to functions Multiple subscripted arrays Structs as parameters to functions Default arguments Inline functions Redirection

More information

COSC 181 Foundations of Computer Programming. Class 6

COSC 181 Foundations of Computer Programming. Class 6 COSC 181 Foundations of Computer Programming Class 6 Defining the GradeBook Class Line 9 17 //GradeBook class definition class GradeBook { public: //function that displays a message void displaymessage()

More information

Flow-Based Anomaly Intrusion Detection System Using Two Neural Network Stages

Flow-Based Anomaly Intrusion Detection System Using Two Neural Network Stages UNIVERSITY OF BELGRADE FACULTY OF ELECTRICAL ENGINEERING Yousef H. Abuadlla Flow-Based Anomaly Intrusion Detection System Using Two Neural Network Stages Doctoral Dissertation Belgrade, 2014 UNIVERZITET

More information

The Payroll Program. Payroll

The Payroll Program. Payroll The Program 1 The following example is a simple payroll program that illustrates most of the core elements of the C++ language covered in sections 3 through 6 of the course notes. During the term, a formal

More information

On Supervised and Unsupervised Discretization 1

On Supervised and Unsupervised Discretization 1 БЪЛГАРСКА АКАДЕМИЯ НА НАУКИТЕ. BULGARIAN ACADEMY OF SCIENCES КИБЕРНЕТИКА И ИНФОРМАЦИОННИ ТЕХНОЛОГИИ Том 2, 2 CYBERNETICS AND INFORMATION TECHNOLOGIES Volume 2, No 2 София. 2002. Sofia On Supervised and

More information

Chapter 2: Elements of Java

Chapter 2: Elements of Java Chapter 2: Elements of Java Basic components of a Java program Primitive data types Arithmetic expressions Type casting. The String type (introduction) Basic I/O statements Importing packages. 1 Introduction

More information

Using C++ File Streams

Using C++ File Streams Using C++ File Streams David Kieras, EECS Dept., Univ. of Michigan Revised for EECS 381, 9/20/2012 File streams are a lot like cin and cout In Standard C++, you can do I/O to and from disk files very much

More information

Appendix M: Introduction to Microsoft Visual C++ 2010 Express Edition

Appendix M: Introduction to Microsoft Visual C++ 2010 Express Edition Appendix M: Introduction to Microsoft Visual C++ 2010 Express Edition This book may be ordered from Addison-Wesley in a value pack that includes Microsoft Visual C++ 2010 Express Edition. Visual C++ 2010

More information

Scanner sc = new Scanner(System.in); // scanner for the keyboard. Scanner sc = new Scanner(System.in); // scanner for the keyboard

Scanner sc = new Scanner(System.in); // scanner for the keyboard. Scanner sc = new Scanner(System.in); // scanner for the keyboard INPUT & OUTPUT I/O Example Using keyboard input for characters import java.util.scanner; class Echo{ public static void main (String[] args) { Scanner sc = new Scanner(System.in); // scanner for the keyboard

More information

Computer Programming C++ Classes and Objects 15 th Lecture

Computer Programming C++ Classes and Objects 15 th Lecture Computer Programming C++ Classes and Objects 15 th Lecture 엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University Copyrights 2013 Eom, Hyeonsang All Rights Reserved Outline

More information

Subject Name: Object Oriented Programming in C++ Subject Code: 2140705

Subject Name: Object Oriented Programming in C++ Subject Code: 2140705 Faculties: L.J. Institute of Engineering & Technology Semester: IV (2016) Subject Name: Object Oriented Programming in C++ Subject Code: 21405 Sr No UNIT - 1 : CONCEPTS OF OOCP Topics -Introduction OOCP,

More information

Learning Computer Programming using e-learning as a tool. A Thesis. Submitted to the Department of Computer Science and Engineering.

Learning Computer Programming using e-learning as a tool. A Thesis. Submitted to the Department of Computer Science and Engineering. Learning Computer Programming using e-learning as a tool. A Thesis Submitted to the Department of Computer Science and Engineering of BRAC University by Asharf Alam Student ID: 03101011 Md. Saddam Hossain

More information

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London

More information

5 CLASSES CHAPTER. 5.1 Object-Oriented and Procedural Programming. 5.2 Classes and Objects 5.3 Sample Application: A Clock Class

5 CLASSES CHAPTER. 5.1 Object-Oriented and Procedural Programming. 5.2 Classes and Objects 5.3 Sample Application: A Clock Class CHAPTER 5 CLASSES class head class struct identifier base spec union class name 5.1 Object-Oriented and Procedural Programming 5.2 Classes and Objects 5.3 Sample Application: A Clock Class 5.4 Sample Application:

More information

Mechanics ISSN 1312-3823 Transport issue 3, 2011 Communications article 0553

Mechanics ISSN 1312-3823 Transport issue 3, 2011 Communications article 0553 Mechanics ISSN 1312-3823 Transport issue 3, 2011 Communications article 0553 Academic journal http://www.mtc-aj.com CALYPSO ELECTRONIC TICKETING TECHNOLOGY: THE CONTACTLESS STANDARD FOR A MODERN TRANSPORT

More information

Introduction to Java

Introduction to Java Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 3 Lecture 3-3: Interactive Programs w/ Scanner reading: 3.3-3.4 self-check: #16-19 exercises: #11 videos: Ch. 3 #4 Interactive programs We have written programs that print

More information

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 3 Lecture 3-3: Interactive Programs w/ Scanner reading: 3.3-3.4 self-check: #16-19 exercises: #11 videos: Ch. 3 #4 Interactive programs We have written programs that print

More information

- Hour 1 - Introducing Visual C++ 5

- Hour 1 - Introducing Visual C++ 5 - Hour 1 - Introducing Visual C++ 5 Welcome to Hour 1 of Teach Yourself Visual C++ 5 in 24 Hours! Visual C++ is an exciting subject, and this first hour gets you right into the basic features of the new

More information

Topics. Parts of a Java Program. Topics (2) CS 146. Introduction To Computers And Java Chapter Objectives To understand:

Topics. Parts of a Java Program. Topics (2) CS 146. Introduction To Computers And Java Chapter Objectives To understand: Introduction to Programming and Algorithms Module 2 CS 146 Sam Houston State University Dr. Tim McGuire Introduction To Computers And Java Chapter Objectives To understand: the meaning and placement of

More information

Informatica e Sistemi in Tempo Reale

Informatica e Sistemi in Tempo Reale Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)

More information

Data Structures using OOP C++ Lecture 1

Data Structures using OOP C++ Lecture 1 References: 1. E Balagurusamy, Object Oriented Programming with C++, 4 th edition, McGraw-Hill 2008. 2. Robert Lafore, Object-Oriented Programming in C++, 4 th edition, 2002, SAMS publishing. 3. Robert

More information

Computer Organization

Computer Organization Basics Machine, software, and program design JPC and JWD 2002 McGraw-Hill, Inc. Computer Organization CPU - central processing unit Where decisions are made, computations are performed, and input/output

More information

QUIZ-II QUIZ-II. Chapter 5: Control Structures II (Repetition) Objectives. Objectives (cont d.) 20/11/2015. EEE 117 Computer Programming Fall-2015 1

QUIZ-II QUIZ-II. Chapter 5: Control Structures II (Repetition) Objectives. Objectives (cont d.) 20/11/2015. EEE 117 Computer Programming Fall-2015 1 QUIZ-II Write a program that mimics a calculator. The program should take as input two integers and the operation to be performed. It should then output the numbers, the operator, and the result. (For

More information

Assessing the Sensitivity of the Artificial Neural Network to Experimental Noise: A Case Study

Assessing the Sensitivity of the Artificial Neural Network to Experimental Noise: A Case Study Assessing the Sensitivity of the Artificial Neural Network to Experimental Noise: A Case Study Miloš J. Madić PhD Student University of Niš Faculty of Mechanical Engineering Velibor J. Marinković Full

More information

Illustration 1: Diagram of program function and data flow

Illustration 1: Diagram of program function and data flow The contract called for creation of a random access database of plumbing shops within the near perimeter of FIU Engineering school. The database features a rating number from 1-10 to offer a guideline

More information

Simple Image File Formats

Simple Image File Formats Chapter 2 Simple Image File Formats 2.1 Introduction The purpose of this lecture is to acquaint you with the simplest ideas in image file format design, and to get you ready for this week s assignment

More information

Syllabus OBJECT ORIENTED PROGRAMMING C++

Syllabus OBJECT ORIENTED PROGRAMMING C++ 1 Syllabus OBJECT ORIENTED PROGRAMMING C++ 1. Introduction : What is object oriented programming? Why do we need objectoriented. Programming characteristics of object-oriented languages. C and C++. 2.

More information

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T) Unit- I Introduction to c Language: C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating

More information

Introduction to Java. CS 3: Computer Programming in Java

Introduction to Java. CS 3: Computer Programming in Java Introduction to Java CS 3: Computer Programming in Java Objectives Begin with primitive data types Create a main class with helper methods Learn how to call built-in class methods and instance methods

More information

Binary storage of graphs and related data

Binary storage of graphs and related data EÖTVÖS LORÁND UNIVERSITY Faculty of Informatics Department of Algorithms and their Applications Binary storage of graphs and related data BSc thesis Author: Frantisek Csajka full-time student Informatics

More information

ANALYSIS Egg Database Analysis Tools

ANALYSIS Egg Database Analysis Tools 1 ANALYSIS INTRODUCTION 1 1. Introduction. ANALYSIS Egg Database Analysis Tools by John Walker http://www.fourmilab.ch/ This program is in the public domain. This program implements frequently-performed

More information

9 Control Statements. 9.1 Introduction. 9.2 Objectives. 9.3 Statements

9 Control Statements. 9.1 Introduction. 9.2 Objectives. 9.3 Statements 9 Control Statements 9.1 Introduction The normal flow of execution in a high level language is sequential, i.e., each statement is executed in the order of its appearance in the program. However, depending

More information

Myocardial Bridges: A Prospective Forensic Autopsy Study

Myocardial Bridges: A Prospective Forensic Autopsy Study DOI: 10.2298/SARH1504153M ОРИГИНАЛНИ РАД / ORIGINAL ARTICLE UDC: 616.12-007.2-091.5 153 Myocardial Bridges: A Prospective Forensic Autopsy Study Jelena Micić-Labudović 1, Tatjana Atanasijević 1, Vesna

More information

Multichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is

Multichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is Multichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is preceded by an equal sign d. its name has undereline 2. Associations

More information

EP241 Computer Programming

EP241 Computer Programming EP241 Computer Programming Topic 10 Basic Classes Department of Engineering Physics University of Gaziantep Course web page www.gantep.edu.tr/~bingul/ep241 Sep 2013 Sayfa 1 Introduction In this lecture

More information

A Summary of Operator Overloading

A Summary of Operator Overloading A Summary of Operator Overloading David Kieras, EECS Dept., Univ. of Michigan Prepared for EECS 381 8/27/2013 Basic Idea You overload an operator in C++ by defining a function for the operator. Every operator

More information

PROGRAMMING IN C PROGRAMMING IN C CONTENT AT A GLANCE

PROGRAMMING IN C PROGRAMMING IN C CONTENT AT A GLANCE PROGRAMMING IN C CONTENT AT A GLANCE 1 MODULE 1 Unit 1 : Basics of Programming Unit 2 : Fundamentals Unit 3 : C Operators MODULE 2 unit 1 : Input Output Statements unit 2 : Control Structures unit 3 :

More information

Changes in Subgingival Microflora after Placement and Removal of Fixed Orthodontic Appliances

Changes in Subgingival Microflora after Placement and Removal of Fixed Orthodontic Appliances DOI: 10.2298/SARH1406301Z ОРИГИНАЛНИ РАД / ORIGINAL ARTICLE UDC: 616.314-089.28-06 ; 616.314-008.8:579.8 301 Changes in Subgingival Microflora after Placement and Removal of Fixed Orthodontic Appliances

More information

Reading and Writing PCD Files The PCD File Format The Grabber Interface Writing a Custom Grabber PCL :: I/O. Suat Gedikli, Nico Blodow

Reading and Writing PCD Files The PCD File Format The Grabber Interface Writing a Custom Grabber PCL :: I/O. Suat Gedikli, Nico Blodow PCL :: I/O Suat Gedikli, Nico Blodow July 1, 2011 Outline 1. Reading and Writing PCD Files 2. The PCD File Format 3. The Grabber Interface 4. Writing a Custom Grabber global functions in the namespace

More information

Course notes Standard C++ programming

Course notes Standard C++ programming Department of Cybernetics The University of Reading SE2B2 Further Computer Systems Course notes Standard C++ programming by Dr Virginie F. Ruiz November, 03 CREATING AND USING A COPY CONSTRUCTOR... 27

More information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection

More information

J a v a Quiz (Unit 3, Test 0 Practice)

J a v a Quiz (Unit 3, Test 0 Practice) Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points

More information

MANAGING CUSTOMER RELATIONSHIPS IN PRIVATE HEALTH CARE FACILITIES - A STUDY WITH REFERENCE TO GREATER NOIDA CITY OF UTTAR PRADESH

MANAGING CUSTOMER RELATIONSHIPS IN PRIVATE HEALTH CARE FACILITIES - A STUDY WITH REFERENCE TO GREATER NOIDA CITY OF UTTAR PRADESH www.sjm06.com Serbian Journal of Management 6 (1) (2011) 27-42 Serbian Journal of Management MANAGING CUSTOMER RELATIONSHIPS IN PRIVATE HEALTH CARE FACILITIES - A STUDY WITH REFERENCE TO GREATER NOIDA

More information

Objective-C Tutorial

Objective-C Tutorial Objective-C Tutorial OBJECTIVE-C TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i ABOUT THE TUTORIAL Objective-c tutorial Objective-C is a general-purpose, object-oriented programming

More information

C PROGRAMMING FOR MATHEMATICAL COMPUTING

C PROGRAMMING FOR MATHEMATICAL COMPUTING UNIVERSITY OF CALICUT SCHOOL OF DISTANCE EDUCATION BSc MATHEMATICS (2011 Admission Onwards) VI Semester Elective Course C PROGRAMMING FOR MATHEMATICAL COMPUTING QUESTION BANK Multiple Choice Questions

More information

13 Classes & Objects with Constructors/Destructors

13 Classes & Objects with Constructors/Destructors 13 Classes & Objects with Constructors/Destructors 13.1 Introduction In object oriented programming, the emphasis is on data rather than function. Class is a way that binds the data & function together.

More information

Keil C51 Cross Compiler

Keil C51 Cross Compiler Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation

More information

MS ACCESS DATABASE DATA TYPES

MS ACCESS DATABASE DATA TYPES MS ACCESS DATABASE DATA TYPES Data Type Use For Size Text Memo Number Text or combinations of text and numbers, such as addresses. Also numbers that do not require calculations, such as phone numbers,

More information