introdução a programação i. a long long time ago… o eniac. esta máquina das cavernas media...
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...