Sunteți pe pagina 1din 78

481040 - Programador/a de Informtica

UFCD - 0804 Algoritmos MANUAL

Introduo
Truque com 21 cartas
1. Selecionar 21 cartas do baralho; 2. Fazer trs grupos em linha de sete cartas cada uma, virados para cima; 3. Pedir para escolher uma carta de um dos grupos e memorizar, sem referir a carta escolhida. 4. Pedir para indicar em que linha se encontra a carta escolhida;

Introduo
Truque com 21 cartas
5. Recolher as cartas, sempre da esquerda para a direita, colocando a segunda de baixo da primeira e assim sucessivamente at ao fim da linha, comear por uma das linhas que no tenha a carta escolhida. 6. Repetir o passo 5 para a linha da carta escolhida e colocar por baixo do primeiro grupo de cartas recolhidas. 7. Recolher a ltima linha de cartas e colocar por baixo das restantes deixando o grupo da carta escolhida no meio dos outros dois.

Introduo
Truque com 21 cartas
8. Distribuir trs cartas de cima para baixo e colocar uma carta ao lado da primeira das trs, outra ao lado da segunda e mais uma ao lado da terceira, continuar a distribuir as cartas desta maneira, at acabarem. 9. Repetir os passos 4, 5, 6, 7; 8. Contar dez cartas;

8. Mostrar a dcima primeira carta.


9. Verificar se foi a carta escolhida.

Problemas, algoritmos e programas


Algoritmos o que so?

Conjunto ou sequncia finita e ordenada de aes que conduzem soluo de um determinado problema.

Problemas, algoritmos e programas


Fases da programao
Antes de comearmos a escrever um programa de computador numa determinada linguagem de programao, existem algumas aes a ter em conta.

Por outro lado, aps a escrita desse programa a atividade de programador no termina, pois so necessrias outras tarefas.

Problemas, algoritmos e programas


Fases da programao
1 - Definio do problema Definir o problema da forma mais clara e completa possvel. Elaborar um enunciado preciso de todos os aspetos da situaoproblema a resolver. (H que desfazer todas as dvidas que possam surgir). 2 - Planificao da resoluo Nesta fase surgem os algoritmos que nos conduzem soluo do problema. H que considerar diversas estratgias de abordagem ao problema e diversos mtodos de representao de um esquema.

Problemas, algoritmos e programas


Fases da programao
3 - Codificao Transpor o algoritmo criado para as instrues da linguagem de programao que utilizar. Um programa pode consistir num algoritmo ou conjunto de algoritmos ou subalgoritmos. 4 - Teste e depurao Aps codificar um algoritmo necessrio testar o programa criado em diferentes situaes de modo a podermos detetar erros, falhas ou omisses.

Problemas, algoritmos e programas


Fases da programao
5 - Documentao A documentao do programa feita para dois tipos de destinatrios: programadores e utilizadores. Para os programadores grande parte da documentao pode estar includa no cdigo, pra que outros programadores possam entender o que foi feito. Para os utilizadores so os documentos de ajuda que facilita na aprendizagem relativa ao modo de operar com o programa.

6 - Manuteno
Diz respeito a possveis alteraes e aperfeioamentos sejam necessrio fazer.

Problemas, algoritmos e programas


Fases da programao
Definio do problema Planificao da resoluo Estratgia de abordagem Implementao da codificao Teste e depurao Documentao Em determinadas fases, pode haver necessidade de voltar a fases anteriores e, em seguida retomar o percurso mais lgico. Fases da atividade de programao

Manuteno

Problemas, algoritmos e programas


Programas de computador
Podem ser definidos como um conjunto de instrues destinadas a serem processadas num sistema informtico. A separao entre o algoritmo e o programa permite-nos distinguir e separar as fases de formulao do algoritmo e de implementao do programa. Fase de conceo Algoritmo Fase de Implementao
conjunto de instrues destinadas a serem processadas num sistema informtico para realizar alguma tarefa.

Programa

Sequncia finita e ordenada de aes que conduzem soluo de um problema

Problemas, algoritmos e programas


Programas de computador
A fase da conceo:
Permite conceber algoritmos deixando para mais tarde questes mais especificas relacionadas com a sua implementao; O mesmo algoritmo pode servir de base codificao de um programa em diferentes linguagens e ambientes de programao;

