Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação



Documentos relacionados
Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Laboratório de Programação

BC0501 Linguagens de Programação

Orientação a Objetos

Aula 3 Desvio Condicional

Exercícios de Java Aula 20 - Matrizes

2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}

Introdução à Lógica de Programação

//Leitura de Variáveis System.out.print("Digite a temperatura atual: "); temp = leia.nextfloat();

Análise e Projeto Orientados por Objetos

Algoritmos. Cláudio Barbosa

Introdução a Java. Hélder Nunes

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Lista de Exercícios. Vetores

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

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

ESTRUTURA CONDICIONAL

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Estrutura Condicional em Java

Capítulo 7. Estruturas de Decisão. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Programação: Estruturas de seleção

9 Comandos condicionais

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

INTRODUÇÃO À LINGUAGEM C++

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

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Prof. Esp. Adriano Carvalho

Guia de utilização da notação BPMN

A4 Projeto Integrador e Lista de Jogos

Compilado pela Prof a Sílvia Moraes Organizado por Stewart Unger

HISTÓRICO DAS REVISÕES N.ºREVISÃO DATA IDENTIFICAÇÃO DO DOCUMENTO 00 16/04/2007 Emissão inicial

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Resolução da lista de exercícios de casos de uso

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

02. [Manzano, 1996] Escreva um programa em C que apresente os quadrados dos números inteiros de 15 a 200.

e à Linguagem de Programação Python

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

Lista de Exercícios da 3ª Unidade. ( Ponteiros, Alocação dinâmica, Arquivos, Estruturas de Dados)

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

4 O Workflow e a Máquina de Regras

PCS LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

Projeto de Software Orientado a Objeto

Unidade IV: Ponteiros, Referências e Arrays

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Trabalho de laboratório Avaliação semestral Exame final MÉDIA PONDERADA CONCEITO

Comandos de repetição while

INF1013 MODELAGEM DE SOFTWARE

José Romildo Malaquias

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Exercícios de Revisão Java Básico

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Polimorfismo. Prof. Leonardo Barreto Campos 1

Roteiro do Programa e Entrada/Saída

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Aula 02: C# - Estruturas de Decisão

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Controle de Fluxo Comandos de decisão

3. Tipos de Dados, Constantes e Variáveis.

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.

TÉCNICO DE TECNOLOGIA DA INFORMAÇÃO

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Diferenças da versão 6.3 para a 6.4

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

IES-200. Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Me. Álvaro d Arce alvaro@darce.com.br

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

UML Diagramas. UML Diagramas. UML Diagrama Diagrama de Classes. UML Diagrama Diagrama de Classes

Manual de Instalação (TEF LOJA)

Controle de Fluxo Comandos de decisão

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

ISO/IEC 12207: Gerência de Configuração

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

MODELO ENTIDADE - RELACIONAMENTO

Internet e Programação Web

Trabalho de Implementação Jogo Reversi

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Implementação de Classe e Auto-Relacionamento em Java

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Lista de Exercícios 03b Repetição. 63) Escreva um programa que receba números do usuário enquanto eles forem positivos e

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

Questões de Concursos Públicos sobre Orientação a Objetos e UML

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Transcrição:

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 8 Prof. ISVega Março de 2004 Controle de Execução: Seleção Múltipla CONTEÚDO 8.1 Seleção Entre Duas Rotas............. 1 Exercícios.......................... 3 Objetivos Apresentar e estudar a estrutura de controle simples. 8.1 Seleção Entre Duas Rotas A bifurcação de uma rota também pode ser utilizada para representar o caso onde há a necessidade de se escolher uma dentre duas seqüências de responsabilidades de interesse. A escolha pode ser representada por uma condição associada a cada ramo da bifurcação. Este padrão estrutural de mapas é mostrado na Figura 8.1. A bifurcação da rota é guardada por uma condição. Se a sua avaliação produzir o valor true, desvia para um trecho distinto do caso da produção de false. [ condição = true ] a [ condição = false ] b Figura 8.1: Estrutura de um mapa de execução representando a escolha de uma entre duas rotas, baseada em uma condição. 1

