Você está na página 1de 60

Conceitos bsicos de

programao

Programao em Java
Prof. Maurcio Braga

Algoritmos

Estruturas para construo de software

Tipos de Dados;
Variveis;
Constantes;
Operadores aritmticos, relacionais e lgicos;
Atribuio;
Comandos de condio ou seleo;
Comandos de repetio.

2/60

Tipos de dados

Dado pode ser definido como informao em estado


primitivo cujo processamento pode gerar informao til.

Devido a natureza do que vai ser armazenado em


memria, existem tipos de dados diferentes.

Tipo de dado representa o conjunto de valores possveis


para um dado.

3/60

Tipos de dados

Iremos utilizar apenas cinco tipos de dados durante a


criao de algoritmos:

Inteiro Para representar informaes que no possuem parte


fracionria. Ex: 1, 2, 40000, etc.;
Real Para representar informaes que podem possuir parte
fracionria. Ex: 3.1415;
Lgico Para representar um estado ou situao que pode ser
apenas verdadeira (true) ou falsa (false);
Caractere Utilizado para armazenar um nico caractere na
memria. Ex: A;
Cadeia de caracteres Utilizado para armazenar um seqncia
de caracteres na memria. Ex: Computador.

4/60

Exerccios

Identifique o tipo de dado para a representao das


informaes abaixo:

Quantidade de brinquedos de uma criana;


Altura de uma pessoa;
Aviso em uma placa;
Sexo de uma pessoa;
Salrio de um funcionrio;
CEP de uma carta;
Estado de um computador quanto ao seu funcionamento;
Nmero de cheques emitidos por um cliente em um ms.

5/60

Tipos de dados em Java

Java possui oito tipos primitivos de dados:

Lgico: boolean
Texto (1 caractere): char
Inteiros: byte, short, int e long
Reais: double e float

Todos os tipos numricos possuem sinal.

String: representa uma cadeia de caracteres.

6/60

Operadores

Operadores aritmticos
Utilizados

para obteno de dados numricos;


Consistem de:

Adio (+);
Subtrao (-);
Multiplicao (*);
Diviso real entre dois nmeros (/);
Diviso inteira entre dois nmeros inteiros (div);
Resto da diviso inteira entre dois nmeros inteiros (mod).

7/60

Operadores em Java

Operadores aritmticos
Consistem de:
Adio (+);
Subtrao (-);
Multiplicao (*);
Diviso real entre dois nmeros (/);
Diviso inteira entre dois nmeros inteiros (/);
Resto da diviso inteira entre dois nmeros inteiros (%).

8/60

Operadores aritmticos

Precedncia de operadores aritmticos


1.
2.
3.
4.

( ) Parnteses;
Potenciao, radiciao;
Multiplicao, divises e resto da diviso;
Adio ou subtrao.

Ex:

2 * (2 4) + 3* 4 = ?

9/60

Montagem de expresses

Exemplos

3+4*9
3 + 36
39
(3 + 4) * 9
7*9
63
8 pot(4*2,2) + 5
8 pot(8,2) +5
8 64 + 5
-56 + 5
-51

10/60

Exerccio

( 30 % 4 * pot(3,3) ) * -1

11/60

Operadores

Operadores relacionais

Utilizados na comparao de literais ou nmeros;


Retornam valores lgicos;
Consistem de:

Igual a (==);
Diferente de (!=);
Maior que (>);
Menor que (<);
Maior ou igual a (>=);
Menor ou igual a (<=).

12/60

Operadores

Operadores lgicos

Utilizados para combinar resultados de expresses lgicas;


Consistem de:

E (AND);
OU (OR);
NO (NOT).

13/60

Tabela verdade das operaes lgicas

OU

xEy

Verdadeiro

Falso

Falso

Verdadeiro

Verdadeiro

Verdadeiro

Falso

Verdadeiro

Falso

Falso

Falso

Falso

x OU y

Verdadeiro

Falso

Verdadeiro

Verdadeiro

Verdadeiro

Verdadeiro

Falso

Verdadeiro

Verdadeiro

Falso

Falso

Falso

14/60

Tabela verdade das operaes lgicas

NO

NO x

Verdadeiro

Falso

Falso

Verdadeiro

15/60

Operadores lgicos

Precedncia de operadores lgicos


1.
2.

No;
E, OU.

16/60

Operadores lgicos

Exemplos:
F

(3 == 5) E (4 > 2) = Falso
F

(2 > 4) OU (2 < 4) = Verdadeiro


F

15 % 4 < 19 % 6 = Falso

17/60

Operadores Lgicos em Java

