Variáveis Compostas. Vanessa Braganholo

Documentos relacionados
ALGORITMO I VARIÁVEIS INDEXADAS

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Isto não é exequível!... B[8][6] A[10] Slides_Java_4

Conversão de Tipos e Arrays

BC-0505 Processamento da Informação

Vetores. Professor Dr Francisco Isidro Massettto

Simulado de Linguagem de Programação Java

Organização de programas em Java. Vanessa Braganholo

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

Vetores, Matrizes e String

LINGUAGEM JAVA - RESUMO

Revisão da Java Ex1 equilátero isóscele escaleno Ponto, Triangulo, Ex2 Ex3 Nota Ex4 TabelaUtil preenchetab imprimetab somadiv5 TabelaUtil

Vetores Unimensionais

insfcanceof new public switch transient while byte continue extends for int null

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Conteúdo programático

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

BC0501 Linguagens de Programação

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Exercício de Estrutura de dados. Java Fila

Método de ordenação - objetivos:

Programação de Computadores II TCC /Turma A 1

Curso C: Ponteiros e Arrays

JSP - ORIENTADO A OBJETOS

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Conceitos c++ Prof. Demétrios Coutinho INFORMÁTICA BÁSICA

Objetivo do Portal da Gestão Escolar

Algoritmos APRENDENDO A PROGRAMAR COM C#

ção a Objetos em Java

ENG1000 Introdução à Engenharia

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Unidade IV: Ponteiros, Referências e Arrays

Algoritmia e Programação APROG. Matrizes. Algoritmia e Java. Nelson Freire (ISEP DEI-APROG 2012/13) 1/28

Switch switch switch switch switch variável_inteira valor1 valor2 switch variável_inteira case case break switch case default default switch switch

Departamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota

Como contar o estoque. -Contagem do Estoque -Contagem Sequencial

Java possui 4 tipos de dados. Estes tipos de dados são divididos em: boolean, character, integer e float.

BC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica

JAVA. Fabrício de Sousa

Programação para a Plataforma Android Aula 17. Broadcasts

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

UNIVERSIDADE FEDERAL DO PARANÁ

Curso Java Starter. 1

MC-102 Aula 17 Strings e Matrizes

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

2 Orientação a objetos na prática

A Linguagem Java. Alberto Costa Neto DComp - UFS

Roteiro 1: Dados, variáveis, operadores e precedência

Estrutura de Dados Básica

Noções sobre Objetos e Classes

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

Universidade Federal de Uberlândia

Linguagens de Programação

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Comandos de Desvio 1

Reader e Writer para streams de caracteres (texto).

ALGORITMOS E COMPLEXIDADE PROBLEMAS E ALGORITMOS

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

BCC202 - Estrutura de Dados I

Introdução à orientação a objetos

MC Teste de Mesa e Comandos Repetitivos

Algoritmos e Estruturas de Dados I

Organização de programas em Python. Vanessa Braganholo

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Programação Orientada a Objeto Java

Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009

Álgebra Linear I - Aula 20

ALGORITMOS E PROGRAMAÇÃO. Andreza Leite Andreza.leite@univasf.edu.br

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

CONTEÚDOS PROGRAMÁTICOS

Paradigmas de Programação

Inteligência Artificial

Programação de Computadores I. Ponteiros

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

Aula 11: Desvios e Laços

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

Programação de Computadores II TCC

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA


Programação por Objectos. Java

Linguagem de Programação I. Orientação a Objetos em Java

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Transcrição:

Variáveis Compostas Vanessa Braganholo vanessa@ic.uff.br

Aula de hoje } Veremos os diferentes tipos de variáveis compostas (arrays) } Com uma dimensão (vetores) } Com duas ou mais dimensões (matrizes)

Exemplo Motivacional } Programa para auxiliar a escrever Parabéns! nas melhores provas de uma disciplina com 3 alunos } Ler os nomes e as notas de 3 alunos } Calcular a média da turma } Listar os alunos que tiveram nota acima da média

