Você está na página 1de 30

Algoritmos II

Professora: Ana Paula Freitas Vilela Boaventura

Na aula de hoje...
Introduo teoria de algoritmos. Conceituao. Estruturao de algoritmos.
Linguagem Natural. Fluxograma. Pseudocdigo.

Programas de computador.
O que um programa. Executando um programa. Linguagens de programao e Sistemas Operacionais.

Conceitos - Algoritmo
Algoritmo descrevem uma conjunto finito de instrues:
Comea com a primeira instruo; Execuo sequncia, uma instruo de cada vez; Possibilidade de saltos para outras instrues; Sempre alcana a instruo PARE, que termina o algoritmo (ALGORITMO CORRETO)

Programa: Consiste em representar/descrever um algoritmo em alguma linguagem de programao;

Conceitos - Algoritmo
Um dos algoritmo mais antigo (400 a 300 a.C.): Algoritmo de Euclides, que calcula o mximo divisor comum (MDC) mdc(x,y) = mdc(x, x mod y); mdc(x,0) = x; Entrada: Dois valores inteiros positivos m e n (m>n) Sada: Mximo divisor comum de m e n.

Conceitos - Algoritmo
Cada instruo do algoritmo precisa ser: No ambgua Uma nica operao bem definida; Tecnologicamente vivel; Necessidade de representao Diagramas; Linguagem especfica para escrever algoritmos; Linguagens de programao;

Conceitos Mtodo para


construo de um Algoritmo
Compreender completamente o problema a ser resolvido; Definir os dados de entrada; Definir o processamento (quais tipos de clculos sero necessrios); Definir os dados de sada; Construir o algoritmo utilizando ferramentas; Testar o algoritmo realizando simulaes;

Ferramentas (Bsicas)
Necessrias programao de computadores; Linguagem Natural, Fluxograma, pseudocdigo, linguagem de programao e ambiente de programao

Ferramentas Linguagem Natural


Analisa o enunciado e escrever os passos a serem seguidos para sua resoluo; Vantagem: No necessrio conhecer conceitos novos, pois a linguagem natural j bem dominada; Desvantagem: A lngua natural passvel de vrias interpretaes, o que posteriormente dificultar a transio desse algoritmo para programa;

Ferramentas Fluxograma
Auxilia a compreender a sequncia de instrues em algoritmos e programas;
Vantagem: Simples entendimento; Desvantagem: Necessrio entendimento das simbologias. No h muitos detalhes, dificultando sua transcrio para um programa;

Ferramentas Fluxograma
Conjunto de smbolos do fluxograma

Grfico que demonstra a sequncia operacional do desenvolvimento de um processo

Ferramentas Fluxograma
Laos de Repetio (Teste no incio do lao) WHILE
No necessariamente entra no lao

Ferramentas Fluxograma
Laos de Repetio (Teste no fim do lao) DO - WHILE
Obrigatoriamente entra no lao

Ferramentas Fluxograma
Laos de Repetio (Teste no meio do lao Sabendo um nmero de vezes que ser executado) FOR

Ferramentas PseudoLinguagem
Forma genrica de escrever um algoritmo, utilizando de linguagem simples; Notao que se assemelha a uma linguagem de programao, mas que tambm possibilita ao programador concentrar-se no problema a ser modelado sem se prender a uma linguagem de programao especfica. Essa notao mistura definies formais sobre dados e estruturas de controle, com informaes em estilo livre.

Ferramentas PseudoLinguagem
Vantagem: A passagem do algoritmo para qualquer linguagem de programao praticamente imediata; Desvantagem: Necessrio ter um conhecimento prvio em algoritmos;

Ferramentas PseudoLinguagem
Exemplo mdia entre dois nmeros; Variveis: a,b c, real;
Inicio Escreva (Digite o primeiro nmero); Ler (a); Escreva (Digite o segundo nmero); Ler (b);

c = (a+b) / 2;
Escreva (A mdia :,c); Fim

Ferramentas Linguagem de Programao


Linguagem desenvolvida para viabilizar a programao de computadores; Mtodo padronizado para comunicar instrues para um computador; Caractersticas:
Vocabulrio restrito; Regras de sintaxe; Recursos automticos de verificao da sintaxe da linguagem;

Ferramentas Linguagem de Programao


Calcular a mdia atravs da linguagem de programao
Palavras reservadas Incio Entrada Sada Fim

float a, b, c; scanf (Digite dois nmeros:%f %f, &a, &b); Regra: Ponto e Vrgula c=(a+b)/2; printf (A mdia entre os dois nmero : %f, &c); return 0;
Smbolos especficos de operaes

Ferramentas Ambiente de Programao


A criao de um ambiente consistente de operao to importante quanto o computador em si; Conjunto de tecnologias que d suporte programao de computadores. Exemplo: Sistema Operacional, Editor de texto, Compilador; Os sistemas operacionais reduzem a interveno humana ao mnimo necessrio;

Ferramentas Ambiente de Programao (Sistemas Operacionais)


Programa que controla e coordena todas as operaes bsicas de um computador (Entrada/Sada, Alocao de memria, escalonamento de processos); So escrito em linguagens de baixo nvel, fazendo com que eles sejam mais rpidos e eficientes no gerenciamento de recursos de hardware;

Para dar incio ao aprendizado dessa atividade, importante compreender seu contexto, seu propsito, os conceitos bsicos subjacentes, bem como tomar contato com o ferramental necessrio a sua realizao;

Conceitos

COMPUTADOR

Conceitos - Computador
Coleo de componentes que realizam operaes lgicas e aritmticas sobre um grande volume de dados; Ferramenta de trabalho. Ex.: Editores de texto, planilhas, sistemas de informao;

Conceitos Estrutura de um Computador Digital


Modelo de Von Neummann
Processador Un. Lgica Aritmtica Unidade de Controle Interface Memria Principal Memria Secundria

Un de Entrada

Un de Sada

Perifricos

Conceitos Nveis de Abstrao


Portugus:

Complexidade

Fcil, intuitivo; Computador no entende; Ambguo, mal definido;

abstrao

Cdigo de Mquina
nica forma aceita pelo computado; Preciso e bem definido; Envolve detalhe especficos, irrelevantes para o algoritmo;

Portugus Ling. Programao Instruo Computador Cdigo de Mquina

Conceitos Nveis de Abstrao


Objetivos: Descrio precisa do algoritmo; Independente das caractersticas do computador; Nvel de complexidade intermedirio;

Complexidade

abstrao

Portugus Ling. Programao Instruo Computador Cdigo de Mquina

Conceitos - Computador

Construo do Programa
Construir: Passo 1: Elaborar um algoritmo; Passo 2: Reescrever o algoritmo em C; Passo 3: Adicionar o compilador para gerar o programa executvel
Algoritmo
Programador

Programa C
Compilador

Programa Executvel

Construo do Programa
Testar Passo 4: Testar o programa; Erros? Verificar programa em C; Continuam erros? Verificar o Algoritmo!
Algoritmo
Programador

Programa C
Compilador

Programa Executvel

Erros?

Praticando...
Escreva as informaes do fluxograma em pseudo-linguagem e em linguagem de programao;