Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Construção de Algoritmos 1
Programação em Java Prof. Maurício Braga
2
Algoritmos Estruturas para construção de algoritmos Tipos de Dados;
Variáveis; Constantes; Operadores aritméticos, relacionais e lógicos; Atribuição; Comandos de condição ou seleção; Comandos de repetição.
3
Tipos de dados Dado pode ser definido como informação em estado primitivo cujo processamento pode gerar informação útil. Devido a natureza do que vai ser armazenado em memória, existem tipos de dados diferentes. Tipo de dado representa o conjunto de valores possíveis para um dado.
4
Tipos de dados Iremos utilizar apenas cinco tipos de dados durante a criação de algoritmos: Inteiro – Para representar informações que não possuem parte fracionária. Ex: 1, 2, 40000, etc.; Real – Para representar informações que podem possuir parte fracionária. Ex: ; Lógico – Para representar um estado ou situação que pode ser apenas verdadeira (true) ou falsa (false); Caractere – Utilizado para armazenar um único caractere na memória. Ex: ‘A’; Cadeia de caracteres – Utilizado para armazenar um seqüência de caracteres na memória. Ex: “Computador”.
5
Exercícios Identifique o tipo de dado para a representação das informações abaixo: Quantidade de brinquedos de uma criança; Altura de uma pessoa; Aviso em uma placa; Sexo de uma pessoa; Salário de um funcionário; CEP de uma carta; Estado de um computador quanto ao seu funcionamento; Número de cheques emitidos por um cliente em um mês.
6
Tipos de dados em Java Java possui oito tipos primitivos de dados:
Lógico: boolean Texto (1 caractere): char Inteiros: byte, short, int e long Reais: double e float Todos os tipos numéricos possuem sinal. String: representa uma cadeia de caracteres. Tipos Primitivos em Java: Java possui oito tipos primitivos de dados: Lógico: boolean Texto: char Inteiros: byte, short, int e long Reais: double e float Java possui 2 tipos primitivos de dados a mais que a linguagem C: byte e boolean. Em java todos os tipos numéricos possuem sinal.
7
Operadores Operadores aritméticos
Utilizados para obtenção de dados numéricos; Consistem de: Adição (+); Subtração (-); Multiplicação (*); Divisão real entre dois números (/); Divisão inteira entre dois números inteiros (div); Resto da divisão inteira entre dois números inteiros (mod).
8
Operadores em Java Operadores aritméticos Consistem de: Adição (+);
Subtração (-); Multiplicação (*); Divisão real entre dois números (/); Divisão inteira entre dois números inteiros (/); Resto da divisão inteira entre dois números inteiros (%).
9
Operadores aritméticos
Precedência de operadores aritméticos ( ) Parênteses; Potenciação, radiciação; Multiplicação, divisões e resto da divisão; Adição ou subtração. Ex: 2 * (2 – 4) + 3* 4 = ?
10
Montagem de expressões
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 – -51
11
Exercícios pot(8,2) + (1.5 * 10) / 5 rad( -2*(-8) ) div 4
( 30 mod 4 * pot(3,3) ) * -1
12
Operadores Operadores relacionais
Utilizados na comparação de literais ou números; Retornam valores lógicos; Consistem de: Igual a (==); Diferente de (<> ou !=); Maior que (>); Menor que (<); Maior ou igual a (>=); Menor ou igual a (<=).
13
Operadores Operadores lógicos
Utilizados para combinar resultados de expressões lógicas; Consistem de: E (AND); OU (OR); NÃO (NOT).
14
Tabela verdade das operações lógicas
OU x y x E y Verdadeiro Falso x y x OU y Verdadeiro Falso
15
Tabela verdade das operações lógicas
NÃO x NÃO x Verdadeiro Falso
16
Operadores lógicos Precedência de operadores lógicos Não; E, OU.
17
Operadores lógicos Exemplos: (3 == 5) E (4 > 2) =
(2 > 4) OU (2 < 4) = 15 mod 4 < 19 mod 6 = F V Falso Verdadeiro F V F
18
Exercícios 2 < 5 e 15/3 = 5 pot(3,2)/3 < 2 e 5=5
Falso ou 20 div (18/3) <> (21/3) div 2
19
Operadores Lógicos em Java
Operadores Booleanos: ! - Não & - E | - Ou ^ - Ou Exclusivo Operadores Booleanos com Curto-Circuito || - Ou && - E Operadores Lógicos: Os operadores boleanos suportados em Java são !, ^, & e |. Cada um desses operadores retorna um boolean. Os operadores && e || são a versão com curto-circuito dos operadores & e | respectivamente. Curto-Circuito: A versão dos operadores com curto-circuito fornece uma forma mais eficiente de efetuar operações boleanas. Exemplos: if(expressão1 && expressão2) Neste caso se expressão1 for falsa, a expressão2 não será avaliada pois basta um dos operandos de um operador && ser falso para a expressão toda ser falsa. if(expressão1 || expressão2) Neste caso se expressão1 for verdadeira , a expressão2 não será avaliada pois basta um dos operandos de um operador || ser verdadeiro para a expressão toda ser verdadeira.
20
Montagem de expressões
Para realização de determinados cálculos, pode ser necessário fazer combinações de operadores, bom como a adição de parênteses. Mas que operador será calculado primeiro? O que tiver maior prioridade.
21
Montagem de expressões
Tabela de prioridades de operadores: 1º Parênteses mais internos 2º Funções 3º Operadores aritméticos 1º Multiplicativos (*, /, #, %); 2º Aditivos (+, -) 4º Operadores relacionais 5º Operadores lógicos 1º NÃO 2º E 3º OU
22
Exercícios Indique a ordem e o resultado das expressões:
7 * 4 / – 6 7 > 2 E 3 – 5 < 8 NÃO ( <> 5 / )
23
Constantes e Variáveis
Possui valor fixo durante execução do programa; Pode ser numérica, lógica ou literal. Variável Um dos conceitos mais importantes na construção de algoritmos. Representa um espaço de memória reservado para armazenar determinado tipo de dado; Deve receber um nome para referenciação e modificação; Deve possuir um tipo associado; Quando um algoritmo termina sua execução, todas as variáveis são apagadas da memória; Só podem armazenar um dado por vez.
24
Constantes e Variáveis
Nomes de Variáveis O nome de uma variável deve ser único dentro de um mesmo algoritmo. Deve começar por uma letra, podendo-se incluir após esta letra outras letras, dígitos ou o sinal de underline ( _ ). Este tipo de nome é conhecido como identificador. O identificador não pode possuir acentos, nem ser igual ao nome de um comando.
25
Identificadores em Java
Devem começar com uma letra, um cifrão ($) ou um underscore (_) Exemplos: Foobar BIGInterface $incomeAfterExpenses 3_node5 !theCase Ok! Errado!
26
Constantes e Variáveis
Ex: media = P1 + P2 + P3 + P4 4 Variável Constante
27
Constantes e Variáveis
Tipos de variáveis Numéricas: Armazenamento de números; Inteiras: Armazenamento de números inteiros; Reais: Armazenamento de números reais. Caracteres: Cadeia de letras ou números; Ex: ‘a’, “José”, “Rua 23”. Booleanas: Armazenam valores lógicos (verdadeiro ou falso).
28
Constantes e Variáveis
Declaração de variáveis Toda variável utilizada em um algoritmo deve ser declarada. A sintaxe utilizada em pseudocódigo é: <tipo>:<variavel1>, <variavel2>, ...;
29
Sintaxe dos algoritmos
Os algoritmos em português estruturado devem possuir a seguinte estrutura: Declaração de variáveis Variáveis // Declaração de variáveis <tipo1> : <variável1>; <tipo2> : <variável2>; <tipo3> : <variável2>; // Corpo do algoritmo Início <comando1>; <comando2>; <comando3>; Fim. // Módulos Módulo <nomemódulo>; [[ ... ]] Comentário Parte principal do algoritmo Separador de comandos Indentação Módulos dos algoritmos
30
Atribuição O que é atribuição? Ex:
“Atribui ou associa um valor a uma variável ou constante” Ex: nome = “José”; media = (nota1 + nota2) / 2;
31
<nomefunção> (<parâmetro1>, <parâmetro2>, ...)
Funções Atuam como um pequeno programa que, tendo valores de entrada, geram (retornam) um resultado. <nomefunção> (<parâmetro1>, <parâmetro2>, ...)
32
Funções Matemáticas disponíveis no pacote Java.Math
Função Utilidade Tipo do resultado log(double x) Retorna o valor do logaritmo neperiano de x Real exp(double x) Retorna o valor de ex pow(double x, double y) Retorna o valor de x elevado a y. round(float x) Arredonda x para o inteiro mais próximo Inteiro sqrt(double x) Retorna a raiz quadrada de x sin(double x) Retorna o seno de x cos(double x) Retorna o co-seno de x atan(double x) Retorna o arco, em radianos, cuja tangente é x abs(int x) Retorna o módulo de x (|x|)
33
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 usuário. Quando um computador encontra um comando de entrada de dados, ele suspende a execução do programa até que os dados sejam fornecidos. leia <variável1>, <variável2>, ...;
34
Comando de saída de dados
Da mesma forma que precisamos receber dados externos, precisamos fornecer dados e instruções para os usuários. Desta forma, precisamos de um comando para retornar dados e/ou mensagens em um dispositivo de saída. Ex: escreva “O saldo atual é”, saldo; escreva soma; Escreva <var ou expressão ou mensagem>,...;
35
Exemplo de construção de algoritmo
Exibir a soma de dois números inteiros fornecidos pelo usuário. Solução Objetivo é construir um algoritmo que ensine o computador a executar uma solução para o problema proposto. O que o algoritmo deve fazer? Calcular a soma de dois números e exibi-la ao usuário. O valor da soma deverá ser armazenado em memória antes de ser exibido É necessário então a criação de uma variável soma É necessário que ao término do algoritmo a variável soma seja exibida para o usuário Saída de dados escreva soma;
36
Exemplo de construção de algoritmo
Solução (cont.) O enunciado afirma que os valores a serem somados devem ser informados pelo usuário O algoritmo possui dados de entrada, e estes dados de entrada deverão ser armazenados em memória. É necessária a criação de duas variáveis num1 e num2 para armazenar os dados fornecidos pelo usuário. É necessário a obtenção destes dados do usuário através do comando de entrada de dados. O processamento do algoritmo deve possuir apenas a operação de soma. Utilizaremos o operador de adição (+) para ensinar ao computador que operação, e com quais valores, deve ser realizada. O resultado da soma deverá ser armazenado em memória pela variável soma, logo precisaremos utilizar o comando de atribuição. leia num1; leia num2; soma <- num1 + num2;
37
Exemplo de construção de algoritmo
Exibir a soma de dois números inteiros fornecidos pelo usuário. Solução Variáveis inteiro: num1, num2, soma; Início leia(num1); leia(num2); soma = num1 + num2; escreva(soma); Fim
38
Exemplo de construção de algoritmo
Exibir o quadrado de um número inteiro fornecido pelo usuário. Solução Possui apenas uma saída de dados Necessita de apenas uma entrada de dados Podemos utilizar a função pow(x,2)
39
Exemplo de construção de algoritmo
Sem usar a função Variáveis inteiro: valor, quadrado; Início leia(valor); quadrado = valor * valor; escreva(quadrado); Fim Usando a função Variáveis inteiro: valor, quadrado; Início leia(valor); quadrado = pow( valor,2 ); escreva(quadrado); Fim
40
Exercícios Faça um algoritmo para exibir a multiplicação de dois inteiros informados pelo usuário. Faça um algoritmo para ler um número inteiro e exibir seu dobro. Faça um algoritmo para ler 3 números reais e exibir a soma do 1º número com o 2º, multiplicada pela soma do 2º pelo 3º. O que será impresso pelo algoritmo a seguir? Variáveis inteiro: val1, val2, val3; Início val1 = 10; val2 = 20; val3 = val2 – val1; val3 = val1 – val2; escrever val3; Fim
41
Eclipse Conhecer o Eclipse; Escrever o programa ‘Alô mundo!’ em Java.
42
Algoritmo ‘Alô mundo!’ Solução Variáveis // Não tem variáveis Início
escreva(“Alo mundo!”); Fim
43
Programa “Alô mundo!” em Java
public static void main(String[] args) { System.out.println("Alô mundo!”); }
44
Exemplo Implementar em Java o programa que calcula a média de aluno que possui 2 notas.
45
Algoritmo do programa média:
Início // declaração de variáveis real: nota1, nota2, media; // entrada de dados leia(nota1); leia(nota2); // processamento (cálculo da média) media = (nota1 + nota2) / 2; // saída de dados escreva(media); Fim
46
Programa média em Java public static void main(String[] args) {
// Variáveis: nota1, nota2 e média do aluno double nota1 = 0, nota2 = 0, media = 0; System.out.println("Entre a primeira e a segunda nota do aluno:"); // entrada de dados nota1 = Leia(nota1); nota2 = Leia(nota2); // cálculo da média media = (nota1 + nota2)/2; System.out.println("A média é : "+media); }
47
Programa média em Java public static double Leia(double param) {
// variáveis // objeto que contém o dado digitado pelo usuário DataInputStream dado_lido; // variável auxiliar cujo objetivo é facilitar // a conversão dos dados String stemporario; double resultado = 0; try { dado_lido = new DataInputStream(System.in); stemporario = dado_lido.readLine(); resultado =Double.parseDouble(stemporario);
48
Programa média em Java }catch (Exception e) { } return resultado; }
49
Exercício Implementar em Java um programa que, a partir do valor em Celsius digitado pelo usuário, calcula o valor da temperatura em Fahrenheit. Fórmula conversão F -> C:
50
Funções matemáticas com Java - 1
public static void main(String[] args) { double a=0, b=0; System.out.println("Entre o valor de a:"); a=Leia(a); System.out.println("Entre o valor de b:"); b=Leia(b); 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); }
51
Funções matemáticas com Java - 2
public static void main(String[] args) { double A=5.2,B=5.6,C=-5.8; System.out.println("Arredondando 5.2 com Math.ceil = " + Math.ceil(A)); System.out.println("Arredondando 5.6 com Math.ceil = " + Math.ceil(B)); System.out.println("Arredondando -5.8 com Math.ceil = " + Math.ceil(C)); System.out.println("Arredondando 5.2 com Math.floor = " + Math.floor(A)); System.out.println("Arredondando 5.6 com Math.floor = " + Math.floor(B)); System.out.println("Arredondando -5.8 com Math.floor = " + Math.floor(C)); }
52
Exercício Digite o programa exibido no próximo slide e o execute. Você é capaz de explicar o resultado que aparece?
53
Exemplo tipos de dados em Java
public static void main(String[] args) { short s1 = 17, s2 = 5; double d1 = 0.7; System.out.println("divisão de shorts : "); System.out.println("("+ s1 + "/" + s2 + ") = "+ (s1/s2) ); System.out.println("\ndivisão de shorts com conversão para double após a divisão : "); System.out.println("(double) ("+ s1 + "/" + s2 + ") = " + (double) (s1/s2)); antes da divisão : "); System.out.println("( (double) "+ s1 + "/ (double) " + s2 + ") = " + ((double) s1/(double) s2)); System.out.println("\nsoma de shorts com um double sem conversão : ");
54
Exemplo tipos de dados em Java
System.out.println("("+ s1 + "/" + s2 + " + " + d1 + " + " +s2 + ") = " + (s1/s2 + d1 + s2) ); System.out.println("\n conversão para short após a soma de shorts com um double : "); System.out.println("(short) ("+ s1 + "/" + s2 + " " +s2 + ") = " + (short) (s1/s s2)); System.out.println("\ncast para double em cada elemento antes da soma : "); System.out.println(" ( (double) "+ s1 + "/(double) " + s2 + " + " + d1 + " + " + s2 + ") = " + ((double) s1/(double) s s2)); }
55
Construção de Algoritmos 1
Programação em Java Prof. Maurício Braga
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.