Vous êtes sur la page 1sur 26

Algoritmo

Professora: Ana Carolina Russo


russo.anacarolina@gmail.com

Formao
Engenharia Ambiental UNESP
Iniciao cientfica (FAPESP)
Grupo de pesquisa Ncleo de Automao e

Tecnologias Limpas NATEL


Mestrado em Tecnologia Nuclear IPEN/USP
Engenharia de Segurana do Trabalho

USP
Doutorado em Tecnologia Nuclear
IPEN/USP

Trabalhos relevantes
Composio 234 (RGB) das tribos
indgenas Renascer e Ribeiro
Silveira nos anos de 2004

Mapas temticos de uso do solo da


tribo indgena Ribeiro Silveira no
ano de 2004

Trabalhos relevantes - UNESP


Lagoa de disposio de lama
vermelha na regio de Sorocaba

Analise por sedimentao argila


(Mtodo da pipeta - Boletim
Tcnico n. 106. Instituto
Agronmico de Campinas, 1996).

Trabalhos relevantes - USP

Ementa
Conceitos fundamentais de programao:
Algoritmos;
Linguagem;
Compilador;
Linguagem de programao;
Estrutura de um programa;
Tipos de dados;
Operadores;
Programao estruturada;
Estruturas de condies;
Laos de repeties;
Vetores e matrizes;
Strings e funes de manipulao;
Registros
6

Conceitos fundamentais da
programao
O que um Algoritmo?

Programar construir algoritmos


Programa = algoritmo + estruturas de
dados
No processo de construo de
programas, a formulao do algoritmo e
a definio das estruturas de dados
esto intimamente ligadas.

Conceitos fundamentais da
programao
Caractersticas:
Ao: evento que ocorre num perodo de

tempo finito;
Estado: propriedades de um objeto numa
dada situao;
Processo: sequncia temporal de aes;
Padro de comportamento: seguido pela
ocorrncia de um evento.

Conceitos fundamentais da
programao
Ex: Algoritmo para fazer pastel
Prepare a massa do pastel na cozinha;
Traga a panela do armrio;
Coloque leo na panela;
Se a roupa e clara
ento coloque o avental;
Enquanto numero de pastis insuficiente para o
numero de pessoas faa
prepare a massa;
Esquente o leo da panela;
Frite os pastis na panela;
Escorra o excesso de leo dos pastis;
Coloque os pastis fritos numa vasilha com papel
absorvente.
9

Conceitos fundamentais da
programao
Informaes importantes!!
Tempo verbal no imperativo (traga, coloque,

frite);
Sequencia de aes delimitadas por um ponto e
virgula;
Em nosso exemplo, o avental no usado em todos
os momentos: h uma condio para que ele seja
usado;
No exemplo, o nmero de pastis varivel; a ao
de preparar pastis repete-se at que a condio
de parada seja satisfeita (alimentar um
determinado numero de pessoas);
A ordem das aes importante.
10

Conceitos fundamentais da
programao
Podemos concluir que....

Um algoritmo a descrio de um
padro de comportamento, expresso em
termos de um repertrio bem definido e
finito de aes primitivas que podem
ser executadas.

Aspectos estticos: texto;


Aspectos dinmicos: execuo
11

Conceitos fundamentais da
programao
Exerccio 1

Escolha uma das aes abaixo e faa um


algoritmo:
Vir estudar
Fazer uma feijoada
Trocar uma lmpada
Escovar os dentes
Dirigir um carro
12

Conceitos fundamentais da
programao

Computador: mquina capaz de seguir um programa

(algoritmo), escrito em linguagem de maquina (dgitos


binrios);
Linguagem de alto nvel: C, C++, C#, Pascal, Delphi,

Java, Basic, VisualBasic, Fortran, Cobol, entre muitas outras.


Linguagem de baixo nvel (Assembly): linguagem
prxima s de maquina para lidar com programas de
computador que precisam interferir diretamente no
hardware da maquina para permitir a execuo de funes
especificas.
13

Conceitos fundamentais da
programao
Programador (humano)
Linguagem de alto nvel
Compilador
Linguagem de maquina
14

Conceitos fundamentais da
programao
O que o compilador?
O compilador um programa que traduz uma

determinada linguagem de programao para


linguagem de mquina.
Permite que os programadores utilizem linguagens
de alto nvel para escrever os programas de
computador, pois se encarrega de traduzi-los para
linguagem de mquina.

Dessa forma, existem diversos compiladores


