Algoritmos Estruturas de Controle

Documentos relacionados
Algoritmos: Estruturas de Controle

Estruturas de Controle em Python

Python - Comandos de Repetição

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Algoritmos e Programação

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Universidade Veiga de Almeida Algoritmos e Linguagem I

ESTRUTURAS DE CONTROLE

Estrutura Condicional

Introdução a programação Comandos de repetição

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Estruturas de Repetição. João Medeiros FATERN

Vetores. Introdução à Programação para Biologia Molecular

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

para / for (com teste numérico) enquanto / while (com teste lógico no início) repita até que / do...while (com teste lógico no fim)

Amanda Gondim de Oliveira

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

para / for (com teste numérico) enquanto / while (com teste lógico no início) repita até que / do...while (com teste lógico no fim)

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

... contador = contador + 1; //contador++; ... <fim_da_estrutura_de_repetição> soma = 0; <estrutura_de_repetição_com_variável_x> soma = soma + x;

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Estruturas de Repetição Parte I ENQUANTO-FAÇA

9. Comando de repetição com variável de controle (para.. de.. até.. faça)

Algoritmos e Estruturas de Dados I

Algoritmos Estrutura Condicional

Programação Procedimental

PDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol

Estruturas de Repetição

Linguagem C estruturas de repetição

Algoritmos e Programação (While Do While - Do) Prof. Me. Adelson Felipe Dias Nogueira

Estruturas de Repetição Parte I ENQUANTO-FAÇA

Essa estrutura de repetição é utilizada quando se sabe o número de vezes que um trecho do algoritmo deve ser repetido.

Estruturas de Repetição

Estruturas de Repetição Parte I ENQUANTO

INFORMÁTICA APLICADA AULA 05 ALGORITMOS

Aula 7 Oficina de Programação Estruturas de Repetição no C. Profa. Elaine Faria UFU

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo

Introdução à Ciência da Computação

Estrutura de Repetição

Estruturas de Repetição. Estruturas de Repetição. Estruturas de Repetição. Estruturas de Repetição. Estruturas de Repetição Condicionais

ESTRUTURAS DE REPETIÇÃO

UNIDADE 4 ESTRUTURAS DE CONTROLE

Algoritmos I Aula 10 Estrutura de controle: repetição

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição - GABARITO Repetição com Variável de Controle - Para Professor: Danilo Giacobo

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Repetição. Prof. César Melo

Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Comando REPITA (repeat) Comando REPITA (repeat)

ESTRUTURA CONDICIONAL E SELEÇÃO

Laços de repetição for, while, do-while

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Estruturas de Repetição

Aula 5 Controle do Fluxo de Execução

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de repetição. Prof. Alex Camargo

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Resumindo As estruturas de repetição são utilizadas quando necessitamos realizar comandos diversas vezes

Algoritmos - 5. Alexandre Diehl. Departamento de Física - UFPel

Estruturas de Repetição

COMANDOS DE REPETIÇÃO (ENQUANTO, REPITA E PARA)

Algoritmos e Programação

COMANDOS DE REPETIÇÃO (ENQUANTO)

Algoritmos - 3. Alexandre Diehl. Departamento de Física - UFPel

1ª LISTA DE EXERCÍCIOS

Oficina de Python Prof. Me. José Carlos Perini

Linguagem C ESTRUTURA DE CONTROLE

Controle de Fluxo Comandos de repetição: while e do-while

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

AULA 07. HABILIDADES TRABALHADAS: Desenvolver algoritmos utilizando laços a partir da leitura de fluxogramas ou algoritmos em portugol.

Programação de Computadores:

Oficina de Python Prof. Me. José Carlos Perini

Linguagem de Programação

Este conceito é bastante simples e será útil e conveniente nos itens seguintes, na definição das estruturas básicas de controle de execução.

Estruturas de Controle

Python 3.x Estrutura de Repetição while

Aula 8: Estruturas de Repetição: O comando while

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

