21
 APOSTILA DE CONSTRUÇÃO DE ALGORITMOS

Apostila de Algoritimo Curso Cetra

Embed Size (px)

Citation preview

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 1/21

 

APOSTILA

DE

CONSTRUÇÃODE ALGORITMOS

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 2/21

 

Índice

1- ALGORITMO........................................................................................................31.1- Refinamentos Sucessivos..................... ................................ ..............................41.2- Programa ............................................................................................................52- ESTRUTURAS DE DADOS ........................................................ ........................52.1- Tipos Primitivos de Dados.................... . ............................................................5

2.1. 1 - TipoInteiro .......................... ................................................. .......................6

2.1.2- Tipo Real. ........................................................................................................62.1.3- Tipo

Literal ............................................................... ......................................62.1.4- Tipo Lógico......................................................................................................62.2- Tipos Estruturados de Dados ..............................................................................73- OPERAÇÕES ..................... .................................................................................73.1- Operações Aritméticas........................................................................................73.2- Prioridade na execução........................................................................................83.3- Operadores Lógicos........................................................ ....................................83.3.1- Operações Lógicas............................................. ..............................................9

3.4- OperadoresRelacionais .................... ..................................................................9

4- FUÇÕES................................................................................................................94.1- Principais Funções Pré-

definidas........................................................................105- OPERAÇÕES MISTAS............................... ................................ ......................106- PRIORIDADE NAS OPERAÇÕES MISTAS .................................. ..................107 - VARIÁVEIS.......................................................... ............................................107.1- Regra para nomear variáveis .............................................................................117.2- Declaração de Variáveis ...................................................................................118- TIPOS DE PALAVRAS ENCONTRADAS EM UM ALGORITMO ..................12

9- COMANDOS BÁSICOS.......................... ..........................................................129.1.1- Atribuição ....... ................... ... .....................................................................129.1.2- Comandos de Entrada e Saída de Dados ........................................................139.1.2.1- Saída ( escreva ) .........................................................................................139. I .2.2- Entrada ( Leia ) ........................................................................................1310- COMENTÁRIOS ..............................................................................................1311- TIPOS DE ESTRUTURAS EM ALGORITMOS .................... .........................1411.1- Estrutura Seqüencial .......................................................................................1411.2- Estrutura Condicional .....................................................................................1511.2.1- Alternativa Simples..... .................................................................................1511.2.2- Alternativa Composta..... .... ................................................................... ....1611.3- Estruturas de Repetição ..................................................................................1611.3.1- Repetição com Teste da Condição de Término no Início...............................1711.3.2- Repetição com Teste da Condição de Término no Final.................................1711.3.3- Repetição com Variável de Controle..............................................................1812- INTERRUPÇÃO FORÇADA DO LAÇO DE REPETIÇÃO...............................1913- ALTERNATIVA DE MÚLTIPLA ESCOLHA ..................................................2014- METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOS.................2115- Regras práticas para a construção de Algoritmos Legíveis...................................2216- EXERCÍCIOS....................................................................................................23

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 3/21

 

1- ALGORITMO

"É o conjunto de instruções ordenadas e não ambíguas que quandoexecutadas levam a solução de um determinado problema."

"Conjunto de ações que devem ser executadas para produzir um resultado pré-definido."

Obs.: Embora pareça complicado, o conceito de algoritmo nos é bastante familiar-.Todosos dias estamos executando algoritmos. Isto significa que a palavra se aplica não apenas acomputadores, mas também a procedimentos humanos.

Exemplos:

- Receita Culinária

Misture os ingredientes.Unte o tabuleiro com manteiga.Despeje a mistura no tabuleiro.Se (há queijo parmezon) entãoEspalhe sobre a mistura.Leve o tabuleiro ao forno.Enquanto (não corar)Deixe o tabuleiro no fornoDeixe esfriar.Experimente antes de servir.

- Rotina Administrativa

Verifique preenchimento do formulário.Se o preenchimento estiver correto entãoArquive o documento.Forneça o protocolo.SenãoLamente.Torne a lamentar.Peça para a pessoa comprar outro formulário.

Despeça-se educadamente

Podemos citar vários exemplos de algoritmos familiares a todos, como bulas deremédios, esquemas de montagens, manuais de instruções e operações, etc.

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 4/21

 

