Você está na página 1de 17

Escreva um programa em Java que calcule a

soma dos nmeros pares entre 2 e 200.


(resultado=10100)

!
!
"
#

Slides_Java_3

&% !

"
"

Sistemas Informticos I, 2005-2006

$'

Escreva um programa que leia valores


inteiros de um ficheiro e que no final do
programa imprima no crn a mdia dos
nmeros positivos.
O programa termina quando chegar ao final
do ficheiro.

(
)
*
,3

, *

+ %

$ - %) *

+ $. / 0 12

4 $
$
5
!
!!
"

"
6
#

78

%!

"
"

Determinar os mltiplos de 5, mas que no


sejam mltiplos de 3, entre 100 e 10000.

$'
#

9
= ;
#

< &%

!!
>> = < 4
$ $

!% %

"
"

Calcular o valor do saldo de um artigo, sabendo


que os descontos so feitos em funo do
preo e segundo a seguinte tabela:

$'
/

$ $
B #
5

%?

A%

$
9

!!
9 C

C
#
#

C!!
$

%'%

"
"
#
"
"

Exemplo (n=5):
*****
*****
*****
*****
*****

"

Escreva um programa que represente um


quadrado de asteriscos. O tamanho do lado
definido pelo utilizador.

%D

4%

Preo
P>10000
5000 < P <= 10000
2500 < P <= 5000
outros

Desconto
40%
20%
10%
5%

$'

B #
59

%?

&%

$
' $G
5;
' $
5 ;
' $9

#
#

' $;
$
%H
$
%J

$
$

Dados trs nmeros inteiros positivos:


Determinar se estes 3 nmeros podem ser os
comprimentos dos lados de um tringulo
rectngulo;
Determinar a soma dos seus quadrados;
Determinar o quadrado da sua soma;
Determinar a sua mdia aritmtica.

%!
%!

!%
K

"
"

$'

Escreva um programa em Java que apresente uma tabela no


crn onde a primeira coluna deve ter os graus de um ngulo
desde 0 a 360 (de 30 em 30). Na 2 coluna apresenta o seno
desse ngulo, na 3 coluna apresenta o coseno e na 4 coluna

) )
)
#

(:

B #
#
B #
#

#
(:

"
"

%L

apresenta a tangente.

$
$

'

#
#

%L
$

B #

%L
$

$
!
$
$

' ! '
MM
'
$ $
%H
' ! ' ! '
$
%
:
!
$
%?
$
%8 N
O

' ! '
.
%!
%!
%!

MM
4%

'
(:

'
6< $

' ! '

Grau

Seno

Coseno

Tangente

0
30
60
90
120
150
180
...

0.00
0.50
0.87
1.00
0.87
0.50
0.00

1.00
0.87
0.50
0.00
-0.50
-0.87
-1.00

0.00
0.58
1.73
16331239353195370.00
-1.73
-0.58
-0.00

import java.text.*;
public class SinCos{
public static void main (String[] args){
DecimalFormat df = new DecimalFormat("0.00");
System.out.println("Grau\tSeno\tCoseno\tTangente\n");
for( int d=0; d <= 360; d +=30){
System.out.print( d + '\t');
System.out.print( df.format(Math.sin(d*(Math.PI/180))) + '\t');
System.out.print( df.format(Math.cos(d*(Math.PI/180)))+ '\t');
System.out.print( df.format(Math.tan(d*(Math.PI/180)))+ '\t');
System.out.println();
}
} // main method
} // SinCos class

Escreva um programa que calcule qual o


menor e o maior de 10 nmeros inteiros
introduzidos pelo utilizador.

Exemplo:
8 23 45 2 56 3 7 12 38 43
Maior=56
Menor=2

Escreva um programa que calcule e


apresente todos os divisores de um nmero.

Exemplo:
input = 12
divisores = 1, 2, 3, 4, 6, 12

Converte graus
para radianos

$'
9

8
)

)
9
#

!!
$ $
B #
66

P& %

"
66
66

8
8

3$ 3$

)
)

5
"
#
#

$
$

$
$

%+
%+

P
P

E
E

&% !
&% !

"
"

$'

Escreva um programa que leia 2 ns inteiros


e apresente a sua soma se ambos forem
pares, o seu produto se ambos forem
mpares ou o nmero mpar se um deles for
par e o outro mpar.

