introdução a programação i
DESCRIPTION
Introdução a Programação I. A Long long Time ago…. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/1.jpg)
Introdução a Programação I
![Page 2: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/2.jpg)
A Long long Time ago…
o ENIAC. Esta máquina das cavernas media 17m x 9m, era capaz de fazer 38 divisões e 357 multiplicações por segundo e levava 2 horas para calcular o mesmo que 100 engenheiros levariam 1 ano apenas com lápis e papel. Seriam necessárias 1.000.000 destas máquinas para poder competir com um único PlayStation 3...
![Page 3: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/3.jpg)
Máquina de Fazer contas
previsão meteorológica: Para fazer uma previsão corretamente para um país como o Brasil são necessárias aproximadamente 155.520.000.000.000.000 contas
100 contas por segundo, irá levar mais ou menos 3 bilhões de anos (mais ou menos a idade da Terra...) para calcular a previsão do tempo para o dia de amanhã no Brasil.
![Page 4: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/4.jpg)
O que faz um computador?
+, -, /, x
>, <, =
![Page 5: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/5.jpg)
CISC x RISC
![Page 6: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/6.jpg)
al-Khowarizm ou Algoritmos
1. Pegar uma escada;2. Posicionar abaixo da lâmpada;3. Pegar uma nova lâmpada;4. Remover a lâmpada queimada;5. Colocar a nova lâmpada;6. Guardar a escada.
![Page 7: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/7.jpg)
O algoritmo mais antigo do mundo
Um dos algoritmos mais antigos é o de Euclides, que foi escrito na Grécia em torno de 300 A.C. (adivinhe como era o nome do matemático que o escreveu...). Este algoritmo se propõem a encontrar o maior divisor inteiro comum entre um par de números.
O algoritmo diz:
divida um dos números pelo outro e pegue o resto desta divisão pegue o segundo número da divisão e coloque-o no lugar do primeiro, dividindo-o pelo resto obtido no cálculo anterior. Continue este procedimento até que o resto da divisão seja zero. O último resto obtido será o maior divisor comum.
3654 1365 resto 9241365 924 resto 441924 441 resto 42441 42 resto 2142 21 resto 0
![Page 8: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/8.jpg)
Definição Formal
Algoritmo é uma seqüência ordenada e finita de passos bem definidos que descrevem como realizar uma certa tarefa específica.
Propriedades de um algoritmo:Os passos obedecem a uma ordem específica;Não existe ambigüidade; O número de passos é finito.
![Page 9: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/9.jpg)
Áreas da Computação
- Banco de Dados: desenvolve algoritmos para gerar e manipular um volume grande de dados;- Computação Gráfica: desenvolve soluções para sintetizar imagens numa tela plana, buscando
simular (através de algoritmos) a iluminação, sombras, reflexos, etc.- Inteligência Artificial: busca algoritmos que de alguma forma procuram resolver problemas de
planejamento ou de simulação de comportamento;- Otimização: procura algoritmos que sejam mais eficientes dos que os conhecidos
(normalmente esta efixiência é medida em tempo).- Entretenimento: Faz algoritmos para dar razão de ser ao PlayStation e ao Xbox...
![Page 10: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/10.jpg)
Linguagem dos computadores
- Linguagem mais simples- Linguagem Matemática e binária: 100111010101001001- Alfabeto- Bits e bytes- CPUs de 8, 16, 24, 64 e 128 bits
![Page 11: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/11.jpg)
Linguagem de Programação
![Page 12: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/12.jpg)
Linguagem de Programação
- C++- JAVA- C- Pascal- Fortran- Visual Basic- ASP- LUA- Phyton- C#- SQL
![Page 13: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/13.jpg)
Pseudo-código
Declare N1, N2, N3 como inteiro
Escreva “Entre com o dividendo e com o divisor: ”Leia N1,N2
Se N2≠0 então
N3 ← N1 div N2
Escreva “O quociente é igual a”, N3
SenãoEscreva “Operação Inválida”
FimSe
![Page 14: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/14.jpg)
Compiladores
![Page 15: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/15.jpg)
Interpretadores
![Page 16: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/16.jpg)
Máquina Virtual
![Page 17: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/17.jpg)
Insetos (Bugs...)
![Page 18: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/18.jpg)
Debugers
![Page 19: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/19.jpg)
Sintaxe x Semântica
![Page 20: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/20.jpg)
CompiladorIDE - Integrated Development Environment
![Page 21: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/21.jpg)
Arquitetura de Computadores
Barramento
CPU
UC
ULA
RC
Dispositivo de
Entrada e SaídaMemória
![Page 22: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/22.jpg)
Barramento
![Page 23: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/23.jpg)
Unidade de Controle
Barramento
CPU
UC
ULA
RC
Dispositivo de
Entrada e SaídaMemória
![Page 24: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/24.jpg)
Unidade Lógica e Aritimética
Barramento
CPU
UC
ULA
RC
Dispositivo de
Entrada e SaídaMemória
![Page 25: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/25.jpg)
Registradores
Barramento
CPU
UC
ULA
RC
Dispositivo de
Entrada e SaídaMemória
![Page 26: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/26.jpg)
Operações Elementares
![Page 27: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/27.jpg)
Atribuição
Vidas = 5;
![Page 28: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/28.jpg)
Avaliação de Expressões
(5 * PI) / 360
![Page 29: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/29.jpg)
Precedência de Operadores
5+4/2 ?
![Page 30: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/30.jpg)
Leitura de dados
Le (posição de mouse);
![Page 31: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/31.jpg)
Escrita de dados
Imprime “Iniciando fase 1”
![Page 32: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/32.jpg)
Palavras Reservadas
![Page 33: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/33.jpg)
Case Sensitive
Posicao x posicao
![Page 34: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/34.jpg)
O Primeiro Programa
Iniciar programa Imprimir “Hello Word”Finalizar programa
![Page 35: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/35.jpg)
Traduzindo para o JAVA(ou para uma linguagem de computador...)
class HelloWorld{ public void main(String[] args) { System.out.print("Hello World!"); }}
![Page 36: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/36.jpg)
Dissecando o Programa
class HelloWorld{ public void main(String[] args) { System.out.print("Hello World!"); }}
![Page 37: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/37.jpg)
Dissecando o Programa
class HelloWorld{ public void main(String[] args) { System.out.print("Hello World!"); }}
![Page 38: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/38.jpg)
Dissecando o Programa
class HelloWorld{ public void main(String[] args) { System.out.print("Hello World!"); }}
![Page 39: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/39.jpg)
Escoposclass jogo { realize leitura de teclado { ... // Aqui chamamos mecanismos de ler teclado } Movimente o personagem { ... // Usando a entrada, movimentamos o personagem ... // conforme desejado }}
![Page 40: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/40.jpg)
Comentários
class HelloWorld{ /* O método main sempre deve estar presente num programa padrão. */
public void main(String[] args) { System.out.print("Hello World!"); //Imprime a mensagem }}
![Page 41: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/41.jpg)
Dicas sobre comentários
![Page 42: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/42.jpg)
Dissecando o Programa
class HelloWorld{ public void main(String[] args) { System.out.print("Hello World!"); }}
![Page 43: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/43.jpg)
Saída de Dados
class HelloWorld{ public void main(String[] args) { System.out.print("Hello World!"); }}
![Page 44: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/44.jpg)
Saída de Dados
padrão outros
![Page 45: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/45.jpg)
Métodos e Funções
System.out.print("Hello World!");
![Page 46: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/46.jpg)
Como saber o que fazem?
a. Saber qual é a sintaxe do método.b. Saber o que o método faz ou resolve.c. Saber quais são os parâmetros ou argumentos do método.
![Page 47: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/47.jpg)
Analisando o método print...
a. A sintaxe do método é System.out.print ([conteúdo a ser impresso])
b. Este método imprime algo na tela. O cursor permanece exatamente ao final do último caractere impresso; de maneira que, se a função for novamente chamada, a impressão continuará na sequência.
c. O único parâmetro é o conteúdo que desejamos imprimir.
![Page 48: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/48.jpg)
Métodos e Funções
System.out.print("Hello World!");
Pedro.Escreva (“texto”)
![Page 49: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/49.jpg)
Variações...
System.out.println("Hello World!");
![Page 50: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/50.jpg)
Sobre o NetBeans
![Page 51: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/51.jpg)
Sobre o NetBeans
![Page 52: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/52.jpg)
Sobre o NetBeans
![Page 53: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/53.jpg)
Variáveis - Conceito
![Page 54: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/54.jpg)
Variáveis - Tipos
VidasSaúdeNomeJoga
dor
![Page 55: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/55.jpg)
Declaração de Variáveis
<tipo_da_variável> <nome_da_variavel>;
int vidas;
![Page 56: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/56.jpg)
Tipos de Variáveis no JAVANome Descrição Exemplos
byte Um byte é uma composição de 8 bits, o que corresponde a 28 possibilidades de dados, sendo portanto possível representar valores numéricos inteiros que variam de 0 a 255, ou valores de
-128 a 127.
3, -10, 128, 0
short Corresponde a 2 bytes (16 bits), podendo representar valores numéricos inteiros de -32768 a 32767
-10000, 0, 10, 128 20000
int Corresponde a 4 bytes (32 bits), podendo representar valores numéricos inteiros de -2147483648 a 2147483647
-2000000000, 0, 11, 1913331112
![Page 57: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/57.jpg)
Tipos de Variáveis no JAVANome Descrição Exemplos
long Corresponde a 8 bytes (64 bits), podendo representar valores numéricos inteiros de
-9223372036854775808 a9223372036854775807
-2000000000000000000, 0, 1, 12345678
float Tal como o tipo int, este utiliza 4 bytes da memória, porém os dados são armazenados de maneira que se possa representar de números reais, portanto com casas decimais. Um float permite números reais com até 7 digitos e é capaz de representar valores com expoentes de até 10-38 ou 1038.
-10.0, 0.1, 0.22, 3.1415926, 2344.123,
double Da mesma forma que o float, neste tipo os bytes são formatados de maneira a suportarem números reais, porém aqui utilizam-se 8 bytes, podendo-se representar números com até 15 dígitos e é capaz de representar valores com expoentes de até 10-308 ou 10308.
-1.0, 0.0, 3.1415926535897
![Page 58: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/58.jpg)
Tipos de Variáveis no JAVANome Descrição Exemplos
char Este tipo, formado por 2 bytes, armazena um caractere simples, tal como A, a, t, *. Também pode conter um caractere especial, tal como uma quebra de linha ou um indicador de final de texto. Ao associar um caractere a esta variável, deve-se usar o símbolo ´ para identificar que o caractere não é uma variável ou um operador:
char letra;letra = ´A´Para poder escrever caracteres especias,
deve-se usar o simbolo \ seguido de algum identificador. Alguns exemplos:
\n : quebra de linha\t: TAB\´: ´
A, b, $, 4 (caractere 4, não o número 4).
boolean Este é um tipo lógico, que pode apenas ser true ou false. Será usado para expressões lógicas e de relacionamentos
True, false
![Page 59: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/59.jpg)
Tipos de Variáveis no JAVANome Descrição ExemplosString Consiste numa sequência de caracteres.
Para que o programa não confunda esta sequência de caracteres com nomes de variáveis, coloca-se o seu conteúdo entre aspas:
String mensagem;mensagem = “Apertem os
cintos” Caso não houvesse aspas, o compilador
pensaria que as palavras Apertem, os e cintos seriam nomes de variáveis e iria procurar o conteúdo das mesmas. Neste caso, como as variáveis não foram declaradas, ocorreria um erro do tipo “variável Apertem não declarada”...
Tudo o que estiver dentro das aspas é tratado como um texto e podemos ficar tranqüilos, pois o compilador não irá executar nada; apenas copiará estes caracteres para uma área de memória ou para a interface de saída.
“Hello Word”, “para o além e infinito”, “dois”, “1, 2, 3 e já!”, “2”
![Page 60: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/60.jpg)
Regras para nomear variáveisOBRIGATÓRIO...
- Não usar palavras reservadas: int main;
- Não colocar espaço entre partes da variável:
Var numero de vidas as int
- Não começar a palavra com números: 2vidas
- Não usar símbolos: #Vidas, Custo$, etc... (exceção: _)
- Não usar acentos
![Page 61: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/61.jpg)
Regras para nomear variáveisBoas maneiras...
-Dar nomes sugestivos
-Não usar nomes muito extensos:Numerototaldevidasdopersonagem
-Usar como separadores: _ ou maiúsculas: NumeroDeVidas, numero_de_vidas
-Ser econômico nas palavras:Int
NumeroTotalDeVidasDoPersonagemNaFaseFinal;
![Page 62: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/62.jpg)
Notação Húngara
Usar prefixos diante do nome:
iContador, fSaude e strCancelar
![Page 63: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/63.jpg)
Exercicio
Liste todas as variáveis com seus respectivos tipos que você imagina serem necessários para implementar o jogo Pong.
![Page 64: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/64.jpg)
Atribuição
Variável = expressão;
Onde expressão pode ser um número, uma expressão matemática ou
até mesmo outra variável.
![Page 65: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/65.jpg)
Atribuição
Observe o exemplo: int k = 4;float f = k;
Está certo?
E este caso:float k = 4.5;int i = k;
Está certo?
![Page 66: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/66.jpg)
Atribuição
A faixa de tipos numéricos cresce na seguinte ordem: byte – short – int – long – float – double
![Page 67: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/67.jpg)
Atribuição – Type Casting
double d = 5.3;int k;k = (int)d; // k recebe o valor 5 e d continua do tipo double
![Page 68: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/68.jpg)
Conversão na divisãoAs linguagens de programação também têm a seguinte convenção comum para operações com números inteiros do tipo x/y, onde um ou os dois operandos são do tipo int e / é o operador de divisão: - Se os dois operandos são do tipo int, a divisão é feita com a precisão inteira. Por exemplo: 7/3 resulta em 2
- Se apenas um dos operandos é do tipo int, o tipo int é automaticamente convertido no outro tipo. Por exemplo: 7.0/3 resulta na dízima 2.333...
![Page 69: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/69.jpg)
Declaração Múltiplaint minuto;int hora, dia; int totalSegundos; minuto = 60;hora = minuto * 60;dia = hora * 24;totalSegundos = dia; // Neste caso, resultado está recebendo o // conteúdo da variável diaSystem.out.print (“Um dia tem: “);System.out.print (totalSegundos);System.out.print (“ segundos”);
![Page 70: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/70.jpg)
Exercício
Suponha que o seu programa possua duas variáves:CorFundo e CorFrente
Escreva um programa que faça a cor do fundo passar a ser a cor da frente e a cor da frente a cor do fundo
![Page 71: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/71.jpg)
Expressões
Retornam um valor
-Aritméticas-Lógicas
![Page 72: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/72.jpg)
Expressões Aritiméticas
XX + YX-YX*YX/Y
((3 + X)/(Y-4))
![Page 73: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/73.jpg)
Expressões Compostas
(3+7)*(2+5)
![Page 74: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/74.jpg)
Expressões Compostas
double raiz1, raiz2;double delta;double a, b, c;a = 3;b = 4;c = 1; delta = b*b – 4*a*c; // delta recebe o número 2raiz1 = (-1*b + Math.sqrt(delta)) / (2*a);raiz2 = (-1*b – Math.sqrt(delta)) / (2*a);
![Page 75: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/75.jpg)
Funções Matemáticas
double raiz1, raiz2;double delta;double a, b, c;a = 3;b = 4;c = 1; delta = b*b – 4*a*c; // delta recebe o número 2raiz1 = (-1*b + Math.sqrt(delta)) / (2*a);raiz2 = (-1*b – Math.sqrt(delta)) / (2*a);
![Page 76: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/76.jpg)
Expressões Compostasdouble sin(double radianos) seno(radianos)double cos(double radianos) coseno(radianos)double tan(double radianos) tangente(radianos)double toRadians(double graus) converte graus para radianosdouble.toDegrees(double radianos) converte radianos para grausdouble pow(double x, double a) potência xa
double log(double x) logaritmo natural ln(x)double log10(double x) logaritmo base 10 log(x)long round(double x) arredonda real para o inteiro mais
próximo
![Page 77: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/77.jpg)
Constantes
final tipo NOME = valor;
public class Main{ public static void main(String[] args) { final double G = 9.807; // constante double deslocamento, t = 1; deslocamento = (G * t * t)/2; System.out.println(deslocamento); // exibe:
4.9035 }}
![Page 78: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/78.jpg)
Precedência de Operadores
1) Parêntesis: ( )2) Operadores Unários: ++, --, !, unário - e +, type-cast3) Multiplicação e Divisão: *, /, %4) Adição e Subtração: +, -5) Operadores Relacionais: <, >, <=, >=6) Igualdade e inegualdade: ==, !=7) E Booleano: &&8) OU Booleano: ||9) Operador Condicional: ?:10) Operadores de atribuição: =, +=, -=, *=, /=, %=
![Page 79: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/79.jpg)
Incremento (e decremento) de Variáveis
salario = salario + 1000;vidas= vidas–1;
x = x * 5;x = x / 5;x = x % 5;
![Page 80: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/80.jpg)
Shorthand Operatosdouble tempo, velocidade; velocidade = 30;tempo = 100; velocidade = velocidade + 10; // A velocidade vale 40 neste pontovelocidade += 15; // A velocidade agora vale 55velocidade++; // Agora a velocidade vale 56 tempo = tempo – 5; // tempo passa a valer 95tempo -= 10; // agora o tempo vale 85tempo--; // tempo vale 84
![Page 81: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/81.jpg)
Shorthand Operatosx += 5;x -= 5;x *= 5;x /= 5;
![Page 82: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/82.jpg)
Shorthand Operatosforma pré-fixada:++<variável>;--<variável>;
forma pós-fixada:<variável>++;<variável>--;
![Page 83: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/83.jpg)
Quanto Vale vidas?
int n = 3;int vidas = 0; vidas = n++; vidas = ++n;
![Page 84: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/84.jpg)
Expressões RelacionaisRetornam true (verdade) ou false (falso)
Operadores Relacionais:menor <maior >igual ==diferente !=menor ou igual <=maior ou igual >=
![Page 85: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/85.jpg)
O que faz este código?public class Main{ public static void main(String[] args) { int vidas = 3; int n = 1; int k = 1; double lado = 10; double posicaoX = 5; double posicaoY = Math.sqrt(lado); System.out.println(vidas <= 0); System.out.println(n == k); System.out.println(Math.sqrt(lado) < posicaoX); System.out.println(posicaoY < 2.0); }}
![Page 86: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/86.jpg)
Operações em caractereschar letra1 = 'a';char letra2 = 'A'System.out.println(letra1 > letra2);
char letra = 'a';System.out.println(++letra);
![Page 87: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/87.jpg)
Tabela ASCIIint iLetra = (int)'b';System.out.println(iLetra);
operadores relacionais não comparam strings.
![Page 88: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/88.jpg)
Expressões Lógicas(A)A e B (A && B)A ou B (A || B)não (A) (!A)
![Page 89: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/89.jpg)
Tabelas Verdade
OR ( || ) True False
True True True
False True False
se (vidas <= 0) || (saude == 0) então avise que o jogador morreu
![Page 90: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/90.jpg)
Tabelas Verdade
AND (&&) True False
True True False
False False False
![Page 91: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/91.jpg)
Tabelas Verdade
NOT (!)
True False
False True
![Page 92: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/92.jpg)
ExercicioObserve a seguinte regra da aeronáutica (é uma regra fictícia, provavelmente não seja tão simplificado assim...) “para que um avião possa decolar de um aeroporto muitas condições devem ser satisfeitas: caso a pista seja menor que 1,5 km o avião deve pesar menos que 40 toneladas, caso a pista possua uma medida entre 1,5km e 2 km o avião não pode ultrapassar das 60 toneladas. Caso a pista seja maior que 2 km qualquer avião pode decolar. Caso a visibilidade seja menor do que 20 metros, apenas aviões com sistema de decolagem computadorizada pode decolar, mas se estiver chovendo acima de 5mm nenhum avião pode decolar. Se o avião possuir mais de 100 passageiros e estiver chovendo qualquer intensidade, independentemente da intensidade, o avião não pode decolar.” Escreva uma expressão lógica para retratar esta situação, armazenando o resultado na variável booleana “decola”. As variáveis já existentes são: tamanhoDaPista (inteiro), pesoDoAviao (inteiro), visibilidade (inteiro), intensidadeDaChuva (inteiro), numeroDePassageiros (inteiro), possuiSistemaDeDecolagem (booleano)
![Page 93: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/93.jpg)
Entrada de Dadosimport java.util.Scanner;
![Page 94: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/94.jpg)
Entrada de DadosConstrutores
import java.util.Scanner;public class Ler{ public static void main(String[] args) { String nome; Scanner in; in= new Scanner(System.in); System.out.println("Entre com o seu nome"); nome = in.next(); System.out.println("Bem vindo, " + nome); }}
![Page 95: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/95.jpg)
Entrada de DadosConstrutores
nextBoolean(), nextByte(), nextInt(), nextFloat(), nextLong() e nextDouble().
![Page 96: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/96.jpg)
Concatenação de Strings
System.out.println("Bem vindo, " + nome);
Se um dos operandos é numérico, há uma conversão automática de número para o tipo String antes da concatenação.
![Page 97: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/97.jpg)
Caracteres especiais de Strings
\n
\t
\r
\\
\”
![Page 98: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/98.jpg)
ExercíciosUsando type casting escreva um programa que lê um número real e imprime a parte decimal do mesmo.
![Page 99: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/99.jpg)
Exercícios-Faça um programa que leia uma temperatura em Celsius e converta a mesma para Fahrenheit.
-Escreva um programa que receba a coordenada superior esquerda de um retângulo, bem como a largura e altura do mesmo e em seguida imprima as coordenadas dos 4 vértices que o compõem. Assuma que os lados do retângulo estão alinhados com os eixos.
-Um vetor 3D pode ser representado por 3 valores reais x, y e z. Faça um programa que leia estes valores e calcule o tamanho do vetor.
![Page 100: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/100.jpg)
Mais um pouco sobre objetosCarro
Atributos
Carro.placaCarro.corCarro.modelo
Carro.anda()Carro.mede_velocidade()Carro.para()
![Page 101: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/101.jpg)
Um pouco mais sobre objetos
playerSprite = new Sprite("player.png", 8, 32, 32);enemySprite = new Sprite("enemy.png", 8, 32, 32);
![Page 102: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/102.jpg)
Controle de Fluxo por Comandos de Seleção
![Page 103: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/103.jpg)
O comando if-else
if (expressão lógica) Comando 1 // caso verdadeelse Comando 2 // caso falso
![Page 104: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/104.jpg)
O comando if
if (expressão lógica) Comando 1 // caso verdade
//Continua o fluxo, independentemente da expressão lógica...
![Page 105: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/105.jpg)
O comando if
If (tempo < 10) System.out.print("Seu tempo está acabando..."); tempo = tempo -1;
![Page 106: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/106.jpg)
O comando if-else com escopos
if (numero < 0){ System.out.print("o numero é negativo..."); numero = numero - 1;}else{ System.out.print("o numero é zero ou positivo..."); numero = numero + 1;}
![Page 107: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/107.jpg)
E quando houver mais de 2 opções?
if (numero == 0) System.out.print("o numero é zero...");else{ if (numero > 0) System.out.print("o numero é positivo..."); else System.out.print("o numero é negativo...");}
![Page 108: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/108.jpg)
Mais sobre fluxo composto
if (numero == 0) System.out.print("o numero é zero...");if (numero > 0) System.out.print("o numero é positivo...");if (numero < 0) System.out.print("o numero é negativo...");
![Page 109: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/109.jpg)
Quando usar um ou outro caso?
if (numero == 0) System.out.print("o numero é zero...");if (numero > 0) System.out.print("o numero é positivo...");if (numero < 0) System.out.print("o numero é negativo...");
![Page 110: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/110.jpg)
Exercício 1
Escreva um algoritmo que leia um ano e verifique se é bissexto. Um ano é bissexto se é divisível por 4, se não for um século. No caso de ser século, o ano é considerado bissexto se for divisível por 400.
![Page 111: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/111.jpg)
Exercício 2
Escrever um algoritmo que determina o maior dentre três números inteiros lidos
![Page 112: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/112.jpg)
Exercício 3
Escreva um algoritmo que leia três valores inteiros que serão armazenados em três variáveis L, M, N e troque seus valores, se necessário, de modo que L seja o menor, M o valor do meio e N o maior.
![Page 113: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/113.jpg)
Como simplificar expressões lógicas muito complexas?
boolean fim; fim = (vida < 0) || (saúde < 0);
if (fim) System.out.print("você perdeu!!!");
![Page 114: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/114.jpg)
O operador ternário
retorno = (expressão lógica) ? (comando 1) : (comando 2)
resultado = (numero > 0) ? (numero ++) : (numero --);
![Page 115: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/115.jpg)
O comando Switchswitch (expressão) { case valor1: comandos 1 break; case valor2: comandos 2 break; . . // (quantos casos quiser) . case valorN: comandos N break; default: comandos default} // final do escopo do switch
Não pode ser string ou float
![Page 116: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/116.jpg)
O comando Switchswitch (vidas) { case 0: System.out.println("Cuidado, você não tem mais vidas…”); break; case 1: System.out.println("Você tem só mais uma vida…”); break; case 2: case 3: System.out.println("Você tem algumas poucas vidas…”); break; default: System.out.println("Você ainda tem muitas algumas vidas…”);} // continua fluxo do programa
![Page 117: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/117.jpg)
Exemplo de um menuint opção;System.out.println (“1 – Iniciar Jogo “);System.out.println (“2 – Configurar jogo”);System.out.println (“3 - Creditos”);System.out.println (“4 – Sair do Jogo “);System.out.println ("Entre com sua opção: ");opcao = in.nextInt();
![Page 118: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/118.jpg)
Exemplo de um menuswitch (opcao) { case 1: System.out.println("inicializando jogo…”); InitJogo(); // função que irá iniciar o jogo break; case 2: ConfigJogo(); // função que chamará a tela de configuração break; case 3: ImprimeCreditos(); // função que irá imprimir os créditos break; case 4: sairJogo(); // função que termina o jogo break; default: System.out.println("Opção inválida…”);} // continua fluxo do programa
![Page 119: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/119.jpg)
ExerciciosO índice de massa corporal (IMC) de uma pessoa é calculado dividindo-se o peso pela sua altura ao quadrado. Quando este valor está abaixo de 19, diz-se que a pessoa está magra. Se este valor estiver entre 20 e 25, diz-se que a pessoa está com o peso ideal. Se o valor estiver entre 26 e 30 diz-se que a pessoa está acima do peso e caso o valor ultrapasse o 31, diz-se que a pessoa está obesa, sendo a situação prejudicial para sua saúde. Faça um programa que leia o peso e a altura de uma pessoa e imprima em que situação a pessoa se encontra. (Atenção: para uma verificação correta há outros fatores envolvidos, tais como sexo, idade e biótipo, portanto este teste é apenas para fins de exercício, não devendo ser usado como um teste de verdade)
![Page 120: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/120.jpg)
ExerciciosEscreva um programa que leia o vértice superior esquerdo e inferior direito que descreve um retângulo no plano e logo em seguida leia a coordenada de um ponto no espaço. O programa em seguida deve responder se o ponto está dentro ou fora do retângulo. Assuma que o retângulo está alinhado com os eixos cartesianos.
![Page 121: Introdução a Programação I](https://reader034.vdocuments.net/reader034/viewer/2022042603/568139d4550346895da1869a/html5/thumbnails/121.jpg)
ExerciciosFaça um programa que leia dois pontos que definem uma reta no plano. Em seguida o programa deverá ler a coordenada do centro e o raio de uma circunferência. Finalmente o programa deverá calcular se a reta tem interseção ou não com a circunferência. Em caso positivo, o programa deverá imprimir quais são as coordenadas de interseção.