Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


algoritmos e Linguagem pascal, Notas de estudo de Tecnologia Industrial

Um pouco de programação básica.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 24/08/2009

alisson-ferreira-11
alisson-ferreira-11 🇧🇷

5

(3)

7 documentos

1 / 94

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DA PARAÍBA
GERÊNCIA EDUCACIONAL DE INFORMÁTICA
ALGORITMOS
E
PASCAL
JOÃO PESSOA / PB
ABRIL / 2000
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e

Pré-visualização parcial do texto

Baixe algoritmos e Linguagem pascal e outras Notas de estudo em PDF para Tecnologia Industrial, somente na Docsity!

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DA PARAÍBA

GERÊNCIA EDUCACIONAL DE INFORMÁTICA

ALGORITMOS

E

PASCAL

JOÃO PESSOA / PB

ABRIL / 2000

SUMÁRIO

Capítulo 1

ALGORITMOS

1.1. DEFINIÇÃO DE ALGORITMO

A palavra algoritmo , à primeira vista, parece-nos estranha. Embora possua designação desconhecida, faze- mos uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho é um algoritmo. Outros algoritmos freqüentemente encontrados são:

  • instruções para se utilizar um aparelho eletrodoméstico;
  • uma receita para preparo de algum prato;
  • guia de preenchimento para declaração do imposto de renda;
  • a regra para determinação de máximos e mínimos de funções por derivadas sucessivas;
  • a maneira como as contas de água, luz e telefone são calculadas mensalmente; etc.

São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:

“Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [KNUTH]

“Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema” [TREMBLAY]

“Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema” [AURÉLIO]

1.2. POR QUE PRECISAMOS DE ALGORITMOS?

Vejamos o que algumas pessoas importantes, para a Ciência da Computação, disseram a respeito de algo- ritmo:

“A noção de algoritmo é básica para toda a programação de computadores”. [KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer pro- gramming”]

“O conceito central da programação e da ciência da computação é o conceito de algoritmo”. [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2]

A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que mandamos. Com uma ferramenta algorítmica, podemos conceber uma solução para um dado problema, independendo de uma linguagem específica e até mesmo do próprio computador.

1.3. CARACTERÍSTICAS

Todo algoritmo deve apresentar algumas características básicas:

  • ter fim;
  • não dar margem à dupla interpretação (não ambíguo);
  • capacidade de receber dado(s) de entrada do mundo exterior;
  • poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo;
  • ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito).

1.4. FORMAS DE REPRESENTAÇÃO

Algoritmos podem ser representados, dentre outras maneiras, por:

1.4.1. DESCRIÇÃO NARRATIVA

Faz-se uso do português para descrever algoritmos.

EXEMPLO: Receita de Bolo:

Providencie manteiga, ovos, 2 Kg de massa, etc. Misture os ingredientes Despeje a mistura na fôrma de bolo Leve a fôrma ao forno Espere 20 minutos Retire a fôrma do forno Deixe esfriar Prove

VANTAGENS:

  • o português é bastante conhecido por nós;

DESVANTAGENS:

  • imprecisão;
  • pouca confiabilidade (a imprecisão acarreta a desconfiança);
  • extensão (normalmente, escreve-se muito para dizer pouca coisa).

1.4.2. FLUXOGRAMA

Utilização de símbolos gráficos para representar algoritmos. No fluxograma existem símbolos padronizados para início, entrada de dados, cálculos, saída de dados, fim, etc.

Cálculo Decisão Entrada Saída Início/Fim

EXEMPLO EXPLICAÇÃO

Início

NUM
DOBRO = NUM * 2
DOBRO

Fim

Início do algoritmo

Entrada do número

Cálculo do dobro do número

Apresentação do resultado

Fim do algoritmo

VANTAGENS:
  • Uma das ferramentas mais conhecidas;
  • Figuras dizem muito mais que palavras;
  • Padrão mundial

DESVANTAGENS:

  • Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los;
  • Complica-se à medida que o algoritmo cresce.
1.5.1. FUNCIONAMENTO DO NOSSO COMPUTADOR

Todos os computadores, independentemente dos seus tamanhos, são conceitualmente semelhantes ao es- quema da figura anterior (há algumas diferenças, mas não trataremos aqui dos casos especiais).