Problemas, algoritmos e programas


Algoritmos
Conjunto finito de regras bem determinadas para a resoluo de um problema, atravs de um numero finito de operaes. O conceito de algoritmo pode ser relacionado com programa de computador. Por outro lado o conceito de algoritmo aplica-se a muitas reas para alm da informtica, como a matemtica ou a fsica. Ao 1 Falso

Condio

Verdade Ao x Ao y

Ao z

Problemas, algoritmos e programas


Algoritmos
A formulao de algoritmos permite-nos separar duas fases distintas na resoluo de problema:

1. A fase da formulao do algoritmo; 2. A fase da sua implementao numa linguagem ou ferramenta de programao;

Problemas, algoritmos e programas


Algoritmos
Um algoritmo deve ter 5 caractersticas fundamentais: Entradas: um algoritmo deve ter uma ou mais entradas, isto quantidades que lhe so fornecidas antes do algoritmo iniciar. Sadas: um algoritmo deve ter uma ou mais sadas, isto quantidades que tem uma relao especfica com as entradas. Preciso: Todos os passos do algoritmo devem ter um significado preciso, no ambguo, especificando exatamente o que deve ser feito.

Problemas, algoritmos e programas


Algoritmos
Um algoritmo deve ter 5 caractersticas fundamentais: Eficcia: Os passos devem conduzir resoluo do problema proposto. Devem ainda ser executveis numa quantidade finita de tempo e com uma quantidade finita de esforo. Eficincia: Um algoritmo deve ser eficiente. Isto significa que todas as operaes devem ser suficientemente bsicas de modo que possam ser em princpio executadas com preciso em um tempo finito por um ser humano usando papel e lpis.

Problemas, algoritmos e programas


Algoritmos
Problema: Verificar se um nmero par ou mpar. Soluo: Se o nmero na diviso inteira por dois der resto zero ento o nmero par caso contrrio mpar. Par 56 2 16 28 0 mpar 27 2 07 13 1

Problemas, algoritmos e programas


Algoritmos
Fase: Formulao do algoritmo Ler nmero; Resto = nmero%2; Se (resto = 0) ento escrever O nmero par; seno escrever O nmero mpar;

Ler nmero X
Falso

Se X/2 resto igual a 0

Verdade par impar

Escrever resultado

Problemas, algoritmos e programas


Algoritmos
Fase: Implementao em linguagem C #include <stdio.h> main() { int num; printf(insira um nmero:); scanf(%d,&n); if(n%2==0) printf(O nmero %d par, n); else printf(O nmero %d mpar, n); }

Problemas, algoritmos e programas


Algoritmos Abordagem top-down
um mtodo de abordagem dos problemas em que se procura identificar os pontos essenciais da questo e se parte dos pontos mais gerais para os mais particulares ou detalhes, em nveis sucessivamente mais concretos, at ao nvel de pormenor desejado. Esta abordagem dirige-se a problemas mais complexos que podem ser decompostos em tarefas mais elementares.

Problema como um todo

Problema decomposto em blocos

Os blocos decompostos em subblocos

Problemas, algoritmos e programas


Algoritmos Abordagem top-down
Ex.

Calcular a hipotenusa de um triangulo aps o utilizador introduzir o valor dos catetos. h c


Frmula: h2=c +c
2 2

c
Introduzir valor dos catetos
Efetuar calculo Apresentar resultado

LER C1 LER C2 X1=C1*C1 X2=C2*C2

Os blocos decompostos em subblocos

Calcular a hipotenusa de um triangulo

Hip=Raiz Quadrada de(X1+X2)

Escrever Hip

Operaes elementares
Antes de se comear com uma Linguagem de Programao, temos de ser capazes de estruturar o nosso raciocnio para que quando nos colocam um problema, termos um controle sobre a lgica que atribumos ao problema de forma a conseguir concluir a soluo sem erros.

Operaes elementares
Linguagem de programao A programao consiste na codificao precisa desse algoritmo, segundo uma linguagem de programao especfica.
Exemplos: Visual Basic, C, Java, Python, C#, .NET, HTML, PHP

Operaes elementares
Tipos de operaes Quando se trata de formular algoritmos para programas de computador, temos de ter em conta quais so os principais tipos de operaes que um sistema informtico pode efetuar.

