LINGUAGEM DE PROGRAMAÇÃO ESTRUTURADA CAPÍTULO 5 ESTRUTURAS DE REPETIÇÃO EM C#

Documentos relacionados
LINGUAGEM DE PROGRAMAÇÃO ESTRUTURADA CAPÍTULO 4 ESTRUTURA DE DECISÃO EM C#

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?

Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano

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

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

Seleção Múltipla Laços (while, do-while, for) AULA 05

Programação I Estruturas de Repetição

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

1 TECNOLOGIA ELEMENTAR CAPÍTULO 4 E-books PCNA. Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 4 ROTINAS DE REPETIÇÃO. Página 1

Linguagem C. Programação Estruturada. Estruturas de Controle. Prof. Luis Nícolas de Amorim Trigo

Aula 4 Oficina de Programação Algoritmos - Parte 3. Profa. Elaine Faria UFU

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

LINGUAGEM C: COMANDOS DE REPETIÇÃO

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

Algoritmos e Programação

Estruturas de Repetição e String. Vanessa Braganholo

3. Linguagem de Programação C

Introdução à Programação. Estruturas de Repetição

Programação Estruturada Aula - Estruturas de Repetição

10 Comandos de repetição

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

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

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

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

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

Variáveis primitivas e Controle de fluxo

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

Aula 15: Repetição (Parte 3)

Estruturas de Repetição e String

Linguagem C 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)

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Comando de Seleção em Java

Aula 4 Estruturas de Controle

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

Python 3.x Estrutura de Repetição while

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Linguagem C (repetição)

CONTROLE DE FLUXO. Algoritmos e Programação. Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10

E X E R C Í C I O S 01. Sobre o comando CASO, marque as alternativas como verdadeira (V) ou falsa (F):

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

Algoritmos e Programação

Revisão C++ - Parte 1

Programação: Vetores

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

Introdução à Programação. Estruturas de Repetição

" # $ % & ' ( ) 1/6 29/11/2004 : : : A1 (Custódio) A2 (Custódio) B2 (Dirceu) A3 (Dirceu) B3( Dirceu) B1 (Marcus) B4 (Marcus) PARTE TEÓRICA

Algoritmos e Programação

INTRODUÇÃO AO AMBIENTE DE PROGRAMAÇÃO MATLAB

ESTRUTURAS DE REPETIÇÃO - PARTE 1

... 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 Repetição

Estruturas de Controle

ESTRUTURAS DE CONTROLE

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

CAI Fluxograma Revisão 7

Algoritmos e Técnicas de

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

INSTRUÇÕES DE REPETIÇÃO

Estruturas de Decisão

LP II Estrutura de Dados

Estruturas de Controle

Prof. A. G. Silva. 13 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de setembro de / 21

Estruturas de repetição

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

Laboratório 3 Comandos de repetição while, do-while e for

Controle de Fluxo Comandos de repetição

Sintaxe Básica de Java Parte 2

05/11/2018. Linguagem de Programação e Estruturada

Lógica de Programação e Algoritmos

Fundamentos de programação

Métodos Computacionais. Comandos Condicionais e de Repetição em C

Linguagem de Programação III

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

C Comandos de Controle

Python - Comandos de Repetição

Oficina de Programação de Drones Fundamentos de Python Prof. Me. José Carlos Perini

Programação de Computadores Profa Jacqueline 1

Oficina de Python Prof. Me. José Carlos Perini

Estruturas Condicionais e de Repetição

Entrada Processamento Saída

Semana 2 Estruturas de Condição, Seleção e Repetição. Prof. Tiago Jesus de Souza

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

Comandos de repetição while

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

Programação de Computadores I. Linguagem C Estruturas de Repetição

Linguagem C Princípios Básicos (parte 1)

INFORMÁTICA APLICADA AULA 05 ALGORITMOS

Aula 7 Estruturas de Repetição Cleverton Hentz

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Transcrição:

