Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Método Conversor2 e verificação de números primos, Notas de estudo de Informática

A classe conversor2 e um método para verificar se um número é primo. O método utiliza a lógica de divisibilidade para encontrar divisores e determinar se o número é primo. Além disso, há exemplos de cálculos de área de circunferência, área de triângulo retângulo e cálculo de fatorial.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 26/05/2007

rodrigo-custodio-6
rodrigo-custodio-6 🇧🇷

4 documentos

1 / 155

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIVERSIDADE DE SÃO PAULO
INSTITUTO DE MATEMÁTICA E ESTATÍSTICA
Departamento de Ciência da Computação
Introdução à Ciência da Computação
com Java e Orientação a Objetos
Fabio Kon
Alfredo Goldman
Paulo J. Silva e Silva
Editado e Revisado por:
Raphael Y. de Camargo
São Paulo, 11 de fevereiro de 2004
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Método Conversor2 e verificação de números primos e outras Notas de estudo em PDF para Informática, somente na Docsity!

UNIVERSIDADE DE SÃO PAULO

INSTITUTO DE MATEMÁTICA E ESTATÍSTICA

Departamento de Ciência da Computação

Introdução à Ciência da Computação

com Java e Orientação a Objetos

Fabio Kon

Alfredo Goldman

Paulo J. Silva e Silva

Editado e Revisado por: Raphael Y. de Camargo

São Paulo, 11 de fevereiro de 2004

ii

iii

Agradecimentos

Este livro não seria possível sem a colaboração de inúmeros alunos e profes- sores do IME/USP.

Leo Kazuhiro Ueda e Nelson Posse Lago atuaram como assistentes de ensino na primeira vez em que esta disciplina foi ministrada e foram responsáveis por inúmeras contribuições. A aula dirigida do Dr. Java foi preparada pelo Leo. Fabiano Mitsuo Sato, George Henrique Silva e Igor Ribeiro Sucupira foram monitores da disciplina também em 2003 e colaboraram com alguns exercícios.

Raphael Y. de Camargo realizou um excelente trabalho na edição e revisão do livro além de colaborar com alguns exercícios. O Prof. João Eduardo Ferreira, nosso colega no ensino da disciplina de introdução, têm nos dado inúmeras sugestões úteis.

Agradecemos ao Prof. Walter Savitch por ter autorizado o uso de sua classe para entrada de dados.

Finalmente, agradecemos aos alunos de MAC 110 e aos professores que não foram citados mas que deram sugestões e nos incentivaram a escrever este livro.

Sumário

  • 1 Teatro de Objetos Prefácio xi
    • 1.1 Introdução
    • 1.2 Disputa de Pênaltis
  • 2 História da Computação
    • 2.1 História da Computação e Arquitetura do Computador
    • 2.2 E a evolução do software?
  • 3 Conversor de Temperaturas
    • 3.1 Analogia entre dramatização da disputa de pênaltis e Programação Orientada a Objetos
    • 3.2 Um exemplo real em Java: um conversor para transformar temperaturas de Celsius para Fahrenheit
    • 3.3 Exercícios:
  • 4 Testes Automatizados
    • 4.1 Testes
    • 4.2 Exercícios
    • 4.3 Resoluções
  • 5 Métodos com vários parâmetros
    • 5.1 Métodos com vários parâmetros
    • 5.2 Exercícios
  • 6 if else encaixados
    • 6.1 if else encaixados
    • 6.2 Exercícios
  • 7 Programas com Vários Objetos
    • 7.1 Programas com Vários Objetos
    • 7.2 Exercício
  • 8 Laços e Repetições
    • 8.1 Laços em linguagens de programação
    • 8.2 O Laço while
    • 8.3 Números primos vi SUMÁRIO
    • 8.4 Exercícios
  • 9 Expressões e Variáveis Lógicas
    • 9.1 Condições como expressões
    • 9.2 Precedência
    • 9.3 Exemplos
    • 9.4 Exercício:
  • 10 Mergulhando no “while”
    • 10.1 Um pouco mais sobre primos.
    • 10.2 Uma biblioteca de funções matemáticas.
    • 10.3 do...while
    • 10.4 Exercícios
  • 11 Caracteres e cadeias de caracteres
    • 11.1 Um tipo para representar caracteres
    • 11.2 Cadeias de Caracteres (Strings)
    • 11.3 Exercícios:
  • 12 Manipulando números utilizando diferentes bases
    • 12.1 Exercícios
  • 13 Arrays (vetores)
    • 13.1 Arrays (vetores)
      • 13.1.1 O atributo length
      • 13.1.2 Inicialização de arrays
    • 13.2 Criação de Programas Java
    • 13.3 Exercícios
  • 14 for, leitura do teclado e conversão de Strings
    • 14.1 O comando for
    • 14.2 Leitura do Teclado
    • 14.3 Conversão de String para números
    • 14.4 Exercícios
  • 15 Laços Encaixados e Matrizes
    • 15.1 Laços encaixados
    • 15.2 Matrizes (arrays multi-dimensionais)
    • 15.3 Exemplo: LIFE, o jogo da vida
    • 15.4 Exercícios
  • 16 Busca e ordenação SUMÁRIO vii
    • 16.1 Busca
    • 16.2 Pondo ordem na casa
    • 16.3 Exercícios
  • 17 Busca binária, fusão e o que são as variáveis
    • 17.1 Busca binária
    • 17.2 Fusão
    • 17.3 O que guardam as variáveis?
    • 17.4 Exercícios
  • 18 Construtores e especificadores de acesso
    • 18.1 Construtores
    • 18.2 Especificadores de acesso
    • 18.3 Exercícios
  • 19 Interfaces
    • 19.1 O Conceito de Interfaces
    • 19.2 Um primeiro exemplo
    • 19.3 Implementando mais de uma interface por vez
    • 19.4 Um exemplo mais sofisticado
    • 19.5 Exercícios:
  • 20 Herança
    • 20.1 O Conceito de Herança
    • 20.2 Terminologia de herança
    • 20.3 Implementação de herança na linguagem Java
    • 20.4 Hierarquia de Classes
    • 20.5 Relacionamento “é um”
    • 20.6 Resumo
    • 20.7 Exercícios
  • 21 Javadoc
    • 21.1 Javadoc
  • 22 O C que há em Java
    • 22.1 O C que há em Java
    • 22.2 Detalhes de entrada e saída
    • 22.3 Declaração de variáveis
    • 22.4 Parâmetros de funções
    • 22.5 Um último exemplo
  • A Utilizando o Dr. Java viii SUMÁRIO
    • A.1 Introdução
      • A.1.1 Como obter, instalar e executar o DrJava
    • A.2 Conversor de Temperatura simples
    • A.3 Tratando erros

