Вовед. Структурирано програмирање

Живееме во 21. век - период во кој голем дел од активностите на луѓето се, на директен или индиректен начин, поврзани со компјутерите и информатичката технологија. Секојдневно, развитокот на информатиката предизвикува промени во начинот на функционирање на луѓето, на нивниот личен и професионален живот.

Денешните компјутери имаат способност да извршат огромен број на операции во краток временски период. Сепак, ваквата нивна способност доаѓа поради фактот што секој компјутер, природно, разбира и може да изврши само ограничен број на наредби. Задача на развивачите на софтверски алатки е да ги поврзат овие наредби на начин што корисниците на софтверот би имале некаква придобивка од неговата употреба. Конкретно, овие предавања се наменети за сите оние кои сакаат да се запознаат со начинот на развивање на софтверски алатки во еден од најпознатите програмски јазици во светот: C++.

Структура

На Интернет постојат илјадници сајтови кои содржат предавања за C++. Тогаш, сигурно се прашувате што е она што го одделува овој сајт од сите останати? Зошто да ги читате токму овие предавања? Најпрвин, важно е да напоменеме дека предавањата на овој веб сајт се на македонски јазик. Постојат многу ученици и студенти кои побрзо учат доколку читаат информации напишани на нивниот мајчин јазик.

Понатаму, она што го разликува овој сајт од многу останати е фактот што преку него може да го изучувате програмскиот јазик C++ на два начина: читајќи предавања (теоретски) и решавајќи задачи (практично). Притоа, бидејќи овој веб сајт содржи систем за автоматско оценување на решенија, тоа можете да го правите во кој било период од денот - без никакви ограничувања на функционалноста. Инаку, интересно е да се напомене дека сајтот на кој се наоѓате всушност претставува и систем за натпревари по информатика - сајт преку кој Здружението на информатичарите на Македонија ги организира државните натпревари по информатика за основно и средно образование. Денес, благодарение на повеќе луѓе, овој сајт содржи и дел за тренинг (дел кој овозможува автоматско оценување на испратени решенија на голем број подготвителни задачи, но и задачи од разни натпревари по информатика), како и дел за изучување на програмскиот јазик C++.

Пред да продолжиме натаму, важно е да напоменеме дека овие материјали, барем засега, не содржат предавања за една многу важна парадигма: објектно-ориентираното програмирање. Сепак, ова на никој начин нема да не спречи да пишуваме програми кои можат да решаваат најразлични проблеми - впрочем, доколку ги совладате темите кои се дадени во овие предавања, во иднина, многу лесно (за само неколку дена) би можеле да ги совладате и основите на објектно-ориентираното програмирање.

Не постои временско ограничување за кое треба да ги прочитате предавањата или решите дадените задачи. Читајте и решавајте според вашите можности и временски ограничувања. Доколку мислите дека нешто не сте сфатиле како што треба, прочитајте го пак истото предавање или побарајте помош на Интернет или преку форумот на МЕНДО. Доколку не сакате да решавате задачи или сметате дека решавањето на задачи би го забавило вашето учење - едноставно, не ги решавајте задачите. Тоа е и една од предностите на системите за електронско учење - секој посетител може да учи на начин на кој што тој смета дека е најдобар за него.

МЕНДО е дизајниран да овозможува извршување на одредена програма директно на системот. Благодарение на тоа, ученикот не мора да се наоѓа на компјутер кој содржи алатка за преведување на програми напишани во C++ (кои ќе бидат дискутирани понатаму) и може да чита предавања и решава задачи од кој било компјутер со Интернет врска. Притиснете на копчето "Изврши на МЕНДО" и видете што ќе се случи:

Програма 1.1

#include <iostream>
using namespace std;

int main()
{
      cout << "Hello world!" << endl;
      return 0;
}

Последното нешто кое што ќе го споменеме е фактот што системот е специјално дизајниран да не биде кочница во процесот на учење, па, доколку не успеете да решите некоја задача подолго време, системот автоматски ќе ви го покаже решението на истата. На тој начин, ниту еден ученик нема да биде блокиран на задача подолго време - целта на системот не е да ги рангира учениците, туку да им овозможи околина во која секој од нив ќе може ефективно да учи.

Автор

Една од основните работи кои ги научив како студент по информатика (од еден од најдобрите професори на факултетот на кој студирам) е, без разлика дали се работи за држење на предавања, дискутирање на проблеми или пишување на научни трудови, да се претставам пред луѓето пред кои презентирам. Имено, на тој начин авторот дава до знаење дека е спремен да стои позади тоа што го кажал или напишал - другите учесници во дискусијата знаат кого да пофалат (доколку нешто функционира како што треба) или да контактираат, прашаат или обвинат (доколку нешто не функционира како што треба).

Значи, да се претставам: Моето име е Бојан Костадинов, јас сум студент на Факултетот за информатички науки и компјутерско инженерство од Скопје (во времето кога се пишувани овие предавања), еден од модераторите на системот за натпревари на кој се наоѓате и поранешен натпреварувач по информатика. Факултетот за информатички науки и компјутерско инженерство е најголемиот факултет за информатика во Македонија и еден од поддржувачите на системот на кој се наоѓате.

Како автор, би сакал да изразам голема благодарност до Миле Јованов и Емил Станков за пружената помош во подготовката на сите овие предавања и задачи - во вид на сугестии, коментари, пронајдени и поправени грешки.

Дозвола за користење на материјалите

Сите материјали (предавања и задачи) се објавени според лиценцата за слободно користење CC BY-NC 2.5 (линк). Ова значи дека, ако наведете од каде се истите земени (преку поставување линк до овој веб сајт), имате слобода да ги користите сите материјали за некомерцијални цели, на начин на кој вас ви одговара - на пример, за држење бесплатни предавања во некое училиште. Притоа, доколку се придржувате до лиценцата, за преземањето или користењето на материјалите немате обврска да прашувате или информирате никого - па дури ни авторот на истите.

Од друга страна пак, без претходно добиена согласност од авторот, не е дозволено продавање на овие материјали, нивно објавување во книга (и заработка од неа) или нивно копирање и користење на сајтови кои содржат реклами или, на некој друг начин, заработуваат пари.