Você está na página 1de 18

Caderno de Exercı́cios

Processamento da Informação – Edição Java

Jesús P. Mena-Chalco

Centro de Matemática, Computação e Cognição - CMCC


Universidade Federal do ABC

Alguns exercı́cios podem conter erros.


Caso os identifique, por favor, envie a sugestão de melhora ou correções ao email
jesus.mena@ufabc.edu.br.

Atualizado em 4 de março de 2015

1
Caderno de exercı́cios – Processamento da Informação – Edição Java

I Exemplos básicos
1. Olá Mundo!
Nome do arquivo de código fonte: OlaMundo.java
/* Este eh um comentario */
class OlaMundo {
public static void main(String[] args) {
System.out.println("Ola Mundo!");
}
}

2. Soma de dois números inteiros.


Nome do arquivo de código fonte: Soma0.java
class Soma0 {
public static void main(String[] args) {
int a, b, soma;

a = 10;
b = 17;

soma = a+b;

System.out.println(soma);
}
}

3. Soma de dois números inteiros dados pelo usuário.


Nome do arquivo de código fonte: Soma1.java
import java.util.*; // utilizado para a leitura de dados.

class Soma1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a, b, soma;

a = in.nextInt();
b = in.nextInt();

soma = a+b;

System.out.println(soma);
}
}

4. Soma de dois números inteiros dados pelo usuário (usando uma função denominada ‘somatoria’).
Nome do arquivo de código fonte: Soma2.java

2
Caderno de exercı́cios – Processamento da Informação – Edição Java

import java.util.*;

class Soma2 {
/*Exemplo de uma nova funcao/procedimento*/
static int somatoria(int a, int b) {
return a + b;
}

public static void main(String[] args) {


Scanner in = new Scanner(System.in);
int a, b, soma;

a = in.nextInt();
b = in.nextInt();

soma = somatoria(a, b);

System.out.println(soma);
}
}

5. Soma de três números inteiros dados pelo usuário (usando uma função denominada ‘somatoria’).
Nome do arquivo de código fonte: Soma3.java
import java.util.*;

class Soma3 {
static int somatoria(int a, int b, int c) {
return a + b + c;
}

public static void main(String[] args) {


Scanner in = new Scanner(System.in);
int a, b, c, soma;

a = in.nextInt();
b = in.nextInt();
c = in.nextInt();

soma = somatoria(a, b, c);

System.out.println(soma);
}
}

3
Caderno de exercı́cios – Processamento da Informação – Edição Java

II Módulos, Funções ou Métodos (primeira parte)


1. Exemplo de função/método. Nome do arquivo de código fonte: Funcao01.java
public class Funcao01
{
static int caixaPreta(int a, int b) {
return a*a + b;
}

public static void main(String []args) {

int resposta;

resposta = caixaPreta(3, 5);

System.out.println(resposta);
}
}

Instrução para compilar o código fonte:


javac Funcao01.java
O compilador gerará o arquivo Funcao01.class
Instrução para executar o programa:
java Funcao01
14

2. Exemplo de função/método que calcula a operação x = a2 + 2ab + b2 . Nome do arquivo de código


fonte: Funcao02.java
public class Funcao02
{
static double calcular(double a, double b) {
double x;

x = a*a + 2*a*b + b*b;

return x;
}

public static void main(String []args) {

double resposta;

resposta = calcular(2, 3);

System.out.println(resposta);
}
}

Instrução para compilar o código fonte:


javac Funcao02.java
O compilador gerará o arquivo Funcao02.class
Instrução para executar o programa:
java Funcao02
25.0

3. Exemplo de função/método que calcula a operação x = a2 + 2ab + b2 . Aqui é utilizada a biblioteca


Java.Math. Nome do arquivo de código fonte: Funcao03.java

4
Caderno de exercı́cios – Processamento da Informação – Edição Java

import java.math.*;

public class Funcao03


{
static double calcular(double a, double b) {
double x;

x = Math.pow(a,2) + 2*a*b + Math.pow(b,2);

return x;
}

public static void main(String []args) {

double resposta;

resposta = calcular(2, 3);

System.out.println(resposta);
}
}

Instrução para compilar o código fonte:


javac Funcao03.java
O compilador gerará o arquivo Funcao03.class
Instrução para executar o programa:
java Funcao03
25.0

4. Exemplo de funções matemáticas.


import java.math.*;

public class Funcao04


{
static void calcular(double a, double b) {

System.out.println( Math.floor(a/b) );
System.out.println( Math.ceil(a/b) );

System.out.println( Math.min(a,b) );
System.out.println( Math.max(a,b) );

System.out.println( Math.pow(a,b) );

System.out.println( Math.sqrt(a+b) );

System.out.println( Math.abs(-a-b) );
}

public static void main(String []args) {


calcular(2, 3);
}
}

Resultado:

5
Caderno de exercı́cios – Processamento da Informação – Edição Java

0.0
1.0
2.0
3.0
8.0
2.23606797749979
5.0

5. Exemplo de função, considerando tipo de dado boolean.