Exemplos:
input: x=4, y=8 ----- result = 12
input: x=3, y=9 ----- result = 27
input: x=4, y=11 ----- result = 11

)
#

B #
#

&%

$
$
9
=

%+

%!

!% @ %

!!
#

"
"

$'

#
9
#

$'

9)
$ $
B #
$ $
B #
9=

%9P 1P& %
$
% P 1P& %
$

#
9
#

9)
$ $
B #
$ $
B #
9=

=
#

4
#
#

%/

%9P N

%/

%9P N Q

$.

) PNQ
@ Q
) PN

& %!

9!

$.

& %!

66

$.

& %!

9'

$.

& %!

%9P 1P& %
$
% P 1P& %
$
>>
=
#
$ $
%/
9= 4 > >
= 4
#
$ $
%/
N
)
N
)))) :
94
66
9N Q
#
$ $
9
66
N Q
#
$ $

$.

@ Q
N

& %!
$.

& %!

9!
9'

$$$

"

"
"

1. Escreva um programa que determine se um


determinado
ano
(introduzido
pelo
utilizador) um ano bissexto ou no.
2. Os anos bissextos so mltiplos de 4, no
so mltiplos de 100, com excepo dos
anos que so mltiplos de 400, que tambm
so bissextos.
3. Por exemplo, os anos 1996 e 2000 so
bissextos, enquanto que os anos 1998 e
1900 so comuns.

$'

$ $
B #

%?

>>

A%

= G
$

= 9
%+

4
%!

MM
!%N

%+

%!

!%N

%L

= G
-

%
%

"
"

$'
(
) )
)
#

Ler trs nmeros inteiros e determinar qual


deles o maior e qual o menor.

B #
#

B #
#

%L

%L

$
$

B #

5
5
5

"

"
"
5
5

"

"
"
#
#

$
$

$
$

%8
%8

%!
%!

"
"

$'

A srie de Fibonnaci dada por:


F(0) = 0
F(1) = 1
F(n) = F(n-2) + F(n-1) (n>=2)

) C) R
66
C 9
66
#
$ $
#
$ $
R
#

Escreva um programa para apresentar os


primeiros 20 termos desta srie.

$$
9 $$

K
K9
!% %
C!% %
!!

! C
$ $

R!% %

C
R

C
"
"
"

$'

Um hotel concebeu uma forma original de


cobrar aos seus clientes. A 1 noite custa
50 , a segunda 25 (50 /2), a n-sima
custa 50 /n. Calcule a cobrana a efectuar
a um cliente que fique n noites no hotel
(preo a pagar por noite e o total).

)
(
#

B #

; $
$
%?

&%

$
9

!!
F 6
$

66
%J
(

F
%! !%

%!

"
#

%J

%!

"
"

Escreva um programa para calcular a soma dos


digitos de um nmero.

$'
66 J

Exemplos:
43 -> 7
432 -> 9
3271 -> 13

#
,3

$ $
B #
5

&7

S!

$
!
69

= 9

"
#

"
"

Escreva um programa que execute em ciclo, a gerar


nmeros aleatrios entre 1 e 6. O programa deve
terminar quando sair um 6 e deve imprimir no crn
quantos nmeros que foram gerados.

Como gerar um nmero inteiro entre 1 e 6:


8 3$
T '8 3$

1. Gera um nmero entre 1-6 e imprime no crn


2. Incrementa contador de tentativas
3. Enquanto esse nmero for diferente de 6 repete:
1. Gera um novo nmero entre 1-6 e imprime
2. Incrementa contador de tentativas

4. Imprime no crn o nmero total de tentativas


!9

random()- Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0.
floor(double a) - Returns the largest (closest to positive infinity) double value that is not greater than the
argument and is equal to a mathematical integer.

3$

T'8

3$

!9

!"
8 #0
(
$

3$

T '8
!%%

,3

4 T
8
(
$

3$
!!

3$

T '8

3$

Eis a estrutura:

1.
2.
3.

Gera nmero (n) entre 1 e 100.


Pergunta ao utilizador qual o nmero
Enquanto a resposta no estiver certa

!9

!9

!%%

"
#

Escreva um programa em Java que comea por


gerar um nmero entre 1 e 100 e depois pede ao
utilizador para adivinhar esse nmero. O programa
executa em ciclo at o nmero ser adivinhado.

9
8

% %!

!%

1.

"

Se a tentativa do utilizador for menor do que o nmero n


1.

2.

"

1.

3.

4.

Diz ao utilizador que o nmero est acima

Se a tentativa do utilizador for maior do que o nmero n


Diz ao utilizador que o nmero est abaixo

Pede ao utilizador uma nova tentativa

Imprime certo! no crn

$'
8 #2
66
8
#

O
(1
$ $
2

,3

2
#

U
8
%?
B #

$
$

3$

(1
(1
%

$$$%

- $$$%

%?
B #

"
#
"
"

!9

4 8
2
58
$ $

9 9 &
9 '8 3$
&%

%/ J . H + V 4%

Calcular as coordenadas de um projctil e fazer a


sua representao usando a classe Graph.
Se o projctil lanado a uma velocidade inicial de
m/s e segundo um ngulo sobre a horizontal
ento as coordenadas x,y do projctil t segundos
depois do lanamento so dadas pelas seguintes
frmulas:
x = t cos( )
y = t sin( )

&%

gt 2
2

Considera-se que no existe resistncia do ar.


Os graus na frmula devem ser em radianos.

_ radians = 180

$
$
$

$'

$'

8 #D

8 #D

)
#

B #
#

%
0
%
0

B #

'8

3$D 69W

3
C
C$ / -

C
)
$

$
%
E
$
0
$ $
%
E
B #
$
0
'8 3$D 69W
66
2
3
C
, 2
3
C$ / ) G ) ) 9;

&%
&%

66

, 2
3
) G ) ) 9;