Lista de Figuras

2.1 Arquitetura do ENIAC...................................... 10 2.2 Arquitetura de Von Neumann................................... 10

20.1 Diagrama de herança....................................... 116 20.2 Hierarquia de classes representando os seres vivos........................ 118 20.3 Hierarquia errada......................................... 119

21.1 Documentação gerada pelo Javadoc............................... 125

ix

Prefácio

Caros alunos e alunas de MAC-110, Sejam bem-vindos aos maravilhoso mundo da Ciência da Computação. Neste primeiro semestre do seu curso, dentre as inúmeras novidades que vocês encontrarão, estará a disciplina de Introdução à Ciência da Computação onde vocês irão aprender os elementos básicos da programação de computadores e terão contato com alguns dos conceitos fundamentais da Ciência da Computação. Pela segunda vez no IME/USP, em 2004 a disciplina será baseada numa das mais modernas e sofisticadas linguagens de programação: Java. Pela primeira vez, vamos utilizar esta apostila e esperamos que ela lhes ajude na fascinante empreitada de aprender uma linguagem de programação. Esperamos melhorar a apostila sempre que possível. Portanto, se você achar algum erro ou tiver alguma sugestão para melhorá-la, não deixe de nos escrever.

Abraços e um bom 2004!

São Paulo, fevereiro de 2004.

Alfredo Goldman, Fabio Kon e Paulo J. Silva e Silva

xi

xii PREFÁCIO

2 CAPÍTULO 1. TEATRO DE OBJETOS

- Batedor de pênalti (10 atores)

  • Torcedor. Os torcedores são divididos em dois tipos: - Torcedor educado (4 atores) - Torcedor mal-educado (4 atores)

O professor será responsável por escolher os alunos que desempenharão cada papel. Se houver limitação de espaço, é conveniente que os 8 torcedores fiquem em suas próprias carteiras para não tumultuar muito o ambiente. Obviamente, o professor pode também aumentar ou diminuir o número de torcedores e de batedores de pênalti. Para desempenhar o papel de torcedores, uma boa dica é o professor escolher alunos que pareçam bem barulhentos e faladores (por exemplo, a turma do fundão). Ao escolher os atores, o professor deverá entregar um cartão preso com um barbante que ficará pendurado no pescoço do ator e conterá informações sobre o papel desempenhado pelo autor. As informações são:

  1. Nome do papel
  2. Mensagens que o personagem é capaz de entender
  3. Atributos do personagem