Operadores Booleanos:
! - No

&-E

| - Ou

^ - Ou Exclusivo

Operadores Booleanos com Curto-Circuito


|| - Ou

&& - E

18/60

Montagem de expresses

Para realizao de determinados clculos, pode ser


necessrio fazer combinaes de operadores, bom
como a adio de parnteses.

Mas que operador ser calculado primeiro?

O que tiver maior prioridade.

19/60

Montagem de expresses

Tabela de prioridades de operadores:


1 Parnteses mais internos
2 Funes
3 Operadores aritmticos
1 Multiplicativos (*, /, %);
2 Aditivos (+, -)

4 Operadores relacionais
5 Operadores lgicos
1 NO
2 E
3 OU

20/60

Exerccios

pot(3,2)/3 < 2 e 5==5

NO ( 3 + 5 != 5 / 2 - 1 )

Falso ou 20 / (18/3) != (21/3) / 2

21/60

Constantes e Variveis

Constante

Possui valor fixo durante execuo do programa;


Pode ser numrica, lgica ou literal.

Varivel

Um dos conceitos mais importantes na construo de algoritmos.


Representa um espao de memria reservado para armazenar
determinado tipo de dado;
Deve receber um nome para referenciao e modificao;
Deve possuir um tipo associado;
Quando um algoritmo termina sua execuo, todas as variveis so
apagadas da memria;
S podem armazenar um dado por vez.

22/60

Constantes e Variveis

Nomes de Variveis

O nome de uma varivel deve ser nico dentro de um mesmo


algoritmo.
Deve comear por uma letra, podendo-se incluir aps esta letra
outras letras, dgitos ou o sinal de underline ( _ ). Este tipo de
nome conhecido como identificador.
O identificador no pode possuir acentos, nem ser igual ao
nome de um comando.

23/60

Identificadores em Java

Devem comear com uma letra, um cifro ($)


ou um underscore (_)

Exemplos:
Ok!
Foobar
Ok!
2. BIGInterface
3. $incomeAfterExpenses Ok!
4. 3_node5
Errado!
5. !theCase
Errado!
1.

24/60

Constantes e Variveis

Ex:
P1 + P2 + P3 + P4
media

4
Varivel
Constante

25/60

Constantes e Variveis

Declarao de variveis

Toda varivel utilizada em um algoritmo deve ser declarada.


A sintaxe utilizada em pseudocdigo :

<tipo>:<variavel1>, <variavel2>, ...;

26/60

Sintaxe dos algoritmos

Os algoritmos em portugus estruturado devem possuir


a seguinte estrutura:
Declarao de variveis

Variveis
// Declarao de variveis
<tipo1> : <varivel1>;
<tipo2> : <varivel2>;
<tipo3> : <varivel2>;
// Corpo do algoritmo
Incio
<comando1>;
<comando2>;
<comando3>;
Fim.

Comentrio

Parte principal
do algoritmo

Separador de comandos
Indentao

// Mdulos
Mdulo <nomemdulo>;
[[
...
]]

Mdulos dos algoritmos

27/60

Atribuio

O que atribuio?

Atribui ou associa um valor a uma varivel ou constante

Ex:

nome = Jos;
media = (nota1 + nota2) / 2;

28/60

Funes

Atuam como um pequeno programa que, tendo valores


de entrada, geram (retornam) um resultado.

<nomefuno> (<parmetro1>, <parmetro2>, ...)

29/60

Funes Matemticas disponveis no pacote


Java.Math
Funo

Utilidade

Tipo do resultado

log(double x)

Retorna o valor do logaritmo neperiano de x

Real

exp(double x)

Retorna o valor de ex

Real

pow(double x,
double y)

Retorna o valor de x elevado a y.

Real

round(float x)

Arredonda x para o inteiro mais prximo

Inteiro

sqrt(double x)

Retorna a raiz quadrada de x

Real

sin(double x)

Retorna o seno de x

Real

cos(double x)

Retorna o co-seno de x

Real

atan(double x)

Retorna o arco, em radianos, cuja tangente x

Real

abs(int x)

Retorna o mdulo de x (|x|)

Inteiro

30/60

Comando de entrada de dados

Normalmente precisamos de dados de entrada para


serem processados pelos algoritmos.
Desta forma, precisamos de um comando para solicitar
e obter dados fornecidos pelo usurio.
leia (varivel1);

Quando um computador encontra um comando de


entrada de dados, ele suspende a execuo do
programa at que os dados sejam fornecidos.

31/60

Comando de entrada de dados em


Java

Para fazer a leitura de dados do teclado em


