You are on page 1of 31

algoritmo "exerccio 13" var op1, op2: real operador: caractere inicio escreva ("Entre com o primeiro operando:

") leia (op1) escreva ("Entre com o segundo operando: ") leia (op2) escreva ("Entre com um dos operadores (+, -, *, /): ") leia (operador) se (operador= "+") entao escreva (op1," ",operador,op2," =",op1+op2:10:2) senao se (operador= "-") entao escreva (op1," ",operador,op2," =",op1-op2:10:2) senao se (operador= "*") entao escreva (op1," ",operador,op2," =", op1*op2:10:2) senao
125

se (operador= "/") entao se (op2<>0) entao escreva (op1," ",operador,op2," =") escreva (op1/op2:10:2) senao escreva ("No possvel efetuar a diviso!") fimse senao escreva ("Operao invlida! ") fimse fimse fimse fimse fimalgoritmo

126

Estruturas de Controle de Fluxo


2. Comando de Seleo Mltipla (continuao) Exerccio 14: Construa um fluxograma para representar o pseudocdigo desenvolvido no exerccio nmero 13.

127

Inicio var op1, op2: real operador: caractere "Entre com o primeiro operando: " op1 "Entre com o segundo operando: " op2

falso

op2<> 0
verdadeiro verdadeiro

op1," ",operador, op2," =",op1/ op2:10:2

"No possvel efetuar a diviso!"

operador= "/"

falso

"Operao invlida! "

falso

operador= "*"
verdadeiro falso

op1," ",operador, op2," =",op1* op2:10:2

Fim

operador= "-" " Entre com um dos operadores (+, -, *, /): " operador
128 verdadeiro falso

op1," ",operador, op2," =",op1op2:10:2

operador= "+"
verdadeiro

op1," ",operador, op2," =",op1+ op2:10:2

Estruturas de Controle de Fluxo


Em certos algoritmos percebemos que a execuo de determinados trechos se faz necessria algumas vezes. Um exemplo que ns j tratamos o caso do clculo da mdia aritmtica entre alguns valores. Vimos que a operao de leitura repetida de acordo com o nmero de valores que serviram de base para o clculo da mdia. Outra forma de verificar a necessidade de repetio de um determinado trecho do algoritmo imaginar que ao invs de se desejar apenas obter uma mdia, o objetivo fosse obter um conjunto de mdias. Para o clculo de cada uma das mdias o mesmo conjunto de operaes seria executado. Este fato gerou a criao das estruturas de repetio as quais veremos a seguir.
129

Estruturas de Controle de Fluxo


3. Estrutura ou lao de repetio enquanto Sintaxe: ... enquanto (<expresso-lgica>) faca <seqncia-de-comandos> fimenquanto ... Obs.: As instrues contidas no enquanto sero executadas durante o tempo em que o resultado da avaliao da expresso lgica resultar verdadeiro. O fato da avaliao da expresso lgica encontrar-se no incio do lao faz com que a seqncia de comandos s venha a ser executada se ao menos uma vez a avaliao da expresso 130 resultar em verdadeiro.

Estruturas de Controle de Fluxo


3. Estrutura ou lao de repetio enquanto (continuao) Exemplo: O pseudocdigo e os fluxogramas a seguir escrevem na sada padro os nmeros inteiros contidos no intervalo [1, 10].

131

Estruturas de Controle de Fluxo

algoritmo "exemplo 1 lao enquanto" var valor: inteiro inicio valor <- 1 enquanto (valor <= 10) faca escreval (valor) valor <- valor+1 fimenquanto fimalgoritmo
132

Estruturas de Controle de Fluxo


Inicio valor: inteiro Valor <- 1 Inicio valor: inteiro Valor <- 10

valor<=10

falso

Fim

Valor>0

falso

Fim

verdadeiro

verdadeiro

valor,

Valor <- valor-1

Valor <- valor+1

10-valor,

133

Estruturas de Controle de Fluxo


2. Estrutura ou lao de repetio enquanto (continuao) Exemplo: Dada uma reta ax+by+c=0 e cinco pontos, faa um algoritmo para calcular, para cada ponto, o seguinte: se o ponto estiver no primeiro quadrante calcule e informe a distncia do ponto a reta caso contrrio escreva uma mensagem informando que o ponto no pertence ao primeiro quadrante.

134

Estruturas de Controle de Fluxo


algoritmo "exemplo 2 lao enquanto " var a,b,c,x,y: real contador: inteiro inicio contador <- 1 escreval ("Equao da reta: ax+by+c=0") escreva ("Coeficiente a da reta = ") leia (a) escreva ("Coeficiente b da reta = ") leia (b) escreva ("Coeficiente c da reta = ") leia (c)
135

enquanto (contador<=5) faca escreval ("Coordenadas do ponto ",contador," :") escreva ("Coordenada x do ponto = ") leia (x) escreva ("Coordenada y do ponto = ") leia (y) se (x>=0) e (y>=0) entao escreval ("A distncia do ponto ",contador, " a reta : ",((a*x+b*y+c)^2)^0.5/(((a^2)+(b^2))^0.5)) senao escreval ("O ponto no est no primeiro quadrante! ") fimse contador <- contador + 1 fimenquanto fimalgoritmo
136

Estruturas de Controle de Fluxo


3. Estrutura ou lao de repetio repita Sintaxe: ... repita <seqncia-de-comandos> ate (<expresso-lgica>) ... Obs.: As instrues contidas no repita sero executadas enquanto o resultado da avaliao da expresso lgica resultar em falso. O fato da avaliao da expresso lgica encontrar-se no final do lao faz com que, mesmo no caso da expresso lgica nunca resultar em falso, a seqncia de comandos seja executada ao menos uma vez. 137

Estruturas de Controle de Fluxo


3. Estrutura ou lao de repetio repita (continuao) Exemplo 5: O pseudocdigo e os fluxogramas a seguir escrevem na sada padro os nmeros inteiros contidos no intervalo [1, 10].

138

Estruturas de Controle de Fluxo


algoritmo "exemplo 5" var valor: inteiro inicio valor <- 0 repita valor <- valor+1 escreval (valor) ate (valor = 10) fimalgoritmo

139

Estruturas de Controle de Fluxo


Inicio valor: inteiro Valor <- 0 Valor <- valor+1 Inicio valor: inteiro Valor <- 9

10-valor,

valor,

Valor <- valor-1

falso

valor=10
verdadeiro

Fim

falso

Valor=-1
verdadeiro

Fim

140

Estruturas de Controle de Fluxo

3. Estrutura ou lao de repetio repita (continuao)


Exemplo: Dada uma reta ax+by+c=0 e cinco pontos, faa um algoritmo para calcular, para cada ponto, o seguinte: se o ponto estiver no primeiro quadrante calcule e informe a distncia do ponto a reta caso contrrio escreva uma mensagem informando que o ponto no pertence ao primeiro quadrante.

141

Estruturas de Controle de Fluxo


algoritmo "exemplo 6" var a,b,c,x,y: real contador: inteiro inicio contador <- 1 escreval ("Equao da reta: ax+by+c=0") escreva ("Coeficiente a da reta = ") leia (a) escreva ("Coeficiente b da reta = ") leia (b) escreva ("Coeficiente c da reta = ") leia (c)
142

repita escreval ("Coordenadas do ponto ",contador," :") escreva ("Coordenada x do ponto = ") leia (x) escreva ("Coordenada y do ponto = ") leia (y) se ((x>=0) e (y>=0)) entao escreval ("A distncia do ponto ",contador, " a reta : ", ((a*x+b*y+c)^2)^0.5/(((a^2)+(b^2))^0.5)) senao escreval ("O ponto ",contador," no est no primeiro quadrante! ") fimse contador <- contador + 1 ate (contador>5) fimalgoritmo 143

Estruturas de Controle de Fluxo


3. Estrutura ou lao de repetio

Exerccio 15: Faa um algoritmo que recebe nmeros naturais fornecidos pelo usurio, quando o usurio quiser parar a execuo do algoritmo, o mesmo fornecer um nmero negativo. O algoritmo deve retornar, ao final de seu processamento, a quantidade de nmeros naturais fornecida pelo usurio. Fazer dois algoritmos utilizando em cada um, uma das estruturas de repetio vistas. Os algoritmos desenvolvidos devem ser representados atravs de um pseudocdigo e de um fluxograma.
144

Estruturas de Controle de Fluxo


algoritmo "exerccio 15 lao de repetio repita a" var num, contador: inteiro inicio contador <- 0 repita escreva ("Entre com um nmero natural (entre com um inteiro negativo para sair): ") leia (num) se (num>=0) entao contador <- contador + 1 fimse ate (num<0) escreva ("Fora fornecidos " ,contador, " nmeros naturais pelo usurio ") 145 fimalgoritmo

Estruturas de Controle de Fluxo


algoritmo " exerccio 15 lao de repetio repita b" var num, contador: inteiro inicio contador <- -1 repita escreva ("Entre com um nmero natural (entre com um inteiro negativo para sair): ") leia (num) contador <- contador + 1 ate (num<0) escreva ("Fora fornecidos " ,contador, " nmeros naturais pelo usurio ") fimalgoritmo

146

Estruturas de Controle de Fluxo


Inicio num, contador: inteiro contador <- -1 "Entre com um nmero natural (entre com um inteiro negativo para sair): " num contador <- contador+1

falso 147

num<0
verdadeiro

"Fora fornecidos " , contador, " nmeros naturais pelo usurio "

Fim

algoritmo "exerccio 15 lao de repetio enquanto a" var num, contador: inteiro inicio contador <- 0 escreva ("Entre com um nmero natural (entre com um inteiro negativo para sair): ") leia (num) enquanto (num>=0) faca contador <- contador + 1 escreva ("Entre com um nmero natural (entre com um inteiro negativo para sair): ") leia (num) fimenquanto escreva ("Fora fornecidos " ,contador, " nmeros naturais pelo usurio") fimalgoritmo 148

Estruturas de Controle de Fluxo


algoritmo " exerccio 15 lao de repetio enquanto b" var num, contador: inteiro Inicio num <- 1 contador <- -1 enquanto (num>=0) faca contador <- contador + 1 escreva ("Entre com um nmero natural (entre com um inteiro negativo para sair): ") leia (num) fimenquanto escreva ("Fora fornecidos " ,contador, " nmeros naturais pelo usurio") 149fimalgoritmo

Estruturas de Controle de Fluxo


Inicio num, contador: inteiro num <- 1 contador <- -1 "Fora fornecidos " , contador, " nmeros naturais pelo usurio "

num>=0

falso

verdadeiro

contador <- contador+1 "Entre com um nmero natural (entre com um inteiro negativo para sair): "

Fim

num

150

Exerccios que sero trabalhados na prxima aula


Observao: Na prxima aula no ser concedido tempo para a execuo dos exerccios a seguir, ou seja, os alunos devem gerar suas solues antes da referida aula. O procedimento adotado ser o seguinte: obedecendo a ordem dos enunciados, sero efetuados sorteios de alunos que colocaram suas respostas no quadro, estas sero analisadas e em seguida uma proposta de soluo ser apresentada pelo professor para cada um dos exerccios propostos.

Estruturas de Controle de Fluxo


Fluxograma/Exerccio 16 Com base no que foi exposto, construa um fluxograma para obter o resultado da diviso entre dois nmeros. OBS.: Caso um dos operandos no seja vlido o mesmo deve ser novamente solicitado at um valor vlido ser fornecido, ou seja, as entradas devem ser validadas.

152

Estruturas de Controle de Fluxo

3.

Estrutura ou lao de repetio

Exerccio 17: Elabore um algoritmo, representando-o atravs de um pseudocdigo e de um fluxograma, para ler uma seqncia de salrios, onde o indicador (Flag) de termino da seqncia de salrios um salrio igual a 0 (zero). O algoritmo deve escrever, em ordem crescente, os trs maiores valores dos salrios lidos.
154

Estruturas de Controle de Fluxo

3. Estrutura ou lao de repetio Exerccio 18: Faa um algoritmo, representando-o atravs de um pseudocdigo e de um fluxograma, para escrever a srie de Fibonacci = (0,1,1,2,3,5,8,13,21,34,), enquanto o valor do termo a ser escrito for menor que 5000.

158

Estruturas de Controle de Fluxo


3. Estrutura ou lao de repetio Exerccio 19: Faa um algoritmo para com base no nome, sexo ("M" =Masculino e "F"=Feminino), trs notas e o nmero de faltas dos alunos de uma turma, onde o Flag ser um nome igual a "fim", escrever: a. A situao final de cada aluno; b. A mdia das notas dos homens e a mdia das notas das mulheres; c. O percentual de homens e o percentual de mulheres reprovados por mdia; d. O percentual de homens e o percentual de mulheres reprovados por falta; e. O percentual geral de reprovao da turma. Obs.: As situaes possveis so: Aprovado, Reprovado por Falta ou Reprovado por Mdia. A mdia mnima para obter aprovao 7,00 e o limite de faltas 15. A reprovao por falta sobrepe a reprovao por Mdia. As entradas devem ser validadas. 163

You might also like