Anda di halaman 1dari 29

LGICA DE PROGRAMAO I

Sobre o curso
Metodologia e Avaliaes

Prof. Maikol Magalhes Rodrigues

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

O que faz um computador?

Um computador uma
calculadora potente e
obediente.

Resoluo de Problemas
6

Resolva os seguintes problemas, escrevendo uma


sequncia de instrues como soluo:

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

Canais de programao: youtube.com/c/aulasprogramacao

https://pt.khanacademy.org/coach/dashboard

Aula de C / Java Bsico. Professor Leonardo Leito.

Exemplo LP: http://www.tiobe.com/


Exemplo Algoritmos: http://flukeout.github.io/

Resoluo de Problemas
8

Problema 1: H trs esferas, duas das quais possuem o mesmo


peso e a terceira mais pesada. Com uma nica pesagem em
uma balana de dois pratos identifique a esfera mais pesada.

Dica: considere as possiblidades de pesagem

(A + B, C)

(A + C, B)

(B + C, A)

(A, B)

(A, C)

(B, C)

Qual seria o algoritmo para a soluo deste problema?

Resoluo de Problemas
9

Problema 2: como obter exatamente 4 litros de gua

dispondo de dois recipientes com capacidades de 3


litros e 5 litros?

possvel considerar todas as possibilidades?

Qual seria o algoritmo para a soluo deste problema? Sendo (A, x) a


indicao de x litros no recipiente A, fornea uma soluo para o
problema considerando os recipientes A = 3 litros e B = 5 litros.

Comece com (A, 0) (B, 0)

Existe outro algoritmo para o problema?

Algoritmo
10

Sequncia de instrues para a


resoluo de um problema: conceito
bsico da programao de
computadores.

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

Programa Objeto (.o)


00101010101
01010011100
01010101010
01010100010

Maikol Rodrigues

13

Processo de compilao
Programa Objeto
00101010101
01010011100
01010101010
01010100010

Biblioteca de funes
(stdio.h, string.h, etc.)

Linkeditor

Programa Executvel (.exe)


00101010101
01010011100
01010101010
01010100010
00101010101
01010011100
Maikol Rodrigues

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

1 Lista de exerccios complemento


Elabore algoritmos para instalar e executar um
cenrio do robocode:
(http://www.ft.unicamp.br/liag/wp/robocode/)

Usando trs robs dos exemplos para montar o


cenrio;
Usando todos os robs de um pacote e setando 3
(trs) rounds para o cenrio;
Criando um rob baseado nos exemplos prontos.
Utilize instrues e o detalhamento que achar mais
conveniente. Colocar uma instruo em cada linha
Maikol Rodrigues

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.

atravesse com as galinhas


retorne sozinho
atravesse com a raposa
retorne com as galinhas
atravesse com o milho
retorne sozinho
atravesse com as galinhas

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

UNIDADE 1 - INTRODUO A COMPUTAO (6 h)


1.1 Organizao do Computador.
1.2 Bits, Bytes e linguagem de mquina.
1.3 Conceitos de comando, algoritmo e linguagem de
programao.
UNIDADE 2 - VARIVEL E COMANDOS DE ENTRADA
/ SADA (12 h)
2.1 Conceito de varivel simples.
2.2 Tipos de dado numrico e caractere.
2.3 Atribuio e expresses envolvendo variveis.
2.4 Acumulador e contador.
2.5 Comando de entrada e sada.

Contedo
24

UNIDADE 3 - INTRODUO A FUNES (10 h)

3.1 Conceito e funcionamento.

3.2 Lista de argumentos e tipo de retorno.

3.3 Funes Resto, Raiz.

3.4 Funes Comprimento e Inteiro.

3.5 Implementao de funes.

UNIDADE 4 - ESTRUTURAS DE SELEO (16 h)

4.1 Objetivo.

4.2 Forma geral e funcionamento.

4.3 lgebra booleana.

4.4 Operadores lgicos e expresses lgicas.

4.5 Estrutura condicional simples Se.

4.6 Estrutura condicional composta Faca caso.

4.7 Estruturas de seleo aninhadas.

Contedo
25

UNIDADE 5 - ESTRUTURAS DE REPETIO


(18 h)
5.1 Objetivo.
5.2 Forma geral e funcionamento.
5.3 Estrutura de repetio Para.
5.4 Estrutura de repetio Enquanto.
UNIDADE 6 - VETORES (10 h)
6.1 Conceito de varivel composta.
6.2 Vetor e ndice do vetor.
6.3 Manipulao de vetores.

Avaliaes
26

V1 (40%)
V2 (60%)
MP = 40% V1 + 60% V2

MP >= 7,0 Aprovado


5,0 <= MP < 7,0
VS
MP < 5,0
Reprovado

Observaes

Simulado antes das avaliaes


Listas de exerccios

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