Sempre que formos construir um algoritmo é necessário que saibamos exatamentetodos os passos do problema a ser resolvido e em que seqüência as ações deverão ser desenvolvidas; que sejam previstas todas as situações que poderão ocorrer no desenrolar da questão e o que fazer em decorrência de cada uma delas. Além disso as instruções quecompõem o algoritmo devem ser absolutamente claras e objetivas não podendo haver nenhuma ambigüidade.

1.1- Refinamentos Sucessivos

Como vimos antes, na vida quotidiana os algoritmos são encontradosfreqüentemente: instruções para uso de aparelhos eletrodomésticos, guia de

 preenchimento de declaração de imposto de renda, etc.

Um algoritmo é considerado completo se os seus comandos forem deentendimento do seu destinatário. Num algoritmo, um comando que não for doentendimento do destinatário terá de ser desdobrado em novos comandos, queconstitui um refinamento do comando inicial. Como exemplo vejamos o algoritmoabaixo:

Algoritmo para trocar uma lâmpada queimada.

INÍCIOPASSO 1: Remova a lâmpada queimada.PASSO 2: Coloque a nova lâmpada.FIM

Como ilustração, poderíamos reescrever o algoritmo anterior refinando alguns passos, e teríamos como resultado o seguinte algoritmo:

INÍCIOPASSO l: Posicione a escada debaixo da lâmpada queimada.PASSO 2: Escolha uma nova lâmpada da mesma potência da

queimada.PASSO 3: Suba na escada até que a lâmpada possa ser alcançada.PASSO 4: Gire a lâmpada queimada no sentido anti-horário até

que ela se solte.PASSO 5: Posicione a nova lâmpada no soquete.PASSO 6: Gire-a no sentido horário até que ela se firme.PASSO 7: Desça da escada.

FIM

Após o novo detalhamento, esse algoritmo ficou bastante modificado, porémnão perdeu o seu objetivo que é de trocar uma lâmpada queimada por uma nova.Poderíamos inserir novos passos para que ficasse ainda mais claro a seqüência deordens que devem ser executadas para se alcançar o objetivo final. O detalhamentodo algoritmo poderia continuar indefinidamente. E função da pessoa que estádesenvolvendo-o finalizá-lo no momento que achar mais indicado.

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 5/21

 

Construir algoritmos voltados para programação de computadores exige umcuidado bem maior do que escrevê-los para seres humanos devido ao fato doscomputadores não serem (ainda) capazes de tirar conclusões próprias, nem mesmoas mais óbvias. Um computador não consegue formar uma nova idéia a partir deoutras, não faz experimentações, não raciocina. A inteligência artificial é ainda umsonho a ser concretizado. A aparente inteligência dos computadores vêm

 justamente dos homens que estão por trás das máquinas, vêm dos programadores.Outra coisa importante de se salientar é que apesar dos computadores não errarem(na sua quase totalidade quando ocorre algum problema técnico há interrupção dotrabalho e não um processamento errado), eles não têm senso critico e por maisabsurda que seja uma instrução se estiver correta em termos de sintaxe, ela éexecutada. Por exemplo um computador recebe uma instrução para aumentar osalário de todos os funcionários de uma empresa em 5000%, ao contrário dequalquer contador que certamente desconfiaria deste valor e iria apurar se nãohavia nenhum erro, o computador cumprirá esta instrução sem questionamentos (anão ser que tenha sido programado para fazê-lo). Devido a este fato é de vitalimportância que o programador faça revisões detalhadas em seus algoritmos antes

de dar o programa por encerrado. Um programa que "roda" não significa demaneira alguma que o mesmo esteja livre de erros.A grande vantagem do computador reside na verdade na sua grande capacidade

de memória e na velocidade com que processa informações.

Antes de nos aprofundarmos na construção de algoritmos é fundamental rever elevantar alguns conceitos, como faremos a seguir.

1.2 - Programa

É o Algorítmo traduzido para uma linguagem que o computador é capazde reconhecer através de um interpretador ou compilador (Basic, Cobol, Dbase,Fortran, Pascal, etc).

2 - ESTRUTURAS DE DADOS

Ao desenvolvermos um algoritmo, devemos pensar, também, em umaestrutura para armazenar as informações que serão fornecidas pelo usuário.

Alguns algoritmos utilizam uma grande massa de informações quedevem estar relacionadas de alguma forma, como por exemplo um algoritmo de

consulta a uma lista telefônica que deve conter o nome, endereço e telefone deuma pessoa. Percebe-se que essas três informações tem natureza diferente porém,devem estar relacionadas, pois dizem respeito a mesma pessoa.

