Você está na página 1de 41

Lgica de Programao

Marcio Kassouf Crocomo

marciokc@ifsp.edu.br

OBJETIVO GERAL

Proporcionar ao aluno o desenvolvimento do raciocnio lgico voltado


programao de computadores.
COMPETNCIAS

Lgica de Programao

Aprendizado de uma linguagem de programao estruturada

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Computadores

Hardware Parte fsica do computador. Componentes


eletrnicos, gabinete, mouse, monitor, placas de circuito, etc...
Software Instrues que controlam o hardware. Conjunto de
instrues implementados em uma linguagem de programao
chamado programa.

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Definies de Algoritmo
Um algoritmo a descrio de uma sequncia de passos que devem ser
seguidas para uma determinada tarefa

A. F. G Ascencio e E. A. V. Campos [2]

Um procedimento para resolver o problema em termos de

As aes a serem executadas e

A ordem em que essas aes devem ser executadas

H.M. Deitel e P. J Deitel [1]

Algoritmo Exemplo
Acordar e ir trabalhar
Passo 1 Levantar da cama;
Passo 2 Tirar o pijama;
Passo 3 Tomar um banho;
Passo 4 Vestir-se;
Passo 5 Tomar caf;
Passo 6 Ir de carro para o trabalho.

Exemplo retirado de [1].

Algoritmo Exerccio
Fazer um algoritmo para Trocar uma Lmpada

Algoritmo de Trocar Lmpada


Passo 1 Pegar uma lmpada nova;
Passo 2 Pegar uma escada;
Passo 3 Posicionar a escada embaixo da lmpada queimada;
Passo 4 Subir na escada com a lmpada nova na mo;
Passo 5 Retirar a lmpada queimada;
Passo 6 Colocar a lmpada nova;
Passo 7 Descer da escada;

Passo 8 Testar o interruptor;


Passo 9 Guardar a escada;
Passo 10 Jogar a lmpada velha no lixo.
Exemplo retirado de [2].

Outros algoritmos
Exemplos?

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Programa de computador
Programa de computador: codificao de um algoritmo em uma determinada
linguagem de programao [2]

[2] ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da Programao


de Computadores Algoritmos, Pascal e C/C++, Prentice Hall, 2003.

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Mtodo para a construo de


Algoritmos
Adaptado de [2]

1) Ler atentamente o enunciado, destacando os pontos mais


importantes.
2) Definir os dados de entrada.
3) Definir o processamento, responsvel pela transformao dos
dados de entrada em dados de sada.
4) Representar o algoritmo atravs de fluxograma,
pseudocdigo ou linguagem natural.
5) Testar o algoritmo atravs de simulaes.

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Fluxograma Alguns smbolos

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Pseudocdigo

Linguagem artificial e informal para o desenvolvimento de


algoritmos.
No uma linguagem real de programao.

Uma linha em um pseudocdigo representa uma ao (ou


comando) a ser executada pelo algoritmo.

Pseudocdigo - Exemplo
ALGORITMO
DECLARE x,y,res NUMRICO
ESCREVA digite o primeiro nmero:
LEIA x
ESCREVA digite o segundo nmero:
LEIA y
res x+y
ESCREVA res
FIM_ALGORITMO

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Teste de mesa
Meio pelo qual podemos acompanhar a execuo de um algoritmo,
passo a passo, ou instruo a instruo (retirado de [3])

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Tipos de dados
... Conjunto de objetos que tem em comum o mesmo comportamento
diante de um conjunto definido de operaes. (retirado de [3]).
Exemplos:
Nmeros inteiros
Nmeros reais

Letras

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Variveis, constantes e
identificadores
Variveis e constantes: repositrios de elementos de um determinado
tipo.

Constantes: definidas no incio de um programa, e no so mais


modificadas.
Variveis: Podem ter seus valores alterados ao longo do programa.
Identificadores: nomes que identificam variveis ou constantes.

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Operadores aritmticos
Operadores aritmticos
+
*
/

Ao
subtrao
adio
multiplicao
diviso

Operadores relacionais
Operadores
relacionais
>

<

Ao
maior que
maior ou igual a
menor que
menor ou igual a
igual a
diferente de

Operadores lgicos
Operadores
lgicos
e
ou
no

Ao
AND lgico conjuno
OR lgico disjuno
NOT negao

Expresses
Relacionais
Lgicas

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.

Estruturas de Controle
Programao estruturada todos os programas podem
ser escritos em termos de trs estruturas de controle:

estruturas de sequncia.

estruturas condicionais (ou de seleo).

estruturas de repetio.

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma
linguagem real de programao.

Arrays unidimensionais e
bidimensionais
Representao de um array unidimensional:
nota

5.5

6.0

9.0

2.5

4.5

9.5

7.0

8.5

7.5

3.0

4.5
9.5
7

9.5
2.5
6

7.0
0
3.5

8.5
9.5
9

7.5
6.5
7

3.0
2
2.5

Representao de um array bidimensional:

Nota1 5.5
Nota2 4.5
Mdia 5

6.0
6
6

9.0
10
9.5

2.5
4.5
3.5

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma linguagem
real de programao.
Blocos de cdigo que
resolvem problemas
especficos

ementa
A disciplina aborda os conceitos referentes ao ato de programar
computadores; Algoritmo; Programa; Representao de algoritmos:
Diagrama de blocos; Pseudolinguagem; Teste de mesa; Tipos de dados,
variveis, constantes e identificadores. Operadores de atribuio,
aritmticos, relacionais e lgicos, expresses. Estruturas de controle:
sequncia, deciso, iterao. Estruturas de dados: Arrays
unidimensionais e bidimensionais. Rotinas. Aplicao de uma
linguagem real de programao.

Linguagens de programao
Utilizadas para representar algoritmos que devero ser executados pelo
computador.
Exemplos:

C
C++
Objective C
Java
Python

Moodle
prc.ifsp.edu.br/moodle
Sempre verifiquem seus e-mails cadastrados no Moodle, assim como o Frum
de Notcias!

Bibliografia
Bsica:
GUIMARES, Angelo de Moura; LAGES, Newton A. C. Algoritmos e estruturas de
dados. Rio de Janeiro: LTC, 1994.
MEDINA, Marco; FERTIG, Cristina. Algoritmos e programao: teoria e prtica. So
Paulo: Novatec, 2005.
FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lgica de programao. 3.ed. Prentice
Hall, 2005.

Bibliografia
Complementar

PUGA, Sandra; RISSETI, Gerson. Lgica de programao e estrutura de


dados. 2. ed. Pearson, 2009.

XAVIER, Gley Fabiano Cardoso. Lgica de Programao. 11 ed. Senac,


2011.
ZIVIANI, Nivio. Projeto de Algoritmos: Com Implementaes em Pascal e
C. 3.ed. Cengage Learning, 2011.

MANZANO, J. A. N. G. Estudo dirigido em linguagem C. 13a. ed. So


Paulo: Editora rica, 2010.
MIZHARI, V. V. Treinamento em Linguagem C++. 2 ed. So Paulo:
Pearson Education do Brasil, 2006.

Referncias
[1] H. M. Deitel, P. J. Deitel. C: How to Program, Prentice Hall, 2009.
[2] ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da Programao
de Computadores Algoritmos, Pascal e C/C++, Prentice Hall, 2003.
[3] MEDINA, Marco; FERTIG, Cristina. Algoritmos e programao: teoria e
prtica. 2.ed. So Paulo: Novatec, 2005.