Вы находитесь на странице: 1из 34

EXERCICIOS RESOLVIDOS EM LIGUAGEM F

(Pelo estudante: Majenda Uzanani Limitedi)

1. Crie um algoritmo que leia um número informado pelo usuário, em seguida deverá ser
calculado se o valor é menor ou igual a 30, caso seja menor ou igual deverá ser apresentado
na tela a mensagem: Menor que 30 .

PROGRAM MAIOR_DE_30

! AUTOR: MAJENDA

! DATA: 30/10/2015

IMPLICIT NONE

INTEGER::N

PRINT*,"INFORME O NUMERO"

READ*,N

IF (N<30) THEN

PRINT*,"MENOR QUE TRINTA"

ELSEIF (N>30) THEN

PRINT*,"MAIOR QUE TRINTA"

ELSE

PRINT*,"IGUAL A TRINTA"

END IF

END PROGRAM MAIOR_DE_30

Majenda1994@gmail.com 848659214 862228553


2. Crie um algoritmo que recebe quatro notas e calcule a média do aluno, em seguida
apresente uma mensagem de :Aprovado, caso a média seja maior ou igual a 7.

PROGRAM MEDIA

! AUTOR: MAJENDA

! DATA: 30/10/2015

IMPLICIT NONE

REAL::M,S,N

INTEGER::C

PRINT*,"ESTE PROGRAMA EH PARA CALCULAR A MEDIA DE QUATRO (4) NOTAS"

S=0 ; C=0

DO ; C=C+1

IF(C>4)EXIT

PRINT*,"INFORME A NOTA",C ; READ*,N

S=S+N ; M=S/4

END DO

IF(M>=7)THEN

PRINT*,"APROVADO MEDIA",M

ELSE

PRINT*,"REPROVADO MEDIA",M

ENDIF

END PROGRAM MEDIA

4a. Crie um algoritmo que peça a idade do eleitor e o mesmo informe se o eleitor é
facultativo (entre 16 e 17 anos) ou obrigatório (entre 18 a 65) ou dispensado (acima de 65).
Use ( if...then )

Majenda1994@gmail.com 848659214 862228553


PROGRAM ELEICAO

! AUTOR: MAJENDA

! DATA: 30/10/2015

IMPLICIT NONE

INTEGER::IDADE

PRINT*,"DIGITE A IDADE DO ELETOR"

READ*,IDADE

IF(IDADE==16 .OR. IDADE==17)THEN

PRINT*,"FACULTATIVO"

ELSEIF(IDADE>=18 .AND. IDADE<=65)THEN

PRINT*,"OBRIGATORIO"

ELSE

PRINT*,"DISPENSADO"

END IF

END PROGRAM ELEICAO

4b. Crie um algoritmo que peça a idade do eleitor e o mesmo informe se o eleitor é
facultativo (entre 16 e 17 anos) ou obrigatório (entre 18 a 65) ou dispensado (acima de 65).
Use (select case)

PROGRAM ELEICAO

! AUTOR: MAJENDA

Majenda1994@gmail.com 848659214 862228553


! DATA: 30/10/2015

IMPLICIT NONE

INTEGER::IDADE

PRINT*,"DIGITE A IDADE DO ELETOR" ; READ*,IDADE

SELECT CASE (IDADE)

CASE (16,17) ; PRINT*,"FACULTATIVO"

CASE (18:65) ; PRINT*,"OBRIGATORIO"

CASE DEFAULT ; PRINT*,"DISPENSADO"

END SELECT

END PROGRAM ELEICAO

5. Crie um algoritmo que exiba o nome do mês do ano ao seleccionar entre os números 1 até
12.

program MES

! AUTOR: MAJENDA

! DATA: 30/10/2015

implicit none

integer::op

print*,"INFORME O NUMERO NO INTERVALO DE 1 A 12"

READ*,OP

SELECT CASE (OP)

CASE (1); PRINT*,"JANEIRO"

Majenda1994@gmail.com 848659214 862228553


CASE (2); PRINT*,"FEVEREIRO"

CASE (3); PRINT*,"MARCO"

CASE (4); PRINT*,"ABRIL"

