Beruflich Dokumente
Kultur Dokumente
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
1.
2. 3. 4. 5.
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
1.
2. 3. 4. 5.
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
1.
2. 3. 4. 5.
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
1.
2. 3. 4. 5.
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
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
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
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
31/05/2011
6- Menu 1
13.
14.
15.
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
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
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
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
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
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
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
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
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
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
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
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
11- Vetores 2
28. 29.
fimpara fimalgoritmo
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
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
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
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
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.
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
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
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
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
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
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.
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
31/05/2011
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
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
31/05/2011
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
31/05/2011
29.
30.
31.
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
31/05/2011
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
31/05/2011
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
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.
Referncias bibliogrficas
Moraes , Paulo Srgio. Lgica de Programao. Unicamp Centro de Computao DSC, 2000. Preto, Tnia Martins. Lgica de Programao. CURITIBA JULHO/2007.