Os três tipos de informação acima já devem vir pré-escritos à caneta no cartão mas o valor dos atributos do personagem devem ser escritos na hora à lápis pelo professor. Alguns papéis, como o Juiz, não possuem nenhum atributo. Outros papéis podem possuir um ou mais atributos, o Jogador, por exemplo pode possuir como atributos o nome do time ao qual pertence e o número da sua camisa. No caso de o jogador ser um Goleiro, o atributo número da camisa pode vir escrito à caneta como valendo 1. Além deste cartão que fica pendurado no pescoço do ator, cada ator recebe um script descrevendo o seu comportamento: para cada mensagem recebida pelo ator, o script descreve quais ações devem ser tomadas pelo ator. O professor não deve se esquecer de trazer uma bola para esta atividade e deve tomar cuidado para que nenhuma janela seja quebrada durante a realização da atividade. O tempo total estimado para a realização da atividade é de 60 minutos. Eis uma descrição detalhada dos dados que deverão aparecer nos cartões descritivos e no script (comporta- mento) de cada um dos 26 atores participantes da encenação.

  1. Goleiro
    • Cartão de Identificação - Nome do Papel: Goleiro - Mensagens que entende: SuaVez, Cobrança Autorizada, VenceuOTimeX - Atributos: Time:, Camisa número: 1
    • Comportamento ( Script ) - mensagem: SuaVez ⇒ ação: posiciona-se na frente do gol e fica esperando pela cobrança do pênalti.

1.2. DISPUTA DE PÊNALTIS 3

- mensagem: CobrançaAutorizada ⇒ ação: concentra-se na bola que será chutada pelo ad- versário e faz de tudo para não deixar que a bola entre no gol. O goleiro não pode se adiantar antes do chute do adversário. Após a cobrança sair do gol para dar lugar ao goleiro adversário. - mensagem: VenceuOTimeX ⇒ ação: se TimeX é igual ao atributo Time no seu cartão de iden- tificação, comemore; caso contrário, xingue o juiz (polidamente! :-).

  1. Batedor de Pênalti
  • Cartão de Identificação - Nome do Papel: Batedor de Pênalti - Mensagens que entende: SuaVez, CobrançaAutorizada, VenceuOTimeX - Atributos: Time:, Camisa número:
  • Comportamento - mensagem: SuaVez ⇒ ação: posiciona-se na frente da bola e fica esperando pela autorização do juiz. - mensagem: CobrançaAutorizada ⇒ ação: chuta a bola tentando marcar um gol. Após a cobrança voltar para junto do seu técnico para dar lugar à próxima cobrança. - mensagem: VenceuOTimeX ⇒ ação: se TimeX é igual ao atributo Time no seu cartão de iden- tificação, comemore; caso contrário, xingue o juiz (polidamente! :-).
  1. Torcedor Educado
  • Cartão de Identificação - Nome do Papel: Torcedor Educado - Mensagens que entende: Ação, VenceuOTimeX - Atributos: Time:, Camisa número: 12
  • Comportamento - mensagem: Ação ⇒ ação: assista ao jogo emitindo opiniões inteligentes sobre o andamento da peleja e manifestando o seu apreço e desapreço pelo desenrolar da disputa. - mensagem: VenceuOTimeX ⇒ ação: se TimeX é igual ao atributo Time no seu cartão de identificação, comemore e faça um comentário elogioso sobre o seu time; caso contrário, elogie o adversário e parabenize o seu time pelo empenho.
  1. Torcedor Mal-Educado
  • Cartão de Identificação - Nome do Papel: Torcedor Mal-Educado - Mensagens que entende: Ação, VenceuOTimeX - Atributos: Time:, Camisa número: 12
  • Comportamento

1.2. DISPUTA DE PÊNALTIS 5

- mensagem: RepitaCobrança ⇒ ação: envie a mensagem SuaVez para o jogador que acabou de efetuar a cobrança. - mensagem: VenceuOTimeX ⇒ ação: se TimeX é igual ao atributo Time no seu cartão de iden- tificação, comemore; caso contrário, diga que o seu time foi prejudicado pela arbitragem e que futebol é uma caixinha de surpresas.

  1. Bandeirinha
  • Cartão de Identificação - Nome do Papel: Bandeirinha - Mensagens que entende: Cobrança Autorizada, VenceuOTimeX
  • Comportamento - mensagem: CobrançaAutorizada ⇒ ação: verifique se o goleiro realmente não avança antes de o batedor chutar a bola. Caso ele avance, envie uma mensagem Irregularidade para o Juiz. - mensagem: VenceuOTimeX ⇒ ação: se TimeX não é o nome do time da casa, distancie-se da torcida pois você acaba de se tornar um alvo em potencial.

6 CAPÍTULO 1. TEATRO DE OBJETOS