Upload
jose-flavio-goncalo
View
218
Download
0
Embed Size (px)
Citation preview
Conceitos bsicos de
programao
Programao em Java
Prof. Maurcio Braga
2/60
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.
3/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.
4/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.
5/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.
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
7/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).
8/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 (%).
9/60
Operadores aritmticos
Precedncia de operadores aritmticos
1. ( ) Parnteses;
2. Potenciao, radiciao;
3. Multiplicao, divises e resto da diviso;
4. Adio ou subtrao.
Ex:
2 * (2 4) + 3* 4 = ?
10/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
11/60
Exerccio
( 30 % 4 * pot(3,3) ) * -1
12/60
Operadores
Operadores relacionais Utilizados na comparao de literais ou nmeros;
Retornam valores lgicos;
Consistem de:
Igual a (==);
Diferente de (!=);
Maior que (>);
Menor que (=);
Menor ou igual a (
13/60
Operadores
Operadores lgicos
Utilizados para combinar resultados de expresses lgicas;
Consistem de:
E (AND);
OU (OR);
NO (NOT).
14/60
Tabela verdade das operaes lgicas
E
OU
x y x E y
Verdadeiro Falso Falso
Verdadeiro Verdadeiro Verdadeiro
Falso Verdadeiro Falso
Falso Falso Falso
x y x OU y
Verdadeiro Falso Verdadeiro
Verdadeiro Verdadeiro Verdadeiro
Falso Verdadeiro Verdadeiro
Falso Falso Falso
15/60
Tabela verdade das operaes lgicas
NO
x NO x
Verdadeiro Falso
Falso Verdadeiro
16/60
Operadores lgicos
Precedncia de operadores lgicos
1. No;
2. E, OU.
17/60
Operadores lgicos
Exemplos:
(3 == 5) E (4 > 2) =
(2 > 4) OU (2 < 4) =
15 % 4 < 19 % 6 =
Falso
Verdadeiro
Falso
F V
F V
F
Operadores Lgicos em Java
Operadores Booleanos: ! - No & - E
| - Ou ^ - Ou Exclusivo
Operadores Booleanos com Curto-Circuito || - Ou && - E
18/60
19/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.
20/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
21/60
Exerccios
pot(3,2)/3 < 2 e 5==5
NO ( 3 + 5 != 5 / 2 - 1 )
Falso ou 20 / (18/3) != (21/3) / 2
22/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.
23/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.
24/60
Identificadores em Java
Devem comear com uma letra, um cifro ($) ou um underscore (_)
Exemplos:
1. Foobar
2. BIGInterface
3. $incomeAfterExpenses
4. 3_node5
5. !theCase
Ok!
Ok!
Ok!
Errado!
Errado!
25/60
Constantes e Variveis
Ex:
Varivel
Constante
media = P1 + P2 + P3 + P4
4
26/60
Constantes e Variveis
Declarao de variveis
Toda varivel utilizada em um algoritmo deve ser declarada.
A sintaxe utilizada em pseudocdigo :
:, , ...;
27/60
Sintaxe dos algoritmos
Os algoritmos em portugus estruturado devem possuir
a seguinte estrutura: Variveis
// Declarao de variveis
: ;
: ;
: ;
// Corpo do algoritmo
Incio
;
;
;
Fim.
// Mdulos
Mdulo ;
[[
...
]]
Declarao de variveis
Comentrio
Mdulos dos algoritmos
Parte principal
do algoritmo
Indentao
Separador de comandos
28/60
Atribuio
O que atribuio?
Atribui ou associa um valor a uma varivel ou constante
Ex:
nome = Jos; media = (nota1 + nota2) / 2;
29/60
Funes
Atuam como um pequeno programa que, tendo valores de entrada, geram (retornam) um resultado.
(, , ...)
30/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
31/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.
Quando um computador encontra um comando de
entrada de dados, ele suspende a execuo do
programa at que os dados sejam fornecidos.
leia (varivel1);
32/60
Comando de entrada de dados em
Java
Para fazer a leitura de dados do teclado em
programas Java, utilizaremos o objeto Scanner:
O objeto Scanner pode ser usado com variveis
numricas, lgicas e do tipo texto.
Scanner s = new Scanner(System.in);
int numero = s.nextInt();
33/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.
Ex:
escreva O saldo atual , saldo;
escreva soma;
Escreva ,...;
34/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 +.
Ex: System.out.println(O saldo atual + saldo); System.out.println(soma);
System.out.println(var ou expresso ou mensagem +...);
35/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.
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
Sada de dados
escreva soma;
36/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
pelo usurio.
necessrio a obteno destes dados do usurio atravs do
comando de entrada de dados.
O processamento do algoritmo deve possuir apenas a operao
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.
leia num1;
leia num2;
soma = num1 + num2;
37/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
38/60
Exemplo Java
Escrever o programa Al mundo! em Java.
39/60
Algoritmo Al mundo!
Soluo
Variveis
// No tem variveis
Incio
escreva(Alo mundo!);
Fim
40/60
Programa Al mundo! em Java
public static void main(String[] args) {
System.out.println("Al mundo!);
}
41/60
Exemplo
Implementar em Java um programa que solicite
duas notas de um aluno e calcule a sua mdia.
42/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
43/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);
}
44/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:
9/5*)32( FC
45/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);
}
46/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 +.
47/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);
48/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;
49/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));
50/60
Manipulao de Strings
Algumas funes teis para manipulao de
Strings:
int 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).
51/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);
52/60
Exerccio
Ler o nome e a qualidade de uma pessoa, e
exibir a mensagem uma pessoa que tem .
53/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.
54/60
Soluo
O algoritmo fica assim...
Variveis
nome, qualidade : cadeia;
Incio
ler nome;
ler qualidade;
escrever nome + uma pessoa que tem + qualidade; Fim
55/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);
}
56/60
Exerccio
Faa um programa para ler o salrio de um funcionrio e imprimi-lo com um aumento de 15%.
57/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.);
}
58/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.(parametro1, parametro2);
Para saber quais funes esto disponveis, deve-se consultar a documentao.
59/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);
}
Conceitos bsicos de
programao
Programao em Java
Prof. Maurcio Braga