programas Java, utilizaremos o objeto Scanner:
Scanner s = new Scanner(System.in);
int numero = s.nextInt();

O objeto Scanner pode ser usado com variveis


numricas, lgicas e do tipo texto.

32/60

Comando de sada de dados

Da mesma forma que precisamos receber dados


externos, precisamos fornecer dados e instrues para
os usurios.
Desta forma, precisamos de um comando para retornar
dados e/ou mensagens em um dispositivo de sada.
Escreva <var ou expresso ou mensagem>,...;

Ex:

escreva O saldo atual , saldo;


escreva soma;
33/60

Comando de sada de dados em Java

Para escrevermos na tela, usaremos a funo println,


disponvel no Java.

Para concatenar uma varivel com um texto, usamos o


sinal +.
System.out.println(var ou expresso ou mensagem +...);

Ex:

System.out.println(O saldo atual + saldo);


System.out.println(soma);
34/60

Exemplo de construo de algoritmo

Exemplo 1

Exibir a soma de dois nmeros inteiros fornecidos pelo usurio.

Soluo

Objetivo construir um algoritmo que ensine o computador a


executar uma soluo para o problema proposto.
Sada de dados
O que o algoritmo deve fazer?

Calcular a soma de dois nmeros e exibi-la ao usurio.

O valor da soma dever ser armazenado em memria antes de


ser exibido

necessrio ento a criao de uma varivel soma


necessrio que ao trmino do algoritmo a varivel soma seja
exibida para o usurio
escreva soma;
35/60

Exemplo de construo de algoritmo

Soluo (cont.)

O enunciado afirma que os valores a serem somados devem ser


informados pelo usurio

O algoritmo possui dados de entrada, e estes dados de entrada


devero ser armazenados em memria. necessria a criao de
duas variveis num1 e num2 para armazenar os dados fornecidos
leia num1;
pelo usurio.
leia num2;
necessrio a obteno destes dados do usurio atravs do
comando de entrada de dados.

O processamento do algoritmo deve possuir apenas a operao


soma = num1 + num2;
de soma.

Utilizaremos o operador de adio (+) para ensinar ao computador


que operao, e com quais valores, deve ser realizada.
O resultado da soma dever ser armazenado em memria pela
varivel soma, logo precisaremos utilizar o comando de atribuio.
36/60

Exemplo de construo de algoritmo

Exemplo 1

Exibir a soma de dois nmeros inteiros fornecidos pelo usurio.

Soluo

Variveis

inteiro: num1, num2, soma;


Incio
leia(num1);
leia(num2);
soma = num1 + num2;
escreva(soma);
Fim
37/60

Exemplo Java

Escrever o programa Al mundo! em Java.

38/60

Algoritmo Al mundo!

Soluo
Variveis
// No tem variveis
Incio
escreva(Alo mundo!);
Fim

39/60

Programa Al mundo! em Java