$;
X $W
#
C$ D

$$$$

,3
C$

&%

B #

-) #

"
"
"

#5
!
' '8
#
' '8
C$ D

&%

66

-) #
66
3$
3$
-) #

K $; ' ' '

"
"
"

&'()*'(

Escreva um programa em Java que indique


se um determinado nmero (P) primo ou
no. Eis um possvel algoritmo:
P o nmero que vai ser testado. Temos que verificar se
P
conseguimos encontrar qualquer nmero N, em que d resto
N
zero. Se no existir nenhum nmero N ento P um nmero
primo.
Se P deve ser mpar ento os nmeros N devem ser todos
mpares.
N comea no nmero 3.
Quando paramos o teste? Quando N=P?
No preciso, podemos parar quando N atingir P
Se existir um factor superior a P deve existir um outro factor
menor que P, que dever ter sido encontrado.

10

"
$'
D

Pede ao utilizador para introduzir o nmero P


N=3
Encontra resto da diviso (R = P % N)
Enquanto R 0 e N P repete:

)
(
#

B #

%?

Incrementa N por 2 (N = N + 2)
Calcula R (R = P % N)

A%

9 MM
(
=
(

66

66

Teste com os seguintes nmeros primos:


193707721
2147483647

<
=
,3

>>

3$ :

!
=

Se R 0 P

um nmero Primo!
Caso contrrio, P no primo.

"
4
(
(
"66
(
#

%+

%! !% N

%+

%! !% 1Y + N

D
O

4%
D

$$$%

"
"

Escreva um programa em Java para inverter


os digitos de um nmero positivo.

)-

%?

B #

Exemplo:

#
#

input: 1234
result: 4321

"
,3

&%

$
$ $
$-

%0

$$$%

4
#

= 9
$ $

%- % ! '9
!%
%!
69

"
#

%!

"
"

11

$'

Um nmero inteiro no negativo diz-se


perfeito se igual soma dos seus
divisores prprios.

) )
#
#

B #

%?
%

<

Por exemplo, 6 um nmero perfeito


porque 6=2+3+1.

&%

$
!!

N %! !%&%

66

<

66
9
=

!!
!

Dado n, determine todos os nmeros


perfeitos inferiores a n.

66 N
$ $

!% %

"
#
#

$
$

$
$

"
"

Escreva um programa em Java, que usando a classe Graph,


represente o seguinte fractal que dado pela seguinte frmula:

$'
2

xk +1 = y k (1 + sin 0.7 x k ) 1.2 xk

y k +1 = 0.21 x k
Comece com xo=yo=0.0.
Deve representar os pontos em separado no grfico da figura
usando as seguintes instrues:
2

$
$
66 $$$
$

, 2
3
0 ,
# 2
3
/ - K9) $; )K $; )

