Você está na página 1de 42

Aula Teórica I

Rodrigo M. Bacurau
Roteiro
 Apresentação da disciplina

 Introdução

 Problema

 Solução

 Algoritmo

 Conceitos básicos de Algoritmos

2
Apresentação

 Professor

 Rodrigo Moreira Bacurau (6 primeiras aulas)


 Cássio Francisco da Silva (9 últimas aulas)

Email: rodrigo.bacurau@univasf.edu.br
Site: www.univasf.edu.br/~rodrigo.bacurau

3
Ementa
 Conceito de algoritmo.
 Lógica de programação e programação
estruturada.
 Linguagem de definição de algoritmos.
 Estrutura de um algoritmo.
 Constantes, identificadores e variáveis.
 Declaração de variáveis.
 Operações Básicas.
 Comandos de Entrada e Saída.
 Estruturas de Controle de Fluxo.
 Conceito e classificação de Linguagens de
Programação. 4
Ementa
 Introdução à uma Linguagem de Programação
de alto nível estruturada (Linguagem C).
 Ambiente de programação.
 Componentes da Linguagem C:
 estrutura de um programa;
 Identificadores;
 palavras reservadas;
 Variáveis;
 Constantes;
 Declaração de variáveis;
 Operações básicas;
 Comandos de entrada e saída;
 Estruturas de controle de fluxo;
 Estruturas de dados homogêneas;
 Modularização. 5
Objetivos

 Tornar os alunos capazes de visualizar


soluções computacionais para problemas
através da aplicação dos conceitos da
lógica de programação e dotá-los da
capacidade de construção de programas,
em linguagem de alto nível estruturada,
que implementem as soluções vislumbradas.

6
Objetivos
 Desenvolver o raciocínio lógico e abstrato do aluno;
 Familiarizar o aluno com o modelo sequencial de
computação;
 Apresentar técnicas e linguagens para representação e
construção de algoritmos simples;
 Apresentar conceitos básicos de linguagens de
programação;
 Capacitar o aluno no uso da linguagem C (exceto
ponteiros e arquivos);
 Treinar o aluno no processo básico de desenvolvimento
de software (concepção, edição, execução e teste de
programas de computador).

7
Metodologia e Ferramentas
 A disciplina será trabalhada com aulas
expositivo-dialogadas, onde serão
fornecidos os componentes teóricos e será
feita a prática de exercícios.

 Após a exposição da teoria, os alunos


participam de aulas práticas, ministradas
em laboratório, para experimentação e
fixação dos conteúdos.

8
Avaliação
 A avaliação se dará por meio de 3 provas escritas
individuais.

 Se média >= 7,0 e freqüência >= 75% -> Aprovado.

 Se média < 4,0 ou freqüência < 75% -> Reprovado.

 Se 4,0 <= média < 7,0 e freqüência > 75% -> Final.
 O aluno submetido a prova final (PF) será
considerado aprovado se obtiver nota final >=
5,0.
 Nota final = (Média + PF)/2

9
Avaliação
 Prováveis datas das avaliações
 1ª Avaliação (teórica) : 23/01/2012
 2ª Avaliação (prática) : 28/01/2012
 3ª Avaliação (trabalho) : 06/02/2012
 Avaliação Final (prática) : 06/02/2012
 Avaliação Substitutiva : 03/02/2012

10
Bibliografia Básica
 ASCENCIO, Ana Fernanda Gomes; CAMPOS,
Edilene Aparecida Veneruchi de. Fundamentos da
Programação de Computadores. 2ª edição. Editora
Pearson Prentice Hall, 2003.

 OLIVEIRA, Alvaro Borges de; BORATTI, Isaias


Camilo. Introdução à Programação - Algoritmos.
Editora Visualbooks, 1999.

 CORMEN, Thomas H.; LEISERSON, Charles E.;


RIVEST, Ronald L.; STEIN, Clifford. Algoritmos,
Teoria e Prática. Editora Campus, 2002.

 SCHILDT, Herbert. C Completo e Total. Editora


Pearson Makron Books, 2006.
11
Introdução
 Programar um computador não é uma
tarefa tão difícil como se imagina.

12
Introdução
 O computador (hardware) isoladamente
não tem utilidade nenhuma.

 Para que ele possa ser útil é preciso


programá-lo (software).

 Comparação com a TV.

13
Introdução
 Mas o que é realmente um programa
de computador.

 Analogia com uma receita culinária.

14
Introdução
 O objetivo desta disciplina é prover a
base teórica para que os alunos
possam desenvolver programas de
computadores.

 Antes de apresentar o processo de


programação precisamos entender
alguns conceitos.

15
Problema
 O que é um
Problema?

16
Problema
 De acordo com o dicionário Michaelis