Resumidamente, podemos afirmar que existem 4 (quatro) operações básicas que qualquer computador pode executar:

a) operações de entrada e saída: ler dados do teclado e escrever dados na tela são exemplos destas ope- rações. Elas servem para introduzir dados na memória do nosso computador e exibir dados que já estejam lá armazenados;

b) operações aritméticas: são utilizadas na realização de operações matemáticas (adição, subtração, multi- plicação e divisão);

c) operações lógicas e relacionais: têm aplicabilidade em comparações, testes de condições lógicas (2 > 6 ? X = Y ?);

d) movimentação de dados entre os vários componentes: as operações aritméticas são executadas na Unidade Lógica e Aritmética, necessitando da transferência dos dados para essa unidade e da volta do re- sultado final para ser guardado na memória.

1.5.2. RESOLVENDO UM PROBLEMA

Suponha que queiramos resolver o seguinte problema: a partir de dois números que serão informados, calcular a adição dos mesmos. Se você fosse encarregado de efetuar essa tarefa, seria bem provável que utilizasse os passos a seguir:

a) saber quais são os números; b) calcular a soma dos números; c) responder à questão com o valor do resultado.

Vejamos como seria resolvido esse mesmo problema em termos das operações básicas citadas anteriormente:

a) operação de entrada de dados dos números ; b1) movimento do valor dos números entre a memória e a ULA; b2) operação aritmética de somar os 2 números; b3) movimentação do resultado da ULA para guardar na memória; c) operação de saída do resultado, que está guardado na memória, para o dispositivo de saída de- sejado.

Deve-se salientar que os passos b1 e b3, normalmente, ficam embutidos na operação matemática, não sendo explicitados.

Em resumo, pode-se dizer que escrever algoritmos ou, em última análise, programar, consiste em dividir qual- quer problema em muitos pequenos passos , usando uma ou mais das quatro operações básicas citadas.

Esses passos que compõem o algoritmo são denominados de comandos. Os comandos de uma linguagem de programação podem estar mais próximos da máquina (linguagens de baixo nível) ou serem mais facilmente entendidos pelo homem (linguagens de alto nível). A seqüência de operações básicas, dada anteriormente, para resolver o problema de adicionar dois números, está em uma linguagem de baixo nível para o nosso com- putador hipotético. Em uma linguagem de alto nível teríamos um resultado assim:

Leia X,Y SOMA! X + Y Escreva SOMA

1.6. ESTRUTURAS CHAVES DA CONSTRUÇÃO DE ALGORITMOS

Existem 3 estruturas básicas de controle nas quais se baseiam os algoritmos: sequenciação, decisão e repeti- ção. Detalharemos cada uma delas:

1.6.1. SEQUENCIAÇÃO

Os comandos do algoritmo fazem parte de uma seqüência, onde é relevante a ordem na qual se encontram os mesmos, pois serão executados um de cada vez, estritamente, de acordo com essa ordem. De uma forma genérica, poderíamos expressar uma seqüência da seguinte maneira:

Comando- Comando- Comando- : Comando-n

Tem-se uma sequenciação de n comandos na qual os comandos serão executados na ordem em que apare- cem, isto é, o comando de ordem i+1 só será executado após a execução do de ordem i (o 3 o^ só será executa- do após o 2o).

Todo algoritmo é uma seqüência. A sequenciação é aplicada quando a solução do problema pode ser decom- posta em passos individuais.

1.6.2. DECISÃO OU SELEÇÃO

Essa estrutura também é conhecida por estrutura condicional. Há a subordinação da execução de um ou mais comandos à veracidade de uma condição. Vejamos o funcionamento:

Se <condição> então <seq. de comandos-1> senão <seq. de comandos-2>

Se a <condição> for verdadeira será executado a <seq. de comandos-1> e, em caso contrário, teremos a exe- cução da <seq. de comandos-2>.

A decisão deve ser sempre usada quando há a necessidade de testar alguma condição e em função da mesma tomar uma atitude. Em nosso dia-a-dia, estamos sempre tomando decisões, vejamos um exemplo:

Se tiver dinheiro suficiente, então vou almoçar em um bom restaurante. Caso contrário ( senão ), vou comer um sanduíche na lanchonete da esquina.