LINGUAGEM DE PROGRAMAÇÃO ESTRUTURADA CAPÍTULO 5 ESTRUTURAS DE REPETIÇÃO EM C# As estruturas de repetição são muito úteis e empregadas quando se deseja executar uma, ou um bloco, de instruções diversas vezes Suponha uma operação simples para cálculo da média aritmética de 10 números diferentes Seriam necessárias dez instruções para informação ao usuário para digitar um número e mais 10 instruções para leitura e atribuição dos dados de entrada Inicialmente este problema estaria resolvido, porém, suponha que em uma segunda análise (ou segundo cálculo) seriam utilizados 15 valores Neste caso, o programador deveria entrar no modo de edição do programa e inserir mais cinco conjuntos de instruções para a leitura destes cinco valores adicionais As estruturas de repetição, também conhecidas por laços de repetição, loops ou simplesmente laços, eliminam esta indesejável situação, permitindo total controle do número de repetições pelo usuário ou desenvolvedor Existem três tipos de estrutura de repetição: do while; while e for Cada uma delas apresenta uma forma mais adequada de aplicação, com isto, evita-se o uso de comandos para interrupção de execução (break, continue, goto, etc), o que pode ser oneroso em termos de desempenho da aplicação A representação destas estruturas sob a forma de fluxogramas é apresentada na figura: <instruçâo>; ou bloco de <instruções>; <instrução de repetição> (condição) <instrução de repetição> (condição) <instruçâo>; ou bloco de <instruções>; Figura 20 Estruturas de Repetição - Fluxogramas Linguagem de Programação Estruturada 48

Pode-se observar, na figura à esquerda que, independente do valor do parâmetro de controle da estrutura, a instrução (ou bloco de instruções) relacionada a esta ela será executada pelo menos uma vez, pois, sua condição é avaliada somente no sea A estrutura representada pelo fluxograma à direita da Figura 20 apresenta esta verificação (ou condição) em seu início e dependendo do resultado desta avaliação, as instruções relacionadas a ela, podem não serem executadas 51 - Laços do while O grande diferencial neste modelo de estrutura é que sua continuidade está condicionada a uma expressão lógica (condição) posicionada em seu final Isto implica que sua execução será realizada pelo menos uma vez Um aspecto interessante é que esta condição pode estar relacionada a um valor de entrada digitado pelo usuário Sua sintaxe é, Figura 21: static void Main (string [ ] args); do <instrução 1>; <instrução 2>; <instrução 3>; <instrução 4>; while (condição); verdadeira Atividade em Laboratório Uma empresa de seguros relaciona o premio (preço) de suas apólices para uma determinada região em função da idade média de seus habitantes, calculada segundo a fórmula abaixo: n Figura 21 estrutura do while xi x = 1 onde: x i idade de um indivíduo n n total de indivíduos Para tanto coletas de dados foram realizadas em diversas regiões e os dados foram agrupados de forma bruta, conforme apresentado abaixo: REGIÃO A (Idade em anos): 18, 65, 25, 37, 40, 32, 20, 81, 2, 1, 0, 12, 15, 76, 72 Linguagem de Programação Estruturada 49

