Introdu ção a Algoritmos –Parte 04 -...

48
1 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav Introdu Introdu ç ç ão a Algoritmos ão a Algoritmos Parte 04 Parte 04

Transcript of Introdu ção a Algoritmos –Parte 04 -...

Page 1: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

1

Universidade Federal do Vale do São FranciscoCurso de Engenharia de Computação

Prof. Jorge [email protected]

www.univasf.edu.br/~jorge.cavalcanti

www.twitter.com/jorgecav

IntroduIntroduçção a Algoritmos ão a Algoritmos –– Parte 04Parte 04

Page 2: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

2

� Estruturas de controle de fluxo� Em alguns algoritmos, é necessário executar uma

mesma tarefa por um número determinado ou indeterminado de vezes.

Exemplos:

� Calcular a raiz quadrada dos números 1 à 100. Observe que para cada número, o mesmo cálculo será realizado. Neste caso, o cálculo é repetido 100 vezes.

� Calcular a raiz quadrada de um número sempre que este número for menor que 15.

� Este fato gerou a criação das estruturas de repetição as quais veremos a seguir.

Introdução a Algoritmos

Page 3: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

3

� Estrutura de Repetição – Enquanto� Neste caso, uma dada tarefa será repetida enquanto

uma determinada condição for verdadeira.

Sintaxe:enquanto (<expressão lógica ou relacional>)

faca<sequência de comandos>Fimenquanto

� Obs: <expressão lógica ou relacional> é avaliada antes de cada repetição do laço. Quando seu resultado for VERDADEIRO, <sequência-de-comandos> é executada.

Introdução a Algoritmos

� O fato da avaliação da expressão lógica encontrar-se no início do laço faz com que a sequência de comandos só venha a ser executada se ao menos uma vez a avaliação da expressão resultar em verdadeiro.

Page 4: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

4

algoritmo "Exemplo 1 - enquanto"

varr: realinicioescreval ("Digite um numero")leia (r)enquanto (r<100) facar <- (r^(1/2))escreval (r)leia (r)

fimenquantofimalgoritmo

Introdução a Algoritmos

Page 5: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

5

Introdução a Algoritmos

Page 6: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

6

Estrutura ou laço de repetição – enquanto (continuação)

Exemplo 2:

O pseudocódigo e os fluxogramas a seguir escrevem na saída padrão os números inteiros contidos no intervalo [1, 10].

Introdução a Algoritmos

Page 7: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

7

algoritmo "exemplo 2 laço enquanto"varvalor: inteiro

iniciovalor <- 1enquanto (valor <= 10) facaescreval (valor)valor <- valor+1

fimenquantofimalgoritmo

Introdução a Algoritmos

Page 8: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

8

Fim

Inicio

valor: inteiro

verdadeiro

falso

Valor <- 1

Valor <- valor+1

valor, “ ”

Fim

Inicio

valor: inteiro

verdadeiro

falso

Valor <- 10

Valor <- valor-1

valor<=10 Valor>0

10-valor, “ ”

Introdução a Algoritmos

Page 9: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

9

E se a condiE se a condiçção do exemplo 1 for 50 < r < 100?ão do exemplo 1 for 50 < r < 100?

algoritmo "Exemplo 1m enquanto"Varr: real

InicioEscreval (“Digite um número maior que 50 e menor que 100”)

leia (r)enquanto (r > 50) e (r < 100) facar <- r^(1/2)escreval (r)leia (r)

fimenquantofimalgoritmo

Introdução a Algoritmos

Page 10: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

10

Introdução a Algoritmos

Page 11: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

11

� Estrutura de Repetição – Repita ... Até

Sintaxe:repita

<seqüência de comandos>ate (<expressão lógica ou relacional>)

<seqüência de comandos> é executada ao menos uma vez, visto que a avaliação da <expressão lógica ou relacional> encontra-se no final da estrutura de repetição.

<seqüência de comandos> seráexecutada sempre que o resultado da <expressão lógica ou relacional>resultar em FALSO.

