TEOREMA BOHM-JACOPPINI

TEOREMA BOHM-JACOPPINI

Importanţa acestei teoreme pentru programarea structurată este majoră deoarece ea stabileşte setul minim de instrucţiuni necesare pentru implementarea corectă a structurilor de bază ale algoritmilor.

Pentru descrierea oricărui algoritm sunt necesare următoarele instrucţiuni:
1. atribuire
2. decizie completă (structura alternativă cu două ramuri)
3. structura repetitivă cu test iniţial (CÂT_TIMP <>WHILE)

Importanţa acestei teoreme nu ne permită să o lăsăm nedemonstrată. Vom da o demonstraţie prin prezentarea modului de descriere a celorlalte structuri din aceeaşi categorie prin structurile menţionate în enunţ, renunţând la rigurozitatea matematică în favoarea conciziei.
Este important de reţinut că operaţiile I/O nu sunt esenţiale în descrierea algoritmului de rezolvare a unei probleme, rolul lor fiind de a asigura interacţiunea cu utilizatorul.
1. Pentru structura liniară, afirmaţia este evidentă.
2. Decizia simplă este un caz particular (trunchiat al deciziei complete).
Structura de selecţie cu n cazuri se poate descrie printr-o succesiune de n-1 decizii complete, fiecare testând în condiţia ei dacă valoarea evaluată a expresiei ordinale din capul structurii este sau nu egală cu una dintre constantele prezente în lista cazului respectiv. Dacă da (ramura THEN), atunci se execută instrucţiunea asociată, dacă nu (ramura ELSE) se face selectarea unui nou caz dintre cele rămase:
(A se vedea şi observaţia de la prezentarea schemelor logice pentru acest tip de structură alternativă).
3. Structura repetitivă cu test final se comută rapid la cea cu test iniţial prin utilizarea secvenţei înainte de intrarea în bucla cu test iniţial şi apoi implementarea buclei cu test iniţial care conţine condiţia negată.
Reprezentarea structurii cu număr determinat de paşi (PENTRU<>FOR) este chiar mai evidentă. O prezentăm în cele ce urmează;
var_c:=Li;
CÂT_TIMP var_c<>Lf EXECUTĂ
Secvenţa din FOR
var_c:=var_c+Pas
SFÂRŞIT_CÂT_TIMP.

Comentarii

Postări populare de pe acest blog

Deplasarea elementelor unui vector

Alt set de probleme

Obiecte cu care lucreaza algoritmii