introdu o a programa o i n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Introdução a Programação I PowerPoint Presentation
Download Presentation
Introdução a Programação I

Loading in 2 Seconds...

play fullscreen
1 / 121

Introdução a Programação I - PowerPoint PPT Presentation


  • 271 Views
  • Uploaded on

Introdução a Programação I. A Long long Time ago….

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Introdução a Programação I' - adamdaniel


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
a long long time ago
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...

m quina de fazer contas
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.

o que faz um computador
O que faz um computador?

+, -, /, x

>, <, =

al khowarizm ou algoritmos
al-Khowarizm ou Algoritmos

Pegar uma escada;

Posicionar abaixo da lâmpada;

Pegar uma nova lâmpada;

Remover a lâmpada queimada;

Colocar a nova lâmpada;

Guardar a escada.

o algoritmo mais antigo do mundo
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 924

1365  924 resto 441

924  441 resto 42

441  42 resto 21

42  21 resto 0

defini o formal
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.

reas da computa o
Á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...
linguagem dos computadores
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
linguagem de programa o1
Linguagem de Programação
  • C++
  • JAVA
  • C
  • Pascal
  • Fortran
  • Visual Basic
  • ASP
  • LUA
  • Phyton
  • C#
  • SQL
pseudo c digo
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ão

Escreva “Operação Inválida”

FimSe

arquitetura de computadores

CPU

UC

ULA

Dispositivo de

Entrada e Saída

Memória

RC

Barramento

Arquitetura de Computadores
unidade de controle

CPU

UC

ULA

Dispositivo de

Entrada e Saída

Memória

RC

Barramento

Unidade de Controle
unidade l gica e aritim tica

CPU

UC

ULA

Dispositivo de

Entrada e Saída

Memória

RC

Barramento

Unidade Lógica e Aritimética
registradores

CPU

UC

ULA

Dispositivo de

Entrada e Saída

Memória

RC

Barramento

Registradores
atribui o
Atribuição

Vidas = 5;

leitura de dados
Leitura de dados

Le (posição de mouse);

escrita de dados
Escrita de dados

Imprime “Iniciando fase 1”

case sensitive
Case Sensitive

Posicao x posicao

o primeiro programa
O Primeiro Programa

Iniciar programa

Imprimir “Hello Word”

Finalizar programa

traduzindo para o java ou para uma linguagem de computador
Traduzindo para o JAVA(ou para uma linguagem de computador...)

class HelloWorld

{

public void main(String[] args)

{

System.out.print("Hello World!");

}

}

dissecando o programa
Dissecando o Programa

class HelloWorld

{

public void main(String[] args)

{

System.out.print("Hello World!");

}

}

dissecando o programa1
Dissecando o Programa

class HelloWorld

{

public void main(String[] args)

{

System.out.print("Hello World!");

}

}

dissecando o programa2
Dissecando o Programa

class HelloWorld

{

public void main(String[] args)

{

System.out.print("Hello World!");

}

}

escopos
Escopos

class jogo

{

realize leitura de teclado

{

... // Aqui chamamos mecanismos de ler teclado

}

Movimente o personagem

{

... // Usando a entrada, movimentamos o personagem

... // conforme desejado

}

}

coment rios
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

}

}

dissecando o programa3
Dissecando o Programa

class HelloWorld

{

public void main(String[] args)

{

System.out.print("Hello World!");

}

}

sa da de dados
Saída de Dados

class HelloWorld

{

public void main(String[] args)

{

System.out.print("Hello World!");

}

}

sa da de dados1
Saída de Dados

outros

padrão

m todos e fun es
Métodos e Funções

System.out.print("Hello World!");

como saber o que fazem
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.

analisando o m todo print
Analisando o método print...
  • 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.
m todos e fun es1
Métodos e Funções

System.out.print("Hello World!");

Pedro.Escreva (“texto”)

varia es
Variações...

System.out.println("Hello World!");

vari veis tipos
Variáveis - Tipos

Vidas

Saúde

NomeJogador

declara o de vari veis
Declaração de Variáveis

<tipo_da_variável> <nome_da_variavel>;

int vidas;

regras para nomear vari veis obrigat rio
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

regras para nomear vari veis boas maneiras
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;
nota o h ngara
Notação Húngara
  • Usar prefixos diante do nome:
  • iContador, fSaude e strCancelar
exercicio
Exercicio
  • Liste todas as variáveis com seus respectivos tipos que você imagina serem necessários para implementar o jogo Pong.
atribui o1
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.
atribui o2
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?
atribui o3
Atribuição
  • A faixa de tipos numéricos cresce na seguinte ordem:
  • byte – short – int – long – float – double
atribui o type casting
Atribuição – Type Casting
  • double d = 5.3;
  • int k;
  • k = (int)d; // k recebe o valor 5 e d continua do tipo double
convers o na divis o
Conversão na divisão
  • As 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...
declara o m ltipla
Declaração Múltipla
  • int minuto;
  • int hora, dia;
  • inttotalSegundos;
  • minuto = 60;
  • hora = minuto * 60;
  • dia = hora * 24;
  • totalSegundos = dia; // Neste caso, resultado está recebendo o
  • // conteúdo da variável dia
  • System.out.print (“Um dia tem: “);
  • System.out.print (totalSegundos);
  • System.out.print (“ segundos”);
exerc cio
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

express es
Expressões
  • Retornam um valor
  • Aritméticas
  • Lógicas
express es aritim ticas
Expressões Aritiméticas

X

X + Y