Introdução a Algoritmos

Obs.: As instruções contidas no repita serão executadas enquanto o resultado da avaliação da expressão lógica resultar em falso. O fato da avaliação da expressão lógica encontrar-se no final do laço faz com que, mesmo no caso da expressão lógica nunca resultar em falso, a sequência de comandos seja executada ao menos uma vez.

Page 12: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

12

algoritmo "Repita...ate"

vara: inteiro

inicioescreval("Digite um numero inteiro menor que

10")leia(a)repita

a<- a+1escreval (a)

ate (a=10)fimalgoritmo

Sempre que a condição a=10 for FALSA, a seqüência de comandos será executada.

Introdução a Algoritmos

Page 13: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

13

Estruturas de Controle de Fluxo

Fim

Inicio

valor: inteiro

verdadeirofalso

Valor <- 0

Valor <- valor+1

valor, “ ”

valor=10 Fim

Inicio

valor: inteiro

verdadeirofalso

Valor <- 9

10-valor, “ ”

Valor=-1

Valor <- valor-1

Page 14: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

14

Estruturas de Controle de Fluxo

Exercício:

Faça um algoritmo que recebe números naturais fornecidos pelo usuário, quando o usuário quiser parar a execução do algoritmo, o mesmo fornecerá um número negativo. O algoritmo deve retornar, ao final de seu processamento, a quantidade de números naturais fornecida pelo usuário. Fazer dois algoritmos utilizando em cada um, uma das estruturas de repetição vistas. Os algoritmos desenvolvidos devem ser representados através de um pseudocódigo e de um fluxograma.

Page 15: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

15

Estruturas de Controle de Fluxo

algoritmo "exercício laço de repetição (a) "var num, contador: inteiroiniciocontador <- 0repitaescreva ("Entre com um número natural (entre com um inteiro negativo para sair): ")leia (num)se (num>=0) entao

contador <- contador + 1 fimse

ate (num<0)escreva ("Foram fornecidos " ,contador, " números naturais pelo usuário ")

fimalgoritmo

Page 16: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

16

Estruturas de Controle de Fluxo

algoritmo " exercício 15 laço de repetição (b)"var num, contador: inteiroiniciocontador <- -1repitaescreva ("Entre com um número natural (entre com um inteiro negativo para sair): ")leia (num)contador <- contador + 1

ate (num<0)escreva ("Foram fornecidos " ,contador, " números naturais pelo usuário ")

fimalgoritmo

Page 17: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

17

Fim

Inicio

num, contador: inteiro

verdadeirofalso

contador <- -1

contador <- contador+1

num<0

"Entre com um númeronatural (entre com

um inteironegativo para sair): "

num

"Fora fornecidos " ,contador, " númerosnaturais pelo usuário "

Estruturas de Controle de Fluxo

Page 18: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

18

algoritmo "exercício 15 laço de repetição enquanto (a)"var num, contador: inteiroiniciocontador <- 0escreva ("Entre com um número natural (entre com um inteiro negativo para sair): ")

leia (num)enquanto (num>=0) facacontador <- contador + 1escreva ("Entre com um número natural (entre com um inteiro negativo para sair): ")leia (num)

fimenquantoescreva ("Foram fornecidos " ,contador, " números naturais pelo usuário")

fimalgoritmo

Estruturas de Controle de Fluxo

Page 19: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

19

Estruturas de Controle de Fluxoalgoritmo " exercício 15 laço de repetição enquanto b"var num, contador: inteiroInicionum <- 1contador <- -1enquanto (num>=0) facacontador <- contador + 1escreva ("Entre com um número natural (entre com um inteiro negativo para sair): ")leia (num)

fimenquantoescreva ("Foram fornecidos " ,contador, " números naturais pelo usuário")

fimalgoritmo

Page 20: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

20

Estruturas de Controle de Fluxo

Fim

Inicio

verdadeiro

falsonum>=0

"Entre com um númeronatural (entre com

