fundamentos1-slidesa7-15082008

23
7/23/2019 Fundamentos1-SlidesA7-15082008 http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 1/23 Fundamentos de Programação1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Estrutura de decisão composta

Upload: alan-roberto

Post on 17-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 1/23

Fundamentos de Programação1

Slides 7

Prof. SIMÃO

Jean Marcelo SIMÃO

Estrutura de decisão composta

Page 2: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 2/23

Estrutura de Decisãoou Seleção Composta

se < condição for verdadeira > entao

um conjunto de comandos;

senao

outro conjunto de comando;

fimse

Page 3: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 3/23

Exemplo de Algoritmo

Algoritmo “Analisar se um número inteiro é maior que100 usando Se Senão”

 // Parte Principal

Varnum : Inteiro

Inicio

escreval ( “Digite um número: ” )

leia (num)

se ( num > 100 ) entaoescreval ( “Número maior que 100” )

senao

escreval ( “Número menor ou igual a 100” )fimse

FimAlgoritmo.

Page 4: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 4/23

Exercício

Elaborar um algoritmo que analisa se um

número inteiro é maior que 100 e, se for maior,quantas vezes ele é maior que 100.

Por exemplo, o número 249 é 2,49 vezes maiorque 100.

Obs: Usar estrutura Se-Senão

Page 5: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 5/23

Solução do Exercício

Algoritmo “Analisar se um número inteiro é maior que 100 e quantas vezesé maior – se senão ”

Varnum : Inteironvezes : Real

 // Parte PrincipalInicio

escreval ( “Digite um número inteiro: ” )leia ( num )

se ( num > 100 ) entaoescreval ( “Número maior que 100 ” )

nvezes←

num / 100escreval ( “O número é maior que cem ”, nvezes , “ vezes ” )senao

escreval ( “Número menor ou igual a 100 ” )fimse

FimAlgoritmo

Page 6: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 6/23

Segunda Versão

Algoritmo “Analise se um número inteiro é maior que 100e quantas vezes é maior – Se Senão V2”

Varnum : Inteiro

 // Parte PrincipalInicio

escreval ( “Digite um número inteiro: ” )leia ( num )

se ( num > 100 ) entaoescreval ( “Número maior que 100” )escreval ( “O número é maior que cem ”, num/100,“ vezes ” )

senaoescreval ( “Número menor ou igual a 100 ” )

fimse

FimAlgoritmo

Page 7: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 7/23

Terceira versão

Algoritmo “Analisar se um número inteiro é maior que 100 e quantas vezes émaior - Se Senão V.3”

Varnum : Inteiro

 // Parte PrincipalInicio

escreval ( “Digite um número: ” )leia ( num )

se ( num > 100 ) entao

escreval ( “Número ”, num ,“ é maior que 100 ” )escreval ( “O número ”, num , “ é maior que cem ”, num / 100, “vezes” )

senaoescreval ( “Número ”, num ,“ é menor ou igual a 100 ” )

fimse

FimAlgoritmo

Page 8: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 8/23

Exercício

Elaborar um algoritmo que analisa se um

número inteiro é 1 , 2 ou diferente de 1 e 2

Obs: Usar estrutura Se-Senão

Page 9: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 9/23

Solution

Algoritmo “Analisar se um número inteiro é o 1, 2 ou outro”Var

num : Inteiro // Parte PrincipalInicio

escreval ( “ Digite um número: ” )leia ( num )

se ( num = 1 ) entaoescreval ( “ É o número 1 ” )

senaose ( num = 2 ) entao

escreval ( “ É o número 2 ” )senãoescreval ( “ Não é nem o número 1 nem o número 2 ” )

fimsefimse

FimAlgoritmo

Page 10: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 10/23

Solution errada

Algoritmo “Analisar se um número inteiro é o 1, 2 ou outro”Var

num : Inteiro // Parte PrincipalInicio

escreval ( “ Digite um número: ” )leia ( num )

se ( num = 1 ) entaoescreval ( “ É o número 1 ” )

se ( num = 2 ) entaoescreval ( “ É o número 2 ” )

senãoescreval ( “ Não é nem o número 1 nem o número 2 ” )

fimse

FimAlgoritmo

Esta solução está errada. Além de não ‘rodar’ em Visualg, o senão senão dizrespeito apenas ao sese imediatamente acima dele.

Page 11: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 11/23

Solution errada

Algoritmo “Analisar se um número inteiro é o 1, 2 ou outro”Var

num : Inteiro // Parte PrincipalInicio

escreval ( “ Digite um número: ” )leia ( num )

se ( num = 1 ) entaoescreval ( “ É o número 1 ” )

fimsese ( num = 2 ) entao

escreval ( “ É o número 2 ” )senão

escreval ( “ Não é nem o número 1 nem o número 2 ” )fimse

FimAlgoritmo

