Sie sind auf Seite 1von 44

Estudos de Algoritmos Utilizando o VisuAlg 2.0 Cap.

Prof. Nilton Costa Junior


Disciplina: Programao Turma: A1PRG
IFSP- CAMPUS SALTO
1 31/05/2011

Como aprender algoritmos?


1.

2. 3. 4.

Estude os algoritmos propostos at compreender bem o funcionamento das estruturas. Faa os exerccios de fixao. Elabore exemplos utilizando os algoritmos estudados. V alm! Escreva resumos, comentrios, anotaes e tudo mais que possa esquecer! Lembre-se, a memria pode falhar.
2
31/05/2011

IFSP- CAMPUS SALTO

1.
2. 3. 4. 5.

1- Gerao de sequncia numrica crescente

6.
7.

8.

algoritmo "Sequencia Numerica Crescente // Funo : gera uma sequencia numerica de 1 ate 10 e mostra o resultado var x:inteiro inicio para x de 1 ate 10 faca // funcao PARA" escreva(x:3) // escreve a sequencia com fimpara // tabulacao 3 fimalgoritmo

3 IFSP- CAMPUS SALTO


31/05/2011

1.
2. 3. 4. 5.

2- Gerao de sequncia numrica crescente

6.
7.

8.
9.

10.

algoritmo "Sequencia Numerica Crescente // Funo : gera uma sequencia decrescente de 1 ate 10 e mostra o resultado. Obs: utilizando a funcao ENQUANTO var x:inteiro inicio x<-1 enquanto x<=10 faca // funcao ENQUANTO" escreva(x:3) // escreve a sequencia com x<-x+1 // tabulacao 3 fimenquanto fimalgoritmo

4 IFSP- CAMPUS SALTO


31/05/2011

1.
2. 3. 4. 5.

3- Gerao de sequncia numrica decrescente

6.
7.

8.

algoritmo "Sequencia Numerica Decrescente // Funo : gera uma sequencia decrescente de 10 ate 1 e mostra o resultado. Obs: obrigatrio o comando passo var x:inteiro inicio para x de 10 ate 1 passo -1 faca // funcao para" escreva(x:3) // escreve a sequencia Fimpara // com tabulacao 3 fimalgoritmo

5 IFSP- CAMPUS SALTO


31/05/2011

1.
2. 3. 4. 5.

4- Gerao de sequncia numrica decrescente

6.
7.

8.
9.

10.

algoritmo "Sequencia Numerica Decrescente // Funo : gera uma sequencia decrescente de 10 ate 1 e mostra o resultado. Obs: utilizando a funcao enquanto var x:inteiro inicio x<-10 enquanto x>=1 faca // funcao ENQUANTO" escreva(x:3) // escreve a sequencia com x<- x-1 // passo -1 fimenquanto fimalgoritmo

6 IFSP- CAMPUS SALTO


31/05/2011

5- Gerao de nmeros aleatrios


1.
2.

3.
4.

5.
6.

7.
8.

9.
10.

algoritmo Nmeros Aleatorios // Funo : gera 10 numeros aleatorios entre 0 e 100 var x, valor: inteiro inicio aleatorio 0,100 // liga "aleatorio" de 0 ate 100 para x de 1 ate 10 faca // funcao PARA" leia(valor) // le um valor aleatorio fimpara aleatorio off // desliga a funcao aleatorio fimalgoritmo

7 IFSP- CAMPUS SALTO


31/05/2011

Exerccios de fixao 1
1.
2. 3. 4.

5. 6. 7.

Faa um algoritmo para gerar uma sequncia numrica de 5 at 15, utilizando a funo para. Elabore agora um algoritmo para a mesma sequncia numrica acima utilizando a funo enquanto. Faa um algoritmo para uma sequncia numrica decrescente de 30 a 1 utilizando a funo enquanto. Crie um algoritmo que gere uma sequncia numrica decrescente com passo -3, de 15 at 3, utilizando a funo enquanto. Elabore um algoritmo que gere 5 nmeros aleatrios entre 0 e 50, utilizando as funes para e aleatorio. Faa um algoritmo que gere uma sequncia de 0...10 com passo 1 e em seguida de 10...1 com passo -2. Elabore um algoritmo que gere uma progresso aritmtica de sua escolha.
8
31/05/2011

