Programação de Computadores

19
Programação de Computadores Viviane Torres da Silva [email protected] http://www.ic.uff.br/ ~viviane.silva/progIII

description

Programação de Computadores. Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/progIII. Estruturas de repetição. DO =,, END DO - PowerPoint PPT Presentation

Transcript of Programação de Computadores

Page 1: Programação de Computadores

Programação de Computadores

Viviane Torres da [email protected]

http://www.ic.uff.br/~viviane.silva/progIII

Page 2: Programação de Computadores

Estruturas de repetição

DO <variável>=<valor inicial>,<valor final>,<incremento><bloco de comandos>

END DO

A <variável> inicia com <valor inicial>e a cada repetição é incrementada de <incremento>.

Para cada repetição o <bloco de comandos>é executado, enquanto a <variável> for menor ou igual que <valor final>.

O incremento é opcional. A sua ausência significa incremento = 1. O incremento pode ser negativo.

Valor inicialValor final

incremento

processamento

Page 3: Programação de Computadores

Exemplo

program impares

implicit none

integer impar

do impar = 1, 100, 2

print *, impar

end do

end

Page 4: Programação de Computadores

Exercício 1

Faça um programa que soma todos os números em um intervalo informado pelo usuário.

Ex: intervalo de 2 a 6 soma=2+3+4+5+6=20

program somar dentro de um intervalo implicit none integer soma, x, y, i print *, 'entre com o intervalo:' read *, x, y soma = 0 do i = x, y, 1 soma = soma + i end do print *, soma end

Page 5: Programação de Computadores

Exercício 2

Faça um programa que informe todos os números divisíveis por 2 entre um intervalo dado pelo usuário.

Ex: intervalo: 2 a 11 Resultado: 2, 4, 6, 8, 10

Page 6: Programação de Computadores

Exercício 3

Faça um programa que calcule o fatorial de um número (lembrete: 0! = 1 e n! = n * (n-1)!)

program somar dentro de um intervalo implicit none integer fatorial, x, i print *, 'entre com o número:' read *, x fatorial = 1 if (x .EQ. 0) then print *, 'fatorial de ', x, ' ‚ ', fatorial else do i = 1, x, 1 fatorial = fatorial * i end do print *, 'fatorial de ', x, ' ‚ ', fatorial end if end

Page 7: Programação de Computadores

Exercício 4

Faça um programa que some a idade de todos os alunos de uma turma. O usuário deve informar o número de alunos da turma e em seguida a idade de todos estes alunos.

Page 8: Programação de Computadores

Parte II

Page 9: Programação de Computadores

Repetição condicional I

DO WHILE (<condição>)<bloco de comandos>

END DO

Testa se a <condição> é verdadeira Se for verdadeira, executa

<bloco de comandos> Se for falsa, termina

condição

bloco de comando

verdadefalso

Page 10: Programação de Computadores

Exemplo

Soma de números inseridospelo usuário enquanto ele não digitar 0.

Page 11: Programação de Computadores

Exemplo

program somador

implicit none

integer n, soma

soma = 0

print *, 'Informe um número (zero para sair):'

read *, n

do while (n .NE. 0)

soma = soma + n

  print *, 'Informe um número (zero para sair):'

read *, n

end do

print *, 'Soma: ', soma

end

Page 12: Programação de Computadores

Repetição condicional II

Às vezes se deseja fazer a verificação no final do processamento. Ou seja, o bloco de comandos é sempre executado ao menos 1 vez.

condição

verdadefalso

bloco de comando LOGICAL repete repete = .TRUE.DO WHILE (repete) <bloco de comandos> repete = <condição>END DO

Page 13: Programação de Computadores

Exercício 1 (repetição condicional)

Faça um programa que: 1) some a idade de todos os alunos de uma turma. 2) informe a média das idades.

Dica: Quando não existirem mais alunos o usuário deve informar idade = 0.

Page 14: Programação de Computadores

Exercício 2 (repetição contável)

Faça um programa que informe se um determinado número fornecido pelo usuário é primo. program imprimePrimo implicit none integer i, j logical primo

primo = .true. print *, "insira um numero:" read *, j

do i=2,j-1,1 if (mod(j,i) .eq. 0) then primo = .false. endif enddo if (primo) then print*, j ," eh primo" endif end

Page 15: Programação de Computadores

Exercício 3 (repetição contável)

Faça um programa que calcule todos os números primos entre 1 e 20.

program imprimePrimo implicit none integer i, j logical primo

primo = .true.

do j= 1, 20, 1 do i=2,j-1,1 if (mod(j,i) .eq. 0) then primo = .false. endif enddo if (primo) then print*, j ," eh primo" endif primo = .true. enddo read* end

Page 16: Programação de Computadores

Exercício 4 (repetição contável)

Faça um programa que calcule todos os números primos entre um intervalo dado pelo usuário.

Exemplo: primos entre 10 e 2011, 13, 17, 19

Page 17: Programação de Computadores

Exercício 5 (repetição contável)

program imprimePrimo implicit none integer x, y, i, j logical primo primo = .true. print *, "insira dois numeros:" read *, x, y do j= x, y, 1 do i=2,j-1,1 if (mod(j,i) .eq. 0) then primo = .false. endif enddo if (primo) then print*, j ," eh primo" endif primo = .true. enddo end

Page 18: Programação de Computadores

Exercício 6 (repetição contável + condicional)

Faça um programa que calcule todos os números primos de 10 em 10 até o usuário informar que deseja parar digitando 0. Ao final o programa deve imprimir qual foi o intervalo observado.

Exemplo de saída1, 2, 3, 5, 7“Se desejar parar digite 0”.11, 13, 17, 19“Se desejar parar digite 0”.(imagine que o usuário digitou 0)“Foram calculados os primos de 1 a 20.

Page 19: Programação de Computadores

Exercício 3 (repetição contável + condicional) program imprimePrimo implicit none integer x, y, i, j, s logical primo, repetir primo = .true. repetir = .true. x=1 y=10 do while (repetir) do j=x,y,1 do i=2,j-1,1 if (mod(j,i) .eq. 0) then primo = .false. endif enddo if (primo) then print*, j endif primo = .true. enddo print *, "deseja continuar?" read *, s if (s .eq. 0) then repetir = .false. print*, 'terminou' else x=x+10 y=y+10 endif enddo print *, "foram calculados os primos de 1 a ", y read* end