Operaes elementares
Tipos de operaes elementares
Unidade de entrada ou Unidade central de processamento Memria Operaes de entrada ou imput de dados Ex: Ler(valor) Operaes de sada ou output de dados Ex: Escrever(valor) Unidade de Sada ou

Imput

Output

Operaes de processamento interno Ex: Valor=V*(1+0,23)

Operaes elementares
Operadores aritmticos
Operador Operao
Adio
Subtrao Multiplicao Diviso

+ * /

Nota: A multiplicao representada pelo asterisco(*) e a diviso pela barra ( / )

Operaes elementares
Operadores Relacionais ou de comparao
Operador Operao
Igualdade
Maior que Menor que Maior ou igual Menor ou igual Diferente Includo em

= > < >= <= <>


IN

Operaes elementares
Operadores Lgicos
Operador Operao
Conjuno (L-se i)
Disjuno (L-se ou) Negao (L-se no) Disjuno exclusiva

AND OR NOT XOR

Tipos de Dados
Simples ou primitivos
Os principais tipos de dados utilizados em algoritmia e em programao so:
Caracteres ou alfanumricos, cadeias de caracteres ou texto; H dados que so do tipo texto ou cadeias de carateres (strings) por exemplo: introduza o valor: Nmeros (podendo estes serem de diferentes tipos); Inteiros nmeros inteiro (negativos, zero e positivos) Reais - nmeros em que figuram partes decimais (ex: 1.5;-1.5)

Dados do tipo lgico ou booleano Admite apenas um resultado entre dois resultados possveis (Verdadeiro ou falso).

Tipo de dados
Simples ou primitivos
Carateres Em Pascal Char Linguagem C Char

Short int
Principais tipos de dados simples ou primitivos Nmeros inteiros Integer Long int Nmeros Reais Real Int Long Single Double No tem

Valores Lgicos

Boolean

Tipos de Dados
Dados estruturados ou estrutura de dados
A partir dos dados primitivos podem constituir-se outros tipos de dados mais complexos: Dados estruturados
Podemos ter conjuntos ordenados de dados todos do mesmo tipo base: nesse caso estaramos perante aquilo que se designa por arrays.
10 2 5 15 20 34 12 14 21 45 90 78 9 5 6 7

Tambm podemos ter estruturas com dados de tipos diferentes: nesse caso, estamos perante registos (records) ou outras estruturas

Ficha Utente Nmero: Nome:


Morada: Data Nascimento:
__/__/__

Tipos de Dados Constantes e Variveis


Variveis
um dado que pode sofrer alteraes de valor ao longo do algoritmo, por sua vez surgem sempre designadas por identificadores.

Cada varivel surge associada a um tipo de dados (inteiro, real, string, booleano, etc.)
Varivel Idade: Inteiro (L-se Varivel Idade do tipo Inteiro)

Tipos de Dados Constantes e Variveis


Variveis
Os dados tipo string, cadeia de carateres ou alfanumericos devem de ser includos entre aspas ou apstrofes isto evita serem confundidos com identificadores.
Varivel NOME=Maria Leonor

Identificadores um nome que associado (pelo programador) a uma constante, a uma varivel ou a outro tipo de elemento, em programao
Varivel Cateto Varivel Hipotenusa

Tipos de Dados Constantes e Variveis


Constantes
So dados que permanecem inalterveis do inicio ao fim do algoritmo;
As constantes podem surgir: Sob forma direta, ou seja so expressos literalmente pelo que so, por ex: 0.75; janeiro. Sob forma de identificadores, ou seja nomes que identificam ou representam determinados dados ou valores, por ex: Constante TAXA= 0.23 Constante NOME=Maria
Nota: os dados tipo string ou cadeia de carateres devem de ser includos entre aspas ou apstrofes

Tipos de Dados Constantes e Variveis


Constantes e Variveis
Em termos de RAM o nome com que uma varivel ou constante identificada fica associado a um determinado endereo ou posio da memria Memria RAM
Taxa

Constante

Taxa

=0.23

0.23

Varivel

Valor

10

Valor

10

1 2 3 4 5 6 7 8 Posio

Variveis e instrues de atribuio


Atribuio de valores a variveis
Memria RAM