IFSP- CAMPUS SALTO

6- Menu 1
1.
2.

3.
4.

5.
6.

7.
8.

9.
10.

11.
12.

algoritmo "Menu 1" //Funcao: Apresenta um menu de opcoes VAR opcao: inteiro inicio repita escreval ("Cadastro de clientes") escreval ("1-Incluir") escreval ("2-Alterar") escreval ("3-Consultar") escreval ("4-Excluir") escreval ("5-Sair)
9

IFSP- CAMPUS SALTO

31/05/2011

6- Menu 1
13.
14.

15.

Leia(opcao) ate opcao = 5 fimalgoritmo

10 IFSP- CAMPUS SALTO


31/05/2011

7- Menu 2
1.
2. 3. 4. 5.

6.
7.

8.
9.

10.
11.

12.

algoritmo "Menu 2" //Funcao: Apresenta um menu de opcoes com tratamento de erro de digitacao e limpa a tela VAR opcao: inteiro inicio repita escreval ("Cadastro de clientes") escreval ("1-Incluir") escreval ("2-Alterar") escreval ("3-Consultar") escreval ("4-Excluir") escreval ("5-Sair)
11

IFSP- CAMPUS SALTO

31/05/2011

7- Menu 2
13.
14.

15.
16.

17.
18.

19.
20.

leia(opcao) se (opcao<1) ou (opcao>5) entao escreva("Opcao errada! Digite novamente: ") leia(opcao) fimse limpatela ate opcao = 5 fimalgoritmo

12 IFSP- CAMPUS SALTO


31/05/2011

8- Menu 3
1.
2. 3. 4. 5.

6.
7.

8.
9.

10.
11.

12.

algoritmo "Menu 3" //Funcao: Apresenta um menu de opcoes com tratamento de erro de digitacao e limpa a tela VAR opcao: inteiro inicio enquanto opcao<>5 faca escreval ("Cadastro de clientes") escreval ("1-Incluir") escreval ("2-Alterar") escreval ("3-Consultar") escreval ("4-Excluir") escreval ("5-Sair)
13

IFSP- CAMPUS SALTO

31/05/2011

8- Menu 3
13.
14.

15.
16.

17.
18.

19.
20.

leia(opcao) se (opcao<1) ou (opcao>5) entao escreva("Opcao errada! Digite novamente: ") leia(opcao) fimse limpatela fimenquanto fimalgoritmo

14 IFSP- CAMPUS SALTO


31/05/2011

9- Menu 4
1.
2. 3. 4. 5.

6.
7.

8.
9.

10.
11.

12.

algoritmo "Menu 4" //Funcao: Apresenta um menu de opcoes e processamento com tratamento de erro de digitacao VAR opcao: inteiro status: logico inicio status <- VERDADEIRO enquanto status faca escreval ("Cadastro de clientes") escreval ("1-Incluir") escreval ("2-Alterar") escreval ("3-Consultar")
15

IFSP- CAMPUS SALTO

31/05/2011

9- Menu 4
13.
14.

15.
16.

17.
18.

19.
20.

21.
22.

23.
24.

25.

escreval ("4-Excluir") escreval ("5-Sair") leia(opcao) escolha opcao caso 1 escreval("Opcao escolhida: caso 2 escreval("Opcao escolhida: caso 3 escreval("Opcao escolhida: caso 4 escreval("Opcao escolhida: caso 5

",opcao) ",opcao) ",opcao) ",opcao)


16

IFSP- CAMPUS SALTO

31/05/2011

9- Menu 4
26.
27.

28.
29.

30.
31.

32.

escreval("Opcao escolhida: ",opcao) status <- FALSO outrocaso escreval("Opcao errada! Digite novamente") fimescolha fimenquanto fimalgoritmo

17 IFSP- CAMPUS SALTO


31/05/2011

Exerccios de fixao 2
1.

2. 3.

Faa um algoritmo de menu de opces utilizando a estrutura de repetio ate, conforme a tela abaixo: MENU: 1- Nome 2- Idade 3- RG 4- FIM Refaa o algoritmo anterior utilizando a estrutura enquanto e com tratamento de erro e limpeza de tela. Faa um algoritmo utilizando o menu do exerccio 1 e que exiba a seguinte mensagem na tela: Eu, nome, tenho idade de idade e RG: RG obs: as variveis sublinhadas devem conter os dados digitados pelo usurio
18
31/05/2011