REGIÃO B (Idade em anos): 32, 27, 41, 25, 38, 37, 1, 3, 40, 32, 20, 81, 2, 1, 0, 12, 15, 76, 72, 95, 88, 32 REGIÃO C (Idade em anos): 18, 2, 5, 7, 40, 22, 25, 20, 81, 2, 1, 9, 11, 22, 33,28, 0, 12, 15, 76, 72 Elaborar um algoritmo que calcule a idade média de cada região e identifique o número de indivíduos pesquisados e a idade mais alta de cada uma das regiões SOLUÇÃO: O código abaixo é um exemplo da implementação da solução do problema acima Elabore seu fluxograma usando este código, faça a implementação do programa e execute para as Regiões identificadas no problema Quais foram os resultados? Seus resultados estão compatíveis com os valores esperados? static void Main(string[] args) int n_ind=0, idade=0, maisvelho=0,soma=0; string controle; double media; do n_ind++; ConsoleWriteLine("\n Entre com a idade do indivíduo n 0:", n_ind); idade = ConvertToInt16(ConsoleReadLine()); if (idade > maisvelho) maisvelho = idade; soma += idade; ConsoleWriteLine("\n Deseja continuar?"); ConsoleWriteLine("\n Digite \"s\" para continuar ou \n pressione qualquer outra tecla para parar:"); controle = ConsoleReadLine(); while (controletolower() == "s"); media = soma / n_ind; ConsoleWriteLine("\n*********************************************"); ConsoleWriteLine("\n Numero de individuos pesquisados: 0", n_ind); ConsoleWriteLine("\n Média de Idade da Região: 0", media); ConsoleWriteLine("\n Maior idade do grupo: 0 anos", maisvelho); ConsoleWriteLine("\n*********************************************"); ConsoleReadKey(); 52 - Laços while Este tipo de estrutura tem como particularidade a verificação de sua continuidade (através de uma condição ou expressão lógica) em seu início Sua sintaxe de aplicação é a mostrada na Figura 22 static void Main (string [ ] args); while (condição) falsa <instrução 1>; <instrução 2>; <instrução 3>; <instrução 4>; Figura 22 estrutura while Linguagem de Programação Estruturada 50

É importante observar que em ambas estruturas é necessário a definição, variação e/ou leitura de uma variável de controle que será empregada na expressão lógica (condição ou teste) que define a continuidade da execução da estrutura Esta variável deve ser declarada e inicializada no início do programa e antes do início da estrutura de repetição A estrutura while tem como particularidade a verificação de sua condição de continuidade (ou teste) em seu início Ao contrário da estrutura do while, ela pode não ser executada Outro aspecto importante é que não é necessário estabelecer um número de iterações (ou ciclos) antes do início de sua execução Sua condição de parada, ou término de execução, pode ser verificada internamente ainda durante sua execução quer seja por um cálculo que envolva a variável de controle, seja por uma variável lida O mesmo programa elaborado e executado na atividade anterior, pode ser implementado empregando-se esta estrutura O código ficaria conforme apresentado abaixo: static void Main(string[] args) int n_ind=0, idade=0, maisvelho=0,soma=0; string controle="s"; double media; while (controletolower() == "s") n_ind++; ConsoleWriteLine("\n Entre com a idade do indivíduo n 0:", n_ind); idade = ConvertToInt16(ConsoleReadLine()); if (idade > maisvelho) maisvelho = idade; soma += idade; ConsoleWriteLine("\n Deseja continuar?"); ConsoleWriteLine("\n Digite \"s\" para continuar ou \n outra tecla para parar:"); controle = ConsoleReadLine(); media = soma / n_ind; ConsoleWriteLine("\n*********************************************"); ConsoleWriteLine("\n Numero de individuos pesquisados: 0", n_ind); ConsoleWriteLine("\n Média de Idade da Região: 0", media); ConsoleWriteLine("\n Maior idade do grupo: 0 anos", maisvelho); ConsoleWriteLine("\n*********************************************"); ConsoleReadKey(); pressione qualquer Atividades em Laboratório Exercícios propostos A - Elabore um programa em C# que calcule e escreva o valor do número π (pi), com precisão de 0,0001, usando a série: 4 4 4 4 4 π = 4 + + + 3 5 7 9 11 Para obter a precisão desejada, adicionar apenas os termos cujo valor absoluto seja maior ou igual a 0,0001 Utilize as estruturas de repetição do while e while Linguagem de Programação Estruturada 51

