Pravljenje stranice Korisnik:Vujaniczoran1/Pristup koji u rešavanju problema imaju proceduralni programski jezici
Proceduralno programiranje
[uredi]Proceduralno programiranje[1][2] je programska paradigma zasnovana na imperativnom programiranju[3] [4] [5], gde je program podeljen na procedure i funkcije radi bolje organizacije i ponovne upotrebe koda.
Programska paradigma određuje način struktuiranja, ali i izvršavanja programa. (Primer: U objektnom programiranju, programer promatra program kao skup objekata koji međusobno komuniciraju, dok u funkcijskom programiranju[6] program možemo promatrati kao niz evaluacija funkcija.)
Programi napisani imperativnim stilom programiranja mogu se posmatrati kao stanje i niz naredbi koje računar treba da izvrši i koje menjaju to stanje. Imperativ (od lat. impero — „narediti”)
Proceduralno programiranje je česta metoda korišćenja imperativnog programiranja.
Programski jezici
[uredi]Različiti programski jezici podržavaju različite paradigme programiranja. Neki programski jezici podržavaju samo jednu paradigmu (Primer: Haskell), a ima i jezika koji podržavaju više njih (Primer: C++, Python).
U jezicima koji podržavaju više paradigmi ne moramo koristiti u celom programu samo jednu paradigmu, već možemo napisati program koji sadrži elemente obe paradigme.
Prvi značajni proceduralni programski jezici su nastali između 1957. i 1964. godine, i to su Fortran, ALGOL, COBOL, PL/I i BASIC. Značajniji jezici, Pascal i C, su nastali oko 1970. godine, a C++ 1985.
Većina računara je konstruisana da izvršava mašinski jezik napisan u imperativnom stilu, pa samim tim podržava i proceduralni stil programiranja.
Pošto su temeljne ideje imperativnog programiranja „ugrađene” u hardver, većina programskih jezika je imperativna.
Imperativno (proceduralno) programiranje je najčešći način rešavanja problema u inženjerskoj praksi.
Procedure
[uredi]Procedura (tj. podrutina, potprogram, funkcija...) može biti bilo koji deo koda koji se koristi za obavljanje specifičnog zadatka, a njeno izvršavanje je nezavisno od ostatka programa.
Sastoji se od sleda računarskih koraka koji se mogu izvršavati "pozivom" u bilo kojoj tački izvršavanja celog programa, a takođe je moguće izvršavanje u drugim procedurama.
U proceduralnom programiranju, program je struktuiran od procedura koje su sekvencijalno organizovane radi rešavanja određenog problema. Sam program time postaje sled poziva procedura i koda koji povezuje te pozive, što omogućava jednostavnije održavanje i bolju čitljivost programa.
Fokus je na koracima koje program treba da sprovede da bi se postigao željeni rezultat.
Rešavanje problema proceduralnim programiranjem
[uredi]Rešavanje problema proceduralnim programiranjem zasniva se na principu „Od opšteg ka posebnom”:
- Polazi se od postavljenog zadatka kao opšteg
- Zatim se zadatak razlaže na jednostavnije celine, koje izražavamo procedurama i funkcijama
- Ako su te celine i dalje previše kompleksne, ponavljamo drugi korak sve dok se ne dođe do nivoa naredbi
#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;
}
Određene prakse razvoja softvera se često koriste sa proceduralnim programiranjem kako bi se poboljšao kvalitet i smanjili troškovi razvoja i održavanja.
- Modularnost podrazumeva podelu velikih procedura u više manjih gde svaka manja ima
jasnu i specifičnu svrhu.
- Ograničavanje obima promenljivih i procedura podrazumeva da ih definišemo i koristimo samo tamo gde su nam potrebne.
Program bez modularnosti ili s prevelikim obimom često sadrži procedure koje koriste veliki broj promenljivih, što otežava razumevanje i održavanje koda.
Kada procedura ima jasno definisan interfejs i nezavisna je, to omogućava njenu ponovnu upotrebu i uprošćavanje ostatka koda.
Proceduralno programiranje se često koristi u situacijama gde je važno postići jasnu organizaciju zadataka kroz seriju koraka, a posebno u inženjerskim aplikacijama ili softveru koji zahteva visok nivo efikasnosti i tačnosti u izvršavanju.
Vrline i mane proceduralnog programiranja
[uredi]Vrline
[uredi]- Jednostavna struktura – Struktura programa je linearna, instrukcije se izvršavaju redom, i kod je uređen u procedure, pa je lako pratiti i razumeti tok programa.
- Lako učenje i otklanjanje grešaka – Zbog svoje jednostavne strukture pogodno je za učenje, i otklanjanje grešaka je često lakše nego kod drugih paradigmi.
- Efikasnost – Proceduralno programiranje je vrsta imperativnog programiranja, pa je po načinu izvršavanja veoma slično mašinskom kodu i zato je u mnogim slučajevima efikasnije od drugih paradigmi.
- Ponovna upotrebljivost koda – Procedura može biti pozvana više puta u različitim delovima programa, čime se izbegava dupliranje koda.
- Testiranje i otklanjanje grešaka – Pojedinačne procedure mogu biti izolovano testirane, što olakšava identifikaciju i ispravljanje grešaka.
Mane
[uredi]- Loša mogućnost proširivanja – Zbog nedostatka načina organizovanja podataka, u velikim projektima kod može postati manje razumljiv i manje efikasan. Samim tim je teže održavanje koda i otklanjanje grešaka.
Reference
[uredi]- ↑ 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