listadeexercicios-algoritmosresolvida-131215224348-phpapp02.pdf

download listadeexercicios-algoritmosresolvida-131215224348-phpapp02.pdf

of 12

Transcript of listadeexercicios-algoritmosresolvida-131215224348-phpapp02.pdf

  • ALGORITMOS COM PSEUDOCDIGO LISTA DE EXERCCIOS RESOLVIDA E COMENTADA

    OBS: Os algoritmos das solues abaixo esto com a sintaxe de acordo com o VisuAlg, para que possam ser executados no mesmo

    EXERCCIOS SOBRE ESTRUTURAS SEQUENCIAIS:

    1 calcular a rea de um retngulo

    A rea de uma figura geomtrica retangular calculada pela frmula rea = largura x altura

    As variveis de entrada so altura e largura, do tipo real, pois pode haver medida com parte fracionria

    Poderamos criar uma varivel de sada para a rea, porm podemos calcular e mostrar o resultado sem usar essa varivel

    O esboo da soluo em linguagem natural seria: o Solicitar valor da largura e altura o Calcular rea e mostrar resultado

    algoritmo "area retangulo" var altura, largura: real inicio Escreva("Digite a altura: ") Leia(altura) Escreva("Digite a largura: ") Leia(largura) Escreval("A rea : ",altura*largura) fimalgoritmo

    2 - Armazenar dois nmeros em variveis e trocar os valores das variveis

    algoritmo "troca variaveis" // para fazer a troca de valores de duas variveis // necessrio uma varivel auxiliar pois se fizermos // a troca direta, um dos valores ser perdido var

    a,b,aux: inteiro inicio Escreva("Digite o valor para a variavel A: ") Leia(a) Escreva("Digite o valor para a variavel B: ") Leia(b) aux

  • 3 - Calcular as razes de uma equao do segundo grau

    algoritmo "raizes equacao do 2o grau" // OBS: Como o VisuAlg no tem a funo RAIZ(), iremos solicitar // o valor da raiz de delta ao usurio. Em uma linguagem que tenha // a funo RAIZ(), basta fazer raizdelta

  • EXERCCIOS SOBRE ESTRUTURAS CONDICIONAIS:

    1 - Faa um algoritmo que leia um nmero inteiro diferente de zero e diga se este positivo ou negativo 2 - Altere o algoritmo anterior para dizer tambm se o nmero igual a zero (use se encadeados)

    algoritmo "positivo ou negativo" var num: inteiro inicio Escreva("Digite um nmero: ") Leia(num) se num>0 entao escreva("O nmero positivo") fimse se num

  • Soluo 1 (com o teste do issceles, que mais complexo) Algoritmo "Triangulo" Var lado1, lado2 , lado3 : real Inicio Escreva("Digite o lado 1: ") Leia(lado1) Escreva("Digite o lado 2: ") Leia(lado2) Escreva("Digite o lado 3: ") Leia(lado3)

    // testa se o tringulo vlido // (a soma de dois lados no pode ser menor que a do terceiro lado) se (lado1+lado2

  • Soluo 2: sem o teste do issceles, usando estruturas se..senao Algoritmo "Triangulo" Var lado1, lado2 , lado3 : real Inicio Escreva("Digite o lado 1: ") Leia(lado1) Escreva("Digite o lado 2: ") Leia(lado2) Escreva("Digite o lado 3: ") Leia(lado3)

    // testa se o tringulo vlido // (a soma de dois lados no pode ser menor que a do terceiro lado) se (lado1+lado2

  • 2 - Solicitar uma quantidade pr-determinada de nmeros e calcular a soma e mdia entre esses nmeros

    J vimos como fazer a soma de nmeros. Para calcular a mdia basta dividir a soma pela quantidade de nmeros digitados. Como no sabemos a quantidade de nmeros que o usurio quer digitar, ento devemos perguntar e usar uma estrutura para para repetir os comandos de solicitar um nmero e somar esse nmero essa quantidade de vezes,. O clculo da mdia a apresentao dos resultados deve ficar aps a estrutura de repeti

    Variveis de entrada: quantidade de nmeros (quantidade) (tipo inteiro) Varivel de contagem: c Variveis de processamento e sada: soma (inteiro) e media (real, pois a mdia pode

    ter parte fracionria) algoritmo "soma e mdia de nmeros var quantidade,numero,soma,c: inteiro media: real inicio escreva("Quantos nmeros voc quer somar? ") leia(quantidade) para c de 1 ate quantidade faca escreva("Digite o ",c,"o nmero: ") leia(numero) soma

  • 4 - Calcular o fatorial de um nmero. Dicas: N ! = N * (n-1) * (n-2)... * 1 Ex: 5! = 5 * 4 * 3 * 1 = 60

    Podemos observar na frmula do fatorial que precisaremos fazer multiplicaes sucessivas, onde o resultado da ltima multiplicao ser multiplicado novamente por um outro nmero (ex: 5*4 = 20; 20 * 3 = 60 ; 60 * 1 = 60). Essa multiplicao pode ser feita de forma similar varivel acumuladora, s que em vez de somar, multiplicando. Ex: resl

  • EXERCCIOS SOBRE VETORES:

    1- Faa algoritmo para ler um vetor de 10 valores inteiros e depois identificar e mostrar o menor valor

    A lgica deste algoritmo : o Preencher o vetor o Percorrer cada posio do vetor, procurando qual o menor nmero (ao iniciar,

    supomos que o menor o primeiro do vetor) 2- Altere o algoritmo anterior para procurar um nmero digitado pelo usurio, informando a sua posio, se ele constar no vetor

    Aqui acrescentamos os trechos destacados para a pergunta e um teste a mais dentro do PARA

    algoritmo "Vetor 10 numeros" var

    vet: vetor[1..10] de inteiro c,menor,num,posicao: inteiro inicio // preenche o vetor para c de 1 ate 10 faca escreva("Digite o ",c,"o numero: ") leia(vet[c]) fimpara // testa se um numero existe no vetor Escreva("Digite o numero a procurar no vetor: ") Leia(num) // -- procura o menor e o nmero digitado menor

  • 3- Faa um algoritmo que inverta a posio dos valores de um vetor de seis posies de inteiros Neste algoritmo a lgica usar uma varivel auxiliar para a troca (veja exerccio da troca do

    valor de duas variveis) e achar uma expresso matemtica para referenciar o elemento da posio simtrica, onde ser feita a troca

    Para a troca, basta percorrermos a metade do vetor e usarmos a varivel auxiliar e a expresso encontrada no passo anterior

    Algoritmo "menor valor no vetor" var

    vet: vetor[1..6] de inteiro i, aux: Inteiro Inicio Para i de 1 ate 6 faca Escreva("Digite o ",i," valor do vetor: ") Leia(vet[i]) FimPara Para i de 1 ate 3 faca aux

  • EXERCCIOS SOBRE MATRIZES:

    1- Crie um algoritmo que crie uma matriz 4 x 4 de inteiros, solicite os valores ao usurio e depois mostre qual o maior e menor valor na matriz

    Este algoritmo similar as exerccios 1 e 2 de vetores, sendo que para preencher e percorrer a matriz precisaremos de duas estruturas PARA (uma para as linhas e outra para as colunas da matriz)

    2- Altere o algoritmo anterior para procurar na matriz um valor digitado pelo usurio Aqui acrescentamos os trechos destacados para a pergunta e um teste a mais dentro do

    PARA

    algoritmo "matriz 4x4" var

    num: vetor[1..4,1..4] de inteiro l,c,menor,maior,numproc,linha,coluna: inteiro inicio // preenche a matriz para l de 1 ate 4 faca para c de 1 ate 4 faca escreva("Digite o numero da pos.",l,",",c,": ") leia(num[l,c]) fimpara fimpara // pergunta qual nmero deseja procurar na matriz Escreva("Digite o numero a procurar na matriz: ") Leia(numproc) // no incio supomos que o primeiro o maior e o menor valor menor

  • 3- Faa um algoritmo para guardar os nomes e resultados de jogos da loteria esportiva

    4-Faa um algoritmo para multiplicar duas matrizes

    algoritmo "multiplica matrizes 4x4" var matriz1: vetor[1..4,1..4] de inteiro matriz2: vetor[1..4,1..4] de inteiro produto: vetor[1..4,1..4] de inteiro l,c: inteiro inicio // preenche a matriz 1 Escreval("Digite os valores para a matriz 1:") para l de 1 ate 4 faca para c de 1 ate 4 faca escreva("Digite o numero da pos.",l,",",c,": ") leia(matriz1[l,c]) fimpara fimpara // preenche a matriz 2 Escreval("Digite os valores para a matriz 1:") para l de 1 ate 4 faca para c de 1 ate 4 faca escreva("Digite o numero da pos.",l,",",c,": ") leia(matriz2[l,c]) fimpara fimpara // multiplica Escreval(Matriz-produto:) para l de 1 ate 4 faca para c de 1 ate 4 faca produto[l,c]=matriz1[l,c] * matriz2[c,l] escreva(produto[l,c]) fimpara escreval("") // salta linha fimpara fimalgoritmo

    5-Faa um algoritmo para calcular o determinante de uma matriz

    EXERCCIO SOBRE REGISTROS:

    1. Crie um algoritmo para guardar o nome e as duas notas dos 40 alunos de uma turma e depois calcular a mdia e resultado de cada um deles, sendo que a mdia para aprovao 7

    EXERCCIOS SOBRE SUB-ALGORITMOS:

    1. Reescreva um dos exerccios de vetores ou matrizes criando um procedimento para ler os dados e outro para processar e mostrar os resultados

  • 2. Crie uma funo para calcular o fatorial de um nmero

    algoritmo "Fatorial" var num,res: inteiro

    funcao fat(x: inteiro) : inteiro var fatorial,c: inteiro Inicio fatorial