Como vimos o nome ou identificador de uma varivel associado a um determinado endereo de memria RAM Em termos computacionais isso vai traduzir-se no seguinte:

Taxa

0.23

Constante

Taxa

=0.23

1 2 3 4 5 6 7 8

Varivel

Valor

10

Valor

10

Posio

Para cada varivel reservado um certo espao ou quantidade de bits ou bytes mediante o tipo de dados dessa varivel. Por exemplo: uma varivel definida como inteira so reservados dois bytes. As operaes esto limitadas a cada tipo de dados, por exemplo se definirmos uma varivel como uma string ou cadeia de caracteres no podemos efetuar operaes aritmticas sobre essa varivel

Variveis e instrues de atribuio


Atribuio de valores a variveis
A caracterstica principal de uma varivel a de assumir valores diferentes ao longo de um algoritmo ou programa Chamam-se Instrues de atribuio s operaes internas de um programa ou algoritmo que atribuem valores s variveis. Por exemplo: Nome Maria Leonor Custo 15

(L-se Varivel custo recebe o valor de 15)

Variveis e instrues de atribuio


Atribuio de valores a variveis
O sinal que representa a operao de atribuio varia consoante a linguagem de programao, em algoritmia usa-se

Linguagens Basic e C
Pascal Algoritmia

Sinal de atribuio =
:=

Input e output
Instrues de input ou entrada de dados
Um programa de computador ou algoritmo tem de ter em conta a interao com o exterior ou as pessoas que podem fornecer os dados com que se vo efetuar as operaes. A operao de input: entrada ou leitura de dados por parte do programa A entrada de dados em algoritmia representa-se por: Ler(Nome) Obter(Quantia) A leitura ou a obteno de um valor para uma varivel significa que esse valor ir ser guardado temporariamente no endereo e espao de memria RAM reservado para o efeito.

Input e output
Instrues de output ou sada de dados
A sada ou escrita (output) de dados, por parte de um programa ou algoritmo, pode ser feita em relao a diferentes tipos de dispositivos, como: monitor, uma impressora, um disco rigido, pen, etc.

A sada de dados em termos de algoritmo representa-se por:

Escrever(Ol Mundo!) Escrever(200) Apresentar(Valor=, Valor) Write(Valor=, Valor)

Expresses aritmticas e ordem de prioridade dos operadores aritmticos


Para alm de receberem e guardarem temporariamente valores, as variveis tambm so utilizadas para fornecerem esses valores para a realizao de outras operaes. Por exemplo, consideremos a seguinte instruo de atribuio:

Lucro Custo * 1.25


Esta instruo indica que a varivel Lucro recebe o valor da varivel custo depois de multiplicado por 1.25.

Expresses aritmticas e ordem de prioridade dos operadores aritmticos


As instrues de atribuio de valores a variveis so fundamentais em programao, uma vez que atravs deste tipo de instruo que se manda efetuar uma grande parte dos clculos aritmticos que se pretende obter atravs de um programa. Por exemplo, para que, num programa seja calculada uma expresso como a seguinte: (1.5*(V+10)-N^2)/2 Expresso aritmtica

E o seu resultado seja guardado em algum sitio, necessrio que essa expresso seja includa numa instruo de atribuio, como por exemplo: X =(1.5*(V+10)-N^2)/2 (Varivel X, na posio de memoria que lhe est reservada, guarda o valor obtido com a realizao dos clculos indicados na expresso)

Expresses aritmticas e ordem de prioridade dos operadores aritmticos


As expresses aritmticas tambm diretamente em instrues de escrita podem ser includas

Escrever (Custo +(1*Taxa)) Escrever(Valor =, Custo * 1.25) A ordem pela qual so efetuadas as operaes aritmticas em instrues de programao obedece aos mesmos princpios que vigoram na Matemtica.
A prioridade dos operadores aritmticos, em termos genricos a seguinte:

1. Exponenciao (sinal ^); 2. Multiplicao (*) e diviso (/) 3. Adio (+) e subtrao (-)

Expresses aritmticas e ordem de prioridade dos operadores aritmticos