especficos para cada uma das linguagens de
programao e para cada sistema operacional
15

Conceitos fundamentais da
programao
Importante!

Um compilador C para o sistema operacional


Windows diferente de um compilador C
para o sistema operacional Linux, que tambm
diferente de um compilador C para o
sistema operacional Mac OS, por exemplo,
embora a linguagem de programao (C) seja
a mesma (linguagem de alto nvel).
O compilador de linguagem de montagem ou
linguagem assembly chamado assembler.
16

Conceitos fundamentais da
programao
Como programar?

17

Algoritmo

Editor

Cdigo
fonte

Compilad
or

Cdigo
objeto

Arquivos
de
biblioteca

Linker

Cdigo
executve
l

Conceitos fundamentais da
programao
Algoritmo: estrutura do programa; instrues que descrevem a logica do programa;
Editor de texto: permite que o cdigo-fonte do programa seja editado em um

arquivo-fonte. Ex: Dev. C++;


Cdigo-fonte: conjunto de comandos escritos na linguagem de programao
escolhida (que, neste curso, ser a linguagem C). O cdigo-fonte fica armazenado no
arquivo-fonte em formato ASCii, ou seja, em texto [o arquivo-fonte possui a extenso
relativa a linguagem de programao usada, por exemplo, .pas (Pascal), .c (C), .cpp
(C++), .cs (C#), .java (Java)];
Compilador: l o cdigo-fonte do programa e cria outro arquivo, com o mesmo
programa escrito em linguagem de maquina;
Cdigo-objeto: arquivo resultante da compilao do cdigo-fonte. Contem
informaes sobre alocao de memoria, os smbolos do programa (como nomes de
variveis e de funes) e tambm informaes sobre debug (o arquivo-objeto possui a
extenso .obj para a maioria das linguagens de programao);
Arquivos de biblioteca: contem funes j compiladas que podem ser utilizadas
no programa;
Linker: programa auxiliar do compilador que cria o programa executvel a partir
de arquivos-objeto e dos arquivos de biblioteca;
Cdigo executvel: programa que pode ser executado no computador (o arquivo
executvel possui a extenso .exe).

18

Conceitos fundamentais da
programao
Etapas da Programao de Computadores

19

Expresso de Algoritmos
Atravs de Diagramas

Diagrama de Chapin
Fonte: http://abyte2bite.com/formas-de-representao-de-algoritmos/

20

Expresso de Algoritmos
Atravs de Fluxogramas

21

Fluxograma
Fonte: http://abyte2bite.com/formas-de-representao-de-algoritmos/

Expresso de Algoritmos
Aspectos negativos:
Memorizar todas as formas geomtricas e conhecer as
regras de inter-relacionamento entre elas;
Perde um tempo considervel para fazer e refazer
desenhos, tendo que possuir diversas rguas com os
smbolos dos diagramas;
Desenhos comeam a ocupar muitas pginas, tornando
impraticvel a visualizao de toda a soluo;
Memorizao de regras de expresso desvia a
ateno do programador, que no tem apenas de se
concentrar na lgica do problema, como seria desejvel,
mas tem as preocupaes adicionais de elaborar
desenhos e consultar regras e regras (Oliveira, 2012).
22

Expresso de Algoritmos
Atravs de Linguagem de Programao

23

Expresso de Algoritmos
Atravs de Pseudolinguagem
Linguagemdeprogramaosimplificada,

usadaparaescreveralgoritmos,semsepreo
cuparcom
todososdetalhesdeumalinguagemdeprog
ramaoreal...
Pseudo
linguage
m
se...
ento...
seno...
24

Linguage
m
de
progra
mao
Java,C,
Pascal,etc

Linguage
m
de
mquina
Zerose
uns...

Expresso de Algoritmos
Vantagens:
Linguagem
independente
de
maquina;
o
programador pensa somente no problema a ser
resolvido, sem se preocupar com possveis restries
do compilador ou do hardware (computador);
Programador deve conhecer a sintaxe, a semntica e
a estrutura da pseudolinguagem, mas tem total
liberdade para criar novos comandos ou usar
instrues em alto nvel (ou em forma de frases);
Estando pronto o algoritmo na pseudolinguagem,
a sua implementao no computador (etapas 4 e 5
da programao) fica muito facilitada.

25

Atividade proposta
Tente deduzir qual o padro de

comportamento utilizdo pra gerar as


sequencias:
1,5,9,13,17,21,25
1,1,2,3,5,8,13,21,34

26

Vous aimerez peut-être aussi