IFSP- CAMPUS SALTO

10- Vetores 1
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

algoritmo Vetor de Nome e Telefone //Este algoritmo cria registros de nomes e telefones utilizando vetores. var i: inteiro nome: vetor[0..4] de caractere //cria o vetor nome[] telefone: vetor[0..4] de inteiro //cria o vetor telefone[] inicio para i de 0 ate 4 faca escreva(Nome: ) leia(nome[i]) escreva(Telefone: ) leia(telefone[i]) fimpara
19

IFSP- CAMPUS SALTO

31/05/2011

10- Vetores 1
14. 15. 16. 17.

para i de 0 ate 4 faca escreval(Registro [,i,]: ,nome[i], - Tel: ,telefone[i]) fimpara fimalgoritmo

20 IFSP- CAMPUS SALTO


31/05/2011

11- Vetores 2
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

algoritmo "Vetor Numerico classificado 1" // Este algoritmo cria um vetor de 3 numeros e os classifica em ordem crescente. var i: inteiro num: vetor[0..2] de inteiro //cria o vetor num[] inicio para i de 0 ate 2 faca escreva("Numero: ") leia(num[i]) fimpara se num[0]>num[1] entao i<-num[1] num[1]<-num[0]
21

IFSP- CAMPUS SALTO

31/05/2011

11- Vetores 2
14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

24.
25.

26.
27.

num[0]<-i fimse se num[0]>num[2] entao i<-num[2] num[2]<-num[0] num[0]<-i fimse se num[1]>num[2] entao i<-num[2] num[2]<-num[1] num[1]<-i fimse para i de 0 ate 2 faca escreva(num[i]:5)
22
31/05/2011

IFSP- CAMPUS SALTO

11- Vetores 2
28. 29.

fimpara fimalgoritmo

23 IFSP- CAMPUS SALTO


31/05/2011

12- Vetores 3
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

algoritmo "Vetor Numerico classificado 2" // Este algoritmo cria um vetor que classifica numeros em ordem crescente utilizando o mtodo Quick Sort. var i,j,n,aux: inteiro num: vetor[0..49] de inteiro //cria um vetor para armazenar ate 50 numeros inteiros: num[] inicio escreva("Digite a quantidade 'n' de numeros: ") leia(n) // define a qde de numeros do vetor para i de 0 ate (n-1) faca // entrada dos numeros escreva("Numero: ") // no vetor leia(num[i]) fimpara
24

IFSP- CAMPUS SALTO

31/05/2011

12- Vetores 3
13. 14. 15. 16. 17. 18. 19. 20. 21. 22.

23.
24.

25.

para i de 0 ate (n-2) faca // algoritmo quick sort para j de i+1 ate (n-1) faca se num[i]>num[j] entao aux<-num[j] num[j]<-num[i] num[i]<-aux fimse fimpara fimpara para i de 0 ate (n-1) faca // mostra os numeros escreva(num[i]:5) // classificados pelo algoritmo fimpara fimalgoritmo
25

IFSP- CAMPUS SALTO

31/05/2011

13- Vetores 4
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

algoritmo "Vetor Numerico classificado 3" // Este algoritmo cria um vetor que classifica numeros em ordem crescente utilizando o mtodo Bubble Sort. var i,j,n,aux: inteiro num: vetor[0..49] de inteiro //cria um vetor para armazenar ate 50 numeros inteiros: num[] inicio escreva("Digite a quantidade 'n' de numeros: ") leia(n) // define a qde de numeros do vetor para i de 0 ate (n-1) faca // entrada dos numeros escreva("Numero: ") // no vetor leia(num[i]) fimpara
26

IFSP- CAMPUS SALTO

31/05/2011

13- Vetores 4
13. 14. 15. 16. 17. 18. 19. 20. 21. 22.

23.
24.

25.

para i de 0 ate (n-1) faca // algoritmo bubble sort para j de 0 ate (n-2) faca se num[j]>num[j+1] entao aux<-num[j] num[j]<-num[j+1] num[j+1]<-aux fimse fimpara fimpara para i de 0 ate (n-1) faca // mostra os numeros escreva(num[i]:5) // classificados pelo algoritmo fimpara fimalgoritmo
27

IFSP- CAMPUS SALTO

