Прављење странице Корисник:Вујаницзоран1/Приступ који у решавању проблема имају процедурални програмски језици
Процедурално програмирање
уредиПроцедурално програмирање[1][2] је програмска парадигма заснована на императивном програмирању[3] [4] [5], где је програм подељен на процедуре и функције ради боље организације и поновне употребе кода.
Програмска парадигма одређује начин структуирања, али и извршавања програма. (Пример: У објектном програмирању, програмер проматра програм као скуп објеката који међусобно комуницирају, док у функцијском програмирању[6] програм можемо проматрати као низ евалуација функција.)
Програми написани императивним стилом програмирања могу се посматрати као стање и низ наредби које рачунар треба да изврши и које мењају то стање. Императив (од лат. имперо — „наредити”)
Процедурално програмирање је честа метода коришћења императивног програмирања.
Програмски језици
уредиРазличити програмски језици подржавају различите парадигме програмирања. Неки програмски језици подржавају само једну парадигму (Пример: Haskell), а има и језика који подржавају више њих (Пример: C++, Python).
У језицима који подржавају више парадигми не морамо користити у целом програму само једну парадигму, већ можемо написати програм који садржи елементе обе парадигме.
Први значајни процедурални програмски језици су настали између 1957. и 1964. године, и то су Fortran, ALGOL, COBOL, PL/I и BASIC. Значајнији језици, Pascal и C, су настали око 1970. године, а C++ 1985.
Већина рачунара је конструисана да извршава машински језик написан у императивном стилу, па самим тим подржава и процедурални стил програмирања.
Пошто су темељне идеје императивног програмирања „уграђене” у хардвер, већина програмских језика је императивна.
Императивно (процедурално) програмирање је најчешћи начин решавања проблема у инжењерској пракси.
Процедуре
уредиПроцедура (тј. подрутина, потпрограм, функција...) може бити било који део кода који се користи за обављање специфичног задатка, а њено извршавање је независно од остатка програма.
Састоји се од следа рачунарских корака који се могу извршавати "позивом" у било којој тачки извршавања целог програма, а такође је могуће извршавање у другим процедурама.
У процедуралном програмирању, програм је структуиран од процедура које су секвенцијално организоване ради решавања одређеног проблема. Сам програм тиме постаје след позива процедура и кода који повезује те позиве, што омогућава једноставније одржавање и бољу читљивост програма.
Фокус је на корацима које програм треба да спроведе да би се постигао жељени резултат.
Решавање проблема процедуралним програмирањем
уредиРешавање проблема процедуралним програмирањем заснива се на принципу „Од општег ка посебном”:
- Полази се од постављеног задатка као општег
- Затим се задатак разлаже на једноставније целине, које изражавамо процедурама и функцијама
- Ако су те целине и даље превише комплексне, понављамо други корак све док се не дође до нивоа наредби
#include <iostream>
using namespace std;
int ucitaj() {
int x;
cin >> x;
return x;
}
int saberi(int a, int b) {
return a + b;
}
void ispis(int x) {
cout << x << endl;
}
int main() {
int a = ucitaj();
int b = ucitaj();
int zbir = saberi(a, b);
ispis(zbir);
return 0;
}
Одређене праксе развоја софтвера се често користе са процедуралним програмирањем како би се побољшао квалитет и смањили трошкови развоја и одржавања.
- Модуларност подразумева поделу великих процедура у више мањих где свака мања има
јасну и специфичну сврху.
- Ограничавање обима променљивих и процедура подразумева да их дефинишемо и користимо само тамо где су нам потребне.
Програм без модуларности или с превеликим обимом често садржи процедуре које користе велики број променљивих, што отежава разумевање и одржавање кода.
Када процедура има јасно дефинисан интерфејс и независна је, то омогућава њену поновну употребу и упрошћавање остатка кода.
Процедурално програмирање се често користи у ситуацијама где је важно постићи јасну организацију задатака кроз серију корака, а посебно у инжењерским апликацијама или софтверу који захтева висок ниво ефикасности и тачности у извршавању.
Врлине и мане процедуралног програмирања
уредиВрлине
уреди- Једноставна структура – Структура програма је линеарна, инструкције се извршавају редом, и код је уређен у процедуре, па је лако пратити и разумети ток програма.
- Лако учење и отклањање грешака – Због своје једноставне структуре погодно је за учење, и отклањање грешака је често лакше него код других парадигми.
- Ефикасност – Процедурално програмирање је врста императивног програмирања, па је по начину извршавања веома слично машинском коду и зато је у многим случајевима ефикасније од других парадигми.
- Поновна употребљивост кода – Процедура може бити позвана више пута у различитим деловима програма, чиме се избегава дуплирање кода.
- Тестирање и отклањање грешака – Појединачне процедуре могу бити изоловано тестиране, што олакшава идентификацију и исправљање грешака.
Мане
уреди- Лоша могућност проширивања – Због недостатка начина организовања података, у великим пројектима код може постати мање разумљив и мање ефикасан. Самим тим је теже одржавање кода и отклањање грешака.
Референце
уреди- ↑ https://en.wikipedia.org/wiki/Procedural_programming
- ↑ https://sh.wikipedia.org/wiki/Proceduralno_programiranje
- ↑ https://en.wikipedia.org/wiki/Imperative_programming
- ↑ https://sr.wikipedia.org/sr-el/%D0%98%D0%BC%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D1%9A%D0%B5
- ↑ https://sh.wikipedia.org/wiki/Imperativno_programiranje
- ↑ https://skolakoda.github.io/imperativno-vs-funkcionalno-programiranje