X-Y

X*Y

X/Y

((3 + X)/(Y-4))

express es compostas1
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 2

raiz1 = (-1*b + Math.sqrt(delta)) / (2*a);

raiz2 = (-1*b – Math.sqrt(delta)) / (2*a);

fun es matem ticas
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 2

raiz1 = (-1*b + Math.sqrt(delta)) / (2*a);

raiz2 = (-1*b – Math.sqrt(delta)) / (2*a);

express es compostas2
Expressões Compostas

double sin(double radianos) seno(radianos)

double cos(double radianos) coseno(radianos)

double tan(double radianos) tangente(radianos)

double toRadians(double graus) converte graus para radianos

double.toDegrees(double radianos) converte radianos para graus

double 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

constantes
Constantes

final tipo NOME = valor;

publicclassMain

{

public static void main(String[] args)

{

finaldouble G = 9.807; // constante

double deslocamento, t = 1;

deslocamento = (G * t * t)/2;

System.out.println(deslocamento); // exibe: 4.9035

}

}

preced ncia de operadores1
Precedência de Operadores

1) Parêntesis: ( )

2) Operadores Unários: ++, --, !, unário - e +, type-cast

3) 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: =, +=, -=, *=, /=, %=

incremento e decremento de vari veis
Incremento (e decremento) de Variáveis

salario = salario + 1000;

vidas= vidas–1;

x = x * 5;

x = x / 5;

x = x % 5;

shorthand operatos
Shorthand Operatos

double tempo, velocidade;

velocidade = 30;

tempo = 100;

velocidade = velocidade + 10; // A velocidade vale 40 neste ponto

velocidade += 15; // A velocidade agora vale 55

velocidade++; // Agora a velocidade vale 56

tempo = tempo – 5; // tempo passa a valer 95

tempo -= 10; // agora o tempo vale 85

tempo--; // tempo vale 84

shorthand operatos1
Shorthand Operatos

x += 5;

x -= 5;

x *= 5;

x /= 5;

shorthand operatos2
Shorthand Operatos

forma pré-fixada:

++<variável>;

--<variável>;

forma pós-fixada:

<variável>++;

<variável>--;

quanto vale vidas
Quanto Vale vidas?

int n = 3;

int vidas = 0;

vidas = n++;

vidas = ++n;

express es relacionais
Expressões Relacionais

Retornam true (verdade) ou false (falso)

Operadores Relacionais:

menor <

maior >

igual ==

diferente !=

menor ou igual <=

maior ou igual >=

o que faz este c digo
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);

}

}

opera es em caracteres
Operações em caracteres

char letra1 = 'a';

char letra2 = 'A'

System.out.println(letra1 > letra2);

char letra = 'a';

System.out.println(++letra);

tabela ascii
Tabela ASCII

int iLetra = (int)'b';

System.out.println(iLetra);

operadores relacionais não comparam strings.

express es l gicas
Expressões Lógicas

(A)

A e B (A && B)

A ou B (A || B)

não (A) (!A)

tabelas verdade
Tabelas Verdade

se (vidas <= 0) || (saude == 0) então avise que o jogador morreu

exercicio1
Exercicio

Observe 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)

entrada de dados
Entrada de Dados
  • importjava.util.Scanner;
entrada de dados construtores
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);

}

}

entrada de dados construtores1
Entrada de DadosConstrutores

nextBoolean(), nextByte(), nextInt(), nextFloat(), nextLong() e nextDouble().

concatena o de strings
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.

exerc cios
Exercícios
  • Usando type casting escreva um programa que lê um número real e imprime a parte decimal do mesmo.
exerc cios1
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.
mais um pouco sobre objetos
Mais um pouco sobre objetos

Carro

Atributos

Carro.placa

Carro.cor

Carro.modelo

Carro.anda()

Carro.mede_velocidade()

Carro.para()

um pouco mais sobre objetos
Um pouco mais sobre objetos

playerSprite = new Sprite("player.png", 8, 32, 32);

enemySprite = new Sprite("enemy.png", 8, 32, 32);

o comando if else
O comando if-else

if (expressão lógica)

Comando 1 // caso verdade

else

Comando 2 // caso falso

o comando if
O comando if

if (expressão lógica)

Comando 1 // caso verdade

//Continua o fluxo, independentemente da expressão lógica...

o comando if1
O comando if

If (tempo < 10)

System.out.print("Seu tempo está acabando...");

tempo = tempo -1;

o comando if else com escopos
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;

}

e quando houver mais de 2 op es
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...");

}

mais sobre fluxo composto
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...");

quando usar um ou outro caso
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...");

exerc cio 1
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.

exerc cio 2
Exercício 2

Escrever um algoritmo que determina o maior dentre três números inteiros lidos

exerc cio 3
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.

como simplificar express es l gicas muito complexas
Como simplificar expressões lógicas muito complexas?

boolean fim;

fim = (vida < 0) || (saúde < 0);

if (fim)

System.out.print("você perdeu!!!");

o operador tern rio
O operador ternário

retorno = (expressão lógica) ? (comando 1) : (comando 2)

resultado = (numero > 0) ? (numero ++) : (numero --);

o comando switch
O comando Switch

switch (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

o comando switch1
O comando Switch

switch (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

exemplo de um menu
Exemplo de um menu

int 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();

exemplo de um menu1
Exemplo de um menu

switch (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

exercicios
Exercicios

O í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)

exercicios1
Exercicios

Escreva 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.

exercicios2
Exercicios

Faç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.