A utilizao de parnteses permite alterar a ordem de prioridades referida. Tal como acontece na matemtica. Quando numa expresso existem parntesis a prioridade transferida para o interior dos parnteses. X =(1.5*(V+10)-N^2)/2 Ordem de clculo: 1. 2. 3. 4. 5. A=(V + 10); B= N^2; C= 1.5 * A; D=C B; X=D/2

Expresses aritmticas e ordem de prioridade dos operadores aritmticos


As expresses numricas podem ser de 2 tipos: Numricas Booleanas Expresses numricas So aquelas que utilizam apenas operadores aritmticos (+, -, *, /), sendo os operandos tambm do tipo numricos (inteiros ou reais) X =(1.5*(V+10)-N^2)/2 PrecoTotal= Qtd * CustoUn Expresses Booleanas uma expresso onde empregam operadores comparao e/ou lgicos e espera um resultado lgico seja: Verdadeiro ou Falso se de se ou

(Nota >=10) AND (Nota <=20)

Expresses aritmticas e ordem de prioridade dos operadores aritmticos


Prioridade Maior Operadores
1 - Operadores Unrios + (sinal positivo) - (sinal negativo) 2 - Operadores Multiplicativos * (Multiplicao) / (Diviso) 3 - Operadores Aditivos + (Adio) - (Subtrao) 4 - Operadores Relacionais = (igualdade) <(menor), etc.. 5 - Operadores Lgico NOT 6 - Operadores Lgico AND

Menor

7 - Operadores Lgico OR

Expresses aritmticas e ordem de prioridade dos operadores aritmticos


Tabelas da Verdade NOT P ~P AND P V V F F Q V F V F P Q V F F F

OR P
V V F F

Q
V F V F

P Q
V V V F

V F

F V

Exemplo 10 + 5 > 10 And 10 < 10-5 15 > 10 And 10 < 5 V And F F

Construo de algoritmos
Linguagem informal
Consideremos alguns algoritmos de resoluo de problemas da vida quotidiana:
A) Substituir uma lmpada fundida B) Substituir um pneu furado 1. 2. 3. 4. Preparar uma lmpada nova Retirar a lmpada fundida; Colocar a lmpada nova; Ligar o interruptor. 1. Preparar o pneu sobresselente; 2. Colocar o macaco na posio adequada; 3. Levantar o carro 4. Retirar pneu furado; 5. Colocar pneu sobresselente

Sequncias de operaes como estas podem ser consideradas

algoritmos formulados em linguagem informal

Construo de algoritmos
Linguagem formal
Os algoritmos pensados para programas de computador exigem uma formulao com maior rigor.
Variveis Area, Comp, Larg: Inteiros

Inicio

Fim

Ler(Comp, Larg) AreaComp*Larg Escrever(Area)

Construo de algoritmos
Pseudocdigo
Este tipo de linguagem formal que se assemelha a uma linguagem de programao (sem contudo ser) designado por PSEUDOCDIGO. Diz-se pseudocdigo porque tem em vista representar um cdigo de programao, sem o ser.
Variveis Area, Comp, Larg: Inteiros Inicio Ler(Comp, Larg) AreaComp*Larg Escrever(Area)

Fim

Construo de algoritmos
Fluxogramas
Utilizam smbolos e formas grficas com significados convencionais atravs dos quais se representam as sequncias de aes dos algoritmos.
incio

Ler(Comp, Larg)

AreaComp*Larg

Escrever(Area)

Fim

Smbolos e convenes usados em algoritmia


Smbolo utilizados em fluxogramas
Smbolo Descrio Inicio ou fim: Usado para representar o inicio ou o fim Linha de fluxo: Estabelece a ligao entre as aes e
indica o sentido da sequncia dessas mesmas aes de um algoritmo ou bloco de operaes a considerar dentro do algoritmo

Entrada ou sada de dados: Representa uma ao de


entrada (input) ou sada (output) de dados no sistema

Processamento interno: Representa uma operao de processamento interno, como por exemplo, a atribuio de um valor a uma varivel

Smbolos e convenes usados em algoritmia


Smbolo utilizados em fluxogramas
Smbolo Descrio Comentrio: Usado para incluir comentrios explicativos
do algoritmo, como, por exemplo explicar para que serve determinada varivel

Conector: Estabelece a ligao ou conexo entre


diferentes fluxos de aes

Deciso: Representa uma condio ou expresso lgica de


