Прављење странице Корисник:Vujaniczoran1/Приступ који у решавању проблема имају процедурални програмски језици
Процедурално програмирање
[уреди]Процедурално програмирање[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