public class Funcao05
{
static boolean nao(boolean p) {
return !p;
}

public static void main(String []args) {


boolean var;

var = true;
System.out.println( var );
System.out.println( nao(var) );
System.out.println( nao(nao(var)) );

}
}

Resultado:
true
false
true

6. Exemplo de função.
public class Funcao06
{
static void algumasOperacoes(int a, int b, int c) {
int t;

imprimeValores(a, b, c);

t = a;
a = b;
b = c;
c = t;

imprimeValores(a, b, c);
}

static void imprimeValores(int a, int b, int c) {


System.out.println("A="+a+", B="+b+", C="+c);
}

public static void main(String []args) {


algumasOperacoes(10, 20, 30);
}
}

Resultado:
A=10, B=20, C=30
A=20, B=30, C=10

6
Caderno de exercı́cios – Processamento da Informação – Edição Java

7. Os números de Fibonacci estão relacionados com a razão aurea e o i-ésimo número pode ser apro-
ximado pela seguinte equação (formula explı́cita):
$ √ √ %
( 1+2 5 )i − ( 1−2 5 )i
Fi = √
5

Crie uma função/método em Java que receba um número inteiro i, e devolva Fi .


import java.math.*;

public class Fibonacci


{
static double iessimoTermo(int i) {

double var1, var2, var3;

var1 = Math.pow( (1+Math.sqrt(5))/2, i);


var2 = Math.pow( (1-Math.sqrt(5))/2, i);
var3 = Math.sqrt(5);

return Math.floor((var1-var2)/var3);
}

public static void main(String []args) {

System.out.println( iessimoTermo(10) );
System.out.println( iessimoTermo(11) );
System.out.println( iessimoTermo(12) );
}
}

Resultado:
55.0
89.0
144.0

8. Crie funções, em Java, que calculem o volume e a área de um cilindro com raio r e altura h.
import java.math.*;

public class Cilindro


{
static double calcularVolume(double r, double h) {
return Math.PI * r*r * h;
}

static double calcularArea(double r, double h) {


return 2*Math.PI*r*(r+h);
}

public static void main(String []args) {


double r, h;

r = 2;
h = 10;

System.out.println( calcularVolume(r, h) );
System.out.println( calcularArea(r, h) );
}
}

Resultado:

7
Caderno de exercı́cios – Processamento da Informação – Edição Java

125.66370614359172
150.79644737231007

8
Caderno de exercı́cios – Processamento da Informação – Edição Java

III Estruturas e seleção simples e composta


1. Exemplo 01.
public class Operadores
{
static void operacoes(int p, int q) {
System.out.println("\nOperacoes entre os numeros "+p+" e "+q+":");
System.out.println(p/q);
System.out.println((double)p/q);
System.out.println(p%q);
}

public static void main(String []rgs) {


operacoes(7, 3);
operacoes(1, 100);
}
}

Resultado:
Operacoes entre os numeros 7 e 3:
2
2.3333333333333335
1

Operacoes entre os numeros 1 e 100:


0
0.01
1

2. Atividade01.

public class Atividade01


{
static boolean questao00() {
return 2>4;
}

static int questao01(char c) {


int t = 4;
if (c==’A’)
t = t-0;
if (c==’B’)
t = t-1;
if (c==’C’)
t = t-2;
if (c==’D’)
t = t-3;
else
t = t-4;
return t;
}

9
Caderno de exercı́cios – Processamento da Informação – Edição Java

static int questao02(char c) {


int t;
if (c==’A’)
t = 4;
if (c==’B’)
t = 3;
if (c==’C’)
t = 2;
if (c==’D’)
t = 1;
else
t = 0;
return t;
}
static String questao03(double t, int f) {
String var="reprovado";

if (t>=5 & t<=10 & !(f>=4))


var = "aprovado";
return var;
}
static void questao04(int w, int q) {
if (w>q) {
questao04(q, w);
}
else {
System.out.println(w+"-"+q);
}
}
static int questao05(int n) {
if (n==0) {
return 1;
}
else {
return questao05(n-1)*n;
}
}
static int questao06(int a, int b) {
if (a<b)
return b;
else
if (a>b)
return a;
return -1;
}

10
Caderno de exercı́cios – Processamento da Informação – Edição Java

public static void main(String []rgs) {


/* Questao 00 */
System.out.println( questao00() );
System.out.println( questao00() );
System.out.println( questao00() );

/* Questao 01 */
System.out.println( questao01(’A’) );
System.out.println( questao01(’B’) );
System.out.println( questao01(’F’) );

/* Questao 02 */
System.out.println( questao02(’A’) );
System.out.println( questao02(’C’) );
System.out.println( questao02(’D’) );

/* Questao 03 */
System.out.println( questao03(2, 0) );
System.out.println( questao03(6, 2) );
System.out.println( questao03(9, 6) );

/* Questao 04 */
questao04(100, 200);
questao04(200, 100);

/* Questao 05 */
System.out.println( questao05(2) );
System.out.println( questao05(3) );
System.out.println( questao05(4) );

/* Questao 06 */
System.out.println( questao06(2, 4) );
System.out.println( questao06(4, 2) );
System.out.println( questao06(6, 6) );
}
}