1.6.3. REPETIÇÃO OU ITERAÇÃO

Essa estrutura também é conhecida por “looping” ou laço. A repetição permite que tarefas individuais sejam repetidas um número determinado de vezes ou tantas vezes quantas uma condição lógica permita. Vejamos alguns exemplos:

a) vou atirar pedras na vidraça até quebrá-la; b) baterei cinco pênaltis; c) enquanto tiver saúde e dinheiro, vou desfrutar a vida.

No exemplo (a), vai-se repetir a ação de atirar pedras na janela até que seja satisfeita a condição de quebrar a janela.

No exemplo (b), haverá a repetição da atitude de bater um pênalti um número determinado de vezes (cinco).

No exemplo (c), a condição que me permitirá continuar desfrutando a vida é ter dinheiro e saúde.

A utilização combinada dessas 3 estruturas descritas vai permitir expressar, usando qualquer que seja a ferra- menta, a solução para uma gama muito grande de problemas. Todas as linguagens de programação oferecem representantes dessas estruturas.

EXERCÍCIOS PROPOSTOS

P1.01. Defina, com suas palavras, o que é algoritmo.

P1.02. Cite alguns algoritmos que podemos encontrar na vida quotidiana.

P1.03. De acordo com seu entendimento, qual é a característica mais importante em um algoritmo? Justifique a sua resposta.

P1.04. Um algoritmo não pode conter um comando como “Escreva todos os números inteiros positivos”. Por quê?

P1.05. Suponha que temos um robô a nossa disposição. Esse robô chama-se MANNY e precisa ser ensinado a fazer determinadas tarefas. Para ensinar o MANNY, vamos fazer uso do português para passar-lhe as instruções necessárias à execução de cada atividade. Escreva os passos necessários para o nosso robô executar: a) encher uma bacia com água; b) trocar uma lâmpada no teto de sua casa; c) trocar o pneu de um carro; d) calcular a sua idade daqui a 20 anos; e) calcular a média de um aluno com 3 notas.

P1.06. Cite as formas básicas para se representar algoritmos, definindo-as.

P1.07. Em sua opinião, qual a melhor forma de se representar algoritmos? Justifique sua resposta.

P1.08. Descreva, com suas próprias palavras, o funcionamento do nosso computador hipotético.

P1.09. Especifique soluções, em termos das operações básicas do nosso computador, para os itens (d) e (e) do exercício P1.05.

P1.10. Quais as estruturas básicas de controle dos algoritmos? Explique cada uma delas.

P1.11. Identifique nas respostas do exercício P1.05 a utilização das estruturas básicas de controle de fluxo.

P1.12. Escreva o algoritmo solução para o problema de multiplicar dois números (a solução deve ser expressa em alto nível).

P1.13. Resolva o P1.09 em termos de uma linguagem de alto nível.

P1.14. Em que consiste a técnica de "refinamentos sucessivos"?

P1.15. É comum ouvirmos programadores experimentados afirmarem:

“algoritmos ... aprendi e nunca usei na prática ... não vejo necessidade...". Discuta esse tipo de afirmativa.

Capítulo 2

ELEMENTOS BÁSICOS

2.1. TIPOS DE DADOS

As informações que nós podemos processar nos computadores são armazenadas pelos mesmos de diferentes maneiras, dependendo do tipo de dado que ela representa. Basicamente, existem 3 tipos primitivos de dados:

INTEIRO – Toda e qualquer informação numérica que pertença ao conjunto dos números inteiros relativos. Exemplos: a idade de uma pessoa, o número de degraus de uma escada, o número de filhos de uma pessoa, a altura de uma pessoa (em centímetros), etc.

REAL – Toda e qualquer informação numérica que pertença ao conjunto dos números reais. Exemplos: a altu- ra de uma pessoa (em metros), o valor (em reais) do salário de um funcionário, o peso de uma pessoa, etc.