Cada ramo da bifurcação encontra-se associado a uma expressão que representa a condição. Quando a condição é válida, prossegue-se a computação por um ramo da bifurcação. No caso da condição ser inválida, a computação prossegue pelo outro ramo. No caso do mapa da Figura 8.1, se o valor produzido pela avaliação da expressão for o valor true, a computação seguirá a rota que cruza a responsabilidade a. Entretanto, se a condição for inválida, a computação seguirá o outro ramo da bifurcação, cruzando a responsabilidade b. O diagrama sintático para a descrição de computações com seleção dupla é: CmdSelecao if ( Condicao ) Comando else Comando Tais estruturas podem ser programadas segundo o padrão: if( <condição> == true ) { // seqüência de passos quando a condição for true else { // seqüência de passos quando a condição for false Copyright c 1998-2004, Dr. Italo S. Vega 8-2

EXERCÍCIOS 8.1 SELEÇÃO DE DUAS ROTAS Tarefa 8.1.1 Tarefa 8.1.2 Crie o projeto ex8.1. Crie a classe Tanque da seguinte forma: public class Tanque { public int nivel; public void obternivel( int novo ) { nivel = novo; Tarefa 8.1.3 Crie a classe Detetor da seguinte forma: public class Detetor { public Tanque t; public void detetar() { String msg = ""; int dado = t.nivel; if( dado > 5 ) { msg = "Acima do limite"; else { msg = "Normal"; public void mostrar( String resultado ) { System.out.println( resultado ); Tarefa 8.1.4 Crie os objetos d:detetor e t:tanque. Com mensagens apropriadas enviadas para estes objetos, preencha a seguinte tabela: dado 4 5 6 Monitor Tarefa 8.1.5 O mapa de execução mostrado na Figura 8.2 procura descrever computações realizadas por objetos das classes Tanque e Detetor. Copyright c 1998-2004, Dr. Italo S. Vega 8-3

dado:int [ dado > 5 ] obternivel( ) nivel:int Acima do limite msg:string Normal mostrar( msg ) Figura 8.2: Mapa de execução para a computação descrita pela aplicação Java. A seqüência de responsabilidades do mapa corresponde à seqüência de ações descritas pelo código Java anteriormente proposto? Justifique a sua resposta. Tarefa 8.1.6 e t:tanque. Refaça o mapa da Figura 8.2, acrescentando os contextos d:detetor 8.2 ELSE PERDIDO (Adaptado de Deitel & Deitel, ex. 4.21, p. 153.) Considere a seguinte Aplicacao no diretório ex8.2: public class Aplicacao { public int x; public void mudarx( int novo ) { x = novo; public int y; public void mudary( int novo ) { y = novo; public void f() { if( x < 10 ) if( y > 10 ) System.out.println( "*****" ); else System.out.println( "#####" ); System.out.println( "$$$$$" ); Tarefa 8.2.1 Elabore um mapa de execução para a seqüência de responsabilidades produzida por esta aplicação. Suponha que os valores das variáveis x e y sejam definidos antes do passo f(). Tarefa 8.2.2 Qual o resultado da execução desta aplicação quando x for igual a 9 e y for igual a 11? Tarefa 8.2.3 Qual o resultado da execução desta aplicação quando x for igual a 11 e y for igual a 9? Tarefa 8.2.4 Tarefa 8.2.5 Crie o projeto ex8.2. Codifique a aplicação e verifique os resultados da sua execução. Tarefa 8.2.6 Altere a lógica da computação de modo que, quando y <= 10, a aplicação mostre "#####" e "$$$$$". Copyright c 1998-2004, Dr. Italo S. Vega 8-4

Tarefa 8.2.7 Reescreva a aplicação utilizando as regras de estilo do laboratório. 8.3 AVALIAÇÃO DE PESO Considere o problema de transformar o peso e a altura de um paciente em uma de três mensagens: "Paciente com pouco peso" "Paciente com peso normal" "Paciente com muito peso" O resultado deve ser gerado a partir de três informações numéricas: (i) o peso do paciente em kg, (ii) a altura do paciente em metros, e (iii) o código do sexo ( 0 para homens, 1 para mulheres). Pode-se assumir que o peso ideal de um paciente é proporcional a sua altura, e que as mensagens de subpeso ou sobrepeso nao devem aparecer, a não ser em casos nos quais o peso do paciente difere do peso ideal por mais do que 10%. Tarefa 8.3.1 Proponha um mapa de execução destacando passos importantes de uma computação que produza os resultados solicitados. Tarefa 8.3.2 Organize os passos em contextos de execução apropriados. Considere, no mínimo, a existência do contexto p:paciente para a execução de passos da computação. Tarefa 8.3.3 Tarefa 8.3.4 Tarefa 8.3.5 Crie o projeto ex8.3. Codifique o mapa anteriormente elaborado. Preencha a tabela com a ajuda do seu programa: Peso Altura Sexo Mensagem 50 kg 1, 55 m 1 60 kg 1, 75 m 1 80 kg 1, 80 m 0 65 kg 1, 80 m 1 130 kg 1, 60 m 0 8.4 ANÁLISE DE UM ATLETA Baseado na no ritmo cardíaco de um atleta (medido em batimentos por minuto), deseja-se produzir um número da seguinte forma: (i) se o ritmo é menor do que 60, deve-se retornar -1; (ii) se o ritmo é maior do que 80, retorna-se 1; (iii) senão retorna-se 0. Uma outra necessidade, é transformar a gordura de uma atleta, representada como uma percentagem do seu peso, em um de três inteiros: (i) se a percentagem de gordura for inferior a 10%, deve-se retornar -1; (ii) se for maior do que 20%, retornase 1; (iii) senão retorna-se 0. Tarefa 8.4.1 Proponha um mapa de execução destacando passos importantes de uma computação que produza os resultados solicitados. Copyright c 1998-2004, Dr. Italo S. Vega 8-5

Tarefa 8.4.2 Organize os passos em contextos de execução apropriados. Considere, no mínimo, a existência do contexto a:atleta para a execução de passos da computação. Tarefa 8.4.3 Tarefa 8.4.4 Tarefa 8.4.5 Crie o projeto ex8.4. Codifique o mapa anteriormente elaborado. Preencha a tabela com a ajuda do seu programa: Ritmo Gordura Resultado Ritmo Resultado Gordura 60 bpm 5% m 65 bpm 10% m 70 bpm 15% m 80 bpm 20% m 90 bpm 25% m 8.5 SITUAÇÃO DE UM ALUNO COM RECUPERAÇÃO A situação final de um aluno depende das notas obtidas nas provas P1 e P2. Com base nestas notas, a sua média é calculada pela fórmula: MF = (P1 + P2)/2 A situação final do aluno será APROVADO, caso o valor de MF seja maior ou igual a 5. Se o aluno não foi aprovado, ele faz uma prova de recuperação PR. A média a ser utilizada para determinar a situação do aluno neste caso é: MFR = 0, 3MF + 0, 7PR A situação do aluno, neste caso, será APROVADO, se MFR for maior do que 5; senão, será REPROVADO. Tarefa 8.5.1 Proponha um mapa de execução onde se garanta uma seqüência de responsabilidades que apresente a situação final de um aluno. Tarefa 8.5.2 Refaça o mapa proposto acrescentando os contextos de execução p:professor e a:aluno. Proponha uma distribuição razoável dos passos da computação. Tarefa 8.5.3 Tarefa 8.5.4 anterior. Tarefa 8.5.5 Crie o projeto ex8.5. Escreva as classes que implementam o mapa elaborado na tarefa Execute a aplicação e preencha a seguinte tabela: P1 P2 PR MF MFR Situação 6 4-3 7-5 5-3 2 7 3 2 4 Copyright c 1998-2004, Dr. Italo S. Vega 8-6

8.6 COMPARAÇÃO DE NÚMEROS O jogo careta tem a seguinte regra: em 10% das jogadas, se o número inteiro gerado pelo computador for menor do que o indicado pelo jogador, o computador ganha. Caso contrário, o jogador ganha. (A biblioteca Java oferece um mecanismo para gerar números inteiros aleatoriamente. Importe a classse java.util.random. Crie um objeto desta classe. Ao enviar a mensagem nextint(), este objeto retorna o próximo inteiro da seqüência aleatória.) Tarefa 8.6.1 Proponha um mapa de execução destacando passos importantes de uma computação que reproduza este jogo computacionalmente. Se o jogador for vitorioso, deve-se mostrar :); senão, deve-se mostrar :(. Tarefa 8.6.2 Organize os passos em contextos de execução apropriados. Considere, no mínimo, a existência dos contextos j:jogador e c:computador para a execução de passos da computação. Distribua os passos convenientemente entre estes contextos. Suponha que j apresente uma variável aposta:int que armazene o número apostado pelo jogador. Também acrescente a variável aleatorio:int em c, que armazena o valor gerado aleatoriamente. Tarefa 8.6.3 Crie o projeto ex8.6. Tarefa 8.6.4 Codifique o mapa anteriormente elaborado. Acrescente passos de computação que apresentem os valores envolvidos na decisão do vitorioso. 8.7 CONTA DE CRÉDITO Desenvolva uma aplicação em Java que determine se a conta de crédito de um cliente em um supermercado excedeu ou não o seu limite. Para cada cliente, são conhecidos: Número da conta Saldo no início do mês Total das compras realizadas no mês Total de bônus oferecidos ao cliente como prêmio Limite de crédito da conta A aplicação deverá obter cada uma destas informações como inteiros, calcular o novo saldo da conta (=saldo inicial + compras - bônus), mostrar o novo saldo, e determinar se este novo saldo excede o limite de crédito do cliente. Para os clientes que excederam o limite, a aplicação deverá mostrar a mensagem: Limite de crédito excedido. a) Elabore um mapa de execução representando as diferentes seqüências de responsabilidades desta aplicação. b) Refaça o mapa proposto acrescentando os contextos da aplicação, do teclado e da tela. c) Escreva as classes que implementam o mapa elaborado na tarefa anterior no diretório ex8.7. Copyright c 1998-2004, Dr. Italo S. Vega 8-7