You are on page 1of 47

Leandro Lago da Silva

LP21A0

leandro@datacampo.com.br
Formação Profissional:

Ivomaq (Técnico em Informática);

Colégio Adventista (Laboratorista, Professor de


Informática e Robótica);

Datacampo (Sócio, Desenvolvimento de Sites, Sistemas e


manutenção em computadores);

UTFPR.
Formação Acadêmica

Analise e Desenvolvimento de Sistemas (Integrado);


Conteúdo
Competências e Habilidades:

Desenvolver as capacidades de abstração básica de dados, de


operações e de fluxo de instruções;

Utilizar linguagem de programação para configuração e manutenção


de computadores;

Formalizar soluções algorítmicas para problemas computacionais.


Conteúdo

Variáveis, estruturas da linguagem, modularização


Algoritmos utilizando a programação Implementação de funções
estruturada. agregados homogêneos, agregados heterogêneos
operações com arquivos.

Linguagem/ambiente de programação
de alto nível.
Compilador e ambiente de programação.

Depuração de programas Casos de teste, testes funcionais.


Conteúdo
01/03/11 Apresentação do professor, apresentação da disciplina, conteúdo, formas
de avaliação, bibliografia
15/03/11 Conceitos de Linguagem de Programação, Programa, Instrução, visão geral
sobre o funcionamento de um programa. Apresentação do laboratório e
do ambiente de programação, introdução aos conceitos básicos e
princípios de funcionamento do compilador.
22/03/11 Fluxo seqüencial de instruções. Construção do primeiro programa, com
auxílio do professor.
29/03/11 Conceito de variável de programa. Exemplos com estrutura seqüencial de
execução. Exercícios com estrutura seqüencial de execução.
05/04/11 Implementação de exemplos com estrutura seqüencial e interação com o
usuário.
12/04/11 Operadores lógicos e matemáticos. Precedência de operações. Criação e
utilização de funções; regras para nomear funções. Exercícios.
19/04/11 Exercícios e implementação de funções utilizando estrutura sequêncial de
instruções.
26/04/11 Primeira Prova Bimestral
Conteúdo
03/05/11 Recuperação paralela de conteúdo e de nota/Correção comentada da prova
10/05/11 Exercícios utilizando parâmetros para funções e valores de retorno de
funções
17/05/11 Estrutura Condicional. Implementação de exemplos utilizando estrutura
condicional (se-senão)
24/05/11 Exercícios e implementação de funções utilizando estrutura condicional.
31/05/11 Repetição por contagem (para). Implementação de exemplos utilizando
repetição por contagem
07/06/11 Exercícios e implementação de funções utilizando estrutura de repetição
14/06/11 Exercícios e implementação de funções utilizando estrutura de repetição por
condição.
21/06/11 Exercícios: construção e implementação de funções utilizando estrutura
sequencial e estrutura de repetição.
28/06/11 Segunda Prova Bimestral
05/07/11 Recuperação Paralela de conteúdo e nota. Encerramento do Semestre
Conteúdo
09/08/11 Agregados homogêneos (listas) e percurso de listas. Implementação de
funções
16/08/11 Exercícios de implementação de funções utilizando listas.
23/08/11 Cadeia de caracteres (strings). Implementação de exemplos.

30/08/11 Exercícios e implementação de funções utilizando strings

06/09/11 Exercícios e implementação de funções utilizando listas e strings.


13/09/11 Matrizes - conceito, aplicação e exemplos.

20/09/11 Exercícios utilizando listas, matrizes e strings

27/09/11 Terceira Prova Bimestral


Conteúdo
04/10/11 Correção comentada da prova
18/10/11 Recuperação Paralela de Conteúdo e de Nota
25/10/11 Agregados heterogêneos (classes)

01/11/11 Composição de agregados homogêneos e heterogêneos. Exercícios

08/11/11 Arquivos texto e arquivos binários. Implementação de exemplos