CASE (5); PRINT*,"MAIO"

CASE (6); PRINT*,"JUNHO"

CASE (7); PRINT*,"JULHO"

CASE (8); PRINT*,"AGOSTO"

CASE (9); PRINT*,"SETEMBRO"

CASE (10); PRINT*,"OUTUBRO"

CASE (11); PRINT*,"NOVEMBRO"

CASE (12); PRINT*,"DESEMBRO"

CASE DEFAULT; PRINT*,"OPCAO INVALIDA"

END SELECT

END program MES

6. Crie um algoritmo que exiba um cardápio com as opções: 1: Xima, 2: Mandioca e 3:


Batata doce . Ao seleccionar uma das opções: 1, 2 e 3 deverá exibir a mensagem: Opção
(número) : (nome do prato), pedido realizado com sucesso.

PROGRAM CARDAPIO

! AUTOR: MAJENDA

! DATA: 30/10/2015

IMPLICIT NONE

Majenda1994@gmail.com 848659214 862228553


INTEGER::PRATO

PRINT*,"ESCOLHA O TEO PRATO FAVORITO"

PRINT*,"1: Xima 2: Mandioca 3: Batata doce"

READ*,PRATO

SELECT CASE (PRATO)

CASE (1); PRINT*,"OPCAO 1: Xima, PEDIDO REALIZADO COM SUCESSO."

CASE (2); PRINT*,"OPCAO 2: Mandioca, PEDIDO REALIZADO COM SUCESSO."

CASE (3); PRINT*,"OPCAO 3: Batata doce, PEDIDO REALIZADO COM SUCESSO."

CASE DEFAULT; PRINT*,"OPCAO INVALIDA"

END SELECT

END PROGRAM CARDAPIO

7. Construa um algoritmo que: a. Leia o nome de três pessoas (dado do tipo caractere). b.
Escreva os nomes na ordem inversa da que foram informados.

program inversa

implicit none

!Autor: Majenda

!Data: 30/10/2015

character(20)::a,b,c

print*,'Digite o primeiro nome'; read*,a

print*,'Digite o segundo nome'; read*,b

Majenda1994@gmail.com 848659214 862228553


print*,'Digite o terceiro nome'; read*,c

print*,'--------------------------------------'

print*,'A ordem inversa eh'

print*,c

print*,b

print*,a

end program inversa

8. Os funcionários da empresa 'Dois Irmãos' receberão um reajuste de salário. Construa um


algoritmo que: a. Leia o nome de um funcionário (dado do tipo caractere). b. Leia o valor
atual de seu salário (dado do tipo real). c. Leia o percentual de reajuste (assuma que as
entradas serão valores reais entre 0 e 100). d. Calcule o novo salário. e. Exiba o nome do
funcionário e o novo valor do salário.

PROGRAM PERCENTAGEM

! AUTOR: MAJENDA

! DATA: 30/10/2015

IMPLICIT NONE

real::b,c,d

CHARACTER(10)::A

PRINT*,"Introduza o valor actual"; READ*,A

PRINT*,"Introduza o valor actual de ",A ; READ*,b

PRINT*,"Introduza a percentual de reajuste"; READ*,c

IF(c>=0 .AND. c<=100)THEN

Majenda1994@gmail.com 848659214 862228553


c = b * (c / 100) !calculo de percentagem

d = c + b ! novo salario

PRINT*,a," Seu novo salario e: ",d

ELSE

PRINT*,"A percentual de reajuste so pode ser no intervalo de 0% a 100%, tente novamente."

ENDIF

END PROGRAM PERCENTAGEM

10 Construa um algoritmo que: a. Leia um número inteiro. b.informe se o número lido é


positivo, negativo ou igual a zero. Teste o algoritmo as entradas -16, 0 e 4. Mantenha anotado
o valor de cada variável durante os passos da execução.

program posit_negat

! AUTOR: MAJENDA

! DATA: 30/10/2015

implicit none

integer::n

print*,'Digite o numero'

read*,n

if (n<0) then; print*,n,' eh negativo'

elseif(n>0)then; print*,n,' eh negativo'

else; print*,n,' eh nulo'; endif

