Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
UFRN
Escola de Ciências e Tecnologia
Introdução a Algoritmos
ECT1103 – INFORMÁTICA FUNDAMENTAL
Prof: Diego Rodrigues de Carvalho
• Manter o telefone celular sempre
desligado/silencioso quando estiver em
sala de aula;
• Nunca atender o celular na sala de aula.
Objetivo da Aula
• Introduzir o conceito de algoritmos;
• Descrever as formas de representação de um algoritmo.
Por Que Estudar Construção de Algoritmos?
• Problema: Como construir uma trave de madeira?
Etapas da Solução do Problema
• Análise – Etapa em que o problema a ser resolvido é
estudado em detalhes para definição dos materiais e
passos necessários para a sua resolução;
• Algoritmo – Utilização de ferramentas para descrever
o problema com suas soluções:
– Ferramentas: descrição narrativa, fluxograma ou português
estruturado.
Por Que Estudar Construção de Algoritmos?
• Análise: o que eu preciso para resolver tal problema?
– Material: madeira e ferramentas.
Por Que Estudar Construção de Algoritmos?
• Análise:
– Usar pregos ou parafusos?
– Esta decisão implica em usar martelo ou chave de fenda.
Definir Passos
1 - Serrar a madeira para ficar no
tamanho desejado:
2 – Pregar as pontas formando a trave:
Algoritmos - Definição
• Uma sequência de passos que visa atingir um
objetivo bem definido;
• Tem como objetivo representar o raciocínio (ordem
dos passos) envolvido na realização de uma tarefa;
• Exemplo (Colocar um carro em movimento):
– Colocar a chave na ignição e dar partida no motor;
– Pisar na embreagem;
– Passar a primeira marcha;
– Soltar a embreagem lentamente, enquanto pisa no
acelerador.
Algoritmos - Características
• Finitude: algoritmos devem terminar após um número
finito de passos;
• Definição: cada passo deve ser precisamente definido;
• Entradas: devem ter zero ou mais entradas;
• Saídas: devem ter uma ou mais saídas;
• Efetividade: todas as operações devem ser simples de
modo que possam ser executadas em um tempo
limitado.
Exemplo de Problema
• Defina um programa que receba dois números pelo
teclado, calcule a média aritmética destes dois números e
imprima o resultado no monitor;
• Quais ferramentas posso utilizar para definir meu
algoritmo ?
Leia, some, divida,
escreva, compare,
multiplique, subtraia
Formas de Representação de Algoritmos
• Descrição Narrativa;
• Fluxograma;
• Pseudocódigo;
• Linguagens de programação.
Formas de Representação de Algoritmos
• Descrição Narrativa:
– Uso da linguagem natural;
– Temos a inconveniência da má interpretação, originando
ambigüidades e imprecisões;
– Exemplo: a troca de um pneu furado;
– Analisar as ambigüidades e imprecisões.
Descrição Narrativa
• Algoritmo:
– afrouxar ligeiramente as porcas;
– suspender o carro;
– retirar as porcas e o pneu;
– colocar o pneu reserva e as porcas;
– abaixar o carro;
– dar o aperto final nas porcas.
Conceitos Fundamentais
• Algoritmo:
– De modo a torná-lo não ambíguo, é necessária uma
formalização;
– Definição de regras de semântica e sintaxe.
Fluxograma
• Uso de formas geométricas distintas produzindo
ações distintas:
Início ou fim do fluxograma;
Entrada de dados;
Cálculo de expressões;
Saída de resultados;
Tomada de decisão;
Fluxo.
Fluxograma
Pseudocódigo
• Uso de linguagem própria, aproximando-se mais das
linguagens de alto nível, chamado, também de
pseudolinguagem ou ainda portugol;
• Forma geral:
algoritmo nome_do_algoritmo ;
variaveis
< declaração_de_variáveis >;
fim-variaveis
inicio
< instruções > ;
fim
Pseudocódigo
• algoritmo Media_do_aluno;
variaveis
m1, m2, m3, media: real;
fim-variaveis
inicio
m1 := leia( );
m2 := leia( );
m3 := leia( );
media := ((m1*4)+(m2*5)+(m3*6))/15;
se media >= 7 então
imprima(“APROVADO”);
senão
imprima(“REPROVADO”);
fim-se
fim
Linguagens de Programação
• Linguagens de programação:
– Uma linguagem de programação é um método
padronizado para descrever instruções para um
computador;
– É um conjunto de regras sintáticas e semânticas usadas
para definir um programa de computador.
Linguagens de Programação
• Linguagens de baixo nível:
– Linguagens de máquina, assembly.
• Linguagens de alto nível:
– Fortran, Cobol, C, C++, Java, Python, Basic, Pascal, etc.
Conceitos Básicos
• Baixo nível:
– Código otimizado;
– Indicado para situações em que seja necessário explorar
com mais profundidade os recursos da máquina.
• Alto nível:
– Facilidade na programação do algoritmo;
– Portabilidade;
– Manutenção do código.
Linguagens de alto Nível
• Exemplo usando a linguagem C/C++:
#include <iostream>
using namespace std;
int main() {
float N1, N2, media;
media = (N1+N2)/2.0;
return 0;
}