São utilizadas para a armazenagem desses dados TIPOS PRIMITIVOS dedados

2.1- Tipos Primitivos de Dados

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 6/21

 

Os tipos primitivos de dados são aqueles que foram definidos previamente, ouseja, que existem independentemente da existência de outros tipos. São tipossimples. Os tipos primitivos de dados utilizados são: INTEIRO, REAL, LITERALe LÓGICO.

2.1.1- Tipo Inteiro

Representa todos os números positivos e negativos, incluindo o zero (0),contidosno conjunto dos inteiros, com intervalo definido pela capacidade (em bits) docomputador.

Para o computador de 16 bits (os utilizados em nossos laboratórios), os limites para números do tipo inteiro são:

216 = 65536 números possíveis ( -32768,...,0,...,32767 )

2.1.2 - Tipo Real

Representa todos os números positivos e negativos, incluindo o zero (0), contidos no

conjunto dos reais. O limite é dado pela capacidade (em bits) do computador.É comum a utilização da Letra "E" seguida do sinal de "+" ou "-" e de dois dígitos

após o número do tipo real. Este conjunto (E+nn ou E-nn) simboliza a utilização doexponencial, ou seja, multiplicação do número pelo valor correspondente a 10+nn ou 10-nn. Essa notação é utilizada para facilitar a escrita de números grandes, como por exemplo8000000000 que poderia ser escrito da seguinte forma: B.OE+09, o que equivale a 8.0 *109.

Exemplos:7.40 -5.5 8.l0E+OS -O.lE-02

2.1.3 - Tipo Literal

Representa todos os símbolos compreendidos pelo código ASCII (tabela de todos oscaracteres usados nos computadores), ou seja, as letras de A a Z, maiúsculas ouminúsculas, os números de 0 a 9 e suas combinações, os caracteres especiais existentesno teclado e os símbolos gráficos definidos pelo código.

Os valores do tipo literal devem sempre estar envolvidos por aspas ""

Exemplos: "A" "c" "#" "&" "/" "CETRA"

Obs.: O único símbolo que não pode ser utilizado como do tipo literal é a própriaaspas ("), pois seria confundida com as aspas limitadoras.2.1.4 - Tipo Lógico

Engloba apenas os valores lógicos verdadeiro e falso. É usado em casos em que sóhajam duas situações possíveis. Por exemplo em uma pesquisa a respeito do fumo, aresposta a respeito da questão "é fumante?" teria como respostas possíveis, apenas SIMou NÃO, ou seja, verdadeiro ou falso.

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 7/21

 

3 - OPERAÇÕES

Consiste na realização dos cálculos envolvendo operandos e operadores. As operações  permitidas são as aritméticas (atribuição de valores, adição, subtração, divisão,multiplicação, potenciação) e as lógicas.

3.1- Operações Aritméticas

3.1.1- Adição ( + )

Exemplos: 2 + 125 ;1 + 3 + 3

3.1.2 - Subtração ( - )

Exemplos: 291- 282 ; 26 -14 - 52

3.1.3 - Multiplicação ( * )

Exemplos: 3 * 3 ; 63 * 1 * 424

3.1.4 - Potenciação ( ** ou ^ )

Exemplos: 4 * * 2 ; 64 * * 5 * * 2; 2^5

3.1.5 - Divisão Real ( / )

Exemplos: 4 / 5 ; 6 / 4 / 2

3.2 - Prioridade na execução

1) + e -. mais e menos unários (indica se um valor é positivo ou negativo).2) * * . exponenciação3) *, /, div e mod : multiplicação, divisão, divisão inteira e resto da divisão inteira.4) + e -. adição e subtração

Obs. - Quando existe em uma expressão operadores com a mesma prioridade, a execuçãoé da esquerda para a direita.

Obs.2 - Caso seja necessário alterar a ordem de prioridade deve-se utilizar a expressãoentre parênteses. A expressão entre parênteses terá prioridade máxima. Caso haja

 parênteses aninhados "((( )))", a ordem de execução será do mais interno para o maisexterno, ou seja, será resolvido primeiro a expressão que estiver dentro do conjunto de parênteses "( )" mais interno.

3.3 - Operadores Lógicos

Tipos (pela ordem de prioridade):

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 8/21

 

a) não : negação.b) e : conjunção.c) ou : disjunção.

EX:

Assuma: V= verdadeiro ; F = falso

A B A e B A ou B não A

V V V V FV F F V FF F F F V