31/05/2011

Exerccios de fixao 3
1.
2. 3.

4.

Faa um algoritmo utilizando vetores para criar registros contendo o nome, pronturio e idade de 10 alunos: Faa um algoritmo utilizando vetores para classificar 3 nmeros inteiros do maior para o menor Faa um algoritmo utilizando vetores para classificar 5 nmeros aleatrios na ordem decrescente utilizando o mtodo Quick Sort. Refaa o exerccio 3 utilizando o mtodo de classificao Bubble Sort.

28 IFSP- CAMPUS SALTO


31/05/2011

14- Matriz 1
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

algoritmo "Matriz Numrica de ordem 3" // Este algoritmo cria uma matriz quadrada de ordem 3 com valores numericos aleatorios. var i,j: inteiro //indices i e j da matriz matriz: vetor[0..2,0..2] de inteiro //matriz de ordem 3 inicio aleatorio 0,100 para i de 0 ate 2 faca para j de 0 ate 2 faca leia(matriz[i,j]) // le valores aleatorios fimpara fimpara aleatorio off fimalgoritmo
29

IFSP- CAMPUS SALTO

31/05/2011

15- Matriz 2
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

algoritmo " Soma das linhas de uma matriz de ordem 3" // Este algoritmo cria uma matriz de ordem 3 com numeros aleatorios e soma os valores de suas linhas. var i,j: inteiro //indices i e j da matriz matriz: vetor[0..2,0..2] de inteiro //matriz de ordem 3 som_linha: vetor[0..2] de inteiro //vetor soma das 3 linhas inicio aleatorio 0,100 para i de 0 ate 2 faca para j de 0 ate 2 faca leia(matriz[i,j]) // le valores aleatorios fimpara fimpara aleatorio off
30

IFSP- CAMPUS SALTO

31/05/2011

15- Matriz 2
14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

24.
25.

para i de 0 ate 2 faca // zera o vetor som_linha[i] som_linha[i]<-0 fimpara para i de 0 ate 2 faca // soma os valores da linha para j de 0 ate 2 faca som_linha[i]<- matriz[i,j]+som_linha[i] fimpara fimpara para i de 0 ate 2 faca // mostra o resultado escreval("Soma da linha ",i,"=",som_linha[i]) fimpara fimalgoritmo

31 IFSP- CAMPUS SALTO


31/05/2011

16- Matriz 3
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

algoritmo " Soma das colunas de uma matriz de ordem 3" // Este algoritmo cria uma matriz de ordem 3 com numeros aleatorios e soma os valores de suas colunas. var i,j: inteiro //indices i e j da matriz matriz: vetor[0..2,0..2] de inteiro //matriz de ordem 3 som_coluna: vetor[0..2] de inteiro //vetor soma das colunas inicio aleatorio 0,100 para i de 0 ate 2 faca para j de 0 ate 2 faca leia(matriz[i,j]) // le valores aleatorios fimpara fimpara aleatorio off
32

IFSP- CAMPUS SALTO

31/05/2011

16- Matriz 3
14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

24.
25.

para j de 0 ate 2 faca // zera o vetor som_coluna[j] som_coluna[j]<-0 fimpara para i de 0 ate 2 faca // soma os valores da coluna para j de 0 ate 2 faca som_coluna[j]<- matriz[i,j]+som_coluna [j] fimpara fimpara para j de 0 ate 2 faca // mostra o resultado escreval("Soma da coluna ",j,"=",som_coluna[j]) fimpara fimalgoritmo

33 IFSP- CAMPUS SALTO


31/05/2011

Exerccios de fixao 4
1.
2.

3.

4.

Faa um algoritmo para criar uma matriz quadrada de ordem 2 contendo nmeros aleatrios de 0 ate 10. Faa um algoritmo para criar uma matriz quadrada de ordem 2 contendo nmeros aleatrios de 0 a 10 e que faa a soma de suas linhas. Faa um algoritmo para criar uma matriz quadrada de ordem 2 contendo nmeros aleatrios de 0 a 10 e que faa a soma de suas colunas. Faa um algoritmo para criar uma matriz quadrada de ordem 2 contendo nmeros aleatrios de 0 a 10 e que faa a soma de suas diagonais.

34 IFSP- CAMPUS SALTO


31/05/2011

17- Gerao de nmeros primos v1