CURSO BÁSICO DE PROGRAMAÇÃO AULA 5. Revisão Laços de Repetição

Estruturas Condicionais e de Repetição

Estrutura de decisão

Transcrição:

Algoritmos Estruturas de Controle Introdução à Programação para Biologia Molecular Rosane Minghim Apoio na confecção: Danilo Medeiros Eler Rogério Eduardo Garcia Algoritmo Execução sequencial: Uma vez executado um comando, os demais são executados na sequência; Execução condicional: Deseja-se selecionar os a serem executados: Executar os em determinadas condições; Repetição: Repetir blocos de pela mudança do fluxo de execução. Baseado na Apostila: Curso Introdutório de Computação por R. Minghim e G. P. Telles 1 2 Algoritmo Escolha Simples Execução seqüencial: Uma vez executado um comando, os demais são executados na seqüência; Deseja-se selecionar os a serem executados: Executar os em determinadas condições; Repetição: Repetir blocos de pela mudança do fluxo de execução. Pode-se selecionar a seqüência de a ser executada; Formato: se condição então não? sim 3 4 1

de Escolha Simples Escolha Composta constante FATOR_CATEGORIA_1 = 1,0 TAXA_BÁSICA = 20,00 categoria: inteiro taxa: real leia(categoria) taxa taxa_básica se categoria = 1 então taxa taxa - (TAXA_BÁSICA * FATOR_CATEGORIA_1) Formato: se condição então não? sim escreva(taxa) Código Python: categoria_1.py 5 6 Estruturas Aninhadas constante FATOR_CATEGORIA_1 = 1,0 FATOR_GERAL = 0,2 TAXA_BÁSICA = 20,00 categoria: inteiro taxa: real leia(categoria) taxa taxa_básica se categoria = 1 então taxa taxa - (TAXA_BÁSICA * FATOR_CATEGORIA_1) taxa taxa - (TAXA_BÁSICA * FATOR_GERAL) Algoritmo maiordetres {algoritmo para obter o maior entre três valores inteiros} maior: inteiro numero1, numero2, numero3: inteiro leia(numero1, numero2, numero3) se numero1>numero2 então se (numero1 > numero3) então maior numero1 maior numero3 se (numero2 > numero3) então maior numero2 maior numero3 escreva(taxa) Python: duas_categorias.py 7 Python: maior_de_tres_sala.py maior_de_tres_sala_elif.py 8 2

Estruturas Aninhadas (simplificação) Exercício Resolvido Ref. Minghim, R., Telles, G.P. Curso Introdutório de Programação Algoritmo maiordetres_melhor {algoritmo para obter o maior entre três valores inteiros} maior: inteiro numero1, numero2, numero3: inteiro leia(numero1, numero2, numero3) maior <- numero1 se (numero2 > maior) então maior numero2 se (numero3 > maior) então maior numero3 maior numero1 numero2 numero3 Resolver em sala de aula: Desenvolver um algoritmo para, dados dois times de futebol (cada time identificado por um número inteiro), seus pontos ganhos e seu saldo de gols no campeonato, decidir qual dos dois está em melhor colocação (armazenando o resultado na ganhador). O resultado deve ser impresso. A regra diz que está na frente no campeonato o time que tiver mais pontos ganhos, com desempate pelo saldo de gols. Python:maior_de_tres_melhor.py 9 10 Escolhas Múltiplas Escolhas Múltiplas Permite escolher uma entre várias alternativas expressas por valor inteiro ou caracter; Formato: selecione expressão entre constante: constante:... constante: leção 11 Na seleção múltipla, a expressão é calculada e os relacionados abaixo da constante com o mesmo valor da expressão são executados. Se não houver valor igual ao da expressão, os subordinados à palavra são executados. A cláusula é opcional. Se ela não existir e o valor da expressão não for igual a nenhuma constante, nenhum comando da estrutura é executado. A seleção é exclusiva No máximo uma das opções é executada. 12 3