que depender uma deciso em seguir um sentido ou outra sequncia de aes.

Seleo mltipla: Representa uma situao que o algoritmo pode seguir por diferentes vias, opes ou sequncias

Smbolos e convenes usados em algoritmia


Smbolo utilizados em fluxogramas
Smbolo Descrio Subalgoritmo: Representa uma unidade mais pequena em
que o algoritmo foi decomposto; por outras palavras: uma rotina, procedimento ou conjunto de instrues

Smbolos e convenes usados em algoritmia


Convenes utilizveis em pseudocdigo
Smbolo LER ESCREVER Descrio Entrada ou input de dados Sada ou output de dados Operao de atribuio

SE ENTO SENO
REPETIR AT QUE ENQUANTO FAZER

Estrutura de deciso

Estruturas de repetio

Smbolos e convenes usados em algoritmia


Convenes utilizveis em pseudocdigo
Smbolo SELECIONAR CASO Descrio Entrada de seleo ou escolha mltipla

Desenvolvendo algoritmos
Linguagem Natural
A) Substituir uma lmpada fundida 1. 2. 3. 4. Preparar uma lmpada nova Retirar a lmpada fundida; Colocar a lmpada nova; Ligar o interruptor.

Desenvolvendo algoritmos
Fluxograma
A) Verificar se uma lmpada est fundida
incio Fim

Verificar lmpada

Sim
Interruptor ligada?

No

Ligar interruptor

Lmpada acesa?

No

Substituir lmpada fundida

Sim

Desenvolvendo algoritmos
Fluxograma
A) Verificar se uma lmpada est fundida
incio Fim

Entra em ciclo
Verificar lmpada

Sim
Interruptor ligado?

No

Ligar interruptor

Lmpada acesa?

No

Substituir lmpada fundida

Sim

Desenvolvendo algoritmos
Fluxograma
A) Verificar se uma lmpada est fundida
incio Fim

Verificar lmpada

Sim
Interruptor ligado?

No

Ligar interruptor

Lmpada acesa?

No

Substituir lmpada fundida

Sim

Desenvolvendo algoritmos
Pseudocdigo
A) Verificar se uma lmpada est fundida
Incio Varivel estado, X: Char escrever(Lmpada ligada?) ler(estado) Enquanto (estado = no) fazer escrever(Ligar interruptor); ler(estado): fim enquanto Se (estado=sim) ento escrever(Lmpada acesa?); ler(X); Se(X=no) ento escrever(mudar lmpada fundida); Fimse Fimse Fim

Desenvolvendo algoritmos
Exerccios
A) Considere um algoritmo que calcule o permetro de uma circunferncia a partir da introduo da medida do seu raio. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: P= B) Considere um algoritmo capaz de calcular o valor de um lado de um tringulo retngulo a partir da introduo de dois Valores inteiros introduzidos pelo Utilizador. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: + =

Desenvolvendo algoritmos
A) Considere um algoritmo que calcule o permetro de uma circunferncia a partir da introduo da medida do seu raio. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: P= Linguagem Formal 1 Obter Raio; 2 Calcular Perimetro ; 3 - Escrever resultado;

Desenvolvendo algoritmos
A) Considere um algoritmo que calcule o permetro de uma circunferncia a partir da introduo da medida do seu raio. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: P= Fluxograma
incio

Obter Raio

Perimetro ;

Obter Raio

Fim

Desenvolvendo algoritmos
A) Considere um algoritmo que calcule o permetro de uma circunferncia a partir da introduo da medida do seu raio. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: P= Pseudocdigo
Memria RAM

Variveis: Perimetro, Raio Constante: X=3,14;


Escrever(introduza o valor do raio); Ler(raio);

3.14

Raio

Perimetro ;
Escrever(O perimetro :, Perimetro);

Perimetro

12,56

Desenvolvendo algoritmos
B) Considere um algoritmo capaz de calcular o valor de um lado de um tringulo retngulo a partir da introduo de dois valores inteiros introduzidos pelo Utilizador. Escreve o algoritmo em linguagem formal, fluxograma e pseudocdigo. Frmula: + = Linguagem Formal 1 Obter dois lados; 2 Verificar qual maior valor introduzido; 3 Testar se maior valor introduzido a hipotenusa; 4 Caso Hipotenusa ento calcular cateto; 5- Caso Cateto ento calcular hipotenusa;