Resultado:

11
Caderno de exercı́cios – Processamento da Informação – Edição Java

false
false
false

0
-1
0

0
0
1

reprovado
aprovado
reprovado

100-200
100-200

2
6
24

4
4
-1

12
Caderno de exercı́cios – Processamento da Informação – Edição Java

IV Estruturas de repetição (while)


1. Atividade02.

public class Atividade02


{
static int q0(int a, int b) {
while (a<b) {
a = a+1;
}
return a;
}
static int q1(int a, int b) {
a = b;
while (a<b | a%2==0) {
a = a+1;
}
return a;
}
static int q2(int a, int b) {
a = b;
while (a<b & a>b) {
a = a+1;
}
return a;
}
static int q3(int n) {
int x = 1;

while (n>1) {
x = x*n;
n = n-1;
}
return x;
}
static int q4(int n) {
int soma = 0;
int i;

while (n>=1) {
i = n;
while (i>=1) {
soma = soma+n;
i = i-1;
}
n = n-1;
}
return soma;
}

13
Caderno de exercı́cios – Processamento da Informação – Edição Java

public static void main(String []args) {


/*Questao 0*/
System.out.println( q0(1,10) );
System.out.println( q0(10,1) );

/*Questao 1*/
System.out.println( q1(1,10) );
System.out.println( q1(10,1) );

/*Questao 2*/
System.out.println( q2(1,10) );
System.out.println( q2(10,1) );

/*Questao 3*/
System.out.println( q3(0) );
System.out.println( q3(6) );

/*Questao 4*/
System.out.println( q4(3) );
System.out.println( q4(5) );
}
}

Resultado:
10
10

11
1

10
1

1
720

14
55

14
Caderno de exercı́cios – Processamento da Informação – Edição Java

V Estruturas de repetição (for)


1. Atividade03.

public class Atividade03


{
static int q1 (int n) {
int soma=0;

for (int x=1; x<=n; x=x+1) {


x = x+1;
soma = soma+x;
}

return soma;
}
static int q2 (int n) {
int soma=0;

for (int x=1; x<=n; x=x+1) {


soma = soma+x;
break;
}

return soma;
}
static int q3 (int n) {
int soma=0;

for (int x=1; x<=n; x=x+1) {


soma = soma+q2(x);
}

return soma;
}
static int q4 (int n) {
int soma=0;

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


for (int j=1; j<=n; j=j+1) {
for (int k=1; k<=n; k=k+1) {
soma = soma+1;
}
}
}

return soma;
}

15
Caderno de exercı́cios – Processamento da Informação – Edição Java

static int q5 (int n) {


int soma=0;

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


for (int j=i; j<=n; j=j+1) {
soma = soma+1;
}
}

return soma;
}
public static void main(String []args) {
/* Questao 1 */
System.out.println( q1(0) );
System.out.println( q1(10) );

/* Questao 2 */
System.out.println( q2(2) );
System.out.println( q2(4) );

/* Questao 3 */
System.out.println( q3(2) );
System.out.println( q3(4) );

/* Questao 4 */
System.out.println( q4(0) );
System.out.println( q4(3) );

/* Questao 5 */
System.out.println( q5(5) );
System.out.println( q5(6) );
}
}

Resultado:
0
30

1
1

2
4

0
27

15
21

16
Caderno de exercı́cios – Processamento da Informação – Edição Java

VI Vetores
1. Atividade04.

public class Atividade04 {

static void q1 (int v[]) {


int i, soma=0;

for (i=v.length-1; i>=0; i=i-1) {


soma = soma+v[i];
}
System.out.println( (double)soma/v.length );
}
static void q2 (int v[]) {
int i, cont=0;

for (i=0; i<v.length; i=i+1) {


if (v[i]<=v[i]-v[i]) {
cont = cont+1;
}
}
System.out.println(cont);
}
static void q3 (int v[]) {
int i;
int m1=v[0];
int m2=v[0];

for (i=v.length-1; i>=0; i=i-1) {


if (m1>v[i]) {
m1 = v[i];
}
if (m2<v[i]) {
m2 = v[i];
}
}
System.out.println( m1+" "+m2 );
}
static void q4 (int v[]) {
int i, temp;
int soma=0;
int n = v.length;

for (i=0; i<n/2; i=i+1) {


temp = v[i];
v[i] = v[n-i-1];
v[n-i-1] = temp;
}

for (i=0; i<n; i=i+1) {


System.out.print(v[i]+" ");
}
System.out.print("\n");
}

17
Caderno de exercı́cios – Processamento da Informação – Edição Java

public static void main(String []args) {


int T[ ] = {20, 100, 0, 30, -60, 10, 0, 0};

/* Questao 1*/
q1(T) ;

/* Questao 2*/
q2(T) ;

/* Questao 3*/
q3(T) ;

/* Questao 4*/
q4(T) ;
}
}

Resultado:
12.5

-60 100

0 0 10 -60 30 0 100 20

18