Algoritmo desconto_taxa constante FATOR_CATEGORIA_1 = 1,0 FATOR_CATEGORIA_2 = 0,8 FATOR_CATEGORIA_3 = 0,5 FATOR_GERAL = 0,2 TAXA_BÁSICA = 20,00 categoria: inteiro taxa: real leia(categoria) Python:multipla.py selecione categoria entre 1: taxa taxa - (taxa_básica * FATOR_CATEGORIA_1) 2: taxa taxa - (taxa_básica * FATOR_CATEGORIA_2) 3: taxa taxa - (taxa_básica * FATOR_CATEGORIA_3) taxa taxa - (taxa_básica * FATOR_GERAL) leção escreva(taxa) 13 Exercício Resolvido Ref. Minghim, R., Telles, G.P. Curso Introdutório de Programação Resolver em sala de aula: Desenvolver um algoritmo para calcular o valor de uma cartela de passes de ônibus para um passageiro. Uma cartela pode ter 50 ou 100 passes. Determinados tipos de usuários possuem desconto na compra de passes, de acordo com a tabela abaixo: idosos 50% estudantes 50% trabalhadores faixa I 50% trabalhadores faixa II 25% trabalhadores faixa I e estudante 75% 14 Repetição por Condição Uma das formas de repetir um conjunto de de um algoritmo é subordiná-lo a um comando de repetição usando uma estrutura da forma: enquanto condição faça enquanto? sim não Repetição por Condição Os serão repetidos zero ou mais vezes, enquanto o valor da condição for verdadeiro. Essa estrutura normalmente é denominada laço ou loop. 15 16 4

Repetição por Condição Funcionamento A condição da cláusula enquanto é testada. Se ela for verdadeira os seguintes são executados em seqüência como em qualquer algoritmo, até a cláusula enquanto. O fluxo nesse ponto é desviado de volta para a cláusula enquanto. Se a condição agora for falsa (ou quando finalmente for), o fluxo do algoritmo é desviado para o primeiro comando após a cláusula enquanto. Se a condição ainda for verdadeira, o processo se repete. Repetição por Condição A condição pode ser qualquer expressão que resulte em um valor do tipo lógico e pode envolver operadores aritméticos, lógicos, relacionais e resultados de funções. 17 18 Algoritmo calcula_senos Algoritmo calcula_senos n, i: inteiro leia(n) i 0 enquanto i n faça escreva(i, seno(i)) i i + 1 enquanto escreva ( do cálculo ) i n = falso 19 n, i: inteiro leia(n) i 0 enquanto (i < 45) e (i < n + 1) faça escreva(i, seno(i)) i i + 1 enquanto escreva ( do cálculo ) 20 5

Exercícios 1 rever os exercícios de laços baseados na prática 1 (ver arquivos de exemplos e de códigos) 2 Fazer algoritmos e programas Python para: 2.1 Imprimir a soma dos valores inteiros entre a e b inclusive (a e b lidos do usuário) 2.2 alterar o código da prática I para executar até o usuário digitar 0 (zero), e contar e imprimir ao final quantas vezes o usuário entrou com os dados no programa. Loop Infinito enquanto verdadeiro faça enquanto Um loop infinito pode acontecer também quando cometemos algum erro ao especificar a condição lógica que controla a repetição ou ao esquecer de algum comando dentro da iteração. 21 22 Algoritmo calcula_senos n, i: inteiro A i não é incrementada leia(n) i 0 enquanto (i < 45) e (i < n + 1) faça escreva(seno(i)) enquanto 23 soma consecutiva de dados sem estrutura de repetição Algoritmo somasimples valor1, valor2, valor2, valor4: real soma: real leia(valor1, valor2, valor3, valor4) soma (valor1 + valor2 + valor3 + valor4)/4 escreva(soma) 24 6

