Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sobre o curso
Metodologia e Avaliaes
Programao de Computadores:
Para que?
O software onipresente
Empresas
Indstrias
Entretenimento
Vesturio
Software se renova:
PC
Web
Apps
Tipos de Programas
3
Convencionais / Lineares
Dirigidos a eventos
Word
Excel
Scripts
Rotinas em Sistemas Operacionais
Rotinas em outros programas: AutoCAD, Excel.
Embutidos
Eletrodomsticos
Carros
Jogos
Internet: pginas dinmicas e servios web.
Programao de
Computadores: Objetivos
Raciocnio lgico
Pensamento estruturado
Soluo de problemas
Programao de Computadores
5
Um computador uma
calculadora potente e
obediente.
Resoluo de Problemas
6
http://www.plastelina.net/games/game1.html
http://rachacuca.com.br/jogos/o-lobo-e-a-ovelha/
http://www.plastelina.net/games/game2.html
http://rachacuca.com.br/jogos/missionarios-e-canibais/
SUPORTE ONLINE
https://pt.khanacademy.org/coach/dashboard
Resoluo de Problemas
8
(A + B, C)
(A + C, B)
(B + C, A)
(A, B)
(A, C)
(B, C)
Resoluo de Problemas
9
Algoritmo
10
Comentrios
Um algoritmo s pode ser executado por uma CPU
que entenda a linguagem na qual este foi escrito.
Se o seu algoritmo estivesse escrito em
Japons, voc (no caso a CPU) seria capaz de
execut-lo?
Linguagem natural pode levar a vrias
interpretaes (semntica)
Maikol Rodrigues
11
Comentrios
Para uma mesma tarefa, pode existir diversos
algoritmos, ou seja, pode existir diversas
sequncias de instrues que a resolva.
No caso do algoritmo vestir-se para ir a festa:
Algoritmo 1
:
Vestir a camisa;
Abotoar os
botes;
Vestir a meia;
:
Algoritmo 2
:
Vestir a meia;
Vestir a camisa;
Abotoar os
botes;
:
Algoritmo 3
:
Vestir a camisa;
Vestir a meia
Abotoar os botes
:
Maikol Rodrigues
12
Processo de compilao
Programa Fonte em C
Linguagem de
programao
#include <stdio.h>
void main ()
{
printf ("Ola! Eu estou vivo!\n");
}
Linguagem de
mquina
Compilador
Maikol Rodrigues
13
Processo de compilao
Programa Objeto
00101010101
01010011100
01010101010
01010100010
Biblioteca de funes
(stdio.h, string.h, etc.)
Linkeditor
14
1 Lista de exerccios
Elabore algoritmos para realizar as seguintes tarefas
do seu dia a dia:
Trocar o pneu de um carro
Instalar o C (linguagem usada na disciplina);
Escutar a 2a. faixa de msica de um CD
Utilize instrues e o detalhamento que achar mais
conveniente. Colocar uma instruo em cada linha
Maikol Rodrigues
15
16
Lgica de programao
Nosso objetivo : dado um problema, escrever a
sequncia de instrues para um processador tal
que, fornecidos os dados de entrada a execuo
da sequncia de instrues redunde como sada a
soluo do problema
O raciocnio que visa o desenvolvimento de
algoritmos chamado de lgica de programao
Exemplo: Um senhor est numa das margens de um rio com
uma raposa, uma dzia de galinhas e um saco de milho. O
senhor pretende atravessar o rio com sua carga num barco
que, infelizmente, s comporta o senhor e uma das cargas.
Evidentemente o senhor no pode em uma das margens,deixar
sozinhos, a raposa e a galinha, nem a galinha e o milho.
Escreva um algoritmo que oriente o senhor a fazer a
travessia com sua carga.
Maikol Rodrigues
17
Lgica de programao
Soluo:
1.
2.
3.
3.
4.
5.
6.
Pginas Interessantes:
http://edu-a1978.sites.uol.com.br/problemas.html
http://www.problemasdelogica.com.br/
Maikol Rodrigues
18
Exerccio Desafio
Um prisioneiro encontra-se em uma cela de duas
portas(sadas), a da liberdade(L) e a do fuzilamen-to(F),
e em cada porta tem um guarda, sendo que um deles s
fala a verdade e o outro s fala mentira, porm o
prisioneiro no sabe quem fala a verdade nem o que
mente. Qual a pergunta que ele deve fazer a qualquer
um dos guardas para ganhar a liberdade?
Maikol Rodrigues
19
Lgica de programao
Resposta:
Se eu perguntar para o seu colega qual a porta da liberdade, que porta ele vai indicar?
Maikol Rodrigues
20
Lgica de programao
Apesar do algoritmo anterior desenvolver o
raciocnio lgico....
Estamos interessados em algoritmos para resolver
questes genricas como:
Determinar a mdia de vrios nmeros
Encontrar as razes de uma equao de 2o. Grau
Colocar em ordem alfabtica uma relao de nomes
Atualizar o saldo de uma conta bancria na qual se fez
depsito
Cadastrar um novo usurio de uma locadora
Maikol Rodrigues
21
Software de Apoio
22
Dev-C++
http://www.bloodshed.net/devcpp.html
http://sourceforge.net/projects/orwelldevcpp
/files/Setup%20Releases/
Contedo
23
Contedo
24
4.1 Objetivo.
Contedo
25
Avaliaes
26
V1 (40%)
V2 (60%)
MP = 40% V1 + 60% V2
Observaes
Livro-Texto:
SCHILDT, H. C Completo e
Total. 3a. Edio
Makron Books.
Curso de Linguagem
C
UFMG
(Material em HTML)
Maikol Rodrigues
27
Bibliografia
28
Notas de Aulas
EVARISTO, Jaime; CRESPO, Srgio.
Aprendendo a programar: programando na
linguagem C.
ZIVIANI, Nivio. Projeto de algoritmos: com
implementao em Pascal e C. 2. ed. (ou 5.
ed.) Editora Pioneira Thomson Learning, 2004
(ou 2002).
Livro-Texto:
Maikol Rodrigues
29