STRING (^) – Toda e qualquer informação composta por um conjunto de caracteres alfanuméricos: numéricos (0...9), alfabéticos (A...Z, a...z) e especiais (por exemplo, #,?,@,%). Exemplos: o nome de uma pessoa, a placa de um veículo, o CPF de um contribuinte, a conta bancária de um cliente, a matrícula de um aluno, etc. Todo valor do tipo string deve ser delimitado por um par de aspas. Exemplo: “Maria José”, “MNY-1357”, “015.934.735-00”.

2.2. EXPRESSÕES ARITMÉTICAS

São expressões onde utilizamos os números inteiros ou reais como operandos e os operadores aritméticos, dando sempre como resultado valores numéricos.

2.2.1. OPERADORES ARITMÉTICOS

Os operadores aritméticos representam as operações mais comuns da matemática. São eles:

Operador Operação Operandos Resultado

  • (^) Adição Inteiro, Real Inteiro, Real
  • (^) Subtração Inteiro, Real Inteiro, Real
  • Multiplicação Inteiro, Real Inteiro, Real / (^) Divisão Real Inteiro, Real Real DIV (^) Divisão Inteira Inteiro Inteiro MOD (^) Resto da Divisão Inteiro Inteiro
EXEMPLOS:

Expressão Resultado 1 + 2 3 5.0 - 1 4. 2 * 1.5 3. 5 / 2 2. 5 DIV 2 2 5 MOD 2 1

2.2.2. PRIORIDADE

Em uma expressão aritmética, a ordem de avaliação dos operadores obedece a tabela abaixo:

Prioridade Operadores 1ª * / DIV MOD 2ª +^ -

2.3.2. OPERADORES LÓGICOS

São usados para combinar expressões lógicas.

Operador Operação não (^) não (negação) e (^) e (conjunção) ou (^) ou (disjunção)

A tabela verdade (abaixo) apresenta o resultado de cada operador lógico, com os valores dados para as ex- pressões lógicas A e B:

A B A e B A ou B não A não B V V V V F F V F F V F V F V F V V F F F F F V V

2.3.3. PRIORIDADE

Em uma expressão lógica, a ordem de avaliação dos operadores segue a tabela abaixo:

Prioridade Operadores 1ª (^) = > < ≥ ≤ # 2ª não 3ª e 4ª ou

2.4. VARIÁVEL E IDENTIFICADOR

Sabe-se da Matemática que uma variável é a representação simbólica dos elementos de um certo conjunto.

Nos algoritmos destinados a resolver um problema no computador, a cada variável corresponde uma posi- ção de memória, cujo conteúdo pode variar ao longo do tempo durante a execução de um algoritmo. Embora a variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante.

Toda variável é identificada por um nome ou identificador. Assim, por exemplo, num algoritmo para calcular a área de um triângulo retângulo pelo teorema de pitágoras (a^2 = b^2 + c 2 ), os identificadores A, B e C podem re- presentar as posições de memória que armazenam o valor da hipotenusa e dos catetos. É importante que nun- ca usemos uma palavra reservada, isto é, que faça parte da linguagem algorítmica, como um identificador, pois poderá causar ambigüidade no entendimento do algoritmo.

2.4.1. FORMAÇÃO DE IDENTIFICADORES

Devemos nomear as variáveis com identificadores o mais significativos possíveis, isto é, que representem au- tomaticamente o tipo da informação que será armazenada na variável. Porém, para evitar ambiguidades e defi- nirmos um padrão para nossa linguagem algorítmica, vamos estabelecer as seguintes regras para a formação de identificadores:

  • deve ter como primeiro caracter uma letra;
  • após a primeira letra só pode conter letras, dígitos ou sublinha ( _ );
  • não pode conter espaços;
  • letras maiúsculas e minúsculas são indiferentes;
  • não pode ser uma palavra reservada.

Exemplo de identificadores válidos :

IDADE, MédiaFinal, Bim1, NOME_DO_ALUNO, X, ABC

Exemplo de identificadores inválidos :

Média Final, 1Bim, NOME-DO-ALUNO, Leia

2.4.2. PALAVRAS RESERVADAS

São palavras que têm um sentido predeterminado na linguagem algorítmica e não devem ser usadas como identificadores.

ALGORITMO MOD SE FAÇA
INTEIRO DIV ENTÃO PROCEDIMENTO
REAL E SENÃO FIM-PROCEDIMENTO
STRING OU FIM-SE FUNÇÃO
INÍCIO NÃO ENQUANTO FIM-FUNÇÃO
FIM VAR FIM-ENQUANTO

EXERCÍCIOS PROPOSTOS

P2.01. Cite os tipos primitivos de dados, dando exemplos de 3 informações de cada tipo.

P2.02. Escreva o tipo de dado ideal para se representar as seguintes informações:

a) O número da conta bancária b) A altura de uma pessoa em metros c) A placa de um veículo d) O número de filhos de uma pessoa e) A população de um país f) A cor de um objeto