end program posit_negat

Majenda1994@gmail.com 848659214 862228553


11. Construa um algoritmo que determine e mostre o maior número entre vários fornecidos
pelo usuário. A condição de parada é a entrada de um valor 0 (zero), ou seja, o algoritmo
deve ficar escolhendo o maior até que a entrada seja igual a 0 (zero). Utilize a estrutura
ENQUANTO ... REPETIR ... no algoritmo. Assuma que valores negativos nunca serão
informados pelo usuário.

PROGRAM MAIOR_MENOR

! AUTOR: MAJENDA

! DATA: 30/10/2015

IMPLICIT NONE

INTEGER::num,Maior,menor

maior = 0; menor = 9999; NUM = 1

Do while (NUM/=0)

PRINT*,"digite o numero"

READ*,num

IF (num > 0 .and. num > maior) THEN; maior = num; ENDIF

IF (num < menor .and. num>0) THEN; menor = num; ENDIF

ENDDO

PRINT*,"Menor e ",menor

PRINT*,"Maior e ",maior

END PROGRAM MAIOR_MENOR

Majenda1994@gmail.com 848659214 862228553


12. Construa um algoritmo que leia 500 valores inteiros e positivos e: a. Encontre e mostre o
maior valor. b. Encontre e mostre o menor valor. c. Calcule e mostre a média dos números
lidos. Utilize a estrutura ENQUANTO ... REPETIR ... no algoritmo.

PROGRAM MEDIA_DE_500

! AUTOR: MAJENDA

! DATA: 30/10/2015

IMPLICIT NONE

INTEGER::i,nma,nme,soma

real::media;

nme = 99999; nma = 0; soma=0

i=0

Do while ( I<500 ) ; i=i+1

PRINT*,I

IF(i > nma) THEN; nma = I; ENDIF

IF (i < nme) THEN; nme = I; ENDIF

soma=soma+i; media=soma/500

ENDDO

PRINT*,"O numero maior e: ",nma

PRINT*,"O numero menor e: ",nme

PRINT*,"A soma e: ",soma

PRINT*,"A media e: ",media

END PROGRAM MEDIA_DE_500

Majenda1994@gmail.com 848659214 862228553


13. Reescreva o algoritmo desenvolvido no Exercício 12 utilizando a estrutura de repetição
REPETIR ... ENQUANTO ... no lugar de ENQUANTO ... REPETIR ...

PROGRAM MEDIA_DE_500

! AUTOR: MAJENDA

! DATA: 30/10/2015

IMPLICIT NONE

INTEGER::i,nma,nme,soma

real::media

nme = 99999

nma = 0

soma=0

i=0

DO; I=i+1; if(i>500)exit

PRINT*,I

IF(i > nma) THEN

nma = i

ENDIF

IF (i < nme) THEN

nme = i

ENDIF

Majenda1994@gmail.com 848659214 862228553


soma=soma+i

media=soma/500

ENDDO

PRINT*,"O numero maior e: ",nma

PRINT*,"O numero menor e: ",nme

PRINT*,"A soma e: ",soma

PRINT*,"A media e: ",media

END PROGRAM MEDIA_DE_500

14. Utilizando a estrutura PARA... ATÉ... REPETIR..., construa um algoritmo que exiba os
números ímpares entre 100 e 200. Dica: a função mod(X,Y) retorna o resto da divisão de X
por Y.

program impar

implicit none

!AUTOR: MAJENDA

!DATA: 07/11/2015

integer::i

do i=100,200

! i eh contador; 100 eh o valor iniciar da contagem; 200 eh o valor limite da contagem

! mesma funcao com (para...faca...) Ex: para i de 100 ate 200 faca

Majenda1994@gmail.com 848659214 862228553


if(mod(i,2)/=0)then !funcao mod(i,2) retorna o resto da divisao de i por 2

print*,i ! impessao de numeros impares, e imprime se o resto da divisao for diferrente de zero

endif

enddo

end program impar

15. Construa um algoritmo que calcule a média de N números reais informados pelo usuário,
onde o valor de N também é informado no início da execução. Utilize a estrutura
PARA...ATÉ... REPETIR... Antes do término da execução do algoritmo, mostre a média
calculada.

