Post on 12-Nov-2018
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 1
INTRODUÇÃO A PROGRAMAÇÃO
Prof. Maurício Capobianco Lopes
Profª. Luciana Pereira de Araújo
(Material de Apoio)
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 2
1. FUNDAMENTOS DA PROGRAMAÇÃO DE COMPUTADORES
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 3
1 INTRODUÇÃO A PROGRAMAÇÃO DE
COMPUTADORES
• Os computadores são máquinas programáveis utilizadas para automatizar tarefas
• As ações executadas por estas máquinas são baseadas em dados e regras que dependem da aplicação para as quais são criadas
• A programação de um computador é uma tarefa executada pelo programador
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 4
1.1 SOLUÇÃO DE PROBLEMAS
• O computador segue as ordens (COMANDOS E INSTRUÇÕES) contidas em um programa de computador e escritas em uma linguagem de programação
• A sequência lógica e coerente destas ordens é representada através de Algoritmos, Fluxogramas ou Diagramas
• A implementação destas ordens em uma linguagem computacional é denominada de Programa de Computador
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 5
1.1 SOLUÇÃO DE PROBLEMAS
• A SOLUÇÃO DE UM PROBLEMA com base em um SOFTWARE envolve um conjunto de PROCESSOS (regras) que operam sobre DADOS, necessitando de RECURSOS (dados de Entrada) e produzindo RESULTADOS (dados de Saídas)
• PROCESSOS (regras) são as ações executadas pelo computador para operar ou transformar os dados
Entradas(Recursos)
Processos(Regras)
Saídas(Resultados)
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 6
1.2. TÉCNICAS PARA REPRESENTAÇÃO DE
SOLUÇÕES
• As principais técnicas para representações de soluções de problemas com base em softwares são:
– Algoritmos, Fluxogramas ou Diagramas;
• NÃO EXIGEM um computador para serem executados e testados.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 7
1.2.1. ALGORITMOS
• Representam as instruções para a solução de um problema com base em um subconjunto de palavras de uma língua (p. ex. língua portuguesa);
• Também são conhecidos por pseudolinguagem ou pseudocódigo;
ler (nota)
se nota >= 6.0 então
escrever (“Aluno
aprovado”)
senão
escrever (“Aluno
reprovado”)
fim se
• Tem uma estrutura semântica e sintáticaprópria, mas que pode variar nasdiferentes bibliografias ou formas derepresentação.
• Vantagem: facilidade de elaboração.• Desvantagem: legibilidade e ambigui-
dade em problemas não triviais.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 8
1.2.2. FLUXOGRAMAS (DIAGRAMA DE
BLOCOS)
• É o tipo mais comum de representação de solução de problemas com base em uma notação gráfica.
• Contêm um conjunto de símbolos com significados específicos para cada instrução.
• Vantagem: legibilidade.• Desvantagens: espaço e
ferramentas para elaboração.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 9
1.2.3. DIAGRAMAS
• Outros tipos de diagramas também permitem a representação de soluções de problemas com base em notações gráficas.
Diagrama de Chapin (Nassi-Shneiderman) Diagrama de Estados
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 10
EXERCÍCIOS PROPOSTOS
• Exercícios: descrever uma solução para os problemas a seguir. – trocar o pneu de um carro
– fazer uma limonada
– fazer miojo
– trocar uma lâmpada
– pegar um livro emprestado na biblioteca
– desenhar e recortar um quadrado em uma folha de papel
– movimentar um peão em um tabuleiro de xadrez
– movimentar uma peça em um jogo de dados dado o tabuleiro abaixo
1 2
Avance até a casa
8
4 5 6
7
81011
171615
13Volte
para o início
Volte para
casa 5
18 20
Avance até a casa
17
Volte para casa 11
Início
Fim
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 11
2. CONSTRUÇÃO DE ALGORITMOS
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 12
2 CONSTRUÇÃO DE ALGORITMOS
• Para que o computador possa cumprir corretamente as tarefas desejadas é necessário construir algoritmos organizados de forma lógica.
• "LÓGICA: coerência de raciocínio, de idéia; seqüência coerente, regular e necessária de acontecimentos, de coisas" (DICIONÁRIO AURÉLIO).
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 13
2.1 ALGORITMO: INSTRUÇÕES
• As INSTRUÇÕES mais comuns em algoritmos são:
Tipo DescriçãoAtribuição Existem informações em um programa que precisam ser
armazenadas em VARIÁVEIS. Nestes casos, utiliza-se uma expressão de atribuição.A atribuição é representada por um flecha para a esquerda ( ) ou pelo sinal de igual ( = )
Entrada e Saída
Os programas normalmente recebem e informam dados executando operações denominadas de entrada (comando “ler”) e saída (comando “escrever”).
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 14
2.1 ALGORITMO: INSTRUÇÕES
• As INSTRUÇÕES mais comuns em algoritmos são:
Tipo Descrição
Estruturas de Controle de Seleção e Repetição
Em um programa podem existir comandos executados apenas em determinadas situações. Nestes casos utilizam-se as estruturas de seleção. Em outras situações, um comando precisa ser executado repetidas vezes. Nestes casos, utilizam-se as estruturas de repetição.
Chamadas de Sub-rotinas
Muitas vezes em um programa, a solução de um ALGORITMO, requer a execução de outros ALGORTIMOS.
Tratamentos de Erros
Muitas situações na programação de computadores requerem cuidado pois podem gerar diversos tipos de erros. Nas linguagens mais modernas, existem estruturas específicas para o tratamento destes erros.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 15
2.2. NOTAÇÕES DE FLUXOGRAMA
• Início/Fim: indica o ponto inicial e o ponto final do fluxograma
• Entrada: indica os valores a serem utilizados para a realização das ações em todo o fluxograma
• Operação/Comando: indica a ação que será realizada em um determinado ponto do fluxograma
Início/Fim
Entrada / Informação
Entrada / Dados Manuais
Operação/Comando
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 16
2.2. NOTAÇÕES DE FLUXOGRAMA
• Decisão: indica um desvio de fluxo conforme o resultado de uma condição (verdadeiro/falso)
• Saída: indica o resultado obtido após o percurso de um fluxo
• Conector: utilizado quando o fluxograma não cabe em uma única página
• Sentido do fluxo: indica o próximo passo que irá ocorrer em uma ação e outra do fluxograma
Decisão
Saída
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 17
2.2.1 EXEMPLO DE UM FLUXOGRAMA
• José e Ana estão decidindo quem inicia o jogo na escola através de cara e coroa. José pediu cara, logo, se ele tirar cara ele inicia a jogada. Se Ana tirar coroa, ela é quem inicia a jogada.
Jogar moeda
Moeda é cara?
Início
João inicia Ana inicia
Fim
SimNão
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 18
2.3 DADOS
• DADOS são as informações que devem ser armazenadas
• DADOS podem ser:
– de entrada: necessários para a realização do algoritmo– intermediários: produzidos ao longo do algoritmo– saída: informados pelo algoritmo
• Os DADOS são representados através de variáveis ou constantes e tem tipos
• Todas as informações armazenadas na memória do computador tem endereço de memória. São as VARIÁVEIS
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 19
2.4 TIPOS DE DADOS
• Toda variável tem um tipo de dado associado. O tipo de dado determina:
– que valores a variável pode assumir– as operações às quais ela pode ser submetida– o espaço a ser ocupado pela variável na memória
• Os tipos de dados primitivos são:
– inteiro: armazena números inteiros– real: armazena números com casas decimais– caractere: armazena qualquer símbolo único– lógico: armazena verdadeiro ou falso
• Os operadores mais comuns sobre as variáveis são:
– adição (+), subtração (-), multiplicação (*), divisão (/) e resto (%)
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 20
MÉTODO
• Para a construção de um algoritmo, pergunte-se
– O QUE EU TENHO? (Entradas)
– O QUE EU QUERO? (Saídas)
– O QUE EU PRECISO COMPUTAR? (Algoritmo)
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 21
3. INTRODUÇÃO A LINGUAGEM DE PROGRAMAÇÃO
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 22
3.1 A LINGUAGEM JAVA
• Plataforma de programação iniciada pela Sun Microsystems e atualmente pertencente a Oracle;
• “Linguagem de programação de propósito geral, concorrente, baseada em classes e orientada a objetos”;
• Possui algumas semelhanças com as linguagens C e C++;
• É uma linguagem case sensitive, ou seja, diferencia maiúsculas de minúsculas;
• Independente de plataforma, pois seus programas são compilados em um formato próprio denominado bytecodes (.class).
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 23
3.1 A LINGUAGEM JAVA
• O Java, em sua distribuição atual 8, tem versões diferentes para diversos tipos de desenvolvimento. Entre elas destacam-se:
– Java Standard Edition (JavaSE): voltado para aplicações desktop, integra os elementos padrão da plataforma e permite o desenvolvimento de aplicações de pequeno e médio porte. Inclui todas as APIs consideradas de base, além da máquina virtual padrão (JVM – Java Virtual Machine);
– Java Enterprise Edition (JavaEE): voltada para aplicações Web e aplicações corporativas complexas. Adiciona APIsespecíficas aos elementos padrão da plataforma.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 24
3.1 A LINGUAGEM JAVA
• Para executar aplicações em java é necessário
– Java Runtime Environment (JRE): contém a máquina virtual Java (JVM), responsável por compilar os arquivos Java desenvolvidos. Além disso, possui bibliotecas de classe utilizadas em tempo de execução e aplicações/recursos necessários para executar programas escritos na linguagem Java;
– Java Development Kit (JDK): ambiente de desenvolvimento para a criação de aplicativos usando a linguagem de programação Java. Contém as ferramentas úteis para o desenvolvimento dos programas a serem executados na plataforma Java.
• Download:
– http://www.oracle.com/technetwork/java/index.html
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 25
3.2 IDES PARA DESENVOLVIMENTO JAVA
• Os ambientes de programação são comumente denominados de IDE (Integrated Development Environment – Ambiente Integrado de Desenvolvimento)
– Possuem uma interface amigável para o desenvolvimento de programas
– Reúnem características e ferramentas de apoio ao desenvolvimento de software com objetivo de agilizar o processo
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 26
3.2 IDES PARA DESENVOLVIMENTO JAVA
• Componentes básicos de uma IDE:
– Editor– Compilador– Linker– Depurador/Debugger
• Exemplos de Ambientes para a linguagem Java:
– Eclipse– Netbeans– BlueJ– JCreator– JBuilder– etc.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 27
3.2 IDES PARA DESENVOLVIMENTO JAVA
• As principais IDEs para o desenvolvimento de aplicativos em Java são:
– Eclipse: https://www.eclipse.org/
– Netbeans: https://netbeans.org/
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 28
3.3 FURBOT
• Ambiente de apoio ao ensino de lógica de programação desenvolvido na FURB em 2008
• Disponibiliza um ambiente que possibilita o desenvolvimento de algoritmos de controle de personagens de tal forma a criar uma atmosfera facilitadora ao aprendizado
• Link com mais informações:
– http://inf.furb.br/poo/ProjetoFurbot/
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 29
3.3 FURBOT – CONCEITOS INICIAIS
• O Furbot é formado por um ambiente composto por linhas e colunas no qual habita um robô e demais personagens.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 30
3.3 FURBOT – CONCEITOS INICIAIS
EnunciadoIniciar
Velocidade
Cenário/Mundo
Saídas
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 31
3.3 FURBOT – CONCEITOS INICIAIS
• O cenário é criado a partir de um arquivo XML
<furbot>
<enunciado>
Faça o robô andar até a posição (7,4). <br>
Lembre-se de que as coordenadas sempre serão
fornecidas como (x, y).<br>
A primeira coluna e linhas são a de número ZERO.
</enunciado>
<mundo>
<qtdadeLin>8</qtdadeLin>
<qtdadeCol>8</qtdadeCol>
<explodir>true</explodir>
</mundo>
<robo>
<x>0</x>
<y>0</y>
</robo>
</furbot>
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 32
3.3 FURBOT – PERSONAGENS
• Furbot: é o robô que recebe as missões a serem executadas no mundo;
• Alien: inimigo do robô, está no mundo para impedi-lo de realizar as missões;
• Booleano: identificadores lógicos (true/false);
• Numero: números utilizados durante a realização das missões;
• Tesouro: baú que guarda tesouros, os quais devem ser encontrados pelo Furbot;
• Parede: obstáculo que impede a passagem.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 33
3.3 FURBOT – COMANDOS INICIAIS
• andarDireita():void
– Faz com que o robô ande uma célula à direita. Se houver um obstáculo ou for o fim do mundo, o robô explode;
• andarEsquerda():void
– Faz com que o robô ande uma célula à esquerda. Se houver um obstáculo ou for o fim do mundo, o robô explode;
• andarAcima():void
– Faz com que o robô ande uma célula para cima. Se houver um obstáculo ou for o fim do mundo, o robô explode;
• andarAbaixo():void
– Faz com que o robô ande uma célula para baixo. Se houver um obstáculo ou for o fim do mundo, o robô explode.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 34
3.3 FURBOT – COMANDOS INICIAIS
• diga (String):void
– Faz com que a mensagem enviada como parâmetro seja apresentada na tela. Toda mensagem deve ser escrita entre os parêntesis e grafada entre aspas duplas;
• diga (Object):void
– Permite que seja passado como parâmetro um objeto que contém a mensagem a ser apresentada na tela. Este recurso é avançado e você só vai utilizá-lo mais adiante;
• limparConsole():void
– Limpa a área de mensagens do mundo. Geralmente utilizamos para facilitar a visualização de mensagens importantes.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 35
3.4 FURBOT – PRIMEIROS PASSOS
• O Furbot pode ser utilizado através da IDE Eclipse ou Netbeans
• Para que seja possível utilizá-lo é necessário realizar o download das seguintes bibliotecas:
– Furbot.jar– commons-digester-1.8.jar– commons-logging-1.1.jar– commons-beanutils.jar
• Link:
– http://inf.furb.br/poo/ProjetoFurbot/download.html
• Tutorial de utilização:
– http://inf.furb.br/poo/ProjetoFurbot/documentacao.html
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 36
3.4 FURBOT – PRIMEIROS PASSOS
Importações
Nome do XML
Definição da
Classe
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 37
3.4 FURBOT – PRIMEIROS PASSOS
Método de
inteligência do
Robô
Método de
inicialização
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 38
3.5 ORIENTAÇÃO A OBJETOS
• A ORIENTAÇÃO A OBJETOS (OO) modela o mundo a partir dos objetos existentes no mundo real.
• Os objetos têm CARACTERÍSTICAS (atributos) e COMPORTAMENTOS (métodos) próprios, sendo definidos pelas CLASSES às quais pertencem.
Professores Maurício Capobianco Lopes e Luciana Pereira de Araújo class Class Model
Aluno
- numeroDeMatricula: int
- nome: String
- sexo: char
+ informarNumeroDeMatricula() : int
+ estudar() : void
Atributos
Métodos
Classe
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 39
3.5 ORIENTAÇÃO A OBJETOS - CLASSES
• Agrupa um conjunto de objetos com características comuns
• É o modelo genérico de um objeto;
• Exemplo: Pessoa, Carro, Sala, Pássaro, Mesa, ...
Padrão de nome:Inicia com letra maiúscula
Definição no Java:
public class NomeClasse {
//código-fonte
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 40
3.5 ORIENTAÇÃO A OBJETOS - OBJETOS
• É um elemento de uma classe
• O objeto possui as características bem definidas
• Exemplo: joao (Classe Pessoa), gol (Classe Carro), sala S-101 (Classe Sala).
Padrão de nome:Inicia com letra minúscula
Definição no Java:
Classe nomeObj;
Exemplos:
Pessoa pessoa;
Carro carro;
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 41
3.5 ORIENTAÇÃO A OBJETOS - ATRIBUTOS
• São as características das classes/objetos
• Exemplo: nome, tamanho, cor, altura, largura...
Padrão de nome:Inicia com letra minúscula
Definição no Java:
tipo nome;
Exemplos:
String nome;
float altura;
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 42
3.5 ORIENTAÇÃO A OBJETOS - MÉTODOS
(SUB-ROTINAS)
• São as ações/estados das classes.
• Exemplo: escrever, imprimir, calcular, iniciar ...
Padrão de nome:Inicia com letra minúscula, segue com ()
Definição no Java:
encapsulamento tipoRetorno nome(parâmetros)
{
}
Ex: public static void main(String args[]) {
//Implementação do método
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 43
4. TIPOS E OPERADORES EM JAVA
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 44
4.1 TIPOS DE DADOS: PRIMITIVOS
• Os TIPOS DE DADOS PRIMITIVOS são os tipos básicos de uma linguagem.
• O Java possui também o tipo void que não armazena nenhum conteúdo.
Tipo Tamanho (em bits) Domínio Dígitos Significativos
float (literal: f) 32 1.4 * 10-45 .. 3.4 * 1038 7-8double (literal: d) 64 5.0 * 10-324 .. 1.8 * 10308 15-16
Tipo Tamanho (em bits) Armazenamento
char 16 1 caracter UNICODE
Tipo Tamanho (em bits) Armazenamento
boolean 1 true ou falseLógico:
Numéricos
Inteiros:
Numéric
os Reais:
Alfanumérico:
Tipo Tamanho (em bits) Domínio
byte 8 -128 .. 127short 16 -32.768 .. 32.767
int 32 -2.147.483.648 .. 2.147.483.647long (literal: L) 64 -2^64 .. 2^64-1
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 45
4.2 OPERADORES EM JAVA
• ATRIBUIÇÃO
– O operador de ATRIBUIÇÃO na linguagem Java é o SINAL DE IGUAL.
– Na ATRIBUIÇÃO a variável à esquerda recebe o valor da expressão à direita
Exemplos:
x = 100;
y = x + 3;
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 46
4.2 OPERADORES EM JAVA
• ARITMÉTICOS
– Os operadores aritméticos permitem a execução de operações sobre as variáveis
Operador Exemplo Comentário++ ++x ou x++ soma 1 em x antes ou depois de usar a variável-- --x ou x-- subtrai 1 em x antes ou depois de usar a variável+ x + y soma o conteúdo de x e y- x - y subtrai o conteúdo de y do conteúdo de x* x * y multiplica x por y/ x / y obtém o quociente de x por y% x % y obtém o resto da divisão de x por y+= x += y equivale a x = x + y-= x -= y equivale a x = x – y*= x *= y equivale a x = x * y/= x /= y equivale a x = x / y%= x %= y equivale a x = x % y
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 47
4.3 OPERADORES RELACIONAIS EM JAVA
• Os operadores RELACIONAIS permitem a comparação entre variáveis
Operador Exemplo Comentário== x == y conteúdo de x é igual ao de y?!= x != y conteúdo de x é diferente de y?<= x <= y conteúdo de x é menor ou igual ao de y?>= x >= y conteúdo de x é maior ou igual ao de y?< x < y conteúdo de x é menor que o de y?> x > y conteúdo de x é maior que o de y?
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 48
4.4 OPERADORES LÓGICOS EM JAVA
• Os operadores LÓGICOS permitem realizar combinações de operações relacionais, juntando diversas decisões em uma única expressão
Operação Operador Comentário
E && compara duas expressões avaliando o resultadocomo verdadeiro ou falso. Será verdadeiro se todasas expressões forem verdadeiras
OU || compara duas expressões avaliando o resultadocomo verdadeiro ou falso. Será verdadeiro se pelomenos uma das expressões forem verdadeiras
NEGAÇÃO ! nega o resultado de uma expressão. Se for falsopassa para verdadeiro. Se for verdadeiro passa parafalso.
E OU NEGAÇÃO
V e V = V V ou V = V NÃO V = F
V e F = F V ou F = V NÃO F = V
F e V = F F ou V = V
F e F = F F ou F = F
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 49
4.5 PALAVRAS RESERVADAS E
IDENTIFICADORES EM JAVA
• PALAVRAS RESERVADAS são todos os nomes pré-existentes na linguagem que tem algum significado.
– EXEMPLOS de palavras reservadas: public, class, int, double, etc.
• IDENTIFICADORES são todos os nomes criados pelo programador. São utilizados para nomear classe, atributos e métodos. Os identificadores não podem ter nomes que sejam palavras reservadas. Devem iniciar por letras.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 50
4.5 PALAVRAS RESERVADAS E
IDENTIFICADORES EM JAVA
• É possível definir um GRUPO DE VARIÁVEIS em uma mesma linha, usando o mesmo qualificador e tipo, separando-os por vírgula (,)
• A definição de uma variável, ou grupo de variáveis, sempre é finalizada com o símbolo PONTO-E-VÍRGULA (;).Exemplos:
private char letra, caracter;
private int x, y = 2, z;
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 51
4.6 TIPOS DE DADOS: CADEIA DE
CARACTERES (CLASSE STRING)
• Uma CADEIA DE CARACTERES em Java é denominada de String.
• Uma String não é um tipo primitivo, mas sim uma CLASSE e, portanto, seu nome é iniciado com uma letra maiúscula.
• O TAMANHO de uma String é limitado à memória disponível.
• Um char é representado entre apóstrofos (Ex: ‘a’), enquanto uma String é representado entre aspas (Ex: “a”).
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 52
4.6 TIPOS DE DADOS: CADEIA DE
CARACTERES (CLASSE STRING)
• A classe String usa o operador + para a concatenação entre strings.
– String nome = “Silva” + “sauro”;
• Principais métodos da classe String:
Método Funcionalidadeboolean equals(String s) comparar dois strings e retornar verdadeiro ou falsobooleanequalsIgnoreCase(String s)
comparar dois strings ignorando maiúscula e minúsculas
int length() retornar o número de caracteres da Stringint indexOf(String s) procurar o string s e retornar a posição onde encontrou. Se
não encontrou retorna -1char charAt(int i) retornar o caractere na posição i da string
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 53
4.6 TIPOS DE DADOS: CADEIA DE
CARACTERES (CLASSE STRING)
• Uma necessidade muito comum dos programadores Java é converter uma String para um tipo primitivo ou vice-versa.
• A tabela a seguir apresenta os principais métodos para conversão:
Método FuncionalidadeInteger.parseInt (String s); String para inteiroDouble.parseDouble (String s) String para real (double)Float.parseFloat (String s) String para real (float)String.valueOf (valor) Qualquer tipo primitivo para String
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 54
5. COMANDOS DE CONTROLE DE FLUXO: REPETIÇÃO - ENQUANTO
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 55
5. COMANDOS DE CONTROLE DE FLUXO:REPETIÇÃO
• As estruturas de CONTROLE DE REPETIÇÃO são utilizadas para repetir um determinado grupo de comandos por diversas vezes.
• As estruturas de REPETIÇÃO também são conhecidas por laços ou loop.
• Se não montadas adequadamente, as estruturas de REPETIÇÃO podem produzir laços infinitos em um programa, ou seja, o programa pode ficar eternamente executando o conjunto de instruções, até que seja retirado da memória de forma forçada.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 56
5. COMANDOS DE CONTROLE DE FLUXO:REPETIÇÃO
• As estruturas de CONTROLE DE REPETIÇÃO mais comuns são (entre parênteses seu nome em Java):
– baseadas em contador: para (for)– baseadas em condição: enquanto (while / do while)
• Quando usar qual?
– para (for): quando se sabe o número de vezes que o laço será executado;
– enquanto (while): quando não se tem certeza sobre o número de vezes que o laço será executado, podendo inclusive nunca ser executado;
– faça-enquanto (do-while): quando não se tem certeza sobre o número de vezes que o laço será executado, mas se sabe que ele tem que ser executado pelo menos uma vez;
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 57
5.1 COMANDOS DE REPETIÇÃO -ENQUANTO (WHILE / DO WHILE)
• As estruturas de repetição condicionais avaliam uma determinada condição lógica para fazer a execução do laço de repetição. A condição sempre será avaliada como verdadeira ou falsa.
• A estrutura condicional mais comum é o enquanto-faça. A estrutura enquanto-faça executa um conjunto de instruções enquanto a expressão lógica for avaliada como verdadeira.
• A condição pode estar no início ou no fim do bloco de execução.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 58
5.2 COMANDOS DE REPETIÇÃO –ENQUANTO (WHILE)
• Sintaxe e exemplo do comando de controle de repetição ENQUANTO com a condição no INÍCIO do bloco:
Em Java
while (expressão-lógica) {
<seqüência-de-comandos>
}
Em Java
int contador = 1;
int potencia = x;
while (potencia <= 100) {
potencia *= x;
contador++;
}
.......
Condição
Início
...........
............Fim
Sim
Não
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 59
5.2 COMANDOS DE REPETIÇÃO - FAÇA
ENQUANTO (DO WHILE)
• Sintaxe e exemplo do comando de controle de repetição ENQUANTO com a condição no FIM do bloco:
Em Java
do {
<sequência-de-comandos>
} while (expressão-lógica);
Em Java
int contador = 1;
int potencia = x;
do {
potencia *= x;
contador++;
} while (potencia <= 100);
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 60
5.2 COMANDOS DE REPETIÇÃO –ENQUANTO (WHILE / DO WHILE)
• IMPORTANTE:
– expressão-lógica: é a expressão avaliada antes de cada repetição do laço. Quando seu resultado for VERDADEIRO, <sequência-de-comandos> é executada
– na expressão lógica podem ser usados os operadores lógicos NAO, E ou OU, como uma estrutura de seleção do tipo se, por exemplo
• Em Java deve-se notar o uso de ponto e vírgula (;) após a expressão lógica APENAS no do-while.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 61
5.3 FURBOT – COMANDOS DE AVALIAÇÃO
DA SITUAÇÃO
• ehVazio (Direcao direcao) : boolean
– Método que verifique se a célula indicada por direção é vazia– Neste caso o furbot retorna um valor verdadeiro (true) – Se está ocupada o furbot retorna um valor falso (false)– O método não indica quem está ocupando aquela posição– Se a célula na direção apontada fica além dos limites do mundo,
o método retorna verdadeiro
• ehFim (Direcao direcao) : boolean
– Método que verifica se a célula na direção passada comoparâmetro fica além do mundo.
– Se ela for além do mundo retorna verdadeiro (true) senãoretorna falso (false)
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 62
5.3 FURBOT – COMANDOS DE AVALIAÇÃO
DA SITUAÇÃO
• Direcao
– Indica o caminho a ser testado pelo robô
• DIREITA: refere-se à posição à direita do robô
• ESQUERDA: refere-se à posição à esquerda do robô
• AQUIMESMO: refere-se à posição onde está o robô
• ABAIXO: refere-se à posição abaixo do robô
• ACIMA: refere-se à posição acima do robô
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 63
6. COMANDOS DE CONTROLE DE FLUXO: SELEÇÃO - SE
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 64
6. COMANDOS DE CONTROLE DEFLUXO: SELEÇÃO
• Utilizados para auxiliar e otimizar a construção de programas
• Tipos de estrutura de seleção no Java:
– Simples: se (if)
– Encadeadas: se-senão (if – else)
– Múltipla: escolha (switch case)
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 65
6.1 COMANDOS DE SELEÇÃO (SELEÇÃO
SIMPLES)
• Seleção Simples (se)– As estruturas de SELEÇÃO
SIMPLES apresentam uma condição que determina se o bloco de comandos a seguir deve ou não ser executado.
– Ele será executado se a condição for verdadeira.
.......
Condição
Início
............
Fim
SimNão
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 66
6.1 COMANDOS DE SELEÇÃO (SELEÇÃO
SIMPLES)
• Sintaxe e exemplo simplificado para verificar se um aluno está aprovado em uma disciplina
• Em Java, se houver apenas um comando a ser executado dentro da estrutura de controle, as chaves podem ser dispensadas. No caso de mais de um comando, elas são obrigatórias.
Em Java:
if (expressão-lógica) {
[bloco-instrucoes-verdadeiro]
}
Em Java:
if (media >= 6) {
situacao = “Aprovado”;
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 67
6.2 COMANDOS DE SELEÇÃO (SELEÇÃO
ENCADEADA)
• Seleção Encadeada (se-então)– As ESTRUTURAS DE SELEÇÃO
ENCADEADAS apresentam alternativas de ação diferentes de acordo com a situação avaliada.
– Se a condição testada for VERDADEIRA é executado um bloco de comandos. Se ela for FALSA, é executado outro bloco de comandos.
.......
Condição
Início
........... ............
Fim
SimNão
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 68
6.2 COMANDOS DE SELEÇÃO (SELEÇÃO
ENCADEADA)
• Sintaxe e exemplo para informar se um aluno está aprovado ou reprovado em uma disciplina:
Em Java:
if (expressão-lógica) {
[bloco-instrucoes-verdadeiro]
} else {
[bloco-instrucoes-falso]
}
Em Java:
if (media >= 6) {
situacao = “Aprovado”;
} else {
situacao = “Reprovado”;
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 69
6.3 COMANDOS DE SELEÇÃO (SELEÇÃO
COMPOSTA)
• Seleção Composta
– As ESTRUTURAS DE SELEÇÃO COMPOSTAS apresentam mais de uma condição e podem ser simples ou encadeadas.
– Devem ser utilizadas com os OPERADORES LÓGICOS E ou OU.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 70
6.3 COMANDOS DE SELEÇÃO (SELEÇÃO
COMPOSTA)
• Sintaxe e exemplo usando o E (&& em Java) para verificar se uma pessoa pode nadar em uma piscina:
Em Java:
if (condição1 && condição2) {
[bloco-instrucoes-
verdadeiro]
} else {
[bloco-instrucoes-falso]
}
Em Java:
if (temperatura > 25 && agua
== ‘L’) {
podeNadar = true;
} else {
podeNadar = false;
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 71
6.3 COMANDOS DE SELEÇÃO (SELEÇÃO
COMPOSTA)
• Sintaxe e exemplo usando o OU (|| em Java) para verificar se uma pessoa pode pagar meia entrada:
Em Java:
if (condição1 || condição2) {
[bloco-instrucoes-
verdadeiro]
} else {
[bloco-instrucoes-falso]
}
Em Java:
if (idade < 18 || idade >= 60)
{
meiaEntrada = true;
} else {
meiaEntrada = false;
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 72
6.4 FURBOT – COMANDOS DE POSIÇÃO
• getX() : int
– Método que retorna um valor inteiro contendo o número da coluna em que está o robô
– A primeira coluna é ZERO
• getY() : int
– Método que retorna um valor inteiro contendo o número da linha em que está o robô
– A primeira linha é ZERO
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 73
6.4 FURBOT – COMANDOS DE
MANIPULAÇÃO DE OBJETOS
• ehObjetoDoMundoTipo (String classe, Direcaodirecao) : boolean
– Método que retorna verdadeiro caso existe um objeto do tipo passado como parâmetro na direção informada
– Ex. ehObjetoDoMundoTipo("Alien", ACIMA)
• getObjeto(Direcao direcao) : ObjetoMundo
– Método que retorna o objeto da célula indicada em direção
– Se não tiver nada nessa célula, ou for além dos limites do mundo, retorna null
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 74
7. COMANDOS DE CONTROLE DE FLUXO: SUB-ROTINAS
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 75
7. COMANDOS DE CONTROLE DE FLUXO:SUB-ROTINAS
• São estruturas de controle em nível de unidade
• São rotinas (pequenos programas) que realizam uma determinada função específica
• Permitem modularizar os programas
• Permitem reutilização de código
• São ativadas por um programa principal ou outros subprogramas, causando um desvio
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 76
7. COMANDOS DE CONTROLE DE FLUXO:SUB-ROTINAS
Subprograma A
Subprograma C
Subprograma B
Programa
Principal
Subprograma D
Subprograma A
Subprograma C
Subprograma B
Programa
Principal
Programa
Principal
Subprograma D
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 77
7.1 MÉTODOS
• Em Orientação a Objetos as sub-rotinas são MÉTODOS das classes
• Tipos de Métodos em Java:
– Pré-definidas na biblioteca de classes da linguagem
– Definidas pelo programador em suas classes
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 78
7.1 MÉTODOS
• Os métodos operam sobre dados. Assim, normalmente os métodos têm valores de Entrada e Saída.
• Os dados de ENTRADA sobre os quais os métodos operam podem ser:
– ATRIBUTOS: são dados que já existem dentro da própria classe;– PARÂMETROS: são dados que não existem na classe, mas que
são necessários para o processamento do método.
• A SAÍDA gerada por um método pode ser:
– ATRIBUTO: neste caso o resultado da execução do método fica armazenado na própria classe;
– RETORNO: neste caso, o método devolve o resultado para quem solicitou, como um resultado de uma função.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 79
7.1 MÉTODOS
• Um método em Java tem:– Nome: define o nome do método
(identificador)– Qualificador: também chamado
de encapsulamento, define a visibilidade do método para outras classes (use public ou private)
– Tipo: define o tipo da informação que terá o resultado da sub-rotina (saída ou retorno)
• métodos sem retorno devem ser definidas como do tipo void;
• o resultado de um método deve ser retornado a partir da cláusula return
– Parâmetros: definem os dados que serão trocados entre o método e a rotina que o ativou (entrada ou saída)
• Sintaxe (definição):
qualificador tipo
identificador [(tipo
parâmetros)];
{
[declarações]
< Bloco >
return
<expressão>;
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 80
7.2 PARÂMETROS
• Em uma linguagem de programação os parâmetros são denominados de:
– Formais (Declaração)– Atuais ou Reais (Ativação)
• PARÂMETROS FORMAIS: devem ter a definição do tipo antes do nome da variável.
• PARÂMETROS ATUAIS ou REAIS: não devem ter a definição do tipo antes do nome da variável.
• TRANSFERÊNCIA DE PARÂMETROS
– Número de Parâmetros Formais = Número de Parâmetros Atuais/Reais.
– O Argumento Formal e seu correspondente Argumento Atual devem ser do mesmo tipo.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 81
7.2 PARÂMETROS
• PASSAGEM DE PARÂMETRO POR VALOR:
– Na passagem de parâmetro por valor, o parâmetro formal recebe o conteúdo do parâmetro atual.
– Exemplo:int troca (int a, int b)
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 82
7.2 PARÂMETROS
• PASSAGEM DE PARÂMETRO POR REFERÊNCIA:
– Na passagem de parâmetro por referência, o parâmetro formal e o parâmetro atual tem o mesmo endereço de memória.
– Ao alterar a variável relacionada ao parâmetro formal, a variável do parâmetro atual também é alterada
– Não podem ser utilizadas expressões como parâmetros atuais na ativação (chamada) da sub-rotina.
– No Java a passagem de parâmetros por referência é feita através do uso de classes como tipo
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 83
7.3 CHAMADAS
• Os métodos podem ser ativados em atribuições, condições ou em parâmetros de outros métodos.
• A chamada de um método deve seguir a sintaxe de ativação
• Sintaxe (ativação):
variavel = metodo(parâmetros);
ouSystem.out.println(“formato” + metodo (parâmetros));
ouif (metodo(parâmetros))
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 84
7.4 EXEMPLOS DE MÉTODOS DO FURBOT
• Alguns métodos utilizados do FURBOT:andarDireita();
andarEsquerda();
Como são métodos que apenas realizam uma ação e não retornam informação, são métodos com tipo de retorno void.
ehObjetoDoMundoTipo(“Classe”,DIRECAO):boolean
ehVazio(DIRECAO):boolean
São métodos que retornam um valor boolean que normalmente é utilizado para comparação em um comando if. Esses métodos também possuem parâmetros
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 85
8. ATRIBUTOS
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 86
8. ATRIBUTOS
• Propriedade ou característica de uma classe que descreve umintervalo de valores que os objetos podem representar;
• Descrevem o estado de um objeto;
• Normalmente é descrito por um substantivo;
• Possui um tipo de dado;
• Os atributos são declarados dentro da classe, porém fora dosmétodos;
• O atributo pode ser acessado por qualquer método da classe, logo,se um método precisa da informação que está contida no atributo,pode utilizá-la diretamente sem a necessidade do parâmetro.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 87
8. ATRIBUTOS
Calculadora Furbot
Numero1
Numero2 quantLinhas
colunaAtual
contAlien
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 88
8. ATRIBUTOS
• Um atributo em Java tem:– Nome: define o nome do
atributo (identificador)
– Qualificador: também chamado de encapsulamento, define a visibilidade do método para outras classes (normalmente private)
– Tipo: define o tipo da informação que ele armazena
• Sintaxe (definição):
qualificador tipo nome;
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 89
8. EXEMPLOS
public class Exe01 extends Furbot {
private int numero1;
private String nome;
private float resultado;
public static void main(String args[]) {
....
}
public void inteligencia(){
....
}
}
Os atributos são declarados dentro da classe e são visíveis em qualquerparte da classe, independente do tipo de método.
Atributos
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 90
9. COMANDOS DE CONTROLE DE FLUXO: SELEÇÃO - ESCOLHA
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 91
9. COMANDOS DE SELEÇÃO (SELEÇÃO
MÚLTIPLA)
• As estruturas de SELEÇÃO MÚLTIPLA permitem avaliar uma entre diversas alternativas
Escolha o temposol : vou à praiachuva : fico em casa
Fim escolha
Escolha a corverde : tenho esperançavermelho : estou apaixonado
azul : está tudo tranquiloFim escolha
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 92
9. COMANDOS DE SELEÇÃO (SELEÇÃO
MÚLTIPLA)
• Sintaxe e exemplo simplificado de um algoritmo para contar o número de pessoas de cada sexo:
Em Português Estruturado:
escolha <expressão-de-seleção>
opção 1 : <seqüência-de-comandos-1>
opção 2 : <seqüência-de-comandos-2>
.
senão
<seqüência-de-comandos-extra>
Em Português Estruturado:
escolha sexo
‘F’ : contF = contF + 1
‘M’ : contM = contM + 1
senão
contI = contI + 1
Em Java:
switch (<expressão>) {
case 1 : [bloco-de-comandos-1]
break;
case 2 : [bloco-de-comandos-2]
break;
.
default : [bloco-de-comandos-default]
}
Em Java:
switch (sexo) {
case ‘F’ : contF++;
break;
case ‘M’ : contM++;
break;
default : contI++;
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 93
9. COMANDOS DE SELEÇÃO (SELEÇÃO
MÚLTIPLA)
• Em Java a EXPRESSÃO pode ter como resultado um valor NUMÉRICO INTEIRO, CARACTERE, ENUMERAÇÃO ou STRING.
• Em Java a opção senão é denominada de defaulte é opcional.
• O break é utilizado para finalizar o switch e deve ser usado em cada condição.
• Não é possível usar intervalos de valores em java(ex. 1 a 5)
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 94
10. CRIAÇÃO DE OBJETOS
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 95
10. CRIAÇÃO DE OBJETOS
• O FURBOT permite a criação de objetos que podem ser inseridos em qualquer local do mapa
• Para serem inseridos os objetos precisam ser criados usando o método new()
• O método new() cria um endereço de memória (handle) para o objeto e permite que o mesmo possa receber e informar valores e proceder cálculos ou operações
• O endereço de memória alocado para o objeto deve ser armazenado em uma variável do tipo da classe do objeto que se deseja criar
• Sintaxe:Nome_Classe nome_objeto = new Nome_Classe();
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 96
10. CRIAÇÃO DE OBJETOS
• Exemplos:
– Para criar um numeroNumero numero = new Numero();
– Para criar um booleanoBooleano logico = new Booleano();
– Para criar um alienAlien alien = new Alien();
– Para criar um tesouroTesouro tesouro = new Tesouro();
– Para criar uma paredeParede parede = new Parede();
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 97
10. CRIAÇÃO DE OBJETOS
• Ao criar os objetos Numero, Booleano e Tesouro é necessário definir o seu conteúdo utilizando o método setValor()
• Exemplos:
– Para criar e definir o valor de um numeroNumero numero = new Numero();
numero.setValor (10);
– Para criar e definir o valor de um booleanoBooleano logico = new Booleano();
logico.setValor (true);
– Para criar um tesouroTesouro tesouro = new Tesouro();
tesouro.setValor (50);
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 98
10. CRIAÇÃO DE OBJETOS
• Para adicionar ou remover objetos do mundo podem ser utilizados os métodos:
– adicionarObjetoNoMundo (ObjetoDoMundo objeto, Direcao direcao) : void
• adiciona um objeto no mundo na posição relativa à direção informada.
– adicionarObjetoNoMundoXY(ObjetoDoMundo objeto, int X, int Y):
• adiciona um objeto no mundo na coordenada x,y.
– removerObjetoDoMundo(ObjetoDoMundo objeto) : • remove um objeto do mundo passado como parâmetro
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 99
10. CRIAÇÃO DE OBJETOS
• Exemplos:
– Para criar, definir e adicionar um numeroNumero numero = new Numero();
numero.setValor (10);
adicionarObjetoNoMundo (numero,
AQUIMESMO);
– Para criar e adicionar um AlienAlien alien = new Alien();
adicionarObjetoNoMundoXY (alien, 0, 0);
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 100
11. COMANDOS DE CONTROLE DE FLUXO: REPETIÇÃO – PARA FAÇA
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 101
11. COMANDOS DE REPETIÇÃO - PARA
FAÇA (FOR)
• As estruturas de repetição com contador permitem a execução de um grupo de comandos num determinado número conhecido de vezes.
• Exemplos:
Para 5 bombons faça
coma o bombom
Fim para
Para 40 alunos faça
calcule a média do aluno
Fim para
Para n valores faça
some o valor
Fim para
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 102
11. COMANDOS DE REPETIÇÃO - PARA
FAÇA (FOR)
• Sintaxe e exemplo para calcular a potência de um número x elevado a 5:
• Em Java as expressões podem ser:
– numéricas (real ou inteira) - ex: for (double x = 10; x > 1; x -= 0.5)– caractere - ex: for (char x = 'a'; x <= 'z'; x++).
Em Português Estruturado
para contador de inicio a
fim faça
bloco de comandos
fim para
Em Java
for (expressão 1; expressão 2;
expressão 3) {
[bloco de comandos};
}
Em Português Estruturado
potencia = 1
para contador de 1 a 5 faça
potencia = potencia * x
fim para
Em Java
int potencia = 1;
for (int contador = 1; contador <=
5; contador++) {
potencia *= x;
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 103
11. COMANDOS DE REPETIÇÃO - PARA
FAÇA (FOR)
• IMPORTANTE:
– expressão 1: é a expressão que define o valor de inicialização de uma variável de controle. Esta expressão é uma instrução de atribuição executada uma única vez antes de o laço ser iniciado
– expressão 2: é a expressão que define a condição de teste da variável de controle. Ela é avaliada como verdadeira ou falsa no início de cada execução do laço. Se a expressão for verdadeira, o bloco de comandos do laço é executado. Se for falsa, o laço é encerrado e o controle passa para a instrução seguinte. Normalmente usa os operadores relacionais: >, <, >=, <=
– expressão 3: é a expressão que define a forma de atualização da variável de controle a cada vez que o laço for repetido. Ela é executada ao final de cada repetição do laço. A atualização pode ser feita de forma crescente ou decrescente e em qualquer valor.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 104
12. TIPOS DE DADOS TEXTO (CHAR E STRING)
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 105
12.1 CHAR
• O tipo de dado char é um tipo primitivo e permite armazenar um único caractere;
• O valor inicial de um char, por default, no Java é ‘\0’.Em Português Estruturado
Na declaração
caractere nome;
Em Java
Na declaração
private char nome;
char nome = 'L';
Em Português Estruturado
Comparação
se nome = 'a' então
Atribuição
nome <- 'a';
Em Java
Comparação
if (nome == 'a')
Atribuição
nome = 'a';
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 106
12.2 STRING
• O tipo de dado String é uma classe do Java e permite armazenar caracteres alfa-numéricos;
• O valor inicial de uma String é null.Em Português Estruturado
Na declaração
texto nome;
Em Java
Na declaração
private String nome;
String nome = "Texto inicial";
Em Português Estruturado
Comparação
se nome = "a" então
Atribuição
nome <- "a";
Em Java
Comparação
if (nome.equals("valor")
Atribuição
nome = "valor";
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 107
12.2 STRING
• Por ser uma classe do Java, o tipo String possui alguns métodos para manipulação de seus dados, sendo alguns deles:
Método Significado
equals(String): boolean Compara se o texto da String é exatamente igual ao texto do parâmetro
equalsIgnoreCase(String): boolean Compara se o texto da String é igual ao do parâmetro sem diferenciar maiúsculas de minúsculas
charAt(int): char Retorna o caractere da posição indicada no parâmetro
indexOf(char): int Retorna a posição (número) da primeira ocorrência do caractere passado como parâmetro
length(): int Retorna o tamanho da String
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 108
12.2 STRING
Método Significado
split(String): String[] Retorna um vetor de String contendo as partes de uma String maior com base no texto divisor passado no parâmetro
toLowerCase(): String Retorna uma String com todos os caracteres minúsculos
toUpperCase(): String Retorna uma String com todos os caracteres maiúsculos
substring(int, int): String Retorna uma parte da String com base nos índices inicial e final passados como parâmetro
replace(String, String): String Retorna um String substituindo todas as ocorrências de uma String antiga pela nova
trim(): String Retorna uma String removendo os espaçosem branco das bordas externas
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 109
13. TIPOS ESTRUTURADOS
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 110
13. TIPOS ESTRUTURADOS
• Os problemas computacionais muitas vezes exigem o armazenamento de grande quantidade de dados em memória para posterior processamento.
• Exemplo 1: dado o nome de 50 pessoas, escrever estes dados em ordem alfabética.
– Problema: neste caso criaríamos uma variável para cada nome? E se fossem 1000 nomes?
• Exemplo 2: uma loja registrou em um dia a quantidade vendida de cada um de seus 200 produtos. Informe o código dos produtos que tiveram vendas acima da média.
– Problema: neste caso criaríamos 200 variáveis, uma para cada produto?
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 111
13. TIPOS ESTRUTURADOS
• Exemplo 3: a loja do exemplo 2 quer fazer um controle mensal de suas vendas. Para isto ela mantém os dados de cada um de seus produtos vendidos em cada dia do mês.
– Problema: quantas variáveis teríamos que criar neste caso?
• Exemplo 4: uma pessoa quer ir de uma cidade A até uma cidade F. Considerando que há vários caminhos possíveis e que são registradas as distâncias intermediárias entre as cidades (ex. de A a B, de B a C, de B a D, etc.) informe o caminho que tem a menor distância entre A e F.
– Problema: neste caso quantos caminhos vamos armazenar? Como vamos totalizar parcialmente as distâncias de cada caminho?
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 112
13. TIPOS ESTRUTURADOS
• Para a solução destes exemplos é necessário o uso de estruturas de dados.
• As estruturas de dados ampliam o conceito de variáveis, pois permitem armazenar diversas informações a partir da definição de uma única variável.
• Existem diversos tipos de estruturas de dados, tais como, vetores, matrizes, listas, filas, pilhas, árvores, arquivos, entre outras.
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 113
13.1 TIPOS ESTRUTURADOS
UNIDIMENSIONAIS (VETORES)
• Os Tipos Estruturados Unidimensionais permitem armazenar diversos dados de um mesmo tipo (homogêneos) em uma única variável.
• Os Tipos Estruturados Unidimensionais também são conhecidos como Vetores
• Cada dado armazenado é identificada por um índice, que é a posição em que o mesmo se encontra dentro da estrutura
• O índice define a posição do elemento no vetor• As aplicações mais comuns dos tipos estruturados são:
– armazenamento parcial de dados– pesquisa/busca de informações– ordenação
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 114
13.1 TIPOS ESTRUTURADOS
UNIDIMENSIONAIS (VETORES)
• A representação mais comum para um Vetor é uma tabela indexada, conforme o exemplo a seguir:
• No exemplo foi definida uma tabela de 10 valores, ou seja, nesta estrutura podem ser armazenados até 10 valores de um determinado tipo de dado
• As informações em um vetor são identificadas por um índice que normalmente é dado entre colchetes []
0 1 2 3 4 5 6 7 8 9
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 115
13.1 TIPOS ESTRUTURADOS
UNIDIMENSIONAIS (VETORES)
• Exemplos de Vetores em Computador:
– Vetor de números reais (tamanho: 15)
• nesse vetor a posição [6] armazena 8.5
– Vetor de nomes (tamanho: 10)
• nesse vetor o elemento da posição [2] é “Maria”;
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
5.77 18.59 32.5 0.87 56.7 33.3 8.5 7.0 10.5 6.2 17.8 1.5 5.32 99.7 0.01
0 1 2 3 4 5 6 7 8 9
João Pedro Maria José Darci Chico Elvira Eulália Manoel Betânia
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 116
13.1 TIPOS ESTRUTURADOS
UNIDIMENSIONAIS (VETORES)
• Exemplos de Vetores em Computador:
– Vetor de números inteiros (tamanho: 18)
• nesse vetor o elemento da posição [14] é 2
– Vetor de caracteres (tamanho: 12)
– nesse vetor a posição [10] armazena ‘R’;
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
20 89 132 45 666 58 3 47 99 125 255 23 139 47 2 13 931 409
0 1 2 3 4 5 6 7 8 9 10 11
Q @ Y O [ 7 D > J M R =
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 117
13.1 TIPOS ESTRUTURADOS
UNIDIMENSIONAIS (VETORES)
• Sintaxe e exemplo do uso de Tipos Estruturados Unidimensionais (Vetores):
Em Português Estruturado
Na declaração
tipo identificador [tamanho]
No corpo do programa
identificador[indice]
Em Java
Na declaração
tipo <identificador>[] = new
tipo[tamanho];
No corpo do programa
<identificador>[indice]
Em Português Estruturado
inteiro numeros [15]
para cont de 1 a 15 faça
numeros[cont] = cont
fim para
Em Java
int numeros[] = new int[15];
for (cont=0; cont<15; cont++) {
numeros[cont] = cont;
}
Universidade Regional de Blumenau - Introdução a Programação - Elaborado por: Maurício Capobianco Lopes e Luciana Pereira Araújo - 118
13.1 TIPOS ESTRUTURADOS
UNIDIMENSIONAIS (VETORES)
• TAMANHO: define o número de elementos do vetor.
• ÍNDICE: define a posição do elemento no vetor. Pode ser definido através de valores constantes, variáveis ou expressões.
• Em Java o índice inicial está sempre na posição 0 (zero).