um inteironegativo para sair): "

num

"Fora fornecidos " ,contador, " númerosnaturais pelo usuário "

contador <- -1

num <- 1

contador <- contador+1

num, contador: inteiro

Page 21: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

21

Fluxograma/Exercício – Construa um fluxograma para obter o resultado da divisão entre dois números. OBS.: Caso um dos operandos não seja válido o mesmo deve ser novamente solicitado até um valor válido ser fornecido, ou seja, as entradas devem ser validadas.

Estruturas de Controle de Fluxo

n1

res <- n1 / n2

n1, “/”,n2, “=”,resn1, n2, res: realInicio Fim

n2<>0

“Digite oDividendo:”

n2“Digite oDivisor:”

verdadeiro

falso

Page 22: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

Estruturas de Controle de Fluxo

� Estrutura ou laço de repetição

� Ao analisarmos o que ocorre nos laços de repetição enquanto e repita, perceberemos que, normalmente, ocorre uma inicialização de uma variável, envolvida na expressão lógica que controla o número de repetições.

� Dentro do laço ocorre uma atualização no valor da variável mencionada, fazendo com que esta venha a tornar o resultado da avaliação da expressão lógica coerente para a finalização da execução do laço de repetição.

� Com base nesta observação foi criado o laço de repetição para.

Page 23: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

23

� Estrutura de Repetição – ParaSintaxe:

para <variável> de <valor-inicial> ate <valor limite> passo<incremento> faca<sequência de comandos>fimpara

Conta o número de repetições (deve ser necessariamente uma variável do tipo inteiro)

Especifica o valor de inicialização da variável contadora.

Especifica o valor máximo que a variável contadora pode alcançar.

Indica o valor do incremento que seráacrescentado à variável contadora em cada repetição do laço. Éopcional.

Quando o programa chega neste ponto, a variável contadora é incrementada e comparada com o valor limite.

Introdução a Algoritmos

Page 24: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

24

Estruturas de Controle de Fluxo

<valor-inicial> É uma expressão que especifica o valor de inicialização da variável contadora.<valor-limite> É uma expressão que especifica o valor máximo que a variável contadora pode alcançar.<incremento> É opcional. Quando presente, éprecedido pela palavra-reservada passo. Constitui-se de uma expressão que especifica o valor do incremento que será acrescentado à variável contadora em cada repetição do laço. O valor padrão, assumido por omissão de <incremento> é 1. É possível especificar valores negativos para <incremento>.

Page 25: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

25

fimpara Indica o fim da sequência de comandos a serem repetidos. Cada vez que o programa chega neste ponto, é acrescentado à variável contadora o valor de <incremento>, e o valor resultante é comparado a <valor-limite>. Se for menor ou igual (ou maior ou igual, quando <incremento > for negativo), a sequência de comandos será executada mais uma vez; caso contrário, a execução prosseguirá a partir do primeiro comando que esteja após o fimpara.

<valor-inicial>, <valor-limite> e <incremento> são avaliados uma única vez antes da execução da primeira repetição, e não se alteram durante a execução do laço, mesmo que variáveis eventualmente presentes nessas expressões tenham seus valores alterados.

Estruturas de Controle de Fluxo

Page 26: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

26

algoritmo "exemplo para"varvalor: inteiro

iniciopara valor de 0 ate 10 faca

escreval (valor)fimpara

fimalgoritmo

Se passo for omitido, o valor default do incremento é 1.

Introdução a Algoritmos

Exemplo 7:

O pseudocódigo e o fluxograma a seguir escrevem na saída padrão os números inteiros contidos no intervalo [0, 10].

Page 27: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

27

algoritmo "Exemplo Para modificado"

varn, j:inteiro

Inicioescreval ("Digite um numero inteiro")leia(n)para j de 0 ate 10 passo n faca

escreval (j)fimpara

fimalgoritmo

No programa foi adicionado uma variável de incremento, onde o valor desta é digitada pelo usuário.

Introdução a Algoritmos

