Reguli de interschimbabilitate :
1.
Structura existentă în algoritmul dat Structura cu care noul algoritm Observaţii
devine echivalent celui dat
Cât timp E execută Dacă E atunci Prezenţa structurii alternative
S Executa devine necesară numai dacă
S expresia E poate avea valoare
Până când not E fals la prima evaluare
Exemplul 1 :
Algoritm dat Algoritm echivalent
Citeşte n ( natural) Citeşte n (natural)
p←1 p←1
cât timp p≤ n execută dacă p≤ n atunci
p←p*2 Execută
p←p*2
Scrie p // puterea lui 2 imediat superioară lui n până când p>n
Scrie p
Exemplul 2 :
Algoritm dat Algoritm echivalent
Citeşte n ( natural nenul ) Citeşte n (natural nenul )
s←0 s←0
cât timp n>0 execută Execută
s←s+n%10 ; n←[n/10] s←s+n%10 ; n←[n/10]
până când n=0
Scrie s // suma cifrelor lui n Scrie s
2.
Structura existentă în algoritmul dat Structura cu care noul algoritm Observaţii
devine echivalent celui dat
Execută S Secvenţa S care se execută
S Cât timp ( not E ) execută anterior structurii cu test iniţial,
Până când E S poate fi alcătuită ca o combinaţie
între secvenţa S din algoritmul dat
şi iniţializările anterioare structurii
cu test final din algoritmul dat.
Exemplul 1 :
Algoritm dat Algoritm echivalent
Citeşte n ( natural ) Citeşte n ( natural )
min←9 min←n%10
Execută Cât timp n>9 execută
Dacă min>n%10 atunci n←[n/10]
min←n%10 Dacă min>n%10 atunci
min←n%10
n←[n/10]
până când n=0
scrie min // cifra minimă din n scrie min
Exemplul 2 :
Algoritm dat Algoritm echivalent
max←0 Citeşte x ( natural )
Execută max←x
citeşte x ( natural ) Cât timp x>0 execută
dacă x>max atunci Citeşte x ( natural )
max←x dacă x>max atunci
max←x
Până când x=0
Scrie max // cel mai mare dintre numerele date
Scrie max
3.
Structura existentă în algoritmul dat Structura cu care noul algoritm Structura cu care noul algoritm
devine echivalent celui dat devine echivalent celui dat
Pentru i←a,b execută i←a cât timp a≤ b execută
S cât timp i≤ b execută S
S a←a+1
i←i+1
Exemplu :
Algoritm dat Algoritm echivalent
Citeşte n ( natural nenul ) Citeşte n ( natural nenul )
s←0 s←0 ; i←1
pentru i←1,n execută Cât timp i≤ n execută
citeşte x ( întreg ) citeşte x ( întreg )
s←s+x s←s+x ; i←i+1
Scrie s // suma celor n numere date Scrie s
4.
Structura existentă în algoritmul dat Structura cu care noul algoritm Structura cu care noul algoritm
devine echivalent celui dat devine echivalent celui dat
Pentru i←b,a,-1 execută i←b cât timp b≥ a execută
S cât timp i≥ a execută S
S b←b-1
i←i-1
Exemplu :
Algoritm dat Algoritm echivalent Algoritm echivalent
Citeşte a,b (a,b∈N, a≤ b) Citeşte a,b (a,b∈N, Citeşte a,b(a,b∈N, a≤ b)
s←0 ; p←1 a≤ b) s←0 ; p←1 ;
pentru i←b,a,-1 execută s←0 ; p←1 ; i←b cât timp b≥ a execută
s←s+p*i cât timp i≥ a execută s←s+p*b
p←p*(-1) s←s+p*i p←p*(-1)
p←p*(-1) b←b-1
Scrie s i←i-1
Scrie s
Scrie s