B - Elabore um algoritmo que receba como entrada o Nome, o registro acadêmico (RA) e o período do curso de um aluno Considerando estas entradas válidas o programa iniciará o recebimento, como entradas válidas, dos nomes e de suas correspondentes notas ( NP1, NP2 e NPII ) de todas as disciplinas que este aluno cursou neste período O programa deverá calcular e exibir a média final deste aluno e sua condição ( Aprovado ou Exame ) de todas as disciplinas deste período Uma vez concluído o cálculo para um aluno, o programa deverá estar habilitado a receber os mesmos dados de quantos alunos o usuário do programa desejar Ao final da execução o programa deverá exibir o Nome, RA e disciplina do aluno com maior média de todos que fariam composição do grupo 53 Laços for Os laços for são empregados quando se conhece previamente o número de iterações desejadas para solução de um determinado problema Sua sintaxe envolve, obrigatoriamente, a definição de uma variável de controle e uma condição envolvendo esta variável A variação (incremento ou decremento) desta variável ocorre automaticamente toda vez que uma iteração é concluída A sintaxe da estrutura de repetição for é representada na figura abaixo static void Main (string [ ] args); for ( inicialização; condição ; operação ) <instrução 1>; <instrução 2>; <instrução 3>; <instrução 4>; Figura 23 estrutura for 531 Inicialização Consiste de um valor inicial da variável que será empregada para controle da estrutura de repetição, também conhecida como contador Exemplo: for (i=0;condição;operação) Observe que a variável i é inicializada com o valor zero Também pode-se declarar a variável dentro da própria estrutura de repetição, ou seja: for (int i=0; condição;operação) Neste caso a variável i deixa de existir ao término da estrutura de repetição Embora seja raro, uma estrutura de repetição em C# pode conter a inicialização de duas variáveis Linguagem de Programação Estruturada 52

532 Condição A condição em uma estrutura for deve, obrigatoriamente, envolver a variável de controle É a partir desta condição que se estabelece a realização, ou não, de uma nova iteração Assim, tem-se: for (i=0; i <= n;operação) Observe que n pode ser um valor constante ou uma variável cujo valor é atribuído através da entrada de dados por um usuário 533 Operação Trata-se da forma em que a variável de controle (ou contador) irá ser atualizada a cada iteração da estrutura Assim, tem-se: for (i=0; i <= n;i++) Observe que n pode ser um valor constante ou uma variável cujo valor é atribuído através da entrada de dados por um usuário IMPORTANTE: A variável de controle não pode ser alterada através de instruções dentro da estrutura de repetição Isto irá gerar um erro grave de lógica podendo resultar, inclusive, em uma estrutura sem final definido (laço infinito) Atividades em Laboratório Exercícios propostos A - Faça a implementação do programa abaixo e execute ele passo a passo (usando o debug) Verifique o valor que a variável de controle assume a cada passo Descreva nas linhas abaixo o que você concluiu da execução da estrutura de repetição static void Main(string[] args) int i; for (i = 0; i <= 100; i++) ConsoleWrite("i= 0 ", i); Comentário : Linguagem de Programação Estruturada 53

B Elabore um programa em C# que receba como entrada o nome de uma disciplina e o número de alunos de uma sala de aula Considerando estas entradas válidas o programa recebe ainda como entrada os nomes e suas respectivas notas na disciplina mencionada (P1 e P2) O programa deverá calcular e exibir, o nome da disciplina, o nome de cada aluno e suas notas P1 e P2 e a média (aritmética) final de cada aluno indicando se ele foi aprovado (média 7,0) ou reprovado (média < 7,0) Ao final da execução o programa deverá ainda exibir o nome, as notas e a média final do aluno com maior média da turma C Partindo do programa elaborado na atividade B, inclua o período que o aluno está cursando e todas as disciplinas (5 disciplinas) deste período Use como referência as disciplinas do período que você está cursando 54 Interrupção da execução de uma estrutura de repetição Para a interrupção (proposital) de repetições existem quatro comandos: break: interrompe imediatamente a repetição O programa continua sua execução normal após o final da estrutura de repetição continue: interrompe a iteração A estrutura de repetição continua a partir da próxima iteração; goto: através de uma instrução de desvio do fluxo de execução das instruções para uma posição fora da estrutura de repetição, pode-se, de uma forma consciente interrompê-la e return: sai da estrutura de repetição e da função que ela está implementada ( aplicada a funções ) A interrupção de estruturas de repetição pode ser um recurso muito útil, embora em muitos casos, são indesejados Veja uma situação em que a execução de um programa gera, de forma equivocada, uma estrutura de repetição infinita ( loop infinito ) Geralmente o desenvolvedor deve estabelecer (ou estimar) um número máximo de iterações para sua aplicação e, uma vez atingido, a execução do programa deve ser interrompida e o usuário informado sobre o motivo da interrupção Atividade em Laboratório: No programa abaixo foi inserido uma opção de entrada errada do usuário Ele pode inserir dados errados por até 3 vezes e, após isto, o programa encerra sua execução exibindo uma mensagem final de erro Linguagem de Programação Estruturada 54

