Você está na página 1de 39

Algoritmos e Estruturas de Dados I

IEC012

Introduo aos
Algoritmos

Prof. Csar Melo


Glossrio Comunitrio

Conceitos apresentados em sala de aula


devem ser catalogados e submetidos para a
reviso, e posterior publicao
(compatilhamento);
A participao voluntria mas...;
A formulao **prpria** de conceitos
fundamental para a fixao do conhecimento.
A cpia uma forma mais volvel de absoro
do conhecimento;
Sumrio

Reviso de Algoritmos
Programas e linguagem de programao
Linguagem estruturada
Elaborao de programas
Sumrio

Reviso de Algoritmos
Programas e linguagem de programao
Linguagem estruturada
Elaborao de programas
Algoritmo Definio

Descrio de um conjunto finito de


comandos para a soluo de um problema
em um tempo finito.
Algoritmo Exemplo
:: Trocar o pneu de um carro
Algoritmo Exemplo
:: Trocar o pneu de um carro

1. Desparafusar a roda.
Algoritmo Exemplo
:: Trocar o pneu de um carro

1. Suspender o carro com um macaco.


Algoritmo Exemplo
:: Trocar o pneu de um carro

1. Retirar a roda com o pneu furado.


Algoritmo Exemplo
:: Trocar o pneu de um carro

1. Colocar o step.
Algoritmo Exemplo
:: Trocar o pneu de um carro

1. Abaixar o carro.
Algoritmo Exemplo
:: Trocar o pneu de um carro

1. Parafusar a roda.
Algoritmo Mais Exemplos

Substituir uma Lampada.

Cruzar uma Rua movimentada.

Trocar o canal da televiso.


Algoritmo Propriedades

Possui um estado inicial


Possui seqncia lgica
Contm aes claras e precisas
Possui dados de entrada
Produz estado final previsvel
Deve ser eficaz
Algoritmo Fluxo

Entrada

Seqncia Lgica

Sada
Algoritmo Fluxo

Raio R de uma
circunferncia

P=2*pi*R

Permetro P da
circunferncia
Sumrio

Reviso de algoritmos
Programas e linguagem de programao
Linguagem estruturada
Elaborao de programas
Programa

Programa a codificao de um algoritmo


em uma linguagem de programao.
Um computador uma mquina que, a
partir de uma entrada, realiza um nmero
de clculos matemticos e lgicos,
gerando uma sada.
Programa o elemento que diz ao
computador quais clculos devem ser
realizados e quais decises precisam ser
tomadas.
Linguagem de programao

Linguagem formal
Sem ambiguidade, (independe de contexto);
uma pena de galinha
Concisa (vocabulrio restrito);
Literalness
A ficha caiu
A linguagem de programao a ser estudada C;
uma linguagem de alto nvel
Python, PHP, Perl, Java, C++;

Alto nvel X baixo nvel


Mais fcil de lidar: compactas, fcil leitura, corretude;
Portabilidade;
O processo de escrita de programas

Raciocnio

int a, b, c;
if (a > 2)
a = b + c;
Algoritmo
else
a = b c;
return;

Programa
Sumrio

Reviso de algoritmos
Linguagem de programao
Linguagem estruturada
Elaborao de programas
O que linguagem estruturada?

uma forma de programao de


computadores que preconiza que todos os
programas possveis podem ser reduzidos
a apenas trs estruturas:
Seqncia
Deciso
Iterao
Caractersticas

Sua principal caracterstica a utilizao


de blocos para soluo de um problema.

Permite a utilizao combinada de sub-


rotinas compiladas separadamente, sem
que pertenam ao mesmo programa
propriamente dito.
Sumrio

Reviso de algoritmos
Linguagem de programao
Linguagem estruturada
Elaborao de programas
Passos para elaborao de um programa

1. Compreender o problema.
2. Esboar um procedimento para resolver
o problema.
3. Formular o algoritmo.
4. Traduzir o algoritmo para uma linguagem
de programao (Codificao).
Passos para elaborao de um programa
:: Exemplo

Calcular as razes reais de:

2
ax +bx+c
1. Compreender o problema

Exemplo: Equao de 2o. grau


Possibilidades de razes:
02 razes complexas;
02 razes reais idnticas;
02 razes reais distintas;

Condio para haver razes reais: 0


2. Esboar um procedimento para
resolver o problema

Calcular .
Se 0, calcular razes reais.
Caso contrrio, informar que no h razes
reais.
3. Formular o algoritmo

ler(a,b,c)
delta = b^2 4*a*c
se (delta 0) ento
r1 = b (delta)^(1/2)
r2 = b + (delta)^(1/2)
escrever(r1,r2)
seno
escrever(No h raiz real)
fim do se
fim do algoritmo
4. Codificar

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
float a, b, c, delta, r1, r2;
scanf("%f %f %f", &a, &b, &c);
delta = b*b 4*a*c;
if (delta >= 0)
{
r1 = b sqrt(delta);
r2 = b + sqrt(delta);
printf("r1 = %f \n r2 = %f", r1, r2);
}
else
printf("Nao ha raiz real\n");
}
Gerando um programa executvel

Passos necessrios para gerar um


programa executvel:
A. Codificao
B. Gerao de Cdigo Objeto (Compilar)
C. Linkagem
D. Depurao (debug)
Gerando um programa executvel

Codificao Cdigo
Depurao
fonte
Gerao de cdigo
objeto
Cdigo
objeto

Programa
Bibliotecas
Linkagem Executvel
Gerando um programa executvel
A. Codificao

a escrita de um programa de acordo


com uma linguagem de programao.
Utiliza Editores de Texto.
Resultado: cdigo-fonte.
Gerando um programa executvel
B. Gerao de cdigo-objeto

Traduo do cdigo-fonte para o cdigo


de mquina do processador.
Realizado pelos Compiladores.
Resultado: cdigo-objeto.
Gerando um programa executvel
C. Linkagem

Rearranja o cdigo do programa


Incorpora as partes referenciadas no
cdigo original (obtidas de uma
biblioteca).
Realizada pelos Ligadores.
Resultado: cdigo executvel pelo
processador.
Gerando um programa executvel
D. Depurao (debug)

Auxilia o programador a eliminar erros dos


programas (bugs).
Permite:
execuo passo-a-passo.
visualizao do estado do programa atravs
das variveis.
Na prtica...Meu primeiro programa em C

Considere os simbolos que permitem a


realizao de operaes matemticas (*,
+, /, -).
Escreva um programa que recebe(l) dois
nmeros, representando a base e altura
de um retngulo e calcula a sua rea.
O(A) ganhador(a) meia maratona do
amazonas, no ltimo sbado, correu os
21K em 1:11:28(1:29:29), calcule o ritmo
mdio de corrida dos ganhadores em
metros por segundo.
Para saber mais...

SEBESTA, R. W. Conceitos de linguagens


de programao. 4 ed. Bookman, 2000.

Dicionrio de Linguagens de
Programao:
http://users.erols.com/ziring/dopl.html

Dicionrio de algoritmos e estruturas de


dados:
http://www.nist.gov/dads/
Questes

Você também pode gostar