Exemplo Motivacional import java.util.scanner; public class Notas { public static void main(string[] args) { Scanner teclado = new Scanner(System.in); String nome1, nome2, nome3; float nota1, nota2, nota3, media; System.out.print("Informe o nome do aluno 1: "); nome1 = teclado.nextline(); System.out.print("Informe o nome do aluno 2: "); nome2 = teclado.nextline(); System.out.print("Informe o nome do aluno 3: "); nome3 = teclado.nextline();

Exemplo Motivacional System.out.print("Informe a nota de " + nome1 + ": "); nota1 = teclado.nextfloat(); System.out.print("Informe a nota de " + nome2 + ": "); nota2 = teclado.nextfloat(); System.out.print("Informe a nota de " + nome3 + ": "); nota3 = teclado.nextfloat(); media = (nota1 + nota2 + nota3)/3; } } if (nota1 > media) System.out.println("Parabéns " + nome1); if (nota2 > media) System.out.println("Parabéns " + nome2); if (nota3 > media) System.out.println("Parabéns " + nome3);

E se fossem 40 alunos? } É possível definir variáveis que guardam mais de um valor de um mesmo tipo } Essas variáveis são conhecidas como variáveis compostas, variáveis subscritas, variáveis indexáveis ou arranjos (array) } Existem dois tipos principais de variáveis compostas: } Vetores } Matrizes

Vetores } Variável composta unidimensional } Contém espaço para armazenar diversos valores de um mesmo tipo } É acessada via um índice } A ideia de vetor é comum na matemática, com o nome de variável subscrita } Exemplo: x 1, x 2,..., x n } O que vimos até agora são variáveis com somente um valor } Exemplo: x = 123 } No caso de vetores, uma mesma variável guarda ao mesmo tempo múltiplos valores } Exemplo: x 1 = 123, x 2 = 456,...

Recapitulando: variáveis que contêm tipos primitivos } Até agora, variáveis que contêm tipos primitivos (byte, short, int, long, float, double, char, boolean) sempre ocupam diretamente uma posição na memória nota1 flathebest nota2 nota3 bloco 8.2 true 6.0 7.1 A

Recapitulando: variáveis que contêm objetos } Já variáveis que contêm objetos na verdade guardam a posição de memória dos objetos velocidade: 10 cor: branca &1234 fusca &1234

Retomando: Vetores 0 1 8.2 6.0 &123 velocidade: 10 cor: branca &1234 2 7.1 flathebest 0 1 notas fuscas bloco true &1234 &5678 &123 &567 B &567 velocidade: 100 cor: preta &5678 Atenção: Variáveis compostas se comportam como objetos quando passados por parâmetro aos métodos (se alterar o valor de uma posição, será visível fora do método)

Declaração de vetores } Forma geral TIPO[] NOME = new TIPO[TAMANHO]; ou TIPO[] NOME;... NOME = new TIPO[TAMANHO]; } Exemplos String[] nomes = new String[40]; float[] notas = new float[40]; Carro[] fuscas = new Carro[2]; boolean[] presenca; presenca = new boolean[5];

Declaração de vetores } É possível saber o tamanho de um vetor acessando a propriedade length } Exemplo: notas. length à 40 } No Java, todo vetor inicia na posição 0 (zero) e termina na posição length 1 } Exemplo: float[] notas = new float[3]; 0 notas 1 2

Utilização de vetores } Para acessar (ler ou escrever) uma posição do vetor, basta informar a posição entre colchetes notas[0] = 8; notas[1] = 5.5f; notas[2] = 1.5f; media = (notas[0] + notas[1] + notas[2]) / 3; 0 8.0 notas 1 5.5 2 media 1.5 5.0

Utilização de vetores } Também é possível iniciar os valores de vetores diretamente no código, colocando-os entre chaves {}, separados por vírgula notas = { 8, 5.5f, 1.5f}; media = (notas[0] + notas[1] + notas[2]) / 3; } Outra possibilidade é de iterar por todos os seus valores for (int i = 0; i < notas.length; i++) { System.out.print(notas[i]); }