Esta solução está errada. O senão senão diz respeito apenas ao se se imediatamenteacima dele.

Page 12: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 12/23

Exercício

Elaborar um algoritmo que permita aousuário somar dois ou três númerosinteiros, segundo seu desejo.

Obs.: Usar a estrutura Se Senão 

Page 13: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 13/23

Uma primeira soluçãoAlgoritmo ‘Soma de dois ou três números’Var

prim_num, seg_num : Inteiroterc_num, soma, opcao : Inteiro

 //Parte PrincipalInicio

escreval ( “Digite 2 para somar 2 números.” )escreval ( “Digite 3 para somar 3 números.” )escreval ( “Qual é a sua opção? ” )

leia ( opcao )

se ( opcao = 2) entao

escreval ( “Digite o primeiro número: ” )leia ( prim_num )

escreval ( “Digite o segundo número: ” )leia ( seg_num )

soma <- prim_num + seg_numescreval ( “A soma é: ”, soma )

senaose ( opcao = 3 ) entao

escreval ( “Digite o primeiro número: ” )leia ( prim_num )

escreval ( “Digite o segundo número: ” )leia ( seg_num )

escreval (“Digite o terceiro número: ” )leia ( terc_num )

soma←  prim_num+seg_num+terc_numescreval ( “A soma é : ”, soma)

senao

escreval ( “Opção inválida” )

fimsefimse

Fim.

Page 14: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 14/23

Uma segunda versãoAlgoritmo ‘Soma de dois ou três números V2’Var

prim_num, seg_num : Inteiroterc_num, soma : Inteiroopcao : Caracter

 //Parte PrincipalInicio

escreval ( “Digite A para somar 2 números.” )escreval (“Digite B para somar 3 números.”)escreval (“Qual é a sua opção? ”)

leia ( opcao )

se ( opcao = “A” ) entao

escreval ( “Digite o primeiro número: ” )leia ( prim_num )

escreval ( “Digite o segundo número: ” )leia ( seg_num )

soma←  prim_num + seg_num;escreval ( “A soma é : ”, soma)

senao

se (opcao = “B”) entao

escreval ( “Digite o primeiro número: ” )leia ( prim_num )

escreval ( “Digite o segundo número: ” )leia ( seg_num )

escreval ( “Digite o terceiro número: ” )leia ( terc_num )

soma <- prim_num+seg_num+terc_numescreval ( “A soma é : ”, soma )

senao

escreval ( “Opção inválida ” )

fimse

fimse

FimAlgoritmo

Page 15: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 15/23

Melhorando a solução

Seria possivel uma solução melhor,usando a estrutura Se Senão ?

Page 16: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 16/23

Segunda soluçãoAlgoritmo Soma de dois ou três númerosVar

prim_num, seg_num : Inteiroterc_num, soma : Inteiroopcao : Caracter

 // Parte Principal

Inicioescreval (“Digite A para somar 2 números.”)escreval (“Digite B para somar 3 números.”)escreval (“Qual é a sua opção? ”)leia (opcao)

se ( (opcao = “A”) ou (opcao = “B”) ) entao

escreval (“Digite o primeiro número: ” )leia(prim_num);

escreval (“Digite o segundo número: ” )leia (seg_num );

soma←  prim_num + seg_num;

se ( opcao = “A” ) entao

escreval ( “A soma é : ”, soma )

senao

escreval ( “Digite o terceiro número: ” )leia ( terc_num )

soma← soma + terc_num

escreval ( “A soma é: ”, soma )

fimse

senao

escreval ( “Opção inválida” )

fimse

FimAlgortimo

Page 17: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 17/23

Outra soluçãoAlgoritmo “Outra Solução”Var

num1, num2, num3, result : Inteiro // Parte Principal

Inicio

escreval ( “Digite o primeiro número: ” )leia ( num1 )

escreval ( “Digite o segundo número: ” )

leia ( num2 )

escreval ( “Digite o terceiro número: ” )escreval ( “Obs. Para somar dois números, zere o terceiro! ” )leia ( num3 )

result← num1 + num2 + num3

escreval (“O resultado é : ”, result)

FimAlgoritmo

Page 18: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 18/23

Exercícios.

Elaborar um algoritmo para o cálculo da soma,subtração, multiplicação ou divisão de dois númerosreais fornecidos pelo usuário, segundo sua opção.

Obs. Usar Se Senão 

Page 19: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 19/23

Solução exercício.

Algoritmo “Operações elementares sobre doisnúmeros cf. opção do usuário”Var

prim_num, seg_num : Realresult, opcao : Real

// Parte Principal

Inicio

escreval ( “Operações sobre 2 números reais.” )escreval ( “Digite 1 para soma,” )escreval ( “ 2 para subtração, ”)escreval ( “ 3 para multipliacação ou ”)escreval ( “ 4 para divisão.”)

leia (opcao)

