Construção de Algoritmos 1

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Pseudo-código: sintaxe
Programação de Computadores
Nilo Menezes – Lógica de Programação –
Construção de Algoritmos 2
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Tipos de dados, Variáveis, Expressões e Operadores
Excel Profa. Cristina M. Nunes.
Introdução a Programação Renata Freire
Algoritmos Mar / 2007.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Lógica de Programação Módulo II
Programação para Engenharia I
Tópicos Preliminares na Linguagem C
Universidade Federal do Espírito Santo
Unidades de Armazenamento
1 4.6 – Variáveis - introdução Nesta altura (ao nível da programação) interessa saber que um computador tem: Nesta altura (ao nível da programação) interessa.
Estrutura de decisão e repetição em JAVA
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Introdução a Computação e Cálculo Numérico
Aula 5 - Operadores, Expressões e Funções Matemáticas
Linguagens imperativas: Aula prática
Material Didático Unificado.
Estrutura de dados, pseudocódigo
SISTEMAS DIGITAIS ALGEBRA DE BOOLE E SIMPLIFICAÇÃO DE CIRC. LÓGICOS
Introdução a Programação
Algoritmos e Estruturas de Dados I – Tipos de dados
Seminário 1: Revisão de C
PROGRAMAÇÃO I UNIDADE 2.
Fábio de Oliveira Borges
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Programação de Computadores
PCI- Introdução a linguagem C
Introdução a Programação Algoritmos
Lógica de Programação/ Algoritmos Engenharia Produção 2014
PROGRAMAÇÃO I Dados Tipos de dados Variáveis Constantes Expressões
Programação em C++ Compiladores
Paradigmas de Programação - prof Gláucya Carreiro Boechat1 Elaborando um Programa Prof.: Gláucya Carreiro Boechat Universidade.
Aula 6 - Estruturas de Controle
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
1.2 Variaveis - conceito Podemos imaginá-la como uma caixa com tampa que pode conter algum dado. Se precisarmos conhecer esse dado, abrimos a tampa da.
Conceitos Básicos Luis Antonio Tavares
Objetivos Representação de Algoritmos Português Estruturado
Tipos de Dados Operadores
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL UNIDADE 4 Itens fundamentais para Desenvolvimento de algoritmos.
Planilha Eletrônica - Excel
Programação Orientada a Objetos - Java
Operadores Relacionais e Lógicos
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Computação Eletrônica Variáveis Reais e Booleanas.
Fundamentos de linguagens de programação
Programação de Computadores - 1
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 2 Variáveis e Atribuições.
Professor: André Didier Autor: Francisco Airton
Variáveis e Operadores
Algoritmo e Estrutura de Dados I Aula 3 – Estrutura Seqüencial, Entrada e Saída, Atribuições e Uso de Funções Márcia Marra
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Algoritmos e Estruturas de Dados I – Tipos de dados
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Sistemas para Internet Algoritmos e Lógica de Programação
Prof. Tertuliano Operadores Variáveis em C++.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

Construção de Algoritmos 1 Programação em Java Prof. Maurício Braga

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.

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.

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: 3.1415; 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”.

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.

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.

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).

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 (%).

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 = ?

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 – 64 + 5 -56 + 5 -51

Exercícios pot(8,2) + (1.5 * 10) / 5 rad( -2*(-8) ) div 4 ( 30 mod 4 * pot(3,3) ) * -1

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 (<=).

Operadores Operadores lógicos Utilizados para combinar resultados de expressões lógicas; Consistem de: E (AND); OU (OR); NÃO (NOT).

Tabela verdade das operações lógicas OU x y x E y Verdadeiro Falso x y x OU y Verdadeiro Falso

Tabela verdade das operações lógicas NÃO x NÃO x Verdadeiro Falso

Operadores lógicos Precedência de operadores lógicos Não; E, OU.

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

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

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.

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.

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

Exercícios Indique a ordem e o resultado das expressões: 7 * 4 / 2 + 9 – 6 7 > 2 E 3 – 5 < 8 NÃO ( 3 + 5 <> 5 / 2 - 1 )

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.

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.

Identificadores em Java Devem começar com uma letra, um cifrão ($) ou um underscore (_) Exemplos: Foobar BIGInterface $incomeAfterExpenses 3_node5 !theCase Ok! Errado!

Constantes e Variáveis Ex: media = P1 + P2 + P3 + P4 4 Variável Constante

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).

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>, ...;

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

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;

<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>, ...)

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|)

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>, ...;

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>,...;

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;

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;

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

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)

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

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

Eclipse Conhecer o Eclipse; Escrever o programa ‘Alô mundo!’ em Java.

Algoritmo ‘Alô mundo!’ Solução Variáveis // Não tem variáveis Início escreva(“Alo mundo!”); Fim

Programa “Alô mundo!” em Java public static void main(String[] args) { System.out.println("Alô mundo!”); }

Exemplo Implementar em Java o programa que calcula a média de aluno que possui 2 notas.

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

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); }

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);

Programa média em Java }catch (Exception e) { } return resultado; }

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:

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); }

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)); }

Exercício Digite o programa exibido no próximo slide e o execute. Você é capaz de explicar o resultado que aparece?

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 : ");

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 + " 0.7 + " +s2 + ") = " + (short) (s1/s2 + 0.7 + 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) s2 + 0.7 + s2)); }

Construção de Algoritmos 1 Programação em Java Prof. Maurício Braga