, 2
3
0 ,
# 2
3
/ - K9) $; )K $; )
$
#
$
-9)#9
$ D
- )#
9
;
!!
-9 # ' 9!8 3$
$\'#9
$ 9K$ D
-9)#9
- -9
# #9
"
$
$

$DZ+ H D+ 1H

$DZ+ H D+ 1H

K 9$ '8

3$ :

3$

"

[)[

"

12

A seguinte frmula usada para modelar o


crescimento limitado da populao quando existem,
por exemplo, restries de alimento:
yk+1 = r.yk(1-yk)
Fenmenos interessantes ocorrem quando o valor de
r est entre 3 e 4 (conhecido pelo caos matemtico).
Escreva um programa em Java para representar a
evoluo de y sobre k, usando a classe Graph.
Teste por exemplo com 3.9, e y0=0.2.

$'
2

, 2
3
/)9 ) )9
#
$
#9
< $X
$ D
$ )#
9
9
!!
#9
'# ' 9K#
$ D
)#9
# #9
"
$

"
"

13

$'
3

A Espiral de Arquimedes representada pela


seguinte frmula:
r = a.
x = r.cos( )
y = r.sin( )

, 2

-)#) )
$9

Escreva um programa em Java, usando a class


Graph, que represente uma espiral de
Arquimedes. (por ex: a=0.1, =0.1.....50).

9
;
' $9
'
'8 3$
'8 3$
$ D
-)#

!!

"
"
"

A equao de uma elipse em coordenadas polares


dada pela seguinte frmula:
r = a.(1-e2)/(1 e.cos)
a o semi-eixo maior;
e a ecentrecidade.
O cometa Halley que nos visitou em 1985/86 movese numa trajectria elptica em rbita do Sol. O semieixo maior (a) igual a 17.9 A.U. (A.U.= 1 unidade
astronmica, aprox. distncia da Terra ao Sol, 149.6
milhes kms).
A ecentricidade da rbita 0.967276.
Escreva um programa em Java que desenhe a rbita
do cometa Halley e a rbita da Terra (neste ltimo
caso, assuma uma rbita circular).

14

import essential.*;
import java.awt.*;
public class halley{
public static void main(String[ ] args){
Graph one = new Graph();
one.setAxes(-5,40,-10,10);
one.setPointShape(new CirclePoint(PointShape.UNFILLED));
one.setDrawingStyle(Graphable.PLOTPOINTS);
double x,y,r,alfa,theta;
double a = 17.9;
double e = 0.967276;

for (int i = 1; i <= 500; i++){


theta = i*0.1;
r = (a*(1-e*e))/(1-e*Math.cos(theta));
x = r*Math.cos(theta);
y = r*Math.sin(theta);
one.addPoint(x,y);
}
one.addPoint(0,0); // sol
for(int i=0; i < 360; i+=10){ // terra
alfa = i;
r= Math.PI;
x = r*Math.cos(alfa);
y = r*Math.sin(alfa);
one.addPoint(x,y);
}

10

1 3 6 10 15 21 28 36 45 55 66 ...

Escreva um programa em Java que calcule


os primeiros 100 nmeros triangulares e os
armazene num vector. Deve tambm
apresent-los no crn.
De seguida escreva mais um pedao de
cdigo que prove a seguinte propriedade:
1+3=4 (22)
3+6=9 (32)
6+10=16 (42)
10+15=25 (52)

1 3 6 10 15 21 28 36 45 55 66 ...

15

1 1 2 3 5 8 13 21 34 55 89 144 233 ...

1=1
1+1=2
1+2=3
2+3=5
3+5=8
5+8=13
8+13=21
13+21=34

Escreva um programa em Java para calcular


os 40 primeiros nmeros da srie de
Bonatchi.
1 1 2 3 5 8 13 21 34 55 89 144 233 ...

1 1 2 3 5 8 13 21 34 55 89 144 233 ...


1+1+3+8+21=34
1+2+5+13+34=55
1+1+3+8+21+55=89
...
Acrescente mais um pedao de cdigo no
seu programa de modo a provar que esta
regra verdadeira.

16

17

Você também pode gostar