Wszystkie programy dzisiaj są pisane strukturalnie dlatego tego nie widać. W programowaniu strukturalnym chodzi o używanie struktur, które kontrolują flow programu w stylu for, switch, while, if, else zamiast skakania sobie przy pomocy goto.
int i = 0;
int sum = 0;
poczatek:
sum += i;
i++;
if(i<10) //tu mi sie wkradło strukturalne, ale nie wiem jak zrobic ifa nie-strukturalnie :P
goto poczatek;
return 0;
gdybyśmy nie mieli pętli for to tak byśmy je pisali i jest to podejście nie-strukturalne. Podejście niestrukturalne było stosowane wieki temu kiedy więcej pisało się w assemblerze. Wtedy każdy kod bazował właśnie na liniowych operacjach i skokach. Nie było zagnieżdzeń, kod był płaski. Teraz wprowadzam podejście strukturalne:
int sum = 0;
for (int i = 0; i < 10; i++) {
sum += 0;
}
Mamy strukture, która kontroluje flow programu. Nie musimy sami pisać skoków.
Podejście proceduralne polega na podzieleniu programu na procedury czyli funkcje:
void policzSume(int * sum, int max_i) {
for (int i = 0; i < max_i; i++) {
*sum += 0;
}
}
void wypiszSumeNaEkran(int sum) {
std::cout << "suma wynosi: " << sum << std::endl;
}
int main()
{
int sum = 0;
policzSume(&sum, 10);
wypiszSumeNaEkran(sum);
return 0;
}