Cópia de Atividade - 1

Fazer download em docx, pdf ou txt
Fazer download em docx, pdf ou txt
Você está na página 1de 7

Escola …

Aplicações Informáticas B
12.º Ano
Introdução à Programação
Atividade 1

Tenha em conta as seguintes características do Java:

Tipos de Dados

Recordar as convenções para a criação de identificadores:


Nome de uma classe começa por maiúscula (p.e. Solido)
Nome de um subprograma começa por minúscula (p.e. main())
Nome de uma variável começa por minúscula (p.e. volume)
Nome de uma constante é escrito em maiúsculas (MAX_VEC)

Tipo Contém Valor por defeito Tamanho (bits) Valores Min e Max
boleano Verd. ou falso falso 1 -

char caracter \u0000 (null) 16 \u0000 até \uFFFF

byte Inteiro com sinal 0 8 -128 até 127

short Inteiro com sinal 0 16 -32768 até 32767

int Inteiro com sinal 0 32 -2147483648 até 2147483647


-9223372036854775808
long Inteiro com sinal - 64 até
9223372036854775807
+/-3.40282347E+38
float IEEE754 flt. pt. 0.0 32 até
+/-1.40239846E-45
double IEEE 754 FP 0.0d 64 ≈ ±1.8E+308 a ±5E-324

Saída de Dados

1. Qual, ou quais as diferenças entre os métodos System.out.print(...) e


System.out.println(...) em termos de output? Altere o comando println para print
na sua classe atual e analise o resultado que surge na consola.

package aula1;

public class ApenasEscreve {


public static void main(String[] args) {
System.out.print("Ola Mundo!!!");
System.out.print("Ola Mundo!!!");
System.out.print("Ola Mundo!!!");
System.out.print("Ola Mundo!!!");
}
}

1
2. Vamos ver quais os outputs das seguintes expressões para analisar o carater de
concatenação:

public class Exemplo_saida_de_dados {


public static void main(String[] args){
String outroTexto="Bla bla bla !";
int val = 0 ;
System.out.println("Um texto qualquer");
System.out.println("Outro texto qualquer: "+outroTexto);
System.out.println("Um numero inteiro: "+val);
System.out.println("Um numero inteiro: "+val+" "+outroTexto);

System.out.println("2 + 2");
System.out.println("2 + 2 = " + 4);
System.out.println("2 + 2" + " = " + 4);
System.out.println("2 + 2" + " = " + (2 + 2));
System.out.println("2 + " + 2 + " = " + 4);

}
}

Entrada de Dados

3. Crie uma nova classe LerComBuffer com “main()” e insira o seguinte código -
teremos de solucionar alguns “problemas”:

public static void main(String[] args) throws IOException {

BufferedReader ler = new BufferedReader(new


InputStreamReader(System.in));
String a=null;

System.out.print("Insira um número: ");


a=ler.readLine();

//transforma as strings em inteiros e depois em reais (float)

numero=Integer.parseInt(a);

Vejamos como pode ficar:

import java.io.*;

public class LerComBuffer {

public static void main(String[] args) throws IOException {

BufferedReader ler = new BufferedReader(new


InputStreamReader(System.in));
String a=null;

System.out.print("Insira um número: ");

a=ler.readLine();

//transforma as strings em inteiros e depois em reais (float)

int numero = Integer.parseInt(a);

2
System.out.println(numero + 2);
}

4. Crie uma nova classe LerComScanner com “main()” e insira o seguinte código
- novamente, teremos de solucionar alguns “problemas”:

Scanner scanIn = new Scanner(System.in);


System.out.println("Indique o seu nome:");
String nome = scanIn.nextLine();
System.out.println("Olá " + nome);
scanIn.close();

Vejamos como pode ficar:

import java.util.Scanner;

public class LerComScanner {

public static void main(String[] args) {


Scanner scanIn = new Scanner(System.in);

System.out.println("Indique o seu nome:");


String nome = scanIn.nextLine();

System.out.println("Olá " + nome);


scanIn.close();
}

Variáveis – declaração e inicialização

5. Descubra qual ou quais das seguintes proposições não é uma declaração


válida -- pode sempre recorrer ao método println() para verificar o valor da
variável:
public class Tipos {

public static void main(String[] args) {


int hexVal = 0x1a;
int binVal = 0b11010;
boolean result = true;
char capitalC = 'C';
byte b = 100;
short s = 10000;
int i = 100000;
double d1 = 123.4;
double d2 = 1.234e2; // o mesmo valor de d1, mas em notação
científica
float f1 = 123.4f;
int x;
int x = 10; /* declaração com inicialização */
int x = 20, y, z = 30;
int x, y = 10;
int a = x + y;
char um = '1';
char c = 'A'; /*formato UNICODE, caracteres ASCII
compatíveis*/
char newline = '\n';
boolean fim;

3
boolean fechado = true;
byte b1 = 0x49 ; /* hexadecimal */
long diametro;
long raio = -1.7E+5;
double d;
double small$123 = .0000000123;
double pi = 3.14159273269;
}

Vejamos como pode ficar:

package aula1.g;

public class Tipos {

public static void main(String[] args) {


int hexVal = 0x1a; //inteiro declarado como hexadecimal
int binVal = 0b11010; //inteiro declarado como binário
boolean result = true; //um boleano
char capitalC = 'C'; //um caratere
byte b = 100;
short s = 10000;
int i = 100000;
double d1 = 123.4;
double d2 = 1.234e2; // o mesmo valor de d1, mas em notação científica
float f1 = 123.4f;
int x;
int x2 = 10; /** declaração com inicialização, mas o x já está declarado
na linha 16,
então temos que dar outro nome à variável, por exemplo x2 (outra solução
seria só inicializar
o x sem o declarar, mas vamos optar por dar outro nome) */
int x3 = 20, y, z = 30; /**voltamos a ter problemas porque o x já foi
declarado na linha 16
por isso temos que mudar o nome para x3, para ficarmos com variáveis
diferentes*/
int x4, y2 = 10; /**voltamos a ter o mesmo erro. Seguindo a mesma lógica é
só mudar o nome
para x4, mas continuamos com problemas pois o y já foi declarado na linha
20, então temos que
mudar o nome para y2*/
int a = x2 + y2; /** dá erro porque o x e o y ainda não foram
inicializados: então mudamos
para umas que já tenham sido inicializadas (ou então inicializamos o x e o
y). */
char um = '1';
char c = 'A'; /*formato UNICODE, caracteres ASCII compatíveis*/
char newline = '\n';
boolean fim;
boolean fechado = true;
byte b1 = 0x49 ; /* hexadecimal */
long diametro;
double raio = -1.7E+5; /** temos um long que o eclipse não quer que seja
long... vejamos
as sugestões: ou fazemos "cast" ou mudamos para double. Vamos mudar para
double*/
double d;
double small$123 = .0000000123;
double pi = 3.14159273269;
/**Os pequenos warnings que acorrem no final do programa, deve-se ao facto
de termos declarado
variáveis e não as termos usado*/
}
}

6. E agora, com a utilização dos Literais, com “_” (underscore) que, desde
o Java SE 7, permite facilitar a visualização de conjuntos de algarismos maiores:

4
/**O único objetivo dos "_" é apenas permitir uma melhor visualização do
número */
long telefone = 919_900_900L; //é equivalente a escrever long
telefone = 919900900L
long creditCard = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pii = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;

Conversão entre tipos

Nota: nem todas as transformações são possíveis: é possível converter um valor


para um tipo que ocupe mais espaço. Mas o inverso não é verdadeiro, pois a operação
resulta em perda de informação
Por exemplo, posso converter um byte (-128 até 127) para um short (-32768 até
32767), mas não posso fazer o contrário pois pode haver perda de informação.

7. Assumindo o seguinte…

int var_int = 10; // resultado_int;


double var_double = 5.2; // resultado_double;

Não vai dar erro.


Qual das seguintes expressões é a correta?
resultado_double = var_int + var_double;
resultado_int = var_int + var_double;

A segunda dá erro, não ser que… Se aplique o operador de coerção (cast).

Aplique o operador de coerção (cast) à expressão inválida e valide/execute:


resultado_int = (?) (var_int + var_double);
NOTA: o “?” anterior equivale a int ou a double e foi aplicado para não revelar a
solução do exercício anterior.

Vejamos como pode ficar:

double resultado_double = var_int + var_double;


System.out.println("O resultado do double é: " +
resultado_double); //só para ver o resultado na consola…
int resultado_int = (int) (var_int + var_double); /** fazer um
cast ou seja, neste caso estamos
a dizer que só queremos a parte inteira do resultado */
System.out.println("O resultado do int é: " +resultado_int);

5
Constantes

O nome de uma constante é escrito totalmente em maiúsculas (MAX_VEC)


● Semelhante à declaração de variáveis
● Acrescida do atributo final
● Obrigatório indicar o valor da constante

8. Vamos declarar e inicializar as seguintes variáveis e ver o output na


consola:

final double PI = 3.14159273269;


final double ME = 9.109389E-31; //massa eletrão repouso em
kg

Vejamos como pode ficar:

final double PI = 3.14159273269;


final double ME = 9.109389E-31; //massa eletrão repouso em kg
System.out.println("O valor de PI é: " + PI + "e o valor de ME é: " + ME);

9. Crie outra constante “HORAS_DIA” com o valor inteiro “24”. Depois


dessa declaração, tente alterar o valor para “12”, com a instrução HORAS_DIA
= 12; Conseguiu?
10. Crie outra constante “DIAS_SEMANA” com o nº de dias de uma
semana. Mostre, através de um println() o nº total de horas de uma semana
recorrendo apenas a constantes declaradas e ao operador “*”.

Vejamos como pode ficar:

final int HORAS_DIA = 24;

// HORAS_DIA = 12; - atribuição ilegal pois já definimos em cima que é uma


constante

final int HORAS_SEMANA = 7;


System.out.println("Uma semana tem " + HORAS_DIA * HORAS_SEMANA + "
horas.");

6
Para cada um dos problemas que se seguem, crie um programa em JAVA que o possa
resolver:

1) Pedir um número ao utilizador, ler esse número e que indicar qual o seguinte.
2) Ler um número X e que calcular
X2 + 2xX + 3
O resultado deve ser apresentado no ecrã da seguinte forma:
“O número lido foi o # e o resultado é & “
sendo que # é o valor lido e & é o resultado da expressão.
3) Ler dois números e calcular a respetiva soma, diferença (o primeiro menos o
segundo), produto e quociente (o primeiro a dividir pelo segundo).
4) Ler dois números e calcular a sua média.
5) Calcular a raiz quadrada de um número introduzido pelo utilizador.
6) Calcular o quadrado de um número introduzido pelo utilizador.
7) Calcular a hipotenusa de um triângulo retângulo, cujos catetos são dados pelo
utilizador.
8) Depois de introduzido um número pelo utilizador, calcular o seu arredondamento
e apresentar o resultado no ecrã.

Você também pode gostar