22/11/11 Operações com arquivos texto: operações abrir, ler, escrever e fechar.
Implementação de exemplos
29/11/11 Implementação de exercícios utilizando arquivos

06/12/11 Quarta Prova Bimestral.


13/12/11 Recuperação Paralela de Conteúdo e de Nota. Correção comentada da prova.
Procedimentos Didáticos:
-Situações algorítmicas;

- Derivar algoritmos;

- Exercícios para fixação;

- Todo o material (notas de aula, atividades, listas de exercício)


será disponibilizado aos alunos através da plataforma Moodle, ou
equivalente
Avaliação
- Provas teóricas e/ou práticas; (70%)

- Listas de exercícios entregues individualmente ou em duplas; (10%)

- Trabalhos individuais. (20%)


Referências
Allen Downey, Jeff Elkner e Chris Meyers. Como pensar como um Cientista de
Computação usando Python. Disponível no endereço:
http://pensarpython.incubadora.fapesp.br/portal/livro.

FORBELLONE, A. L.V. & EBERSPACHER, H.F. Lógica de Programação: a


construção de algoritmos e estrutura de dados. São Paulo: Makron Books, 2000.
(LT)

MORAES, Celso R. Estrutura de dados e algoritmos. São Paulo: Editora Futura.


2003.

SOUZA, Marco Antonio Furlan De / GOMES, Marcelo Marques / SOARES, Marcio


Vieira. Algoritmos E Lógica De Programação (Em Português) - Editora: Thomson
Learning, 2005.
Moderna, 2004. 270 p. ISBN 857393316X.
Referências
ASCENCIO, Ana F. G., CAMPOS, Edilene A. V. Fundamentos da programação de
computadores. São Paulo: Pearson Prentice Hall, 2002.

MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica
para desenvolvimento de programação de computadores. 22.ed. São Paulo: Érica,
2009 320 p. ISBN 9788536502212.

VILARIM, Gilvan. Algoritmos: programação para iniciantes. 2. ed. Rio de Janeiro:


Editora Ciência Moderna, 2004. 270 p. ISBN 857393316X.
E Vocês????
Nome?

Pretensão Profissional?

O que vocês acham que é a disciplina?

O que não é a disciplina. . .

Dificuldades anteriores?
Técnico em Informática
O que é um Sistema de Informação?

• Sistema de Informação é classificado como Sistema


Aplicativo e depende de uma infraestrutura de TI cujo
foco é processar dados e apresentar informações para
tomada de decisão.

• Ou ainda, Sistema de Informação é um conjunto de


componentes computacionais que se relacionam e tem
como objetivo principal a geração de informações.
O que é um Sistema de Informação?

Apresentação de Processamento
Informações de Dados

Usuário Sistema de Informação

Hardware
Sistema Operacional Infraestrutura
etc. de TI
• Tendo como ponto de partida uma visão mais técnica,
surge o questionamento:

• Como são construídos os sistemas de informação?


Componentes de um SI
• Para construir um sistema completo são necessários pelo
menos os seguintes recursos (ou componentes
computacionais):
É uma língua com sintaxe
própria em que se define a
lógica do programa. Este
Linguagem de Programação recurso permite realizar:
•Entradas
Compilador/Interpretador •Saídas
Repositório de Dados
•Processamento
•Segurança
•Controles
Componentes de um SI

Utilizando a linguagem de
programação definimos o
fluxo de dados em um
Sistema de Informação
Linguagem de Programação

Compilador/Interpretador Entrada

Repositório de Dados

Processamento

Saída
Componentes de um SI

Tem a função de validar o que


Linguagem de Programação foi escrito na linguagem de
Compilador/Interpretador programação e converter
essa linguagem em outra que
Repositório de Dados possa ser executada pelo
Sistema Operacional.
Componentes de um SI

Linguagem de Programação
Através da linguagem de
Compilador/Interpretador programação
dados podem ser inseridos ou
Repositório de Dados
recuperados.
Como criar um programa?