3.3.1 - Operações Lógicas

Operações lógicas são comparações realizadas entre expressões.As operações lógicas podem ser consideradas afirmações que serão testadas pelo

computador, tendo como resultado, um valor verdadeiro ou falso. As operações lógicassão realizadas utilizando-se os operadores lógicos e os relacionais (veja tópico seguinte).

3.4 - Operadores Relacionais

São usados na comparação de duas expressões retornando verdadeiro ou falso comoresultado da operação.

OPERADOR EXEMPLO RESULTADO

= igual a 6=5+1 verdadeiro> maior que 30/2 > 5 falso< menor que “ANA” < “BOLA” verdadeiro<> diferente de 90/3 <> 3 * 10 verdadeiro>= maior ou igual que 5 ̂ 2 > = 25 verdadeiro<= menor ou igual que 10 / 2 < = 1 falso

Obs.: As operações lógicas só podem ser efetuadas com relação a valores do mesmotipo, não sendo permitida, por exemplo, a comparação entre um valor numérico e um

valor literal.

A comparação entre valores literais se dá através da ordem alfabética dos textos e não pelo número de caracteres dos textos comparados. Considera-se menor um texto que vier antes do outro em ordem alfabética. Os computadores, na verdade, tratam os caracterescomo números segundo um código predefinido; a maioria dos fabricantes utilizam osmesmos códigos numéricos. Estes códigos estão definidos na TABELA ASCII

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 9/21

 

(American Standard Code for Information Interchange - Código Padrão Americano paraIntercâmbio de Informações).

4 - FUNÇÕES

Funções são operadores especiais pré-definidos ou definidos pelo usuário queaplicados a uma variável ou expressão produzem determinado valor.

4.1 - Principais funções pré-definidas

FUNÇÃO SIGNIFICADO

ABS(X) valor absolutoSQRT(X) raiz quadradaTRUNC(X) valor truncadoROUND(X) valor arredondadoLOG(X) logarítmo base eEXP(X) exponencialSIN(X) senoCOS(X) cossenoTAN(X) tangente

5 - OPERAÇÕES MISTAS

São aquelas que envolvem tipos distintos de operadores.

EXl: (2*(3-4)) <= 5EX2: 4>6 ou não (5=6)

6 - PRIORIDADE NAS OPERAÇÕES MISTAS

PRIMEIRO : Parênteses e FunçõesSEGUNDO : Operadores AritméticosTERCEIRO : Operadores RelacionaisQUARTO : Operadores Lógicos.

7 - VARIÁVEIS

Ao trabalharmos com informações em um algoritmo ou programa, elas precisam ser 

armazenadas, temporariamente, na memória do computador. Essas informações podemsofrer alterações durante a execução do algoritmo ou programa. Esses espaços dememória onde são guardados esses valores são chamados de variáveis e possuem umnome através do qual são referenciados (identificados). Podemos então definir umavariável da seguinte forma:

"Variável é todo e qualquer valor que, durante a execução de um programa oualgoritmo, será armazenado em uma posição de memória e poderá sofrer alterações".

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 10/21

 

São quatro os tipos possíveis de variáveis em um algoritmo como mostrado a seguir:

Variáveis Inteiras: são aquelas que assumem valores inteiros. Ex. 26, -89, 0, 100.

Variáveis Reais: são aquelas que assumem valores reais. Ex. 26, -89, 987.8999,9.767667E+03, 0,100.

Variáveis literais: são aquelas que armazenam valores do tipo caractere. Ex: "CETRA","TESTE", "ALGORITMO", "23", "yzl !?*"Variáveis Lógicas: são aquelas que assumem valores lógicos, ou seja, verdadeiro oufalso.

7.1 - Regra para nomear variáveis

Os identificadores de variáveis obedecem as seguintes cláusulas:

A quantidade de caracteres depende da linguagem de programação utilizada.Convencionaremos o mesmo da linguagem Pascal versão 5.0, ou seja, quarenta

caracteres.

Os caracteres possíveis são:. letras (a..z, A..Z);.dígitos (0..9);

- O único símbolo especial usado é o subscrito ("_");- Deve começar obrigatoriamente por uma letra;- Não pode conter espaço em branco.

Exemplos válidos : Valor, A002, X, IDENTIDADE DO_PROFESSOR.Exemplos inválidos:12b, CASA BRANCA, NOTA_l.

7.2 - Declaração de Variáveis