soma consecutiva de dados Algoritmo somasimples Outra forma de Repetição valor, soma: real soma 0 leia(número) enquanto número > -100 faça soma soma + número leia(número) enquanto escreva(soma) Com teste no final do bloco de. Uma diferença dessa forma para a anterior é que os dentro da estrutura são executados uma vez antes que a condição seja testada pela primeira vez, e serve para os processos iterativos onde existe garantia de execução correta do bloco pelo menos uma vez. Exercício: Além da soma, calcular a média aritmética 25 26 Outra forma de Repetição Outra diferença com relação à forma anterior de repetição é que enquanto aquela estabelecia uma condição de continuidade, esta estabelece a condição de parada para a repetição. O seu formato é dado por: repita até condição Nesse caso, os são repetidos uma ou mais vezes, até que a condição se torne verdadeira (isto é, enquanto a condição for falsa). Algoritmo calcula_quadrado número: real repita número=0 falso leia(número) escreva(número*número) até número = 0 27 28 7

Exercício Repetição por Contagem Fazer a soma consecutiva de valores inteiros lidos até a soma atingir 25500 ou até que tenham sido lidos 150 termos. Imprimir o número de termos da soma. Se a soma excedeu o limite, imprimir a diferença, imprimir a soma. Casos de teste Na iteração baseada em contagem, sabe-se antecipadamente quantas vezes um conjunto de vai ser repetido. Formato: para de valor_inicial até valor_final passo valor_do_passo faça para 29 30 Repetição por Contagem Inicialmente a, que chamamos de controladora, é inicializada com o valor_inicial. Devem ser do tipo inteiro. Em seguida, os são repetidos zero ou mais vezes, enquanto o valor da estiver entre o valor_inicial e o valor_final, inclusive. No final de cada repetição do conjunto de, a controladora é automaticamente acrescida do valor_do_passo e o teste do limite é repetido Algoritmo conta_com_para n, i: inteiro leia(n) para i de 1 até n passo 1 faça escreva(i) para 31 32 8

Repetição por Contagem A estrutura de controle para admite uma variação em que a repetição se dá em ordem decrescente. Basta que o valor do passo seja negativo. Algoritmo conta_decrescente i,n: inteiro leia (n) para i de n até 1 passo -1 faça escreva(i) para 33 Algoritmo expoente base, expoente, resultado: inteiro i: inteiro leia(base, expoente) resultado 1 para i de 1 até expoente passo 1 faça resultado resultado*base para escreva (resultado) 34 s dos and don ts Algoritmo laço_ruim constante LIMITANTE = 25500 n, soma, i: inteiro leia (n) soma 0 para i de 1 até n passo 1 faça leia(termo) soma soma + termo se soma > LIMITANTE então i n + 1 para escreva (soma) Algoritmo laço_bom constante LIMITANTE = 25500 n, soma, i: inteiro leia (n) soma 0 i 1 Enquanto (i n) e (soma LIMITANTE) faça leia(termo) soma soma + termo i i + 1 enquanto escreva (soma) 35 Equivalência entre as três formas de repetição É possível perceber que apenas uma forma de iteração (por exemplo, aquela da cláusula enquanto), seria suficiente para desenvolver qualquer algoritmo baseado em repetição. As demais formas existem para facilitar a estruturação dos algoritmos e aumentar a clareza do código. 36 9

Qualquer laço de repetição baseado em contagem é equivalente a uma estrutura enquanto no seguinte formato: valor_inicial enquanto valor_final faça + valor_do_passo enquanto 37 Algoritmo expoente base, expoente, resultado: inteiro; i: inteiro; leia(base,expoente) resultado 1 i 1 Enquanto i expoente faça resultado resultado*base i i + 1 para escreva (resultado) 38 Percorrendo um Algoritmo: Casos de Teste Um algoritmo deve ser revisado buscando melhorias. Além disso, é preciso verificar se sua execução está correta. Um recurso para iniciar esse processo é percorrer o algoritmo. Simular manualmente a execução de cada passo do algoritmo até chegar ao, assumindo valores para aqueles dados que são lidos do usuário. 39 40 10