Desenvolvendo algoritmos
Fluxograma
incio

Ler(V1,V2)
No

V1>V2
Sim

CV2; BV1; 2 2 2 C V2 + X

CV1; BV2; 2 2 2 C V2 + X

XV2; BV1; 2 2 2 C B + X

No

X:inteiro
Sim

Escrever(hipotenusa :,C); Escrever(Cateto 1 :,X); Escrever(Cateto 2 :,B);

Fim

Estruturas de controlo
Aspetos genricos
Na formulao de um algoritmo frequentemente necessrio:
1) Jogar com determinadas condies, para decidir se se deve executar uma ou outra ao ou aes neste caso, teremos instrues ou estruturas de deciso ou seleo.

ou

de

um

programa,

2) Repetir uma srie de instrues um determinado nmero de vezes ou enquanto se verificar uma certa condio neste caso, teremos instrues ou estruturas de repetio ou de ciclo

Estruturas de controlo
Estruturas de Deciso
Podemos ter dois tipos:
1) Estruturas condio: com base numa 2) Estruturas de seleo ou escolha mltipla: SELECIONAR CASO (SELECT CASE)

SE ENTO SENO (IF THEN ELSE)

Estruturas de controlo
Estruturas de Deciso
A) Com base numa condio
Variveis Nota1, Nota2: Inteiros; Incio escrever(Qual a Nota do 1 exame?) ler(Nota1) Se(Nota1 >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimSe; escrever(Qual a Nota do 2 exame?) ler(Nota2) Se(Nota2 >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimSe; Fim

Estruturas de controlo
Estruturas de Deciso
A) Com base numa escolha mltipla
Varivel Nota: Inteiro; Incio escrever(Qual a Nota do exame?) ler(Nota) Selecionar caso (Nota) 0,1,2,3,4: escrever(Mau); 5,6,7,8,9: escrever(Medocre); 10,11,12,13: escrever(Suficiente); 14,15,16,17: escrever(Bom); 18,19,20: escrever(Muito Bom); Seno escrever(Nota Invlida); FimSelecionar Fim

Estruturas de controlo
Estruturas de Repetio
Podemos ter dois tipos:
1) Ciclos controlados condio: por uma 2) Ciclos controlados contador: por um

Enquanto (condio) Fazer

Repetir At que (Condio)

Para(cont=0) At(Cont<10) Fazer

Estruturas de controlo
Estruturas de Repetio
A) Controladas por uma condio
Variveis Nota: Inteiros; Incio escrever(Qual a Nota do exame?); ler(Nota); Enquanto(Nota>0)Fazer Se(Nota >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimSe; escrever(Qual a Nota do exame?); ler(Nota); FimEnquanto Fim

Estruturas de controlo
Estruturas de Repetio
A) Controladas por uma condio
Variveis Nota: Inteiros; Incio escrever(Qual a Nota do exame?); ler(Nota); Repetir Se(Nota >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimSe; escrever(Qual a Nota do exame?); ler(Nota); At que(Nota<0) Fim

Estruturas de controlo
Estruturas de Repetio
A) Controladas por um contador
Variveis Nota, contador: Inteiros; Incio Para(Contador=0 At Contador<2) fazer escrever(Qual a Nota do exame?); ler(Nota); Se(Nota >= 10) Ento escrever(Aprovado); Seno escrever(Reprovado); FimFazer; Fim

Estruturas de controlo
Exerccios
A) Calcular os mltiplos de um nmero introduzido pelo utilizador. O nmero de mltiplos a calcular tambm definido pelo utilizador

Estruturas de controlo
Exerccios
A) Resoluo
Variveis Num, Quantos: Inteiros; Conta, Multip: Inteiros Incio escrever(Introduza um nmero inteiro?); Ler(Num); escrever(Quantos mltiplos?); Ler(Quantos); Para(Conta 1 at Quantos) fazer MultipNum*Conta; escrever(Multiplo de %d : %d,Num, Multip); FimFazer; Fim

Estruturas de controlo
Exerccios
A) Calcular a mdia final obtida por um aluno no curso de programador informtico. O programa deve de solicitar ao utilizador a introduo das notas obtidas no curso.

S-ar putea să vă placă și