As variáveis só podem armazenar valores de um mesmo tipo. Para indicar otipo de uma ou mais variáveis é usada a declaração de variáveis. Além disso, nomomento em que se declara uma variável é feita a associação do nome escolhido,ou identificador, com a respectiva posição de memória que o mesmo passa asimbolizar.

Uma vez declarada a variável, qualquer referência que se faça ao seuidentificador implica a referência ao conteúdo do local da memória representado pelomesmo.

Toda a declaração de variáveis tem a seguinte forma:

- nome-do-tipo: lista-de-identificadores

onde:nome-do-tipo: é uma das quatro palavras-chave (inteiro, real, lógico ou literal)

- lista-de-identificadores: são os identificadores (nomes) escolhidos para as

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 11/21

 

variáveis, separados por vírgulas.

Obs. - Cada lista de identificadores só pode conter variáveis do mesmo tipo, tendode existir uma lista de identificadores para cada tipo de variável que venha a ser utilizada no algoritmo.

Obs2. - As variáveis e constantes numéricas devem ser declaradas como inteiras oureais pois isto interfere na quantidade de espaço que será reservado para o

armazenamento na memória do computador. Se uma variável não for receber nenhumvalor fracionário, deverá ser declarada como inteira pois isto fará com que ocomputador economize memória e também com que execute mais rapidamente qualquer operação matemática com esta variável.

8 - TIPOS DE PALAVRAS ENCONTRADAS EM UM ALGORITMO

8.1 - Palavras do Programador: São os identificadores de variáveis declaradas e oscomentários explicativos inseridos no algoritmo, que embora não interfiram no seufuncionamento, contribuem para o seu entendimento.

8.2 - Palavras da Linguagem: São os nomes reservados para definição das estruturas noalgoritmo. Essas palavras serão escritas com letras minúsculas e sublinhadas.

9 - COMANDOS BÁSICOS

Envolve os comandos de atribuição e os comandos de entrada e saída de dadosvisto nos tópicos seguintes.9.1.1 - atribuição ( = )

Consiste na atribuição de valores inteiros, reais, literais ou lógicos, ou deresultados de expressões a constantes ou variáveis. E representado pelo símbolo "=".

Exemplos:

NOTA = 8.6FIRMA = "CETRA- Centro Educacional Te. Rivaldo Antônio Araújo"FUMANTE = verdadeiroSALÁRIO = BRUTO - DESC + VANT

9.1.2 - Comandos de Entrada e Saída de Dados

Como foi visto na disciplina anterior as unidades de entrada e saída são dispositivosdue possibilitam a comunicação direta ou indireta entre o usuário e o computador.Através de um teclado é possível a digitação de programas e introdução de dados namemória do computador, já por meio de uma impressora ou monitor de vídeo podemos

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 12/21

 

ter acesso aos dados já processados pela máquina. Para que o computador peça quealgum dado seja introduzido pelo usuário via teclado, para que faça leituras em algumdispositivo de armazenamento (memória auxiliar) ou que escreva alguma coisa em umaimpressora, é necessário que haja alguma instrução neste sentido. Os comandos deentrada e saída são as ferramentas para esta finalidade.

9.1.2.1 - Saída ( escreva )

O comando de saída de dados nos permite visualizar o resultado de uma expressão.Ele é o responsável pela comunicação da máquina com o usuário. O dispositivo maisusado para essa comunicação é o monitor de vídeo do computador.

Sintaxe: escreva( Expressão, EXPRESSÃO2, ... , Expressão )

EXEMPLO:

Veja o resultado das saídas de dados decorrente das linhas de comando, considerando aatribuição: soma = 2 + 3 + 4

Linha de Comando Resultado impresso

ESCREVA(soma) 9ESCREVA(“Soma = “,soma) Soma = 9ESCREVA(“Soma = “,2+3+4) Soma = 9

9.1.2.2 - Entrada ( leia )

Usado para atribuir valores à variáveis durante a execução do algoritmo. Em um

 programa o dado seria lido de uma determinada unidade de entrada (geralmente tecladoou disco).

Sintaxe: leia( Variável, Variáve2, ... , Variável )

EXEMPLO: Leia( SALÁRIO )Leia( NOTAl, NOTA2, NOTA3 )

10 - COMENTÁRIOS

