Você está na página 1de 5

Engenharia da Computao 3 Semestre 2009 Disciplina: Estrutura de Dados I Prof Enio Jos Bolognini Entregar no dia 31/03/2009.

. No aceito depois desta data!!! Esta valendo 1 ponto na mdia. Deixarei no Xerox uma cpia!!! 1. Por que estudar estrutura de dados? R: Estruturas de Dados a disciplina que estuda as tcnicas computacionais para a organizao e manipulao eficiente de quaisquer quantidades de informao. 2. O que uma TDA? Explique? R: estrutura de dados capaz de representar os tipos de dados que no foram previstos no ncleo das linguagens de programao e que, normalmente, so necessrios para aplicaes especficas, e divididas em duas partes: Os dados e as Operaes. TAD uma boa maneira de armazenar os dados e definio de um conjunto adequado de operaes. A representao do TAD, composta pela definio da estrutura de dados e pela especificao das operaes aplicveis sobre ele. 3. O que so tipos de dados? 4. Explique os mtodos vocs para construir algoritmos e diminuir a complexidade? 5. Faa as seguintes funes recursivas: A) algoritmo exemplo1 (x : inteiro) se(x<5) ento exemplo1 <- (3*x) seno exemplo 1<-(2 * exemplo1(x 5)+7) fim_se O que ser retornado? Exemplo1(4) =? Exemplo1(10) =? Exemplo1(12) =?

#include <iostream.h> #include <conio.h> main() {

int exemplo1(int); int a; cout << "\n Entre com valor: "; cin >> a; cout << "\n Exemplo1(" << a << ")" << " = " << exemplo1(a); cout << "\n\n"; getch(); } int exemplo1(int x) { int ret; if(x<5) { ret=(x*3); } else { ret = 2*exemplo1(x-5)+7; } return(ret); } ----------------------------------------------------------------------------------------------------------------------------B) algoritmo exemplo2 (x : inteiro, y : inteiro) se(x<y) ento exemplo2 <- (-3) seno exemplo 2 <- ((x y, y + 3)+y) fim_se O que ser retornado? Exemplo1(2,7) =? Exemplo1(5,3)= ? Exemplo1(15,3) =?

#include <iostream.h> #include <conio.h> main() { int exemplo2(int, int); int a,b; cout << "\n Entre com valor de X: "; cin >> a; cout << "\n Entre com valor de Y: "; cin >> b; cout << "\n Exemplo2(" << a << " , " << b << ") = " << exemplo2(a,b) << "\n"; getch(); } int exemplo2(int x, int y) { int ret; if(x<y) { ret = (-3); } else { ret = ((x-y,y+3)+y); } return(ret); } ------------------------------------------------------------------------------------------------------------------------C) Um nmero perfeito um nmero que igual soma de seus fatores. Por exemplo, 6 um nmero perfeito porque 6 = 1+2+3. Escreva um algoritmo recursivo para calcular todos os menores nmeros perfeitos para um determinado nmero. #include <iostream.h> #include <conio.h> main() {

int perfeitos(int); int x; cout << "\n Digite um valor: "; cin >> x; perfeitos(x); getch(); } int perfeitos(int b) { int aux=0; for(int i=1; i<=b; i++) { if(aux < b) { aux += i; } else if(aux == b) { cout << "\n O numero e Perfeito!\n"; cout << b << " = "; //cout << i; for(int j=1; j<i; j++) { if(j<i-1) cout << j << " + "; else if(j==i-1) cout << j; } return(aux); } else { cout << "\n O numero nao e Perfeito!"; return(aux); } }

Você também pode gostar