Obs:<valor-inicial>, <valor-limite> e <incremento> são avaliados uma única vez antes da execução da primeira repetição, e não se alteram durante a execução do laço, mesmo que variáveis eventualmente presentes nessas expressões tenham seus valores alterados.

Page 28: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

Estruturas de Controle de Fluxo

Fim

Inicio

valor: inteiro

verdadeiro

falso

Valor <- 0

Valor <- valor+1

valor, “ ”

valor<=10

Page 29: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

29

Introdução a Algoritmos

Ex.: Construa um pseudocódigo para um algoritmo que exiba em um monitor uma contagem decrescente do valor 30 até o valor 1.

algoritmo “decrescendo1"varn: inteiro

iniciopara n de 30 ate 1 passo -1 faca

escreval (n)fimpara

fimalgoritmo

algoritmo “decrescendo2"varn: inteiroinicio

para n de 0 ate 29 facaescreval (30-n)

fimpara

fimalgoritmo

Page 30: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

30

Estruturas de Controle de Fluxo

Para finalizarmos nosso estudo das estruturas de controle de fluxo, vamos tratar do teorema que as originou: o Teorema da Programação Estruturada, conhecido como Teorema de Böhm-Jacopini. Enunciado em 1966 por Corrado Böhm e Giuseppe Jacopini, sendo resultado da teoria das linguagens de programação, O qual define que cada rotina computável pode ser descrita por um algoritmo que combine as instruções utilizando apenas três maneiras especificas: 1. Executar uma instrução, depois outra instrução (sequência);2. Executar uma ou duas sequências de instruções de acordo com um valor booleano (condição);3.Executar uma sequências de instruções até que um valor booleano seja verdadeiro (iteração).

Page 31: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

31

1)Receba do usuário um número entre 1 e 7, inclusive 1 e 7. Se ele digitar o número 1 mostre “Hoje é Domingo”, se ele digitar o número 2 mostre “Hoje é Segunda”.......

2)Peça uma letra e mostre se ela é vogal ou consoante.

3) Peça três números e mostre o maior entre eles.

Algoritmos e Programação

Page 32: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

32

1 - Receba do usuário um número entre 1 e 7, inclusive 1 e 7. Se ele digitar o número 1 mostre “Hoje é Domingo”, se ele digitar o número 2 mostre “Hoje é Segunda”.......

Algoritmos e Programação

32

algoritmo "Dias da Semana seleção múltipla“varnum: inteiro

inicio// Seção de Comandos escreval ("Digite um número de 1 a 7:")leia (num)escolha (num)

caso 1escreval ("Hoje é Domingo")

caso 2escreval ("Hoje é Segunda")

caso 3escreval ("Hoje é Terça")

caso 4escreval ("Hoje é Quarta")

caso 5escreval ("Hoje é Quinta")

caso 6escreval ("Hoje é Sexta")

caso 7escreval ("Hoje pe Sábado")

outrocasoescreval ("Número inválido")

fimescolha

fimalgoritmo

Page 33: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

33

2 - Peça uma letra e mostre se ela é vogal ou consoante.

Algoritmos e Programação

algoritmo "Letras do Alfabeto seleção multipla“var

let: caracterinicio// Seção de Comandos escreval ("Digite uma letra do alfabeto:")leia (let)escolha (let)

caso "a", "e", "i", "o", "u"escreval ("É uma vogal")

caso "b", "c", "d", "f", "g", "h", "j","k", "l", "m", "n", "p", "q", "r","s", "t", "v", "x", "w", "y", "z"escreval ("É uma consoante")

outrocasoescreval ("É outro caractere")

fimescolhafimalgoritmo

Tudo na mesma linha do algoritmo

Page 34: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

34

3 - Peça três números e mostre o maior entre eles.

Algoritmos e Programação

algoritmo "MAIOR“varn1,n2,n3, maior: inteiroinicio// Seção de Comandos escreval ("Digite três números")leia (n1,n2,n3)