Reescreva o programa, substituindo a estrutura de repetição while do por uma estrutura for (assuma um número máximo de indivíduos) Observe que as instruções para interrupção do programa serão alteradas class Idade static void Main(string[] args) int n_ind=0, idade=0, maisvelho=0,soma=0,nerro=0; string controle="s"; double media; while (controletolower() == "s") n_ind++; if (nerro > 3) ConsoleWriteLine("\n Programa interrompido - Entrada errada por mais de 3 vezes"); goto fim; ConsoleWriteLine("\n Entre com a idade do indivíduo n 0:", n_ind); idade = ConvertToInt16(ConsoleReadLine()); if (idade < 0) nerro++; n_ind--; ConsoleWriteLine("\n Não existe idade negativa!"); continue; if (idade > maisvelho) maisvelho = idade; soma += idade; ConsoleWriteLine("\n Deseja continuar?"); ConsoleWriteLine("\n Digite \"s\" para continuar ou \n pressione qualquer outra tecla para parar:"); controle = ConsoleReadLine(); fim: media = soma / n_ind; ConsoleWriteLine("\n*********************************************"); ConsoleWriteLine("\n Numero de individuos pesquisados: 0", n_ind); ConsoleWriteLine("\n Média de Idade da Região: 0", media); ConsoleWriteLine("\n Maior idade do grupo: 0 anos", maisvelho); ConsoleWriteLine("\n*********************************************"); ConsoleReadKey(); Linguagem de Programação Estruturada 55

Nome: TAREFA 5 ESTRUTURAS DE REPETIÇÃO EM C# RA: Curso: Turma: 1) Uma concessionária de veículos resolveu premiar o vendedor que obteve melhor desempenho no mês, de um total de 15 vendedores Para tanto foi necessário a elaboração de um programa que receba como entrada os dados pessoais e profissionais de cada vendedor (Nome, endereço, CPF, RG e Número de Funcional na empresa) e suas vendas mensais (Veículo, Data de Compra, Valor da Compra, Valor tabelado para a venda, Desconto Concedido e Brinde Concedido) Com estes dados deve-se calcular o lucro líquido mensal de cada vendedor conforme a função matemática abaixo: LLV = ( VTV D C B) VC ncarros LLM = LLV i 1 Onde: LLM Lucro Líquido Mensal (Sobre todas as vendas) LLV Lucro Líquido de uma venda VTV Valor Tabelado para a Venda D Desconto concedido C Comissão do Vendedor (1% de VTV B) B Brinde oferecido pelo vendedor (Tabela) VC Valor da Compra O valor do brinde segue a tabela: Ítem Valor (R$) Ítem Valor (R$) Jogo de Tapetes 120,00 Filtro de Ar 54,00 Troca de Óleo 96,00 Filtro de Óleo 60,00 Revisão 300,00 Bancos de Couro 1000,00 Elabore um programa em C# que receba estes dados de entrada e identifique o vendedor premiado Linguagem de Programação Estruturada 56