P2.03. O que são expressões aritméticas?

P2.04. Qual o resultado das expressões aritméticas abaixo, sabendo-se que os valores de X, Y e Z são, res- pectivamente, 1, 2 e 5? a) Z mod Y div Y b) X + Y + Z / 3

P2.05. O que são Funções Predefinidas?

P2.06. Escreva o resultado das seguintes funções:

a) ABS(23)

b) ABS(-4.5) c) TRUNC(1.8)

d) TRUNC(2.2) e) ROUND(1.8) f) ROUND(2.2)

g) POT(2,4) h) POT(0.5,2) i) RAIZ(25,2)

j) RAIZ(8,3)

Capítulo 3

LINGUAGEM ALGORÍTMICA

3.1. FORMATO DE UM ALGORITMO

Adotaremos, para fins de padronização, o seguinte formato para descrevermos nossos algoritmos:

Algoritmo <título do algoritmo> <declarações de variáveis> início fim

3.2. DECLARAÇÃO DE VARIÁVEIS

Todas as variáveis que serão utilizadas em um algoritmo, devem ser declaradas dentro do mesmo.

A declaração de uma variável tem como finalidade:

  • especificar o tipo de dado que poderá ser armazenado na variável;
  • alocar um espaço na memória onde possa ser armazenado o conteúdo da variável;
  • dar um nome (identificador) à variável.

Para declararmos variáveis devemos obedecer a seguinte sintaxe:

lista-de-dentificadores : tipo onde: lista-de-identificadores são os nomes das variáveis que se deseja declarar; tipo é o tipo da variável

Exemplos: N1,N2 : inteiro X,Y,Z : real NOME,MENS : string

3.3. OPERAÇÃO DE ATRIBUIÇÃO

A operação de atribuição permite que se forneça um valor a uma certa variável. Se for atribuído uma expressão à variável, será armazenado o resultado daquela expressão. Se for atribuído uma outra variável, será armaze- nado o conteúdo daquela variável. Para a operação de atribuição, utilizaremos a seguinte sintaxe:

variável !!!! expressão

Exemplos: A! 2 NOME! "João" A! B + C B! A SENHA! "Y9" NOTA! NOTA – 1 NOTA! 10 C! 1 / 3 X! 2.

3.4. OPERAÇÕES DE ENTRADA E SAÍDA

Os cálculos do computador são de pouco valor a não ser que, primeiro, possamos fornecer os dados sobre os quais estes cálculos serão efetuados e, segundo, ver os resultados destes cálculos.

Definimos aqui dois novos comandos da nossa linguagem algorítmica para manusear entrada e saída. O co- mando leia nos permite ler valores dados atribuindo-os à variáveis indicadas; o comando escreva nos permite mostrar os resultados. A entrada pode vir do teclado ou de qualquer outro dispositivo de entrada. A saída pode aparecer na tela do monitor de vídeo ou ser impressa em papel. Não nos preocuparemos com detalhes destes dispositivos. A sintaxe destes comandos são:

leia variável-1, variável-2, ..., variável-n

escreva expressão-1, expressão-2, ..., expressão-n

Exemplos: leia NOTA escreva 15 leia A,B,C escreva NOTA+ leia NOME escreva A,B

3.5. COMENTÁRIOS

Um comentário é usado para aumentar a clareza de um algoritmo, embora não seja analisado pelo computa- dor. Deve ser escrito entre chaves:

{ comentário }

EXEMPLO:

Algoritmo REAJUSTE_SALARIO {Finalidade: Calc. o reajuste de um salário em 20%}

SAL_ATUAL {salario atual}, SAL_NOVO {novo salario}, AUMENTO {valor do aumento} : real

início {leitura do salario atual} leia SAL_ATUAL {cálculo do reajuste} AUMENTO! SAL_ATUAL * 0. SAL_NOVO! SAL_ATUAL + AUMENTO {exibicao do resultado} escreva SAL_NOVO fim

