Documente Academic
Documente Profesional
Documente Cultură
Descriere
Pseudocodul este o descriere informala la nivel inalt a unui principiu
operational ce tine de un program de pc sau alt algoritm.
Foloseste structuri conventionale unui limbaj de programare, dar e
creat mai mult pentru citirea umana decat pentru cea computerizata.
Pseudocodul omite detalii ce sunt esentiale unui computer de a intelege un
algoritm, precum declaratiile variabile, codurile specifice unui sistem si unele
functii. Limbajul de programare este augmentat cu limbajul natural de
descriere a detaliilor, in cazurile convenabile, sau cu notatii matematice.
Scopul folosirii pseudocodurilor este de a fi mai usor oamenilor sa inteleaga
codurile limbajului de programare conventional, care este eficient si
independent de mediul descrierii principiilor unui algoritm. Este des folosit in
programe de developare, pentru a schita o structura in afara programului
inainte ca adevaratul cod sa isi ia locul.
Nu exista sintaxe standard pt pseudocod, deoarece un program in
pseudocod nu este un executabil. Pseudocodul se aseamana dar nu trebuie
confundat cu programele skeleton care pot fi compilate fara erori.
Flowcharts, drakon-charts si Unified Modeling Language (UML) pot fi luate
drept alternative grafice ale pseudocodului dar sunt mult mai spatioase pe
hartie.
Aplicatii
Cartile text si publicatiile stiintifice ce relateaza stiinta computerizata
si calculele numerice uneori folosesc pseudocoduri in descrierea algoritmilor,
pentru ca toti programatorii sa le inteleaga, chiar daca nu toti cunosc acelasi
limbaj de programare. In cartile text, exista de obicei o introducere ce explica
conventiile particulare in uz. Nivelul detaliilor pseudocodului se apropie in
unele cazuri de limbajele cu scop general.
Un programator ce are nevoie sa implementeze un algoritm specific,
mai ales unul nefamiliar, va incepe deseori cu o descriere pseudocod, dupa
care va transforma acea descriere in limbajul programului dorit, si o va
modifica pentru a interactiona corect cu restul programului. Programatorii
pot incepe schitand codul in pseudocod pe hartie inainte de a il scrie in
limbajul ales, pentru apropierea de o structura, cu un set de pasi pentru
rafinament.
Sintaxa
code
code
void function
program fizzbuzz
procedure
Do i = 1 to 100
fizzbuzz
set
For (i = 1; i <=
For i := 1 to 100
print_number to
do
print_number to
"Fizz"
If i is
If i is
set
set
print_number =
false;
divisible by 5
End If
If i is
divisible by 5
divisible by 5
If
print a
"Buzz"
print_number to
false;
"Buzz";
print_number,
print i
Print
set
Then
"Buzz";
then
false
False
If i is
If i is
print_number to
end do
"Fizz"
false;
print_number to
"Buzz"
set
print_number to
If i is
newline
divisible by 3
print
"Fizz";
divisible by 5
Then
"Fizz";
then
print_number to
false
If i is
divisible by 3
divisible by 3
set
print_number =
True
true;
true;
For i = 1 to 100
print_number to
set
divisible by 3
Sub fizzbuzz()
100; i++) {
set
true
If i is
fizzbuzz {
If
set
print_number =
False
print_number to
print_number,
End If
false;
print i;
If
print a
If
print_number,
newline;
}
print i;
print a
print_number =
True Then print i
Print a
newline
newline;
Next i
end
End Sub
Return
Symbol
Assignment
or :=
Comparison
=, , <, >, ,
Arithmetic
+, , , /, mod
Floor/ceiling
, , ,
Example
c 2r , c := 2r
a b + c
Logical
and, or
Sums, products
h aA 1/a
Exemplu
Urmeaza un exemplu mai lung de pseudocod in stil matematic, pentru
algoritmul Ford-Fulkerson:
algorithm ford-fulkerson is
input: Graph G with flow capacity c,
source node s,
sink node t
output: Flow f such that f is maximal from s to t
(Note that f(u,v) is the flow from node u to node v, and c(u,v) is the flow
capacity from node u to node v)
for each edge (u, v) in GE do
f(u, v) 0
f(v, u) 0
while there exists a path p from s to t in the residual network Gf do
let cf be the flow capacity of the residual network Gf
cf(p) min{cf(u, v) | (u, v) in p}
for each edge (u, v) in p do
f(u, v) f(u, v) + cf(p)
f(v, u) f(u, v)
return f