um problema é:
1. Questão levantada para inquirição,
consideração, discussão, decisão ou solução;
2. Tema cuja solução ou decisão requer
considerável meditação ou habilidade;
3. Toda questão em que se procura calcular uma
ou várias quantidades desconhecidas,
denominadas incógnitas, ligadas mediante
relações a outras conhecidas e
chamadas dados.

17
Problema
 Exemplo de problemas cotidianos:
 Chegar ao local de trabalho;
 Fazer um bolo;
 Trocar a resistência de um chuveiro.

18
Solução
 Solução do Problema: “Trocar a
resistência de um chuveiro”:
 Adquirir uma resistência nova;
 Localizar o chuveiro a ser manipulado;
 Abrir o chuveiro;
 Retirar a resistência defeituosa;
 Colocar a resistência nova;
 Fechar o chuveiro;
 Descartar a resistência defeituosa.

 Uso da Lógica.

19
Solução
 Passos para resolver um problema
computacional:

1. Definir o problema;
2. Fazer suposições e interpretações com o
objetivo de encontrar uma forma de resolver
o problema;
3. Criar um algoritmo para representar a solução
imaginada;
4. Verificar se a solução está correta.

20
Algoritmo
 Definições:

 “Um conjunto finito de regras que provê uma


sequência de operações para resolver um tipo
de problema específico” [KNUTH]

 “Sequência ordenada, e não ambígua, de passos


que levam à solução de um dado problema”
[TREMBLAY]

21
Características dos
Algoritmos
 Finitude:Um algoritmo deve sempre terminar após um número
finito de passos.
 Definição:Cada passo de um algoritmo deve ser precisamente
definido. As ações devem ser definidas rigorosamente e sem
ambiguidades.
 Entradas:Um algoritmo deve ter zero ou mais entradas, isto é
quantidades que são lhe são fornecidas antes do algoritmo
iniciar.
 Saídas:Um algoritmo deve ter uma ou mais saídas, isto é
quantidades que tem uma relação específica com as entradas.
 Efetividade:Um algoritmo deve ser efetivo. Isto significa que
todas as operações devem ser suficientemente básicas de modo
que possam ser em princípio executadas com precisão em um
tempo finito por um humano usando papel e lápis.

22
Algoritmos
 Exemplos:
 Manual de instruções;
 Uma receita de bolo;
 O cálculo da conta de água.
 A fórmula para o cálculo da média
aritmética.

 Um algoritmo não é a solução para um


problema!

23
Algoritmos
 Como regra geral um algoritmo parte de uma
situação inicial e diz o que deve ser feito para
se chegar a uma situação desejada.

SITUAÇÃO ALGORITMO SITUAÇÃO


ATUAL DESEJADA

Instruções

24
Algoritmo
 Exemplo:

 ALGORITMO: TROCAR UMA LÂMPADA


 PASSO 1: Pegar a lâmpada nova
 PASSO 2: Pegar a escada
 PASSO 3: Posicionar a escada embaixo da lâmpada
queimada
 PASSO 4: Subir na escada com a lâmpada nova
 PASSO 5: Retirar a lâmpada queimada
 PASSO 6: Colocar a lâmpada nova
 PASSO 7: Descer da escada
 PASSO 8: Ligar o interruptor
 PASSO 9: Guardar a escada
 PASSO 10: Jogar a lâmpada velha no lixo

25
Algoritmo
 Exercício:

 Construa um algoritmo para fazer um


ovo frito.

26
Algoritmo
 Exercício:

 Construa um algoritmo para encontrar


a menor carta em um conjunto de
cartas de um baralho.

27
Algoritmo
 Exercício:

 Construa um algoritmo para calcular a


média aritmética de 4 números.

28
Conceitos básicos de Algoritmos
 Antes de nos aprofundarmos nos métodos
de representação de algoritmos, devemos
ter de forma clara a compreensão de
alguns conceitos como:
 Constante;
 Variável;
 Identificador;
 Palavra-reservada;
 Entrada;
 Saída.
29
Conceitos básicos de Algoritmos
 Para uma melhor compreensão dos
conceitos citados, analisaremos o
problema de preparar um bolo.

30
Conceitos básicos de Algoritmos
 Ingredientes:
 250 g de margarina;
 4 gemas;
 250g de açúcar;
 250g de farinha de trigo;
 3 colheres de sopa de raspas de limão;
 4 claras em neve;
 1 colher de chá de fermento em pó.
 1 lata de cobertura para bolo
 Modo de Preparo:
 Pré-aquecer o forno em temperatura média (180 ºC).
 Na tigela da batedeira, colocar a margarina, as gemas e o açúcar. Bater