program media_de_n_numeros

! AUTOR: MAJENDA

! DATA: 30/10/2015

implicit none

integer::n,i

real::media,soma,nota

print*,"Informe a quantidade" ! pede para o usuario digitar a quantidade de numeros

read*,n

i=0 ! contador

soma=0

do; i=i+1; if(i>n)exit ! se o contador (i) for maior que a quantidade (n), sai do laço

print*,"Digite o numero",i

Majenda1994@gmail.com 848659214 862228553


read*,nota

soma=soma+nota

media=soma/n ! Media eh a soma de todos numeros dividir por quantidade

end do

print*,"A soma e:",soma ! Mostra o resultado da soma na tela

print*,"A media e:",media ! Mostra a media na tela

end program media_de_n_numeros

16. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo
(pseudocódigo ) que calcule seu peso ideal, utilizando as seguintes fórmulas: Para homens:
(72,7 * altura) – 58. Para mulheres: (62,1 * altura) – 44,7
Ao perguntar o sexo, o algoritmo deverá garantir que as únicas entradas aceitas sejam „M‟
para homens e „F‟ para mulheres. Ou seja, caso um valor diferente de „M‟ ou „F‟ seja
informado, o programa deverá requisitar ao usuário que informe o sexo novamente até a
entrada ser válida. Dica: utilize a estrutura de repetição mais adequada dentre as três vistas
em aula.

program peso_ideal

!Autor: Majenda

!Data: 07/11/2015

implicit none

real::altura,peso

character(15)::gen,nome

write(*,*)"Informe teu nome"

read(*,*)nome

Majenda1994@gmail.com 848659214 862228553


write(*,*)"Informe tua altura"

read(*,*)altura

do while (gen /= "m" .and. Gen /= "f")

write(*,*)"Informe teu genero. Sugestao: so eh permitido a entrada de M ou F"

read(*,*)gen

select case (gen)

case ("m")

peso = (72.7 * altura) - 58 ! para homem

write(*,*)"Senhor ",nome,"teu peso eh: ",peso

case ("f")

peso =(72.1 * altura) - 44.7 ! para mulher

write(*,*)"Senhora ",nome," teu peso eh: ",peso

end select

end do

end program peso_ideal

17. Escreva um algoritmo que leia três valores inteiros e mostre-os em ordem decrescente.
Dica: utilize estruturas de decisão encadeadas.

program ordem_decrescente

implicit none

! AUTOR: MAJENDA

! DATA: 30/10/2015

Majenda1994@gmail.com 848659214 862228553


integer::a,b,c

print*,"Informe tres valores inteiros:"

read*,a,b,c

if(a==b.and.b==c) then

print*,a,b,c

elseif(a<b.and.b<c) then

print*,c,b,a

elseif (a>b.and.b>c)then

print*,a,b,c

elseif (a<b.and.b==c)then

print*,b,c,a

elseif (a>b.and.b==c)then

print*,a,b,c

elseif (a==b.and.b<c)then

print*,c,a,b

elseif (a==b.and.b>c)then

print*,a,b,c

elseif (a==c.and.b>c)then

print*,b,a,c

elseif (a==c.and.b<c)then

print*,a,c,b

elseif (a<b.and.b>c.and.c>a) then

Majenda1994@gmail.com 848659214 862228553


print*,b,c,a

elseif (a>b.and.b<c.and.c<a)then

print*,a,c,b

elseif (a>b.and.b<a.and.c>a) then

print*,c,a,b

elseif(a<b.and.b>c.and.c<a) then

print*,b,a,c

endif

end program ordem_decrescente

18. Construa um algoritmo que escreva uma contagem de 10 (dez) minutos, ou seja, mostre 0:00, e
então 0:01, 0:02, ..., 0:58, 0:59, 1:00, 1:01, 1:02,...,até 10:00. Dica: utilize a estrutura de repetição
mais adequada dentre as três vistas em aula.

program cronometro

! Autor: MAJENDA

! Data: 02/11/2015

implicit none

integer::hora,minuto,segundo

hora = 0

minuto = 0

segundo = 0