EXERCÍCIOS PROPOSTOS

P3.01. Qual a finalidade de declararmos uma variável?

P3.02. Exemplifique o uso da operação de Atribuição.

P3.03. Qual a finalidade de uma operação de entrada? Dê exemplos.

P3.04. Qual a finalidade de uma operação de saída? Dê exemplos.

P3.05. Qual a finalidade de um comentário dentro de um algoritmo? Como deve ser escrito?

P3.06. Escreva os comandos necessários para declarar: a) uma variável que receba uma frase qualquer b) três variáveis que recebam as 3 notas de um aluno c) uma variável que receba a idade de uma pessoa

P3.07. Escreva os comandos necessários para ler: a) as 3 notas de um aluno b) o nome, o peso e altura de uma pessoa

P3.08. Escreva os comandos necessários para exibir: a) o conteúdo da variável X b) o resultado da expressão 2+

P4.08. Escreva um algoritmo para calcular e exibir o comprimento de uma circunferência, sendo dada o valor de seu raio.

P4.09. Escreva um algoritmo para ler uma temperatura dada na escala Fahrenheit e exibir o equivalente em Celsius.

( 32 )

C = F −

P4.10. Escreva um algoritmo para calcular a área de um triângulo, sendo dados a sua base e a sua altura.

BASE ALTURA
ÁREA

P4.11. Escreva um algoritmo para calcular e exibir o valor de x y, sendo dados a base (x) e o expoente (y).

P4.12. Escreva um algoritmo para ler o nome e o sobrenome de uma pessoa e escrevê-los na seguinte forma: sobrenome seguido por uma vírgula e pelo nome.

Exemplo: entrada: "Antonio","Soares" saída: Soares, Antonio

4.2. ESTRUTURA DE DECISÃO

A estrutura de decisão (também conhecida como estrutura de seleção ou condicional), permite a escolha do grupo de ações e estruturas a ser executado quando determinadas condições (expressões lógicas) são ou não satisfeitas.

Esta estrutura pode se apresentar de duas formas.

4.2.1. DECISÃO SIMPLES

Utilizado quando se deseja executar uma ação (um comando ou uma seqüência de comandos) caso uma de- terminada condição seja verdadeira. A estrutura de decisão simples é representada pelo comando se...então e possui a seguinte forma:

Linguagem Algorítmica: Fluxograma:

se condição então comando- comando-

... comando-n fim-se

Exemplo:

... se MÉDIA ≥ 7 então SITUAÇÃO! "Aprovado" Escreva SITUAÇÃO fim-se ...

Condição
Comando-
Comando-
Comando-n
F
V

C = 2 π R

4.2.2. DECISÃO COMPOSTA

Utilizada quando se deseja executar um entre dois comandos (ou uma entre duas seqüências de comandos) dependendo do resultado de uma condição. A estrutura de decisão composta é representada pelo comando se...então...senão e possui a seguinte forma:

Linguagem Algorítmica: Fluxograma:

se condição então comando-A (^1) comando-A (^2) ... comando-A (^) n senão comando-B (^1) comando-B (^2) ... comando-B (^) n fim-se

Exemplo: ... se PESO > 80 então escreva "Você está obeso" escreva "Faça atividades físicas" senão escreva "Você está no peso certo" escreva "Procure manter sua forma" fim-se ...

Neste exemplo, as mensagens que serão exibidas dependerão do resultado da expressão lógica PESO>80. Se for verdadeira, serão executados os comandos que sucedem a palavra então. Caso contrário, serão executa- dos os comandos que sucedem a palavra senão. Em nenhuma hipótese serão executados os dois blocos de comandos..

Em algoritmos mais complexos, é comum a utilização de se's aninhados, ou seja, uma estrutura se possuindo como uma outra estrutura se.

EXEMPLO:

Algoritmo EXEMPLO_DE_SES_ANINHADOS {Determinar se um número é maior, menor ou igual a zero}

N : inteiro

início leia N se N > 0 então escreva N," é maior que zero" senão se N < 0 então escreva N," é menor que zero" senão escreva N," é igual a zero" fim-se fim-se fim

Condição
Comando-A 1
Comando-A 2
Comando-An
Comando-B 1
Comando-B 2
Comando-Bn
V
F