se (n1>n2) e (n1>n3) entaomaior:= n1

senaose (n2>n3) entaomaior:= n2

senaomaior:= n3

fimsefimseescreva (maior)fimalgoritmo

Page 35: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

35

Exercícios

Algoritmos e Programação

4. Faça um algoritmo para escrever os números pares de 0 a 100.

5. Faça um algoritmo para escrever a série de Fibonacci = (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...) enquanto o termo a ser impresso for menor que 300.

6. Construa um algoritmo que receba dois números reais e um dos seguintes símbolos: +, -, * ou /, o qual designaráqual operação será aplicada considerando os valores recebidos como seus operandos. O referido algoritmo deve retornar o resultado da operação selecionada com uma precisão de dois dígitos (observar a divisão por 0).

Page 36: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

36

Algoritmos e Programação

4. Faça um algoritmo para escrever os números pares de 0 a 100.

algoritmo "par de 0 a 100“

varpar: inteiro

Iniciopara par de 0 ate 100 faca

se(par%2)=0 entaoescreval (par)fimse

fimpara

fimalgoritmo

Page 37: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

37

Algoritmos e Programação

5. Faça um algoritmo para escrever a série de Fibonacci = (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...) enquanto o termo a ser impresso for menor que 300.

enquanto (proximo<300) facaescreval (proximo) proximo:= (atual + anterior)anterior:= atualatual:= proximo

fimenquanto

fimalgoritmo

algoritmo “fibonacci“varproximo, atual, anterior: inteiroInicioproximo:= 0atual:= 0anterior:= 1

se proximo = 0 entaoescreval (proximo)

fimse

Page 38: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

38

6. Construa um algoritmo que receba dois números reais e um dos seguintes símbolos: +, -, * ou /, o qual designará qual operação será aplicada considerando os valores recebidos como seus operandos. O referido algoritmo deve retornar o resultado da operação selecionada com uma precisão de dois dígitos.

Algoritmos e Programação

Page 39: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

39

Ex. 06 - algoritmo “calculadora"var op1, op2: realoperador: caractereinicioescreva ("Entre com o primeiro operando: ")leia (op1)escreva ("Entre com o segundo operando: ")leia (op2)

escreva ("Entre com um dos operadores (+, -, *, /): ")leia (operador)escolha (operador)

caso "+“escreva (op1," ",operador,op2," =",op1+op2:10:2)

caso "-"escreva (op1," ",operador,op2," =",op1-op2:10:2)

Algoritmos e Programação

Page 40: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

40

Ex 6. Continuaçãocaso "*"

escreva (op1," ",operador,op2," =", op1*op2:10:2)caso "/"se (op2<>0) entaoescreva (op1," ",operador,op2," =")escreval (op1/op2:10:2)senaoescreva ("Não é possível efetuar a divisão!")

fimseOutrocaso

escreva ("Operação inválida! ")fimescolha

fimalgoritmo

Algoritmos e Programação

Page 41: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

41

7. Escreva um programa que requisita dois números e faz a soma deles e depois pergunta se o usuário quer fazer o cálculo novamente.

8. Escreva um programa que recebe um número e conta a partir deste número até 100.

9. Ler 10 números e dizer se cada um é: nulo, positivo ou negativo.

Algoritmos e Programação

Page 42: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

42

7. Escreva um programa que requisita dois números e faz a soma deles e depois pergunta se o usuário quer fazer o cálculo novamente.

Algoritmos e Programação

