ESTRUTURA DE DADOS Aula 2 – Conceitos Básicos da Linguagem Java Professor MSc. Ariel da Silva Dias Complexo Educacional FMU AULA DE HOJE Operadores de Atribuição Operadores Aritméticos Operadores Relacionais Operadores Lógicos Comandos Condicionais OPERADORES DE ATRIBUIÇÃO O operador de atribuição em Java é o “=“ variável = expressão variável = valor OPERADORES ARITMÉTICO + adição - subtração * multiplicação / divisão % operador módulo OPERADORES ARITMÉTICO OPERADORES RELACIONAIS Realizam COMPARAÇÃO entre duas expressões e retorna VERDADEIRO ou FALSO; <expressao1> <op_relacional> <expressao2> tempoNoFormo == 40 OPERADORES RELACIONAIS Igualdade: ==; Diferente de: !=; Maior ou igual a: >= Menor ou igual a: <= Maior que: > Menor que: < OPERADORES RELACIONAIS Por que == e não = ? A linguagem Java utiliza o = como operador de atribuição! Exemplo: Se a variável a tiver o valor 6, então: a==5, dará falso! a=5, atribui o valor 5 à variável a OPERADORES RELACIONAIS VERDADEIRO = 1 FALSO = 0 Para não esquecer: NÃO = FALSO SIM = VERDADEIRO OPERADORES LÓGICOS São aquelas que realizam uma operação lógica e retorna VERDADEIRO ou FALSO <expressao1> <op_logico> <expressao2> tempoDeForno == 40 E situacaoDoBolo == assado OPERADORES LÓGICOS && E (and) || OU (or) ! NEGAÇÃO (not) OPERADORES LÓGICOS COMANDOS CONDICIONAIS Se o forno está a 180ºC então Coloque o bolo no forno Senão espere até 180º COMANDOS CONDICIONAIS Comando if if(expressao_logica) comando; Exemplo: if(a == 2) System.out.println(“o valor é positivo”); COMANDOS CONDICIONAIS Comando if-else if(expressao_logica) comando; else comando; Exemplo: if(a >= 0) System.out.println(“o valor é positivo”); else System.out.println(“o valor é negativo”; COMANDOS CONDICIONAIS ifs aninhados if(expressao_logica) if(expressao_logica2) comando; else comando; else comando Exemplo: if(a >= 0) System.out.println(“o valor é positivo”); else System.out.println(“o valor é negativo”; EXEMPO DE CÓDIGO ATIVIDADE CONTINUADA 1) Construa um programa em Java para realizar a soma das seguintes variáveis: A = 20; B = 54; C = 3; 2) Construa um programa em java que calcule a média aritmética entre as variáveis: A = 23; B = 68; D = 42; ATIVIDADE CONTINUADA 3) Construa um programa em java que verifique se um número é PAR ou ÍMPAR. 4) Escreva um programa que, dado o comprimento de 3 segmentos de reta, determine se eles formam um triângulo e, caso formem, diga se o triângulo é equilátero, isósceles ou escaleno. ATIVIDADE CONTINUADA 5) Com a alta do feijão, um supermercado resolveu fazer a seguinte promoção: “a cada R$ 30,00 em compra dos produtos da promoção, o cliente ganha 20% de desconto no feijão.” Considerações Determinado cliente comprou: 1 feijão, 1 arroz, 1 detergente; Os valores dos produtos estão na tabela a seguir: Produto Valor Feijão R$ 18,28 Arroz R$ 8,75 Sabão em pó R$ 12,55 Detergente R$ 5,65 Molho de Tomate R$ 6,57 ATIVIDADE CONTINUADA De posse dessas informações, construa um algoritmo em Java que calcule quanto o cliente gastou no mercado. Estrutura de Dados • Programa = Algoritmo + Dados • Resolução de Problema: abstração • Cadastro de Clientes – Quais dados são importantes? • A idade do cliente é importante? • A cor do cabelo do cliente é importante? – Qual o algoritmo usar? • Como encontrar um cliente? • Como inserir um novo cliente? Estrutura de Dados • Programa = Algoritmo + Dados • Resolução de Problema: abstração • Cadastro de Clientes – Quais dados são importantes? • A idade do cliente é importante? • A cor do cabelo do cliente é importante? – Qual o algoritmo usar? • Como encontrar um cliente? • Como inserir um novo cliente? Estrutura de Dados • O que é um “dado digital”? • O que o diferencia de “lixo igital”? • Sua organização – Sabemos como encontrá-los • E isso permite... – Busca – Remoção – Inserção... • Organização → Desempenh o NO DIA-A-DIA Estrutura de Dados no Dia-a-Dia • Representar a organização de uma empresa – 1 presidente, 1 vice-presidente, 1 diretor de vendas e 1 de criação, este último com 2 subdiretores? Presidente VicePresidente Diretor de Vendas Diretor de Criação Subdiretor 1 Subdiretor 2 Estrutura de Dados no Dia-a-Dia • Como representar a bibliografia do curso? – Estrutura de Dados: algoritmos, análise da complexidade e implementações em Java e C/C++ – Lógica de Programação: a construção de algoritmos e estruturas de dados – Estrutura de Dados – Série Livros Didáticos Informática da UFRGS, Volume 18 Estrutura de Dados no Dia-a-Dia • Como o motoboy organiza as pizzas? Estrutura de Dados no Dia-a-Dia • Como as pessoas esperam no banco? Estrutura de Dados no Dia-a-Dia • Como representar os trajetos possíveis em uma companhia aérea? TIPOS DE ESTRUTURA DE DADOS Tipos de Estrutura de Dados • Lineares x Não-lineares • Lineares Tipos de Estrutura de Dados • Lineares x Não-lineares • 1º. Elemento bem definido • Último elemento bem definido • Lineares • Elementos intermediários: um antecessor e um sucessor Tipos de Estrutura de Dados • Não-lineares Presidente VicePresidente Diretor de Vendas Diretor de Criação Subdiretor 1 • Árvore: relação hierárquica • Grafo: relação qualquer Subdiretor 2 Tipos de Estrutura de Dados • Não-lineares É fundamental Presidente identificar a melhor estrutura para cada Viceproblema! Presidente iretor de Vendas Diretor de Criação Subdiretor 1 • Árvore: relação hierárquic Subdiretor 2 • Grafo: relação qualquer a FORMAS DE ARMAZENAMENTO E MANIPULAÇÃO DE ESTUTURA DE DADOS Armazenamento de Estruturas • Duas maneiras de armazenar – Sequencial (ou contígua) • Espaço pré-alocado • Tamanho pré-definido – Encadeada (ou ligada) • Tamanho inicialmente desconhecido • Alocação à medida da necessidade • Neste curso – Estruturas lineares sequenciais e encadeadas Armazenamento de Estruturas • Iniciaremos com as sequenciais... • Qual o tipo de variável de JAVA que serve para guardar, sequencialmente, muitos dados iguais? – Arrays • Vamos começar com uma lista de números – Que operações vocês conseguem imaginar? – O que gostaríamos de poder fazer com uma lista? Manipulação de Estruturas • Imagine uma lista de notas – Inicialmente vazia • • • • Inserir notas Remover notas Buscar notas... Como realizar essas tarefas? • Existiria muita diferença se tivéssemos uma lista de alunos? Ou uma lista de rendimentos? Manipulação de Estruturas • Inserir, Remover e Buscar serão semelhantes para qualquer lista • Sempre que precisarmos inserir, o código é o mesmo • Que tal criarmos um algoritmo chamado inserir, por exemplo? – Sempre que precisarmos inserir um valor, bastará solicitar que o computador execute o algoritmo inserir