Introdução à programação Introdução à programação
Alexandre Mota acm@cin.ufpe.br
Qual sua expectativa sobre o curso?
Qual sua expectativa sobre o curso?
Resultados de Esforço em Programação
Resultados de Esforço em Programação
Mas programação não é brincadeira, apesar de muitos acharem divertido. Programar
consiste em criar o jogo ou solução. Não jogar…
Como calcular?
Como calcular?
2 x 3 + 16 / 2 = ?
★ 1o, resolvem-se as multiplicações e divisões
6 + 8 = ?
★ 2o, resolvem-se as adições e sub- trações
14
Moral da história Moral da história
Mesmo para resolver expressões simples, precisamos da noção de
de cálculos
Tal ordem advém do passo-a-passo que temos que seguir para resolver
corretamente as expressões ORDEM
Algoritmo Algoritmo
A esta sequência de regras, cuja ordem de aplicação é importante de ser observada, é o que se chama de
Algoritmos são descritos em linguagem
precisa, mas não têm relação direta com o computador
◦ São os passos requeridos para resolver um problema…
ALGORITMO
Exemplo de Algoritmo (informal) Exemplo de Algoritmo (informal)
Algoritmo 1: Bolo de Cenoura Ingredientes:
2 cenouras grandes 1 xícara de óleo 2 xícaras de açúcar
4 ovos 2 xícaras de farinha de trigo 1 colher de sopa de fermento em pó
1 lata de leite condensado 4 colheres de chocolate em pó 2 colheres de sopa de margarina Modo de Preparo:
1. Bata no liquidificador as cenouras, o açúcar, os ovos e o óleo até obter um creme.
2. Despeje esse creme em uma vasilha e acrescente a farinha.
3. Bata na batedeira por 4 minutos em velocidade alta.
4. Acrescente o fermento e misture.
5. Coloque em uma forma untada por uns 30 a 35 minutos.
6. Retire do forno e coloque a cobertura!
Algoritmos computacionais Algoritmos computacionais
Algoritmos usados em problemas
computacionais requerem mais precisão que o exemplo da receita de bolo
Tais algoritmos precisam de
◦ Linguagem simples e precisa
◦ Cujos elementos possuam significado único (evitar ambiguidade)
Exemplo de algoritmo computacional
Exemplo de algoritmo computacional
Algoritmo: Calcular divisão X / Y Entrada: Números reais X e Y Passos:
1. Se Y for diferente de zero então 1. Divide-se X por Y
2. Apresenta resultado
2. Se Y for igual a zero então
1. Apresenta mensagem de erro
Saída: Número real ou mensagem de erro
Exemplo de algoritmo computacional
Exemplo de algoritmo computacional
Algoritmo: Calcular divisão X / Y Entrada: Números reais X e Y Passos:
1. Se Y ≠ 0 então
1. Divide-se X por Y 2. Apresenta resultado 2. Se Y = 0 então
1. Apresenta mensagem de erro
Saída: Número real ou mensagem de erro
Exemplo de algoritmo computacional
Exemplo de algoritmo computacional
Algoritmo: Calcular divisão X / Y Entrada: Números reais X e Y Passos:
1. Se Y ≠ 0 então
1. Divide-se X por Y 2. Apresenta resultado 2. Caso contrário
1. Apresenta mensagem de erro
Saída: Número real ou mensagem de erro
Fluxograma: Algoritmo gráfico
Fluxograma: Algoritmo gráfico
Exercício Exercício
Assumindo os comandos: Ler(X),
Mostrar(E), Se … então …, X > Y, X = Y
Pede-se: construa um algoritmo que
determina o maior entre dois números
Se E for uma frase, usar ‘ e ‘
Exercício: resposta Exercício: resposta
1. Ler(X)
2. Ler(Y)
3. Se X > Y então
3.1 Mostrar(X)
4. Caso contrário
4.1 Se X = Y então
4.1.1 Mostrar(‘Números iguais’)
4.2 Caso contrário
4.2.1 Mostrar(Y)
Exercício Exercício
Assumindo os comandos: Ler(X),
Mostrar(E), X ç Y, Raiz(X), Se … então
…, X ≥ Y
Pede-se: construa um algoritmo que
determina as raízes reais de uma equação do 2o grau
◦ Obs.: Não se preocupar se as raízes forem iguais
Exercício: resposta Exercício: resposta
1. Ler(A, B, C)
2. Delta ç B x B – 4 x A x C
3. Se Delta ≥ 0 então
3.1 Mostrar( (-B - Raiz(Delta))/(2 x A) )
3.2 Mostrar( (-B + Raiz(Delta))/(2 x A) )
4. Caso contrário
4.1 Mostrar(‘Não há raízes reais’)
Algoritmo como função matemática Algoritmo como função matemática
Algoritmo Entradas
Saídas
Para chegar neste estágio, o algoritmo precisa assumir a forma de um programa de
computador
Programa de computador Programa de computador
A diferença principal de um algoritmo computacional para um programa de computador é o uso de uma
Linguagem de programação
Um pouco de história…
Um pouco de história…
ENIAC
Naquela época, a “linguagem de programação” era
constituída de ligar/desligar chaves, conectar/desconectar
fios, etc. (eletromecânica)
Um pouco de história…
Um pouco de história…
Linguagem de máquina (binária) Agora ligar/desligar chaves
era puramente eletrônico…
mas usar 0 e 1’s apenas era muito trabalhoso e induzia a
erros frequentes…
Um pouco de história…
Um pouco de história…
Linguagem de montagem (assembly)
Surge necessidade do montador (assembler) Apesar da linguagem
ASSEMBLY ter sido um avanço, ainda era muito distante para o raciocínio
humano…
Um pouco de história…
Um pouco de história…
Linguagem de programação de alto nível
Linguagem de
alto nível Linguagem de
nível médio Linguagem de baixo nível
Compilador/int
erpretador O Já existente assembler
Inicialmente houve resistência (espaço e
velocidade). Mas a
produtividade compensou…
Linguagens de alto nível
Linguagens de alto nível
O Curso de Engenharia da Computação requer
O Curso de Engenharia da Computação requer
A linguagem de programação C
Linguagem de programção C Linguagem de programção C
De propósito geral, inicialmente
desenvolvida por Dennis Ritchie, entre 1969 e 1973, na AT & T Bell Labs
Padronizada (ANSI C) em 1989 e depois pela ISO entre 1995 e 1999
C é a linguagem de programação mais usada mundialmente ainda hoje
Usada desde o controle de hardware,
sistemas operacionais, até aviões e sistemas comerciais
Um Ligação com Hardware Um Ligação com Hardware
Arduino [2005]
◦ Plataforma de prototipagem eletrônica de hardware livre
◦ Projetada com um microcontrolador Atmel AVR de placa única
◦ Com suporte de entrada/saída embutido
◦ E uma linguagem de programação padrão
C (ou C++)
Projeto com Arduino (vídeos)
Projeto com Arduino (vídeos)
Apesar de simples…
Apesar de simples…
Dedicação ao curso Dedicação ao curso
Aulas presenciais
Praticar bastante (resolver problemas)
◦ Estudar de 6 a 8h semanais
Consultar monitores / professor
Usar os laboratórios / praticar em casa
Tentar realizar todas as tarefas
Qualquer problema de desempenho, converse com o professor
◦ Não desanime!
Forma de avaliação Forma de avaliação
Teremos 2 exercícios escolares (provas) e mini-testes
Listas de exercícios individuais (bônus)
Projeto
A nota será dada por:
◦ Nota = 70%[((Prova1+bônus) + (Prova2+bônus))/2] + 30%[Projeto]
Introdução à programação Introdução à programação
Alexandre Mota acm@cin.ufpe.br