public static void main(String[] args) {
System.out.println("Al mundo!);
}

40/60

Exemplo

Implementar em Java um programa que solicite


duas notas de um aluno e calcule a sua mdia.

41/60

Algoritmo do programa mdia:


Incio
// declarao de variveis
real: nota1, nota2, media;
// entrada de dados
leia(nota1);
leia(nota2);
// processamento (clculo da mdia)
media = (nota1 + nota2) / 2;

// sada de dados
escreva(media);
Fim
42/60

Programa mdia em Java


public static void main(String[] args) {
// Variveis: nota1, nota2 e mdia do aluno
double nota1 = 0, nota2 = 0, media = 0;
System.out.println("Entre a primeira e a segunda nota do aluno:");
// entrada de dados
Scanner s = new Scanner (System.in);
nota1 = s.nextDouble();
nota2 = s.nextDouble();
// clculo da mdia
media = (nota1 + nota2)/2;
System.out.println("A mdia : "+media);
}
43/60

Exerccio

Implementar em Java um programa que, a partir do


valor em Celsius digitado pelo usurio, calcula o valor
da temperatura em Fahrenheit.

Frmula converso F C:

C ( F 32) * 5 / 9

44/60

Programa temperatura em Java


public static void main(String[] args) {
// Variveis: temperaturaCelsius e temperaturaFahrenheit
double temperaturaCelsius = 0, temperaturaFahrenheit = 0;
System.out.println("Entre a temperatura em Celsius:");
// entrada de dados
Scanner s = new Scanner (System.in);
temperaturaCelsius = s.nextDouble();
// clculo da temperatura em Fahrenheit
temperaturaFahrenheit = (9*temperaturaCelsius/5)+32;
System.out.println("A temperatura : "+ temperaturaFahrenheit);
}
45/60

Strings

Implementam o tipo cadeia de caracteres em Java;

Em Java, Strings so objetos que disponibilizam um


conjunto de funes que podem ser usadas pelo
usurio.

Pode-se concatenar uma String com uma outra varivel


ou expresso com o sinal +.

46/60

Strings

Exemplos:
String

s1 = Exemplo de uma string;


int x = 10;
String s2 = Idade de ricardo = + x;
int y = 5;
String s3 = Respostas: x = + x + e y = + y;
System.out.println(s3);

47/60

Igualdade de Strings

Strings no devem ser comparadas com ==, e sim com


o mtodo equals;

Comparao diferencia letras maisculas e minsculas;

Caso a comparao no deva levar em conta


maisculas e minsculas, deve-se usar o mtodo
equalsIgnoreCase;

48/60

Igualdade de Strings

Ex:

String S1 = Banana;
String S2 = banana;
System.out.println("mtodo equals = " + s1.equals(s2));
System.out.println("mtodo equalsIgnoreCase = " +
s1.equalsIgnoreCase(s2));

49/60

Manipulao de Strings

Algumas funes teis para manipulao de


Strings:
length() Retorna o comprimento da string;
int indexOf(String s) Retorna a posio da primeira
ocorrncia da substring s na String;
char charAt(int ndice) Retorna o caractere na
posio apontada por ndice (o primeiro caractere
est na posio 0).
int

50/60

Manipulao de Strings

Ex:

String s1 = Banana;
int indice = s1.indexOf("na");
System.out.println(" Posicao da substring 'na' em s1 : " +
indice);
char letra = s1.charAt(5);
System.out.println(" A 6. letra em S1 : " + letra);

51/60

Exerccio

Ler o nome e a qualidade de uma pessoa, e


exibir a mensagem <Nome> uma pessoa
que tem <qualidade>.

52/60

Exerccio

Soluo

Exemplo simples de composio de frases em


algoritmos.
Para as entradas Maria e coragem, a sada seria
Maria uma pessoa de coragem.
Este algoritmo no necessita de clculos, apenas
leitura dos dados e exibio de composio entre
variveis e mensagens.

53/60

Soluo

O algoritmo fica assim...

Variveis

nome, qualidade : cadeia;


Incio
ler nome;
ler qualidade;
escrever nome + uma pessoa que tem + qualidade;
Fim

54/60

Programa mensagem em Java


public static void main(String[] args) {
// declarao de variveis

String nome=null, qualidade=null;


System.out.println("Entre o nome:");
Scanner s = new Scanner (System.in);
nome = s.next();
System.out.println("Entre a qualidade:");
qualidade = s.next();
System.out.println(nome+ " uma pessoa que tem "+qualidade);
}
55/60

Exerccio

Faa um programa para ler o salrio de um funcionrio e imprimi-lo com um


aumento de 15%.

56/60

Programa salrio em Java


public static void main(String[] args) {
// declarao de variveis
double salario_antigo=0, salario_novo=0;
System.out.println("Entre o valor do salrio do funcionrio:");
Scanner s = new Scanner (System.in);
salario_antigo= s.nextDouble();
salario_novo = salario_antigo*1.15;
System.out.println("O valor do salrio com aumento de 15% R$ " +
salario_novo + " reais.);

57/60

Funes matemticas em Java

Disponveis na classe Math;

Para chamar uma funo matemtica, basta inserirmos


em algum ponto do programa Math + o nome da
mesma, junto com a lista de parmetros (se houver) que
a mesma recebe.

Math.<nome_funo>(parametro1, parametro2);

Para saber quais funes esto disponveis, deve-se


consultar a documentao.
58/60

Funes matemticas com Java


public static void main(String[] args) {
double a=0, b=0;
System.out.println("Entre o valor de a:");
Scanner s = new Scanner (System.in);
a= s.nextDouble();
System.out.println("Entre o valor de b:");
b= s.nextDouble();
System.out.println(a+" elevado ao "+b+" igual a " +
Math.pow(a,b));
System.out.println("a raiz quadrada de "+a+" igual a " +
Math.sqrt(a));
System.out.println("o maior entre "+a+" e "+b+" " +
Math.max(a,b));
System.out.println("o menor entre "+a+" e "+b+" " +
Math.min(a,b));
System.out.println("o log de "+a+" " + Math.log10(a));
System.out.println("o valor de PI "+Math.PI);
}

59/60

Conceitos bsicos de
programao

Programao em Java
Prof. Maurcio Braga