se ( (opção = 1) ou (opção = 2) ou(opção = 3) ou (opção = 4) ) entao

escreval ( “Digite o primeiro número: ” )

leia ( prim_num )

escreval ( “Digite o segundo número: ” )leia (seg_num)

se ( opcao = 1) entaoresult <- prim_num + seg_num;

escreval (“O resultado da soma é: ”, result )

senao

se ( opcao = 2 ) entaoresult <- prim_num - seg_numescreval ( “O resultado da subtração é: ”, result )

senaose ( opcao = 3 ) entao

resul←  prim_num * seg_numescreval ( “O resultado da multiplic. é: ”, result )

senaoresul←  prim_num / seg_numescreval ( “O resultado da divisão é: ”, result )

fimsefimse

fim-se

senão

escreval (“Opção inválida”)

fim-se

Fim.

Page 20: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 20/23

Solução exercício – V2.Algoritmo “Operações elementares sobre dois

números cf. opção do usuário”Var

prim_num, seg_num, result, opcao : Real

// Parte PrincipalInicio

escreval (“Operações sobre 2 números reais.”)escreval (“Digite 1 para soma,”)escreval (“ 2 para subtração, ”)escreval (“ 3 para multipliacação ou ”)escreval (“ 4 para divisão.”)leia ( opcao )

se ( (opcao = 1) ou (opcao = 2) ou(opcao = 3) ou (opcao = 4) ) entao

escreval ( “Digite o primeiro número: ” )leia (prim_num)

escreval (“Digite o segundo número: ”)leia (seg_num)

se (opcao = 1) entaoresult <- prim_num + seg_numescreval ( “O resultado da soma é: ”, result )

senao

se ( opcao = 2 ) entaoresult <- prim_num - seg_numescreval (“O resultado da subtração é: ”, result )

senãose ( opcao = 3 ) entao

result <- prim_num * seg_num;escreval (“O resultado da multiplic. é: ”, result )

senaose ( seg_num <> 0 ) entao

result <- prim_num / seg_numescreval ( “O resultado da divisão é: ”, result )

senao

escreval ( “Divisão por zero é impossível.” )fim-se

fimsefimse

fimse

senao

escreval ( “Opção inválida” )

fimse

FimAlgoritmo

Page 21: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 21/23

Solução exercício – V3.Algoritmo “Operações elementares sobre dois

números cf. opção do usuário”Var

prim_num, seg_num, result, opcao : Real

// Parte PrincipalInicio

escreval (“Operações sobre 2 números reais.”)escreval (“Digite 1 para soma,”)escreval (“ 2 para subtração, ”)escreval (“ 3 para multipliacação ou ”)escreval (“ 4 para divisão.”)leia ( opcao )

se ( (opcao = 1) ou (opcao = 2) ou(opcao = 3) ou (opcao = 4) ) entao

escreval ( “Digite o primeiro número: ” )leia (prim_num)

escreval (“Digite o segundo número: ”)leia (seg_num)

se (opcao = 1) entaoresult <- prim_num + seg_numescreval ( “O resultado da soma é: ”, result )

senao

se ( opcao = 2 ) entaoresult <- prim_num - seg_numescreval (“O resultado da subtração é: ”, result )

senãose ( opcao = 3 ) entao

result <- prim_num * seg_num;escreval (“O resultado da multiplic. é: ”, result )

senaose ( seg_num <> 0 ) entao

result <- prim_num / seg_numescreval ( “O resultado da divisão é: ”, result )

fimse

se ( seg_num = 0 ) entaoescreval ( “Divisão por zero é impossível.” )

fimsefimse

fimse

fimse

senao

escreval ( “Opção inválida” )

fimseFimAlgoritmo

Page 22: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 22/23

Exercício

• Elaborar um algoritmo onde o usuario possaescolher entre:

 – o cálculo do perimetro de uma circunferência cujo

valor de raio é fornecido pelo usuário.

 – o cálculo da área de um retângulo cujos valores doslados são fornecidos pelo usuário.

 – o cálculo da área de um triângulo retângulo cujosvalores dos lados são fornecidos pelo usuário.

 – o cálculo do volume de um cubo cujo valor dolado…

 – o cálculo da área e do volume de uma esfera cujovalor do raio…

Obs.: Observação usar estrutura Se Senão 

Page 23: Fundamentos1-SlidesA7-15082008

7/23/2019 Fundamentos1-SlidesA7-15082008

http://slidepdf.com/reader/full/fundamentos1-slidesa7-15082008 23/23

Exercício

• Elabore um algoritmo que receba quatronotas de um aluno e calcule a médiaaritmética delas, dizendo se o aluno éaprovado, reprovado ou em exame:

 – Aprovação com média maior ou igual a sete.

 – Reprovação com média menor ou igual a cinco.

 – Exame nota entre cinco e sete (exclusive).

Obs.: Observação usar estrutura Se Senão