!do while( hora < 25) !! conta até 24:00

do while( minuto < 10)

Majenda1994@gmail.com 848659214 862228553


segundo = segundo + 1 ! contador de segundos

if (segundo > 59) then ! controlador de segundos

segundo = 0

!-------------------------------

minuto = minuto + 1

if (minuto > 59) then

minuto = 0

!-------------------------------

hora = hora + 1

if (hora > 23) then

hora = 0 !zero hora = a 24 horas

endif

endif

endif

print*,hora,"h:",minuto,"m:",segundo,"s"

enddo

end program cronometro

19. Construa três algoritmos que imprimam a tabuada do 5 (cinco). Em cada um deles utilize
uma das estruturas de repetição vistas em aula. Dica: verifique se o resultado está correcto
fazendo um teste de mesa para cada uma das soluções apresentadas.

19a. Usando (do), mesma funçao com (para...ate...faca)

program tab_Do

Majenda1994@gmail.com 848659214 862228553


implicit none

integer::i

do i=1,5

print*,5," X",i," =",i*5

enddo

end program tab_Do

19b. Usando (do while...), mesma funçao com (enquanto...faca...)

program tab_Do_While

implicit none

integer::i

i=0

do while (i<5) ; i=i+1

print*,5," X",i," =",i*5

enddo

end program tab_Do_While

19c. Usando (do…exit), mesma funçao com (repita…ate…)

program tab_Do_Exit

implicit none

integer::i

i=0

do; i=i+1 ; if (i>5)exit

print*,5," X",i," =",i*5

Majenda1994@gmail.com 848659214 862228553


end do

end program tab_ Do_Exit

20. Escreva um algoritmo que leia 20 valores inteiros e ao final exiba: a) a soma dos
números positivos; b) a quantidade de valores negativos

program somaposi

! AUTOR: MAJENDA

! DATA: 30/10/2015

implicit none

real::soma,negativo

integer::n,i

print*,"Digite informe 20 valores inteiros"

i=0; negativo=0; soma=0

do; i=i+1; read*,n

if (n>=0) then ! se o numero digitado for maior ou igual a zero, o numero vai ser somado

soma=soma+n

else ! se o numero nao for maior ou igual a zero, soma (negativo + 1)

negativo=negativo+1

end if

if(i==20)exit

end do

print*,"A soma dos numeros positivos e:",soma

Majenda1994@gmail.com 848659214 862228553


Print*,"A quantidade de numeros negativos e:",negativo

end program somaposi

21. Faça um algoritmo que escreva na tela os números de um número inicial a um número
final. Os números inicial e final devem ser informados pelo usuário;

program inicial_final

! AUTOR: MAJENDA

! DATA: 30/10/2015

implicit none

integer::i,f,p,c

print*,"Digite o numero inicial"

read*,i

print*,"Digite o numero final"

read*,f

print*,"Digite o passo"

read*,p

do c = i,f,p; print*,c; end do

end program inicial_final

22. Escrever um algoritmo que imprima a tabuada de um número informado pelo usuário;

PROGRAM TABUADA

Majenda1994@gmail.com 848659214 862228553


! AUTOR: MAJENDA

! DATA: 30/10/2015

implicit none

INTEGER::N,I,L

PRINT*,"DIGITE O NUMERO NA QUAL DESEJA VER A SUA TABUADA"

READ*,N

PRINT*,"ATE QUE NUMERO DESEJA VER A TABUADA DE",N

READ*,L

I=0

DO; I=I+1; IF (I>L)EXIT

PRINT*,N," X",I," =",N*I

END DO

END PROGRAM TABUADA

23. Escrever um algoritmo que gera e escreve os números ímpares entre 100 e 200;

PROGRAM IMPARES_100_a_200

! AUTOR: MAJENDA

! DATA: 30/10/2015

implicit none

INTEGER::I

Majenda1994@gmail.com 848659214 862228553


DO I=100,200

IF (MOD(I,2)/=0)THEN

PRINT*,I

ENDIF

END DO

END PROGRAM IMPARES_100_a_200

