Algoritmos e Estruturas de Dados I Estruturas de
- Slides: 26
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez
Algoritmo Um algoritmo é formado por comandos, que determinam as ações a serem executadas para resolver um certo problema. Estes comandos são organizados em estruturas de controle de fluxo (ECF). ECF determinam a ordem dos comandos e especificam, em uma dada condição, quais destes devem ser executados e se devem ser repetidos.
Algoritmo Estas estruturas de controle de fluxo são: Sequencial, Condicional e de Repetição.
Estruturas de controle de fluxo Estrutura Sequencial: Execução dos comandos em uma sequência linear (na mesma ordem em que foram escritas). Exemplo: Algoritmo <Sequencial> inteiro: idade literal: nome Início escreva “Informe seu nome: “ leia (nome) escreva “Informe sua idade: “ leia (idade) escreva “Você se chama”, nome, “e possui”, idade, “anos!”
Estruturas de controle de fluxo Estrutura Condicional : É utilizada quando há uma condição lógica que desviará o fluxo do algoritmo para um diferente bloco de comandos, dependendo da condição ser verdadeira ou falsa. Exemplo: se (A > B) então escreva “A é maior” senão escreva “O B é maior ou são iguais”
Estruturas de controle de fluxo Estrutura de Repetição: Execução de uma sequência de comandos repetidas vezes. O computador abandona o fluxo natural da execução (de cima para baixo) e volta a executar a sequência de ações desejada. Exemplo: M← 1 enquanto (M < 10) faça A←B M←M+1 Fim enquanto
Algoritmo Adotamos o seguinte formato para um algoritmo sem módulos Algoritmo <nome> declarações de variáveis e constantes Inicio comandos Fim
Estrutura Sequencial Os comandos deverão ser executados numa sequência linear, seguindo-se o texto em que estão escritos, de cima para baixo. Exemplo: Algoritmo <exemplo 1> inteiro: a, b, c Inicio leia (a, b) c ← a*b escreva (a, b, c) Fim
Estrutura Sequencial 1. Escreva um algoritmo que leia um número e exiba o dobro do mesmo. ANALISE Deve-se obter um dado que é um número, em seguida calcular seu dobro e, finalmente, fornecer o valor de saída, que é o resultado da operação efetuada. A estrutura do algoritmo é, portanto sequencial: leitura do número calculo do dobro saída de dobro
Estrutura Sequencial A obtenção do dado consiste no armazenamento dele em uma localização de memória do computador. As localizações da memória identificadas por nomes são chamadas variáveis. ENTRADA: No nosso problema a entrada consiste de apenas um dado que é um número inteiro. A variável que conterá este número chamaremos de num. PROCESSAMENTO : O dobro de num será representado por 2*num e será armazenada na variável dobro. SAIDA : O saída consistirá em escrever o conteúdo da variável dobro.
Estrutura Sequencial O fornecimento de um valor à variável num é indicado pelo comando leia (num) A atribuição de um valor a uma variável é indicada pelo símbolo ← dobro ← 2*num Finalmente, para representar a saída de informações, utiliza-se o comando de saída escreva (dobro)
Estrutura Sequencial TESTE DE MESA A memória Esses comandos escritos sequencialmente, nessa ordem, descrevem o algoritmo de resolução do problema dado. Algoritmo <dobro> inteiro: num, dobro Inicio leia (num) dobro ← 2*num escreva (dobro) Fim num dobro 4 8 A tela 4 8
Estrutura Sequencial 2. Escreva um algoritmo que dado um número inteiro obtenha o último algarismo desse número. Exemplo: dado o número 7663, deve-se obter o número 3; e dado o número 779, deve-se obter o número 9. ANALISE: Ao escrever um número inteiro no sistema de numeração decimal (base 10), o último algarismo da direita representa as unidades porque, após o primeiro agrupamento em grupos de 10 a quantidade de unidades que sobra é representada pelo último algarismo da direita. Portanto, o resto da divisão do número dado por 10, dará o resultado desejado
TESTE DE MESA Estrutura Sequencial A memória Algoritmo <ultimo_algarismo> inteiro: num, ultimo_alg Inicio leia (num) A tela ultimo_alg← MOD(num, 10) escreva (ultimo_alg) Fim num 487 7 ultimo_alg 7
Estrutura Sequencial 3. Escreva um algoritmo que leia duas variáveis, troque o conteúdo entre elas e exiba elas trocadas. ANÁLISE : Para trocar o conteúdo de duas variáveis devese guardar o valor da primeira em uma variável auxiliar, depois atribuir o valor da segunda variável para a primeira e então fazer com que a segunda variável fique com o valor da variável auxiliar. ENTRADA: numero 1 e numero 2 PROCESSAMENTO: O valor de numero 1 será guardada na variável aux, o valor de numero 2 será guardada na variável numero 1 e finalmente o valor de aux será guardada na variável numero 2. SAIDA: numero 1 e numero 2
Estrutura Sequencial Algoritmo <troca> inteiro: numero 1, numero 2, aux Inicio leia (numero 1, numero 2) aux← numero 1 ← numero 2 ← aux escreva (numero 1, numero 2) Fim
Estrutura Sequencial 4. Escreva um algoritmo que calcule e exiba a média ponderada de duas notas. As notas e os pesos deverão ser lidos. 5. Faça um algoritmo que dadas duas frações ordinárias a/b e c/d, determinar a sua soma e o seu produto (ambas como frações). 6. Faça um algoritmo que dados o primeiro termo e a razão de uma progressão aritmética, determine a soma dos seus primeiros cinco termos.
Estrutura Sequencial 7. Faça um algoritmo que dado um número inteiro que representa um número binário de cinco dígitos, determine o seu equivalente decimal. Algoritmo <binario 5 digitos> inteiro: binario, primeiro, segundo, terceiro, quarto, quinto, decimal Inicio leia (binario) primeiro ←DIV(binario, 10000) segundo ←MOD(DIV(binario, 1000), 10) terceiro ←MOD(DIV(binario, 100), 10) quarto ←MOD(DIV(binario, 10) quinto ←MOD(binario, 10) decimal←primeiro*2**4+segundo*2**3+terceiro*2**2+quarto*2 +quinto
Estrutura Sequencial 7. (outra solução). Algoritmo <binario 5 digitos> inteiro: binario, primeiro, segundo, terceiro, quarto, quinto, decimal Inicio leia (binario) primeiro ←DIV(binario, 10000) segundo ←DIV(MOD(binario, 10000), 1000) terceiro ←DIV(MOD(binario, 1000), 100) quarto ←DIV(MOD(binario, 100), 10) quinto ←MOD(binario, 10) decimal←primeiro*2**4+segundo*2**3+terceiro*2**2+quarto*2 +quinto Fim
Estrutura Sequencial 8. Dado um número inteiro de 3 algarismos, inverter a ordem de seus algarismos. Os três algarismos do número dado são diferentes de zero.
Estrutura Sequencial
Estrutura Sequencial Algoritmo<3 -4 algarismos> inteiro: num, novonum, primer, segun, terc, digitocont Inicio leia (num) prim ←DIV(num, 100) segun ←DIV(MOD(num, 100), 10) terc ←MOD(num, 10) digitocont ←MOD(prim+segun*3+terc*5, 7) novonum ←num*10+digitocont Fim
Estrutura Sequencial 10. Faça o algoritmo para calcular qual foi a porcentagem de desconto dada em um determinado produto, sabendo-se o preço original do produto e o preço que foi cobrado por ele depois do desconto. Algoritmo<porcentagem> real: pre_orig, pre_cob, porc_dscto Inicio leia (pre_orig, pre_cob) porc_dscto ←((pre_orig-pre_cob)/pre_orig)*100 escreva (porc_dscto) Fim
Estrutura Sequencial 11. Para se obter uma indicação da taxa atual de inflação, gostaríamos de comparar o preço pago hoje por um artigo com o preço pago pelo mesmo artigo no mês anterior. Faça um algoritmo que lê uma pequena descrição do produto comprado, seu preço atual e seu preço no mês anterior. O algoritmo deve calcular a diferença algébrica e a diferença percentual entre os preços, e deve também exibir a seguinte frase: O produto ____ está R$ _____ mais caro, o que corresponde a um aumento de _____ %.
Estrutura Sequencial Algoritmo <inflacao> literal: nome_produto real: pre_atual, pre_mes_ant, dif_alg, dif_perc Inicio leia (nome_produto, pre_atual, pre_mes_ant) dif_alg ←pre_atual-pre_mes_ant dif_perc ←(dif_alg/pre_mes_ant)*100 escreva (“O produto”, nome_produto, ”está R$”, dif_alg, ”mais caro, o que corresponde a um aumento de”, dif_perc, ”%”) Fim
Estrutura Sequencial 12. Dado um número inteiro de segundos determinar o seu valor equivalente em graus, minutos e segundos. Se a quantidade de segundos for insuficiente para dar o valor em graus, o valor em graus deve ser zero. A mesma observação continua válida em relação a minutos e segundos. Por exemplo: 3600 segundos = 1 grau, 0 minutos, 0 segundos; 3500 segundos = 0 graus, 58 minutos, 20 segundos.
- Série estatística geográfica
- Algoritmos programacion
- Ejemplos de algoritmos y diagramas de flujo
- Algoritmos
- Algoritmos
- Notao
- Algoritmo de prim
- Algoritmos de escalonamento
- Algoritmos
- Algoritmos genéticos ejemplos resueltos python
- Resolver algoritmos
- Algoritmos voraces
- Complexidade de algoritmos
- Variable acumuladora
- Ws clock
- Operaciones elementales algoritmos
- Metodologia pcam
- Metodo de la baraja
- Representación de algoritmos
- Radix sort complejidad
- O que são algoritmos
- Conjuncion
- Tipos de datos logicos
- Grafo dirigido
- Complexidade de algoritmos
- Elo320
- Algoritmos conceptos basicos