Saturday, December 22, 2012

Thursday, December 20, 2012

Sistemas de Informações












fonte: aulas CECIERJ
http://www.scielo.br/pdf/rcf/v12n26/v12n26a01.pdf
OBRIGATÓRIO OLHAR FIGURAS: http://msdn.microsoft.com/pt-br/library/gg490650.aspx#ti

Operadores


















Fonte: http://www.slideshare.net/raphaelmarques/operadores-java#btnNext


Escopo de variáveis



Questões importantes estrutura de Dados



(Cesgranrio 2011 transpetro Anal. Desen. Software) O algoritmo Bubble Sort é popular, mesmo que ineficiente. Usando-se esse algoritmo para ordenar uma tabela, alocada sequencialmente, em ordem crescente contendo os números [5, 4, 1, 3, 2] serão feitas:

            
  a) 10 comparações e 8 trocas           
  b) 10 comparações e 9 trocas
  c) 10 comparações e 10 trocas
  d) 16 comparações e 9 trocas
  e) 16 comparações e 10 trocas


gab A

Algumas questões importantes sobre Estrutura de Dados do caderno Estrutura de Dados do site www.questoesdeconcursos.com.br :

Q249367  - árvores
Q232436 

Q259712 , Q232182 , Q202051 , Q212716 , Q108454 , Q165257 , - Algoritmos de busca
Q27185 , Q264147 , Q265044 , Q259711 , - filas
Q194219  , - Complexidade de algoritmos veja Complexidade de Algoritmos
 

Matrizes


Procedimento x Função










Fazendo o teste de mesa temos(nesse caso deve-se fazer o teste de mesa baseado nas alternativas):

x
i

10, 11, 13
2
X mod i
0, 1, 1

FLAG
S, N, N

Recursividade




Para resolver esse exercício tem que tomar cuidado porque o examinador chama a função da seguinte forma função(y, x), ou seja, ele inverte a ordem.
Lembre-se de que o comando MOD retorna o RESTO da DIVISÃO INTEIRA.
Fazendo o teste de mesa temos:
               
x
y
928, 100, 28, 16, 12, 4
100, 28, 16, 12, 4, 0
1) Função(x,y:integer)


2) Y=0?  
100=0?, 28 =0?, 16=0? 12 =0? 4=0? 0=0?

       2.1) Função = x
4

3) X<y    


       3.1) função(y,x)


4) x>y


       4.1) função(y,x mod y)
100, 28, 16, 12, 4
28, 16, 12, 4, 0


 



Pra resolver a questão acima precisa saber como calcula o MDC(máximo divisor comum) entre 2 números, já que o examinador não informou como faz o cálculo do MDC, esse conceito foi cobrado como se o candidato já soubesse como calcular o MDC(FODA!!! Hehe). Relembrando como se calcula o MDC(lembre-se que MDC é diferente de MMC):
  • CÁLCULO DO M.D.C. PELO PROCESSO DAS DIVISÕES SUCESSIVAS
            Nesse processo efetuamos várias divisões até chegar a uma divisão exata. O divisor desta divisão é o m.d.c. Acompanhe o cálculo do m.d.c.(48,30).
    Regra prática:
    1º) dividimos o número maior pelo número menor;
            48 / 30 = 1 (com resto 18)
    2º) dividimos o divisor 30, que é divisor da divisão anterior, por 18, que é o resto da divisão anterior, e assim sucessivamente;
            30 / 18 = 1 (com resto 12)
            18 / 12 = 1 (com resto 6)
            12 / 6 = 2 (com resto zero - divisão exata)
    3º) O divisor da divisão exata é 6. Então m.d.c.(48,30) = 6.

Realizando o teste de mesa com os números do exemplo acima (48,30) temos:

a
b
Function MDC(A, B)
30, 18, 12, 6
48, 30, 18, 12



1) B mod A = 0?
18, 12, 6, 0

      1.1) result = A
6

2) result = MDC(B, A mod B)
18(repare que o 18 é o valor do resto de B mod A, ou seja, 48 mod 30 (não é o 48, CUIDADO!!!), 12, 6
30(repare que o 30 mod 48 dá 30, ou seja, sempre o menor valor quando se tenta calcular o resto entre um número menor que o outro),18, 12


resolução:
1 + aleam(5,4) = 1+5=6


aleam(5,4)
    5=4 ou 4=0

    aleam(4,4) + aleam(4,3)
    1+ aleam(4,3) = 1+4=5

                aleam(4,3)
                               4=3 ou 3=0
                               aleam(3,3) + aleam(3,2)
                               1 + aleam(3,2)= 1+3=4
                                               aleam(3,2)
                                                               3=2 ou 2=0
                                                               aleam(2,2) + aleam(2,1)
                                                               1 + aleam(2,1) = 1 +2= 3
                                                                              aleam(2,1)
                                                                                              2=1 ou 1=0
                                                                                              aleam(1,1) + aleam(1,0)
                                                                                              1+ aleam(1,0) = 1+1
                                                                                                              aleam(1,0)
                                                                                                                             1=0 ou 0=0
                                                                                                                                             1