24. Em uma turma há 10 alunos. Cada aluno tem 2 notas. Um professor precisa calcular a
média das duas notas de cada aluno. Crie um programa que resolve este problema.

program Exer_24

! AUTOR: MAJENDA

! DATA: 31/10/2015

implicit none

real::n1,n2,media

character(20)::nome

integer::i

i=1

do while (i < 11)

print*,"Informe o nome do ",i,"o estudante "

read*,nome

print*,"Informe a primeira nota do ",nome

read*,n1

Majenda1994@gmail.com 848659214 862228553


print*,"Informe a segunda nota do ",nome

read*,n2

media = (n1+n2)/2

print*,"A media do aluno ",nome," e: ",media

i=i+1

end do

end program Exer_24

25. Escrever um programa de computador que leia 10 números inteiros e, ao final, apresente a
soma de todos os números lidos

PROGRAM SOMA_10

implicit none

!Autor: Majnda

!Data: 07/11/2015

real::n,s

integer::i

s=0

do i=1,10

print*,"Digite o",i,"o numero"

read*,n

s=s+n

end do

Majenda1994@gmail.com 848659214 862228553


print*,'A soma sera:',s

end program soma_10

26. Faça um programa que deve ler e somando números até que o valor digitado seja zero
(0 ).

PROGRAM Exer_26

! AUTOR: MAJENDA

! DATA: 31/10/2015

implicit none

integer::soma,n1,n2

PRINT*,"Introduza o 1o numero"

READ*,n1

soma=n1

PRINT*,"Digite o numero a somar"

READ*,n2

soma=soma+n2

IF (n2 == 0) THEN; PRINT*,"A soma e: ",soma

ENDIF

DO WHILE (n2 /= 0)

PRINT*,"Digite o numero a somar"

READ*,n2

soma=soma+n2

Majenda1994@gmail.com 848659214 862228553


IF (n2 == 0) THEN; PRINT*,"A soma e: ",soma

ENDIF

ENDDO

END PROGRAM Exer_26

27. Escreva um algoritmo que calcule a média dos números digitados pelo usuário, se eles
forem pares. Termine a leitura se o usuário digitar zero (0).

PROGRAM MEDIA_PARES

! AUTOR: MAJENDA

! DATA: 1/11/2015

implicit none

REAL::SOMA,MEDIA

INTEGER::C,N

C=0

SOMA = 0

N=1

DO WHILE (N/=0)

PRINT*,"DIGITE O NUMERO"

READ*,N

IF(MOD(N,2)==0)THEN

C=C+1

Majenda1994@gmail.com 848659214 862228553


IF(N==0)THEN

C=C-1 ! QUANDO N=0 TIRAMOS 1 PORQUE ZERO VAI SER CALCULADO COMO UM NUMERO
PAR

ENDIF

SOMA=SOMA+N

MEDIA=SOMA/C

ENDIF

END DO

PRINT*,"A SOMA DOS NUMEROS PARES E:",SOMA

PRINT*,"A MEDIA DOS NUMEROS PARES E:",MEDIA

END PROGRAM MEDIA_PARES

28. Escreva um algoritmo que leia valores inteiros e encontre o maior e o menor deles.
Termine a leitura se o usuário digitar zero (0)

PROGRAM Exer_28_Maior_d_varios

! AUTOR: MAJENDA

! DATA: 1/11/2015

implicit none

INTEGER::nrs,nma,nme

nme=999 ! numero menor recebe numero maior

nma=0 ! numero maior recebe numero menor

Majenda1994@gmail.com 848659214 862228553


nrs=1 ! numeros recebe o valor inicial diferente de zero

DO WHILE (nrs /= 0)

PRINT*,"Informe o numero "

READ*,nrs

IF (nrs > nma) THEN

nma = nrs

ENDIF

IF (nrs < nme .AND. nrs /= 0) THEN

nme = nrs

ENDIF

ENDDO

PRINT*,"O numero maior é: ",nma

PRINT*,"O numero menor é: ",nme

END PROGRAM Exer_28_Maior_d_varios

29. Escreva uma programa que lê o sexo de uma pessoa. O sexo deverá ser com o tipo de
dado caractere e o programa deverá aceitar apenas os valores “M” ou “F”.