Para tornar mais fácil o entendimento de um algoritmo é fundamental o uso decomentários explicativos que ajudem a esclarecer as soluções, caminhos e alternativasqueapareçam no mesmo. Os programas de computação precisam, muitas vezes, sofrer mudanças, implementos e complementos. Será muito difícil realizá-las, até mesmo pelo próprio autor, se o programa não estiver bem documentado. Lembre-se que a necessidadedas mudanças pode surgir meses ou até mesmo anos depois de sua elaboração. Será que oautor lembrará o porquê de cada passo de um programa complexo ?

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 13/21

 

Em algoritmo os comentários devem vir entre chaves.

Ex: lógico: SUP {quando o conteúdo for verdadeiro significará que o funcionário}{possui curso superior e quando falso que não possui}

11- TIPOS DE ESTRUTURAS EM ALGORITMOS

a) Estrutura Seqüencial b) Estrutura Condicionalc) Estrutura de Repetição

11.1 - Estrutura Sequencial

Em uma estrutura seqüencial o programa é executado seqüencialmente, ou seja, umainstrução após a outra, na ordem em que elas aparecem, não havendo portanto desvios.

Quando determinada ação for acontecer uma única vez usamos uma seqüência simples(conjunto de comandos que serão executados numa seqüência linear).

Ex: Calcule e escreva o resultado da área de um trapézio a partir de dados fornecidos pelo usuário.

Solução: Para calcular a área de um trapézio precisamos saber dos valorescorrespondentes á base maior, à base menor e à sua altura. Estes dados serão lidos edeverão ser armazenados para posteriormente realizarmos o cálculo, teremos então quecriar variáveis para armazenar estes dados. Como as dimensões de um trapézio envolvevalores reais, as variáveis terão que ser deste tipo. Não podemos escrever o resultado semantes calculá-lo. Também não podemos calcular sem saber dos valores. Portanto aseqüência deverá ser: declarar as variáveis (criá-las), ler valores para as mesmas, realizar 

ocálculo e por último escrever o resultado. Chegaremos então ao seguinte algoritmo:

início

real: BMaior, BMenor, H, AREAescreva ("Digite a Base Maior: ")leia (BMaior)escreva ("Digite a Base Menor: ")leia (BMenor)escreva ("Digite a Altura: ")

leia (H)AREA = (BMaior + BMenor) / 2 * H

escreva ("Área do Trapézio = ", AREA)fim

{Os parênteses são necessários devido a }{ordem de prioridade dos operadores }

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 14/21

 

inicioreal: BMaior, BMenor, H, AREAleia: ( BMaior, BMenor, H )AREA (BMaior + BMenor) / 2 * H

escreva (AREA)fim

11.2 - Estrutura Condicional

Quando a ação a ser executada depender de um teste teremos uma alternativa simplesou composta. Neste caso o teste terá que vir antes do conjunto de comandos poisdependendo do resultado do mesmo, poderá ocorrer que os comandos não sejamexecutados nenhuma vez.

11.2.1 - Alternativa Simples

se <CONDIÇÃO> então EX: se TSERVIÇO >= 5 entãoC1 SALÁRIO E-- SALÁRIO * 1.05C2 fim-se

.

.

.Cn

fin-se

Onde:Cl, C2, ... Cn; representam uma seqüência de comandos quaisquer.

se e fim-se são palavras-chave que marcam respectivamente o início e o fim dobloco de comandos dependentes do teste realizado. Se o teste resultar verdadeiroos comandos dentro do bloco serão executados, uma única vez, um a um, de cimapara baixo. Caso o teste resulte falso os comandos dentro do bloco não serãoexecutados nenhuma vez.

11.2.2 - Alternativa Composta

se <CONDIÇÃO>então

ClC2senão

C3C4C5

fim-se

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 15/21

 

Observe que para cada se deve haver um fim-se correspondente que marque o final do bloco de comandos, dependentes do resultado do teste feito no início daquele bloco.

Exemplo: trecho de um algoritmo que calcula as gratificações de funcionários de umempresa com índices variados caso possua curso superior, técnico ou nenhum.

se CSUPERIOR entãoGRAT = SAL * 0.25senão

se CTÉCNICOentãoGRAT = SAL * 0.15senãoGRAT = SAL * 0.05

fim-sefim-se

Obs: CSUPERIOR E CTÉCNICO são variáveis lógicas. Preste atenção que no exemploacima, as gratificações são exclusivas, não havendo acumulações.

11.3 - Estruturas de repetição

Em estruturas de repetição determinadas partes do programa são executadas diversasvezes de acordo com alguma condição de repetição estabelecida pelo programador.Existem diversas maneiras de se especificar como a condição será testada.