Retomando: E se fossem 40 alunos? } Criaríamos dois vetores (nomes e notas) de 40 posições } Vincularíamos a posição N do vetor de nomes à posição N do vetor de notas 0 0 nomes 1 2 notas 1 2 40 40

Retomando: E se fossem 40 alunos? import java.util.scanner; public class Notas { public static void main(string[] args) { final int NUMERO_ALUNOS = 40; Scanner teclado = new Scanner(System.in); String[] nomes = new String[NUMERO_ALUNOS]; float[] notas = new float[numero_alunos]; float media = 0; for (int i = 0; i < NUMERO_ALUNOS; i++) { System.out.print("Informe o nome do aluno "+(i+1)+": "); nomes[i] = teclado.nextline(); }

Retomando: E se fossem 40 alunos? for (int i = 0; i < NUMERO_ALUNOS; i++) { System.out.print("Informe a nota de " + nomes[i] + ": "); notas[i] = teclado.nextfloat(); media += notas[i]; } media /= NUMERO_ALUNOS; } } for (int i = 0; i < NUMERO_ALUNOS; i++) { if (notas[i] > media) System.out.println("Parabéns " + nomes[i]); }

Matrizes } Variável composta multidimensional } É equivalente a um vetor, contudo permite a utilização de diversas dimensões acessadas via diferentes índices } Pode ser pensada como um vetor cujo tipo é outro vetor, recursivamente } Em diversas situações matrizes são necessárias para correlacionar informações

Exemplo motivacional } Assumindo que um aluno é avaliado com três notas, seria necessário um vetor de três posições para guardar as notas de um aluno... 0 4.5 notas 1 6.5 2 7.0

Exemplo motivacional } Contudo, assumindo que uma turma tem cinco alunos, seria necessária uma matriz bidimensional para guardar as notas de todos os alunos de uma turma... alunos notas 0 1 2 0 1 2 3 4 4.5 6.5 7.0 float[][] notas = new float[5][3]; // Declaração System.out.println(notas[1][0]);

Exemplo motivacional } Na verdade, na memória seria algo assim... 0 0 1 2 0 4.5 notas 1... 1 2 0 6.5 7.0 4 1 2

Exemplo motivacional } Ainda, assumindo que um curso tem duas turmas, seria necessária uma matriz tridimensional para guardar as notas de todos os alunos de todas as turmas do curso... float[][][] notas = new float[2][5][3]; System.out.println(notas[0][1][0]);

Exercício } Leia o nome e a idade de 10 pessoas e liste as pessoas em ordem crescente de idade } Relembrem a aula que falamos de ordenação do baralho } Pense no algoritmo antes de programar!

Exercício } Faça um programa que leia dois vetores de 3 posições, que representam forças sobre um ponto no espaço 3D, e escreva a força resultante } Faça um programa que leia duas matrizes tamanho 2x3 e 3x2 e escreva a matriz resultado da multiplicação dessas matrizes (dica: c[i, j] = Somatório de a[i,k] * b[k,j] para todo k) } Faça um programa que leia a ordem de uma matriz quadrada (até 100), posteriormente leia os seus valores e finalmente escreva a sua transposta (at[i, j] = a[j, i])

Exercício } Faça um programa que lê o nome e três notas para cada aluno de cada turma de um curso, onde cada turma tem 5 alunos e o curso tem 3 turmas } Ao final, permita que o usuário informe... } O nome de um aluno e o programa liste a média desse aluno } Uma nota e o programa liste todos os alunos que têm médias acima dessa nota

Exercício } Leia um vetor de 10 posições e ordene o vetor, usando 3 métodos de ordenação diferentes (crie um método para cada um) } Insertion Sort } Selection Sort } Bubble Sort } Em cada alternativa, conte o número de comparações realizadas, e imprima o número de comparações junto com o vetor ordenado } Observe qual dos algoritmos executou a ordenação com o menor número de comparações 26

Referências } Slides de Leonardo Murta 27

Variáveis Compostas Vanessa Braganholo vanessa@ic.uff.br