• Algoritmos!!!
– Lógica de programação
– Dividir para conquistar
– Refinamento Sucessivo
– ...
O que é Algoritmo?
Algoritmo

A automação é o processo em que uma tarefa deixa de ser


desempenhada pelo homem e passa a ser realizada por máquinas, sejam
estas dispositivos mecânicos (como as máquinas industriais), eletrônicos
(como os computadores), ou de natureza mista (como os robôs).
Algoritmo

Sucesso da automação é a garantia de repetibilidade ;

Especificado com clareza e exatidão o processo;

À especificação da seqüência ordenada de passos que deve ser seguida


para a realização de um tarefa, garantindo a sua repetibilidade, dá-se o
nome de algoritmo.
Algoritmo

Embora esta definição de algoritmo seja correta, podemos definir


algoritmo, de maneira informal e completa como:

“Algoritmo é um conjunto finito de regras, bem definidas, para a


solução de um problema em um tempo finito e com um número finito
de passos.”
Algoritmo

Os programas de computador nada mais são do que algoritmos


escritos em uma linguagem de computador (Python, Pascal, C,
Cobol, Fortran, Delphi, Java, entre outras) e que são interpretados
e executados por um computador.
 
Representação de Algoritmos

Linguagem Natural

Os algoritmos são expressos diretamente em linguagem natural. Você


descreve a seqüência de ações de uma maneira coloquial, do dia a dia.
(Receita de Bolo)
Representação de Algoritmos

Fluxograma Convencional

Esta forma de representação de algoritmos emprega várias formas


geométricas para indicar as diversas ações e decisões que devem ser
executadas para resolver o problema.
Fluxograma

Indica o início e o fim de um algoritmo

Indica o sentido do fluxo,dentro do


algoritmo
Indica processamento; cálculos e
atribuição de valores
Indica a entrada de dados

Indica saída de dados

Indica uma tomada de decisão, possível


desvio
Exemplo de Fluxograma

• Chupar bala

Início Pegar a bala

Tirar o papel

Chupar a bala

Jogar o papel
Fim
no lixo
Exemplo com entrada e saída de dados:

Início P1, P2, P3, P4

Media = (P1 + P2 + P3 + P4)


4

Media Fim
Fluxograma com decisão

• Dados dois números, mostrar o maior

Início N1, N2

N1 > N2?

N1 N2

Fim
Representação de Algoritmos

Pseudo-linguagem

Emprega uma linguagem intermediária entre a linguagem natural e uma


linguagem de programação para descrever os algoritmos.
 
Atualmente a maneira mais comum de representar-se algoritmos é
através de uma pseudo-linguagem ou pseudo-código. Esta forma de
representação tem a vantagem de fazer com que o algoritmo seja escrito
de uma forma que está próxima de uma linguagem de programação de
computadores.
Representação de Algoritmos
Exemplo: Linguagem Natural
Um exemplo de algoritmo pode ser as instruções que um professor passa
aos seus alunos em uma academia de ginástica: Por exemplo:
Levantar e abaixar braço direito;
Levantar e abaixar braço esquerdo;
Levantar e abaixar perna esquerda;
Levantar e abaixar perna direita;
Levantar e abaixar braço direito;
Levantar e abaixar braço esquerdo;
Levantar e abaixar perna esquerda;
Levantar e abaixar perna direita;
Levantar e abaixar braço direito;
Levantar e abaixar braço esquerdo;
Levantar e abaixar perna esquerda;
Levantar e abaixar perna direita;
Representação de Algoritmos
Esta pode ser considerada uma seqüência de ações possível para se
chegar ao objetivo (resolver o problema), porém existem formas de
otimizar esta seqüência, deixando com uma melhor solução
(minimização de ações).
 
Repetir 5 vezes as ações definidas logo abaixo:
Levantar e abaixar braço direito;
Levantar e abaixar braço esquerdo;
Levantar e abaixar perna esquerda;
Levantar e abaixar perna direita;
Representação de Algoritmos