Veremos as principais a seguir.

11.3.1 - Repetição com Teste da Condição de Término no Inicio.A condição é testada no início do bloco a ser repetido, as instruções do bloco só serão

executadas se a condição for satisfeita.

Estrutura :

enquanto <CONDIÇÃO> facaseqüência A de comandos

.

.

.seqüência Z de comandosfim-enquanto

EX:

Soma dos pares de 100 a 200.

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 16/21

 

Iníciointeiro: PAR, SOMASOMA = 0PAR = 100enquanto PAR = 200

SOMA = SOMA + PAR PAR E-- PAR + 2

fim-enquanto

escreva(SOMA)fim

11.3.2 - Repetição com Teste da condição de Término no Final.

A condição é testada no fim do bloco a ser repetido, as instruções do bloco serãoexecutadas pelo menos uma vez.

Modelo

repitaseqüência A de comandos

até <CONDIÇÃO> 

Ex : Soma dos pares de 100 a 200

INICIOinteiro: PAR, SOMASOMA = 0PAR = 100repita

SOMA = SOMA + PAR PAR = PAR + 2

até PAR > 200escreva (SOMA)

fim

Observe que a utilização de um comando repita no lugar de um comando enquanto, deve-se a utilizar como (CONDIÇÃO) para o repita, a negação da (CONDIÇAO) do enquanto.

'I'i.3.3 - Repetição com Variável de Controle

Neste tipo de repetição o bloco especificado será executado um determinado númerode vezes controlado por uma variável.

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 17/21

 

Modelo:

para VC de VI até VF passo INC faca

seqüência A de comandos::

seqüência B de comandos

fim- para

ONDE:

VC: É uma variável numérica inteira qualquer. (Variável de Controle)VI: Representa o Valor Inicial da variável VC.VF: Representa o Valor Final da variável VC. Ou seja quando o valor da variável VCfor 

igual a VF o laço de repetição será executado pela última vez.INC: E o incremento que sofrerá a variável VC durante a execução do laço de repetição.

INC poderá assumir qualquer valor numérico desde que seja um número inteiropositivo ou negativo.

Ex. Imprimir os números ímpares de 1 até 15.

iníciopara I de 1 até 15 passo 2 faça

escreva(I)  fim - para  fim.

O mesmo exemplo poderia ser resolvido usando a instrução "enquanto".

  iniciointeiro : II=1enquanto I <=15 faça

escreva (I)

I=I+2  fim-enquanto  fim.

12 - INTERRUPÇÃO FORÇADA DO LAGO DE REPETIÇÃO ( abandone )

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 18/21

 

O comando abandone só tem sentido dentro de um comando de repetição(enquanto, repita, para). Além disso, estará sempre associado ao teste de uma

condição com o comando se. Quando o comando abandone é encontrado, o algoritmotem seu fluxo desviado para a primeira instrução que houver logo após o final do laço derepetição em que se encontrava o comando abandone.

Ex.

enquanto I>0 facaI=0.05escreva(I)

se I ** 2 + 1 >=1.45 enquantoI=I+0.2senão abandone

fim-sefim-enquanto

13 - ALTERNATIVA DE MÚLTIPLA ESCOLHA

Modelo:

escolhacaso <condição 1>

seqüência A de comandoscaso (condição 2)

seqüência B de comandos·

:

caso (condição N)seqüência C de comandos

senãoseqüência D de comandos

fim-escolha

A semântica do comando é a seguinte:

- As palavras reservadas escolha e fim-escolha marcam o bloco relacionado com aestrutura de múltipla escolha.

- Cada condição deverá ser precedida da palavra caso e poderá usar todos os operadoresrelacionais e lógicos.

- As condições são independentes, ou sejam não é obrigatório que dependam de umamesma variável.

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 19/21

 

- A execução do comando se dá de cima para baixo, quando um dos testes resultaverdadeiro o bloco de comandos associado ao mesmo é executado. Após a execução doúltimo comando associado ao bloco o fluxo do algoritmo é desviado para a próximainstrução que houver depois do fim escolha. Isto significa que no máximo uma dasseqüências de comandos será executada, podendo nenhuma delas ser executada, no casode todos os testes serem falsos e de não haver a cláusula senão.

- A cláusula senão não é obrigatória. Existindo a mesma, o seu bloco de comandos sóseráexecutado no caso de todos os testes que a antecedem terem tido resultado falso.

