• Nie Znaleziono Wyników

Zadania 2 – Badanie poprawności semantycznej algorytmu 1.

N/A
N/A
Protected

Academic year: 2021

Share "Zadania 2 – Badanie poprawności semantycznej algorytmu 1."

Copied!
5
0
0

Pełen tekst

(1)

Zadania 2 – Badanie poprawności semantycznej algorytmu

1. Dany jest następujący algorytm obliczający wartości wyrażenia 32n – 4. Udowodnij indukcyjnie jego poprawnośd względem warunku początkowego  i koocowego .

int Potega_dwa(int n)

{ //  : n  1

if(n==0) return -1;

if(n==1) return 2;

return 3*Potega_dwa(n-1)-2*Potega_dwa(n-2);

} //  : wartością funkcji jest 32n – 4

2. Dany jest następujący algorytm obliczający wartości wyrażenia 2n + 2. Udowodnij indukcyjnie jego poprawnośd względem warunku początkowego  i koocowego .

int Potega_dwa(int n)

{ //  : n  0

if((n==0)||(n==1)) return n+3;

return 3*Potega_dwa(n-1)-2*Potega_dwa(n-2);

} //  : wartością funkcji jest 2n + 2

3. Dany jest następujący algorytm obliczający wartości wyrażenia 22n – 1. Udowodnij indukcyjnie jego poprawnośd względem warunku początkowego  i koocowego .

int Potega_dwa(int n)

{ //  : n  0

if((n==0)||(n==1)) return 2n+1;

return 3*Potega_dwa(n-1)-2*Potega_dwa(n-2);

} //  : wartością funkcji jest 22n – 1

4. Dany jest następujący algorytm obliczający wartości wyrażenia 33n – 2. Udowodnij indukcyjnie jego poprawnośd względem warunku początkowego  i koocowego .

int Potega_trzy(int n)

{ //  : n  0

if((n==0)||(n==1)) return 6n+1;

return 4*Potega_trzy(n-1)-3*Potega_trzy(n-2);

} //  : wartością funkcji jest 33n – 2

5. Dany jest następujący algorytm obliczający wartości wyrażenia 54n – 3. Udowodnij indukcyjnie jego poprawnośd względem warunku początkowego  i koocowego .

int Potega_cztery(int n)

{ //  : n  0

if((n==0)||(n==1)) return 15n+2 else

return 5*Potega_cztery(n-1)-4*Potega_cztery(n-2);

} //  : wartością funkcji jest 33n – 2

(2)
(3)
(4)

13. Udowodnid za pomocą indukcji, że podany niżej algorytm sprawdzania, czy element x jest w drzewie binarnym, przy przeglądaniu drzewa metodą inorder, jest semantycznie poprawny, względem warunku początkowego alfa i koocowego beta.

struct element {

int wartosc;

element *pien;

element *konar_lewy;

element *konar_prawy;

}

typedef element, *el_drzewa;

int inorder (el_drzewa korzen, int x) {

//{alfa: korzen !=NULL}

int pom=0;

if ((*korzen).konar_lewy!=NULL)

pom=inorder((*korzen).konar_lewy,x);

if (pom) return 1;

else

if ((*korzen).wartosc==x) return 1;

if ((*korzen).konar_prawy!=NULL)

pom=inorder((*korzen).konar_prawy,x);

if (pom) return 1;

else return 0;

//{beta: funkcja zwraca 1, gdy "x jest elementem drzewa"}, // zwraca 0, gdy "x nie jest elementem drzewa".}

}

14. Udowodnid za pomocą indukcji, że podany niżej algorytm sprawdzania, czy element x jest w drzewie binarnym, przy przeglądaniu drzewa metodą postorder, jest semantycznie poprawny, względem warunku początkowego alfa i koocowego beta.

struct element {

int wartosc;

element *pien;

element *konar_lewy;

element *konar_prawy;

}

typedef element, *el_drzewa;

int postorder (el_drzewa korzen, int x) {

//{alfa: korzen !=NULL}

int pom=0;

if ((*korzen).konar_lewy!=NULL)

pom=postorder((*korzen).konar_lewy,x);

if (pom) return 1;

else

if ((*korzen).konar_prawy!=NULL)

pom=postorder((*korzen).konar_prawy,x);

if (pom) return 1;

if ((*korzen).wartosc==x) return 1;

else return 0;

(5)

//{beta: funkcja zwraca 1, gdy "x jest elementem drzewa"}, // zwraca 0, gdy "x nie jest elementem drzewa".}

}

15. Obliczyd pesymistyczną i średnią złożonośd obliczeniową następującego algorytmu, obliczającego, czy podana liczba x znajduje się w tablicy (w zależności od n):

const n=10;

int tab[n]={1,2,3,2,-7,44,5,1,0,-3};

int szukaj(int tab[n], int x)

{//funkcja zwraca indeks poszukiwanego elementu x int pos=0;

while ((pos<n)&&(tab[pos]!=x)) pos++;

if(pos<n) return pos; //element został znaleziony else return -1 //porażka poszukiwań }

Cytaty

Powiązane dokumenty

Zbadaj zbieżność ciągu określonego

Zbadaj zbieżność ciągu określonego rekurencyjnie:.. Wskazówka: ciąg ten nie

Pokazać, że zbiorem wartości tej funkcji jest przedział ]1, 2]..

TeX, algorytm sortowania, informatyzacja procesu dydaktycznego, ECTS] Streszczenie W pracy podany jest sposób wykorzystania pewnych poleceń w TeX-u w celu uzyskania możliwości

Pokaż przebieg algorytmów wyszukiwania sekwencyjnego (indeks), binarnego z powtórzeniami (kolejne przedziały) oraz bez powtórzeń (kolejne przedziały) przy

Pokaż, że jeśli LCM(F,G) na R n spełnia warunke kontolowalności oraz Γ jest niesingularny wzglę- dem miary Lebsegue’a to n-szkielet tego procesu jest T -łańcuchem..

W konsekwencji przyjmuje ona na całym rozwa- żanym przedziale [10, 50] największą (a zarazem najmniejszą) wartość π/4 (niewymierną, bo π

Analiza matematyczna I, / Zestaw nr 2 Indukcja matematyczna.