Vamos analisar mais um exemplo, considerando o problema de calcular a


área de uma mesa retangular. Este cálculo pode ser efetuado se
seguirmos os seguintes passos:
 
Cálculo da área de uma mesa:
Medir a largura da mesa e anotar o resultado
Medir o comprimento da mesa e anotar o resultado
Multiplicar o comprimento pela largura e anotar o resultado
Fim do cálculo da área da mesa
Algoritmos

• Exemplos:
– Operações básicas matemáticas decimais
– Manuais de aparelhos eletrônicos (Como ligar,
como executar a função X)
– Outras coisas simples
• Chupar uma bala
• Somar dois números
• Fazer um sanduiche
• Sacar dinheiro no caixa rápido
Vamos pensar

1) Construa um fluxograma que: 3) Construa um fluxograma que:


Leia a cotação do dólar Represente seu dia de domingo
Leia um valor em dólares e deve conter:
Converta o valor para Real - Tomadas de decisão.
Mostre o resultado - Processos.

2) Crie um fluxograma que:


Leia 4 (quatro) números
Calcule o dobro de cada um
Somem todos os dobros
Mostre o resultado
Representação de Algoritmos

Para mostrar outro exemplo de algoritmo considere o seguinte


problema. Existem três garrafas: a maior, com capacidade para 8 litros; a
média, para 5 litros; a pequena para 3 litros. A de 8 litros está cheia de
água e as outras duas vazias. Como fazer para deixar quatro litros na
grande e quatro litros na média apenas movimentando a água entre as
garrafas?
 
Usando a vasilha de 8 litros, encha a vasilha de 5 litros;
...
Representação de Algoritmos

Para mostrar outro exemplo de algoritmo considere o seguinte


problema. Existem três garrafas: a maior, com capacidade para 8 litros; a
média, para 5 litros; a pequena para 3 litros. A de 8 litros está cheia de
água e as outras duas vazias. Como fazer para deixar quatro litros na
grande e quatro litros na média apenas movimentando a água entre as
garrafas?
 
Usando a vasilha de 8 litros, encha a vasilha de 5 litros;
Usando a vasilha de 5 litros, encha a vasilha de 3 litros;
Usando a vasilha de 3 litros, passe seu total conteúdo para a vasilha de 8 litros;
Usando a vasilha de 5 litros, passe seu total conteúdo para a vasilha de 3 litros;
Usando a vasilha de 8 litros, passe o conteúdo para a vasilha de 5 litros, até
enchê-la;
Usando a vasilha de 5 litros, passe o conteúdo para a vasilha de 3 litros, até
enchê-la;
Usando a vasilha de 3 litros, passe o conteúdo total para a vasilha de 8 litros;
Lógica das casas
Algoritmos Computacionais

Para resolver um problema no computador é necessário que seja


primeiramente encontrada uma maneira de descrever a solução deste
problema de uma forma clara e precisa.

É preciso que encontremos uma seqüência de passos que permitam que o


problema possa ser resolvido da melhor maneira possível.

Além disto é preciso definir como os dados que serão processados serão
armazenados no computador.

Portanto, a solução de um problema por computador é baseada em dois


pontos: a seqüência de passos e a forma como os dados serão armazenados.
Esta seqüência de passos é chamada de algoritmo.
Algoritmos Computacionais

A noção de algoritmo é central para toda a computação. A criação de


algoritmos para resolver os problemas é uma das maiores dificuldades dos
iniciantes em programação em computadores. Esta seqüência de passos que
compõem o algoritmo é baseada em um conjunto de regras. Mas o que
realmente faz a diferença é como flexibilizar estes passos apoiados nestas
regras para a solução do problema.
 
Um algoritmo é um conjunto finito de regras que fornece uma seqüência de
operações para resolver um problema específico.
Dúvidas ?????

You might also like