1.
2.

3.
4.

5.
6.

7.
8.

9.
10.

11.
12.

13.

algoritmo "Numeros Primos // Funo : Gera uma sequencia de numeros primos var x, y, resto: inteiro primo: logico inicio primo <- FALSO para x de 1 ate 10 faca se x MOD 2=0 entao primo <- FALSO senao primo <- VERDADEIRO para y de 2 ate x-1 faca resto <- x mod y
35

IFSP- CAMPUS SALTO

31/05/2011

17- Gerao de nmeros primos v1


14.
15.

16.
17.

18.
19.

20.
21.

22.
23.

se resto=0 entao primo <- FALSO fimse fimpara fimse se primo entao escreval(x:3) fimse fimpara fimalgoritmo

36 IFSP- CAMPUS SALTO


31/05/2011

18- Gerao de nmeros primos v2


1.
2.

3.
4.

5.
6.

7.
8.

9.
10.

11.
12.

13.

algoritmo "Numeros Primos_v1" // Funo : Gera uma sequencia de numeros primos var x, y, resto: inteiro primo, status: logico inicio primo <- FALSO para x de 1 ate 10 faca se x MOD 2=0 entao primo <- FALSO senao primo <- VERDADEIRO status <- VERDADEIRO y <- 2
37

IFSP- CAMPUS SALTO

31/05/2011

18- Gerao de nmeros primos v2


14.
15.

16.
17.

18.
19.

20.
21.

22.
23.

24.
25.

26.

enquanto status faca resto <- x mod y se resto=0 entao primo <- FALSO status <- FALSO senao y <- y+1 se y>=x entao status<-FALSO fimse fimse fimenquanto fimse
38

IFSP- CAMPUS SALTO

31/05/2011

18- Gerao de nmeros primos v2


27.
28.

29.
30.

31.

se primo entao escreval(x:3) fimse fimpara fimalgoritmo

39 IFSP- CAMPUS SALTO


31/05/2011

19- Verifica se um nmero primo


1.
2.

3.
4.

5.
6.

7.
8.

9.
10.

11.
12.

13.

algoritmo "Verifica Numeros Primos" // Funo : Verifica se um numero e' primo var x, resto, numero: inteiro primo: logico inicio escreva("Entre com um numero inteiro maior que zero: ") leia(numero) primo <- FALSO se numero mod 2 =0 entao primo <- FALSO senao primo <- VERDADEIRO para x de 2 ate numero-1 faca
40

IFSP- CAMPUS SALTO

31/05/2011

19- Verifica se um nmero primo


14.
15.

16.
17.

18.
19.

20.
21.

22.
23.

24.
25.

resto <- numero mod x se resto=0 entao primo <- FALSO fimse fimpara fimse se primo entao escreval("O valor ",numero," e' primo") senao escreval("O valor ",numero," nao e' primo") fimse fimalgoritmo
41

IFSP- CAMPUS SALTO

31/05/2011

20- Calcula o fatorial (n!)


1.
2.

3.
4.

5.
6.

7.
8.

9.
10.

11.
12.

algoritmo "Calcula Fatorial" // Funo : Calcula o fatorial de um numero var valor, fatorial, x : inteiro inicio escreva("Entre com um valor inteiro: ") leia(valor) fatorial <- 1 para x de 1 ate valor faca fatorial <- fatorial * x fimpara escreva("O fatorial de ",valor," e' ",fatorial) fimalgoritmo
42

IFSP- CAMPUS SALTO

31/05/2011

Exerccios de fixao 5
1.
2. 3.

Faa os fluxogramas dos algoritmos 10, 11, 12 e 13 Modifique os algoritmos 10 e 11 para entrada de valores numricos pelo teclado entre 1 e 1000 inclusive. Crie um algoritmo para calcular: valor= num2 + (num-1)2 + ... + 1; onde num uma varivel inteira fornecida pelo usurio de 1 at 100.

43 IFSP- CAMPUS SALTO


31/05/2011

Referncias bibliogrficas

Moraes , Paulo Srgio. Lgica de Programao. Unicamp Centro de Computao DSC, 2000. Preto, Tnia Martins. Lgica de Programao. CURITIBA JULHO/2007.

44 IFSP- CAMPUS SALTO


31/05/2011

Das könnte Ihnen auch gefallen