algoritmo “repete soma“varn1, n2, soma: realresp: caracterIniciorepitaescreval ("Digite dois numeros para serem somados:")leia (n1,n2)soma:= n1+n2escreval ("A soma eh:" ,soma)escreval ("Digite algo p/ fazer novo calculo e fim p/ encerrar")leia (resp)ate (resp = “fim")fimalgoritmo

Page 43: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

43

8. Escreva um programa que recebe um número e conta a partir deste número até 100.

Algoritmos e Programação

algoritmo “Conta ate 100“var

a: inteiroinicio

escreval("Digite um numero inteiro menor que 100")leia(a)

repitaa<-a+1escreval (a)

ate (a=100)fimalgoritmo

Page 44: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

44

9. Ler 10 números e dizer se cada um é: nulo, positivo ou negativo.

Algoritmos e Programação

algoritmo “definir numero“varn1: inteiroIniciopara n1 de 0 ate 10 facaescreval ("Digite um numero:")leia (n1)se (n1=0) entaoescreval ("nulo")

fimsese (n1<0) entaoescreval ("Numero negativo")

fimsese (n1>0) entaoescreval ("Numero positivo")

fimsefimpara

fimalgoritmo

Page 45: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

45

10. Escreva um programa que calcula o valor do imposto de renda de uma pessoa física, com as seguintes condições: se o salário >= 3.000, alíquota será 15%. Se 3.000>salário>=1500, alíquota será 7%. Se salário < 1500, isento.

11. Escreva um algoritmo que calcule N!, sendo que N é um inteiro fornecido pelo usuário e que 0! =1, por definição.

12. Elabore um algoritmo para cada estrutura de repetição (enquanto, repita e para) imprimir a tabuada do número 5.

Algoritmos e Programação

Page 46: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

46

10. Escreva um programa que calcula o valor do imposto de renda de uma pessoa física, com as seguintes condições: se o salário >= 3.000, alíquota será 15%. Se 3.000>salário>=1500, alíquota será 7%. Se salário < 1500, isento.

Algoritmos e Programação

algoritmo "Imposto de Renda"// Seção de Declaraçõesvarsalario, imposto: realaliquota: caractereinicio// Seção de Comandosescreva(" Informe o valor do salário: ")leia(salario)// definicao da alíquotase (salario >= 3000) entao

aliquota <- "c"senaose (salario < 1500) entao

aliquota <- "a"senao

aliquota <- "b"

fimsefimse

escolha aliquotacaso "a"imposto <- 0caso "b"

imposto <- salario * 0.07caso "c"

imposto <- salario * 0.15fimescolhaescreval(" Valor do imposto de renda:",imposto)fimalgoritmo

Page 47: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

47

11. Escreva um algoritmo que calcule N!, sendo que N é um inteiro fornecido pelo usuário e que 0! =1, por definição.

Algoritmos e Programação

algoritmo "Fatorial de N"// Seção de Declaraçõesvar N, F, C: inteiro // entrada, fatorial e controle)inicio// Seção de ComandosEscreva ("Digite um número inteiro: ")leia(N)Se (N = 0)entao

escreva ("Fatorial de ", N, " = 1")senao

F <-1para c de 1 ate n faca

F <- F*Cfimparaescreva ("Fatorial de ", N, " = ", F)

FimseFimalgoritmo

Page 48: Introdu ção a Algoritmos –Parte 04 - Iníciojorge.cavalcanti/Introducao_Algoritmos_Parte04.pdf · Calcular a raiz quadrada dos números 1 à100. Observe que para cada número,

48

12. Elabore um algoritmo para cada estrutura de repetição (enquanto, repita e para) imprimir a tabuada do número 5.

Algoritmos e Programação

algoritmo "Tabuada do 5 usando enquanto"// Seção de Declaraçõesvar cont: inteiroinicio// Seção de Comandoscont <- 1enquanto (cont <=10) faca

escreval (cont, " x 5 = " , cont*5)cont <- cont +1

fimenquanto

fimalgoritmo

algoritmo "Tabuada do 5 usando repita"// Seção de Declaraçõesvar cont: inteiroinicio// Seção de Comandoscont <- 1repita escreval (cont, " x 5 = " , cont*5)cont <- cont +1

ate (cont <10)fimalgoritmo

algoritmo "Tabuada do 5 usando para“var cont: inteiroIniciocont <- 1para cont de 1 ate 10 faca

escreval (cont, " x 5 = " , cont*5)cont <- cont +1

fimpara fimalgoritmo