introdução a programação i. a long long time ago… o eniac. esta máquina das cavernas media...

Post on 17-Apr-2015

103 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introdução a Programação I

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

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?

+, -, /, x

>, <, =

CISC x RISC

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.

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

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

- 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 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ção

Linguagem de Programação

- C++- JAVA- C- Pascal- Fortran- Visual Basic- ASP- LUA- Phyton- C#- SQL

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

Compiladores

Interpretadores

Máquina Virtual

Insetos (Bugs...)

Debugers

Sintaxe x Semântica

CompiladorIDE - Integrated Development Environment

Arquitetura de Computadores

Barramento

CPU

UC

ULA

RC

Dispositivo de

Entrada e SaídaMemória

Barramento

Unidade de Controle

Barramento

CPU

UC

ULA

RC

Dispositivo de

Entrada e SaídaMemória

Unidade Lógica e Aritimética

Barramento

CPU

UC

ULA

RC

Dispositivo de

Entrada e SaídaMemória

Registradores

Barramento

CPU

UC

ULA

RC

Dispositivo de

Entrada e SaídaMemória

Operações Elementares

Atribuição

Vidas = 5;

Avaliação de Expressões

(5 * PI) / 360

Precedência de Operadores

5+4/2 ?

Leitura de dados

Le (posição de mouse);

Escrita de dados

Imprime “Iniciando fase 1”

Palavras Reservadas

Case Sensitive

Posicao x posicao

Variáveis

Declaração de Variáveis

Var <nome_da_variavel> As <Tipo da Variável>

Nome Descrição Exemplos

Int Números inteiros 1, 22, 333, -430

Float Números reais 3.1415, 2.333, 5.0

Bool Verdadeiro ou Falso True / False (somente estes 2)

ExemplosVar v1 As

IntVar v2 As

Int

Pergunta: qual é o problema do exemplo?...

Regras para nomear variáveisOBRIGATÓRIO...

- Não usar palavras reservadas- 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- Não usar símbolos: #Vidas, Custo$, etc...

(exceção: _)- Não usar acentos

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

Inicialização de Variáveis

Var fase As Int

...fase = 0

Nome Descrição Exemplos

Int Números inteiros 1, 22, 333, -430

Float Números reais 3.1415, 2.333, 5.0

Bool Verdadeiro ou Falso True / False (somente estes 2)

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

Retornam um valor

3 tipos:-Aritiméticas-Lógicas-Relacionais

Expressões Aritiméticas

XX + YX-YX*YX/Y

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

Expressões Lógicas(A)A e BA ou Bnão (A)

Tabelas Verdade

OR True False

True True True

False True False

Tabelas Verdade

AND True False

True True False

False False False

Tabelas Verdade

NOT

True False

False True

Expressões RelacionaisA > BA>=BA = BA<BA<=BA≠ B ou A <>B

Prioridades

Prioridade Operadores

0 parenteses,funções

1 +, - (operadores unitários)

2 potenciação

3 *, /

4 +, -

5 operadores relacionais

6 não

7 e

8 ou

Estrutura de um programa

Program NomeDoProgramaMethod Main()

// ProgramaEnd Method

End Program

Hello World

Program MeuPrimeiroProgramaMethod Main()

Print ("Hello World")End Method

End Program

FunçõesNome_da_Funcao (parametro1, parametro2, ...)

Ex: Print (<conteudo>) ConsoleWriteLine (<conteudo>)

Sin (<valor>) ...

ExercicioObsereve a sintaxe da funcao round:

Floor (numero_real)

A funcao devolve a parte inteira do numero real passado como parametro

Esrcreva um programa que imprime a parte decimal de um numero:

Var numero as decimalNumero = 3.1415

[seu codigo]

Exercicio

Var numero as decimal

Numero = 3.1415

Var num2 As Integer

num2 = floor (num)

print(num - num2)

Outra forma de imprimirConsole.WriteLine(“alguma coisa”)

Leitura de dadosnum = ConsoleReaddecimal(“entre com um numero", False)

Melhorando o exercicio...Var num As Decimal

num = ConsoleReaddecimal("Entre com um numero", False)

Var num2 As Integer

num2 = floor (num)

Console.WriteLine(num - num2)

ObjetosCarro

Atributos

Carro.placaCarro.corCarro.modelo

Carro.anda()Carro.mede_velocidade()Carro.para()

ObjetosProgram UFO

Method Main() Define MySprite As Sprite

MySprite.Load( "ufo.gif" )

MySprite.MoveTo( 200, 200 )

MySprite.Show()

End Method

End Program

Mais sobre ObjetosProgram UFOMethod Main() Define MySprite As Sprite

MySprite.Load( "ufo.gif" )MySprite.MoveTo( 0, 0 )MySprite.Show()Delay(1000)MySprite.MoveTo( 300, 0 )Delay(1000)MySprite.MoveTo( 300, 300 )Delay(1000)MySprite.MoveTo( 0, 300 )Delay(1000)MySprite.MoveTo( 0, 0 )Delay(1000)MySprite.MoveTo( 150, 150 )End Method

End Program

CondicaoIf <expressao logica> Then // faz alguma coisaElse// faz outra coisa…End If

CondicaoIf <expressao logica> Then // faz alguma coisaEnd If

Condicao - exemploVar num As Integer

num = ConsoleReadint("Enter com um numero", False)

If num > 0 Thenconsole.Write("numero e positivo")Elseconsole.Write("numero negativo...")

End If

exercicioO operador mod funciona da seguinte maneira:

Resultado = numero1 mod numero2

Resultado contem o resto da divisao inteira de numero1 e numero2

Escreva uma função que le um numero e responde se ele é par ou impar

exercicioVar num As Integer

num = ConsoleReadint("Enter com um numero", False)

If (num Mod 2) = 1 Thenconsole.Write("numero e impar")

Elseconsole.Write("numero par...")

End If

Concatenação de Ifs

If condicao1 Then//faz coisa 1

End If

If condicao1 Then//faz coisa 1

End If

If condicao1 Then//faz coisa 1

End If

Concatenação de Ifs

If tecla = seta_frente Then//anda para frente

End If

If tecla = seta_traz Then//anda para traz

End If

If tecla = espaco Then//pula desgracado!

End If

Desafio Master!Qual é a diferença?

If condicao1 Then//faz coisa 1

End If

If condicao2 Then//faz outra coisa

End If

If condicao3 Then//mais outra coisa

End If

If condicao1 Then//faz coisa 1

ElseIf condicao2 Then//faz outra coisaElse

If condicao3 Then//Nossa! Outra coisa!End If

End If

End If

Mais um exercicioEscreva um algoritmo que leia um ano e verifique se é bissexto. Um ano é bissexto se é divisível por 4, senão é um século. No caso de século, o ano é considerado bissexto se for divisível por 400.

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

Ultimo!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.

Incrementos e decrementosContador = Contador + 1

Contador = Contador + 10

Contador += 10

Tempo -= 100

Caracteres especiaisconsole.ConsoleWrite (“ quero pular uma linha \n")

console.ConsoleWrite (“ agora uma tabulacao \t")

E finalmente os Loops...Como poderia fazer um objeto se mover suavemente pela tela?

WhileWhile Condição

// comandosEnd While

Exemplos WhileVar contador As Integer

contador = 0

While (contador < 10)

contador += 1console.ConsoleWrite(contador)

End While

O que faz este programa?Var contador As Integer

contador = 0

While true

contador += 1console.ConsoleWrite(contador)

End While

ExercicioDisco Voador que anda de um lado para outro...

top related