Ex: Solicitar que sejam digitados três números distintos entre sí e informar qual foi omaior valor digitado se os valores forem realmente diferentes; alertando caso tenha sidodigitado algum valor repetido.

Solução:

inícioreal: A, B, Cescreva ("Digite três valores diferentes")leia (A,B,C)escolha

caso A>B e A>Cescreva ("A tem o maior valor")

caso B>A e B>Cescreva ("B tem o maior valor")

caso C>A e C>Bescreva ("C tem o maior valor")

senãoescreva ("foi digitado valor repetido")

fim-escolhafim

14 - METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOS

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 20/21

 

Normalmente a maior dificuldade de quem está iniciando no aprendizado da  programação é de saber como começar a desenvolver um algoritmo. As instruçõesabaixo, se seguidas, podem ser de muita ajuda na solução do problema.

1º - Leia com atenção a especificação do problema até o final e repita a leitura quantasvezes for necessário para o entendimento total do problema.

2º - Leia novamente o problema e veja quais as entradas (leituras) que são citadas naespecificação do mesmo.

3º - Verifique quais as saídas (impressões, etc.) que são solicitadas na questão.

4º - Verifique pelo que o problema pede, quais as variáveis que deverão ser criadas, quaisos seus valores iniciais e o tipo de cada uma delas.

5º - Levante e analise todas as transformações necessárias para, dadas as entradas evalores gerados internamente, produzir as saídas especificadas.

6º - Veja com base no que o problema pede, quais os testes (condições) que deverão ser feitos e o que deverá ser realizado caso o resultado de cada teste seja verdadeiro ou falso.

7º - Observe quais as ações que o problema exige e quantas vezes deverão ser executadas. Com base nisto defina quais os laços que deverão existir e quais ascondições de término dos mesmos.

8º - Faça uma reavaliação geral e elabore o algoritmo através da integração das partes.

15 - REGRAS PRÁTICAS PARA A CONSTRUÇÃO DE ALGORITMOS LEGÍVEIS

1- Procure incorporar comentários no algoritmo, pelo menos para descrever o significadodas variáveis utilizadas. Comentários em PORTUGOL, podem ocorrer em qualquer partedo algoritmo, encerrados entre chaves {e).

EX: {declaração de variáveis}, {cálculo da média}.

2- Escolha nomes de variáveis que sejam significativos, isto é, que traduzam o tipo deinformação a ser armazenada na variável.

EX: NOTAMATRICULACPF

Obs.: As variáveis devem ser, de preferência, escritas em letras maiúsculas.

5/10/2018 Apostila de Algoritimo Curso Cetra - slidepdf.com

http://slidepdf.com/reader/full/apostila-de-algoritimo-curso-cetra 21/21

 

3- Grife todas as palavras chaves (escritas com letras minúsculas) do algoritmo,destacando as estruturas de controle.

EX: A < 0se B <> -1 então

4 - Procure alinhar os comandos de acordo com o nível a que pertençam, isto é, destaquea estrutura na qual estão contidos.

EX: |B = A * Cenquanto P <> -1 faça| P = P - 1| F = x + NOTA / 2| leia (F, NOTA)fim-enquantoescreva (F, NOTA)

EXERCÍCIOS

1 - Construa um algoritmo que leia um valor em cruzeiros reais, a cotação do dólar dodia e escreva em dólar o correspondente ao valor lido em cruzeiros reais.

2 - Construa um algoritmo que leia um valor em dólar, a cotação do dólar do dia eescreva em cruzeiros reais o correspondente ao valor lido em dólar.

3 - Construir um algoritmo que leia os valores de A, B e C e calcule as raízes reais de

uma equação do segundo grau da forma seguinte: Ax2 + Bx + C = 0

Obs.: Para realizar esse cálculo, devem ser seguidos os seguintes passos:

- realizar a leitura dos coeficientes A, B e C.- calcular o delta (D) usando a seguinte fórmula: D < (B ^ 2) - (4 * A * C)- se o valor do delta (D) for positivo, calcular as raízes reais usando as fórmulas

 baixo.Caso o valor do delta (D) seja negativo imprimir a mensagem "Não existem

raízes reaispalra a equação".

Xl = (-B + SQR(D))*(2 * A)X2 = (-B - SQR(D))*(2 * A)

4 - Construa um algoritmo que leia um número real e responda se o número digitado é positivo ou negativo.

5 - raça um algoritmo que leia um número inteiro e positivo e informe se ele é par ouímpar.