PROGRAM SEXO

implicit none

!Autor: Majenda

!Data: 07/11/2015

Majenda1994@gmail.com 848659214 862228553


character::s

do while (s/="m".and.s/="f")

write(*,*)"Digite o teu sexo, so eh permitido a entrada de m ou f"

read(*,*)s

select case (s)

case("m"); print*,'MSCULINO'

case("f"); print*,'FEMININO'

END SELECT

END DO

END PROGRAM SEXO

30. Escreva um programa que leia dois valores reais. Ambos valores deverão ser lidos até que
o usuário digite um número no intervalo de 1 a 100. Apresentar a soma dos dois valores lidos.

program soma

implicit none

!Autor: Majenda

!Data: 07/11/2015

real::a,b,s,n

print*,'digite um numero a sua escolha no intervalo de 1 a 100'

read*,n

if(n>0.and.n<=100)then

print*,'Digite dois numeros para somar'

Majenda1994@gmail.com 848659214 862228553


read*,a,b

S=A+B

print*,a," +",b," =",S

end if

end program soma

31.Escreva um programa que lido um número, calcule e informe o seu fatorial. Ex.: 5! = 5 * 4
* 3 * 2 * 1 = 120.

program fatorial

! AUTOR: MAJENDA

! DATA: 1/11/2015

Implicit none

integer :: n, r, i

print *,"Introduza um numero: "

read *,n

r=1

do i=n,1,-1

r=r*i

end do

print *,"O factorial e: ",r

end program fatorial

Majenda1994@gmail.com 848659214 862228553


33. Faça um algoritmo para calcular a soma de todos os números primos existentes entre 1 e
100.

PROGRAM soma_primo

! AUTOR: MAJENDA

! DATA: 1/11/2015

IMPLICIT NONE

INTEGER::re,divi,primo,S,resto

PRINT*,"Os numeros primos de 1 ate 100 sao"

PRINT*," 2"

Primo=3

S=0

DO

divi = 2

re = 9

DO WHILE (primo /= divi)

resto= mod(primo,divi)

divi=divi+1

IF (resto==0)THEN

re=0

ENDIF

ENDDO

Majenda1994@gmail.com 848659214 862228553


IF (re==9)THEN

PRINT*,Primo

s=s+primo

ENDIF

Primo=primo+1

IF(PRIMO>100)EXIT

END DO

PRINT*,"A soma eh", s+2

END PROGRAM SOMA_PRIMO

34. Faça o mesmo que em 2, mas usando apenas somas; Informe se um número digitado é
primo. Caso não for, informe por quais números ele é divisível

PROGRAM PRIMO

!AUTOR: MAJENDA

!DATA: 07/11/2015

IMPLICIT NONE

INTEGER::I,DIVI,D,N

N=1

DO WHILE(N/=0) ! O programa vai mostrando se o numero digitado é primo ou não até que a entrada seja zero

PRINT*,'DIGITE O NUMERO INTEIRO POSITIVO, DIGITE (0) PARA TERMINAR'

READ*,N

DIVI=0

Majenda1994@gmail.com 848659214 862228553


DO I=1,N

IF(MOD(N,I)==0)THEN

DIVI=DIVI+1

D=I

PRINT*,N,' EH DIVISIVEL POR',D

END IF

END DO

IF (DIVI==2)THEN

PRINT*,N,' EH PRIMO'

ELSE

PRINT*,N,' NAO EH PRIMO'

ENDIF

END PROGRAM PRIMO

35. Digitados dois números (base e expoente b), calcule o resultado utilizando apenas
multiplicações.

PROGRAM Expoente

! AUTOR: MAJENDA

! DATA: 1/11/2015

IMPLICIT NONE

real::a,res

INTEGER::i,b

Majenda1994@gmail.com 848659214 862228553


PRINT*,"Digite a base"

READ*,a

PRINT*,"Digite expoente"

READ*,b

RES=1

DO i = 1,b

res = res * a

ENDDO

PRINT*,a," com expoente ",b," e igual a = ",res

END PROGRAM Expoente

Majenda1994@gmail.com 848659214 862228553

Вам также может понравиться