até obter um creme bem liso e levemente esbranquiçado. Tirar da
batedeira e acrescentar, aos poucos, a farinha de trigo e as raspas de
limão. Acrescentar as claras em neve e mexer delicadamente. Por último
juntar o fermento e mexer.
 Numa forma redonda untada com margarina e polvilhada com farinha de
trigo, colocar a massa e levar para assar por aproximadamente 50
minutos.
 Por fim retirar o bolo do forno, esperar esfriar, desenformá-lo em um
prato e colocar a cobertura sobre sua superficie.
31
Conceitos básicos de Algoritmos
 Ao analisarmos o procedimento de preparo
percebemos que são necessários três
recipientes: uma tigela da batedeira, uma
forma e um prato.
 Podemos visualizar os recipientes como
variáveis, pois estes são regiões do espaço
onde pode-se armazenar inúmeras
substâncias.

32
Conceitos básicos de Algoritmos
 Os ingredientes constituem as entradas
para o processo e o bolo a saída.

 A cobertura do bolo como uma constante


devido a esta representar um elemento que
participa do processo de preparo do bolo e
que ao final se mantém inalterado.

33
Conceitos básicos de Algoritmos
 Percebemos também que são executadas algumas
operações: colocar, bater, tirar, aquecer, esperar...
 Os nomes dos recipientes e os verbos
correspondentes às ações podem ser visualizados
como identificadores, uma vez que estes
especificam o que será manipulado ou como será
manipulado. Uma observação a ser feita é o fato de
não podermos nomear um recipiente com um verbo
correspondente a uma ação utilizada no processo,
logo os verbos podem ser considerados como
palavras-reservadas.
34
Conceitos básicos de Algoritmos
 A partir deste exemplo pudemos compreender
o significado dos principais conceitos de
programação.

 Agora vamos contextualizar esses termos no


“universo da programação”.

35
Constante
 Constante: São Valores fixos, tais como números.
Estes valores não podem ser alterados pelas
instruções do algoritmo, ou seja, é um espaço de
memória cujo valor não deve ser alterado
durante a execução de um algoritmo.
 Exemplos:
 inteiro (10, -23768)
 real (-2.34, 0.149)
 caractere (“a”, “professor”)

36
Variável e Identificadores
 Variável: é um espaço de memória que recebeu um nome
(identificador) e armazena um valor que pode ser modificado
durante a execução do algoritmo.
 Identificadores: são os nomes utilizados para referenciar
variáveis, funções ou vários outros objetos definidos pelo
construtor do algoritmo.
 Regras para a construção de identificadores:
○ podem conter letras, dígitos e sublinhado(_);
○ não podem começar com dígito;
○ não podem ser iguais a uma palavra-reservada e nem
iguais a um nome de uma função declarada pelo
construtor do algoritmo ou disponibilizada pelo
método utilizado para construção de algoritmos.
37
Palavras Reservadas
 Palavras-reservadas (palavras-chave) :

São identificadores predefinidos que


possuem significados especiais para o
interpretador do algoritmo.

inicio senao para repita


var logico se ate
faca inteiro enquanto real

38
Tipos de dados
 Tipos Primitivos:

 Palavra-reservada: inteiro - define variáveis


numéricas do tipo inteiro, ou seja, sem casas
decimais
 Palavra-reservada: real - define variáveis
numéricas do tipo real, ou seja, com casas
decimais
 Palavra-reservada: logico - define variáveis do
tipo booleano, ou seja, com valor VERDADEIRO
ou FALSO
 Palavra-reservada: caractere - define variáveis
do tipo string, ou seja, cadeia de caracteres
39
Referências
 ASCNCIO, A. F. G.; CAMPOS, E. A. V.
Fundamentos da Programação de
Computadores. 2ª ed. Pearson Education,
2003

 OLIVEIRA, A. B.; BORATTI, I. C.


Introdução à Programação -
Algoritmos. 3ª ed. Visual Books, 1999.

 CORMEN, T.H. et al. Algoritmos, Teoria


e Prática. 2ª ed. Elsevier, 2002.

40
Referências
 MEDINA, M.; FERTIG, C. Algoritmo e Programação:
Teoria e Pratica. 2ª ed. Novatec, 2006

 CARBONI, I. F. Lógica de Programação. Cengage


Learning, 2003.

 LINDER, M. S. Introdução a Algoritmos. Notas de


Aula – UNIVASF. Disponível em:
<http://www.univasf.edu.br/~marcelo.linder/iaa.html>.
Acesso em: 02 - 08 – 2011.

 LINDER, M. S. Algoritmos e Programação. Notas de


Aula – UNIVASF. Disponível em:
<http://www.univasf.edu.br/~marcelo.linder/arquivos_
ap/M2.html>. Acesso em: 02 - 08 – 2011.

41
OBRIGADO!

Rodrigo Moreira Bacurau


rodrigo.bacurau@univasf.edu.br

42

Você também pode gostar