apostila 01 de de algoritmos

Upload: fernando-kakaroto-batista

Post on 07-Jul-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/19/2019 Apostila 01 de de Algoritmos

    1/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 1

    U.E PROF EDGAR TITO - NOITEPROF. RANILDO LOPES

    DISCIPLINA: Lógica de Programação  APOSTILA 02

    LÓGICA DE PROGRAMAÇÃO

    Visite nosso sítio 

    http://ueedgartito.wordpress.com 

    “Nele estão os resumos e trabalhode sala de aula”

    Obrigado pela preferência de nossa ESCOLA! 

  • 8/19/2019 Apostila 01 de de Algoritmos

    2/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 2

    Sumário 

    I - CONCEITOS INICIAIS ..........................................................................................................................................3 Lógica de programação.........................................................................................................................................3 

     Algoritmo ............................................................................................................................................................... 3 Instrução................................................................................................................................................................ 4 EXERCÍCIOS ........................................................................................................................................................4 

    Programa de Computador.....................................................................................................................................4 Fases ..................................................................................................................................................................... 4 Diagrama de Blocos ..............................................................................................................................................5 EXERCÍCIOS ........................................................................................................................................................5 

    II - VARIÁVEIS........................................................................................................................................................... 5 Tipos de Variáveis .................................................................................................................................................6 

    Numéricas .........................................................................................................................................................6 Cadeia ou String ou Alfanuméricas .................................................................................................................. 6 Caractere ..........................................................................................................................................................6 Lógico ................................................................................................................................................................ 7 

    Constantes ............................................................................................................................................................7 III - EXPRESSÕES ....................................................................................................................................................7 

    Operadores Aritméticos.........................................................................................................................................7 

    Operadores Relacionais ........................................................................................................................................7 Operadores Lógicos ..............................................................................................................................................8 EXERCÍCIOS ........................................................................................................................................................9 

    IV – COMANDOS BÁSICOS ................................................................................................................................... 10 Comando de Atribuição.......................................................................................................................................10 Comando de Entrada ..........................................................................................................................................10 Comando de Saída.............................................................................................................................................. 10 Primeiro Exemplo – Português Estruturado e Pascal .........................................................................................10 EXERCÍCIOS - Estrutura Seqüencial.................................................................................................................. 12 

    V – ESTRUTURAS DE SELEÇÃO.......................................................................................................................... 13 Conceitos............................................................................................................................................................. 13 Seleção Simples.................................................................................................................................................. 13 

    Seleção Composta .............................................................................................................................................. 13 Exemplo............................................................................................................................................................... 13 EXERCÍCIOS – Estrutura de Seleção................................................................................................................. 14 

     Alternativa de Múltiplas Escolhas........................................................................................................................ 15 EXERCÍCIOS – Alternativa de Múltiplas Escolhas .............................................................................................17 

    VI – ESTRUTURAS DE REPETIÇÃO .....................................................................................................................17 Comando Enquanto (While - Do) ........................................................................................................................17 Comando Repita (Repeat - Until) ........................................................................................................................18 EXERCÍCIOS – Comando Enquanto (WHILE) ...................................................................................................18 Comando Para (For)............................................................................................................................................ 20 EXERCÍCIOS – Comando Para (For) ................................................................................................................. 21 

    ANEXO I – Questões de Raciocínio Lógico ..............................................................................................................2 ANEXO II - Transferência de Comandos: Português Estruturado para Pascal ........................................................3 

  • 8/19/2019 Apostila 01 de de Algoritmos

    3/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 3

    I - CONCEITOS INICIAISLógica de programaçãoÉ a técnica de encadear pensamentos para atingir determinado objetivo. O aprendizado destatécnica é necessário, para quem quer trabalhar com desenvolvimento de sistemas e programas.

     Algori tmo

    É uma seqüência de passos finitos com o objetivo de solucionar um problema.

    O estudo da lógica é o estudo dos métodos e princípios usados para distinguir o raciocínio corretodo incorreto. Naturalmente, essa definição não pretende afirmar que só é possível argumentarcorretamente com uma pessoa que já tenha estudado lógica. Afirmá-lo seria tão errôneo quantopretender que só é possível correr bem, se estudou física e fisiologia, necessárias para adescrição dessa atividade. Alguns excelentes atletas ignoram completamente os processoscomplexos que se desenrolam dentro deles próprios quando praticam o esporte.

    Assim também acontece no nosso dia-a-dia. Quantas vezes já vimos um algoritmo e nãosabíamos que aquela seqüência de passos chamava-se algoritmo.

    Um exemplo bem freqüente é quando queremos falar em algum telefone público.

    Exemplo de algoritmo para falar em um telefone público

    1 – Retirar o telefone do gancho;2 – Esperar o sinal;3 – Colocar o cartão;4 – Discar o número;5 – Falar no telefone;6 – Colocar o telefone no gancho.

    O algoritmo é exatamente esse conjunto de passos que resolveu o problema de umapessoa falar no telefone. É como se fôssemos ensinar uma máquina a fazer alguma tarefaespecífica.

    Outro exemplo clássico é um algoritmo para resolver o problema de fritar um ovo quepoderia estar escrito em forma de uma receita. A receita é um algoritmo, pois é formada de açõesque devem ser tomadas para fritar um ovo.

    Exemplo de algoritmo para fritar um ovo

    1 – pegar frigideira, ovo, óleo e sal;2 – colocar óleo na frigideira;

    3 – acender o fogo;4 – colocar a frigideira no fogo;5 – esperar o óleo esquentar;6 – colocar o ovo;7 – colocar o sal;8 – retirar quando estiver pronto.

    Cada linha do algoritmo pode-se chamar de uma instrução, logo, podemos dizer que umalgoritmo é um conjunto de instruções.

  • 8/19/2019 Apostila 01 de de Algoritmos

    4/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 4

      Assim como fritar um ovo, nos algoritmos computacionais não podemos trocar ou omitircertas instruções, caso contrário não obteremos o resultado esperado. Por exemplo, se omitirmosa instrução acender o fogo, não teremos ao final do algoritmo um ovo frito.

    InstruçãoIndica a um computador uma ação elementar a ser executada.

    Até as coisas mais simples podem ser descritas por um algoritmo. Por exemplo:

    Algoritmo para o fim de semana

    1 – vejo a previsão do tempo;2 – se fizer sol

    vou à praia;senão

    vou estudar;3 – almoçar;4 – ver televisão;

    5 – dormir. EXERCÍCIOS1 – Fazer um algoritmo para tomar banho:

    2 – Crie um algoritmo para fazer uma prova:3 – Faça um algoritmo para somar dois números:Programa de ComputadorNada mais é do que um algoritmo escrito numa linguagem de computador (C, Pascal, Fortran,Delphi, Cobol, Java e outras). É a tradução para o inglês do algoritmo feito em português. O maisimportante de um programa é a sua lógica, o raciocínio utilizado para resolver o problema, que éexatamente o algoritmo.

    A forma de escrever um algoritmo em pseudocódigo (algoritmo que não usa nenhumalinguagem de programação) vai variar de autor para autor, pois, um traduz ao pé da letra alinguagem C, outro, o Pascal, outro, mistura as duas linguagens e assim por diante.É importante lembrar que estas variações vão sempre ocorrer, podemos dizer que é umavariação de autores adotados.Fases

    A principal finalidade de um computador é realizar a tarefa de processamento de dados, istoé, receber dados através de dispositivos de entrada que podem ser, por exemplo, teclado, mouse,scanner, entre outros; realizar operações com estes dados e gerar uma resposta que seráexpressa em um dispositivo de saída que pode ser, por exemplo, uma impressora, um monitor devídeo, entre outros.

    Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trêsfases fundamentais:

    ENTRADA:  São os dados de entrada do algoritmo.PROCESSAMENTO:  São os procedimentos utilizados para chegar ao resultado final.

    ENTRADA DE

    DADOS

     

    PROCESSAMENTO

    DE DADOS

     

    SAÍDA DE DADOS

  • 8/19/2019 Apostila 01 de de Algoritmos

    5/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 5

    SAÍDA: São os dados já processados, os resultados, mostrados na tela do computador (monitorde vídeo) ou impressora.Diagrama de BlocosÉ uma forma padronizada para representar os passos lógicos de um determinado processamento.Com o diagrama, também conhecido como fluxograma, podemos definir uma seqüência desímbolos, com significado bem definido, portanto, sua principal função é a de facilitar a

    visualização dos passos de um processamento.Simbologia do Diagrama de Bloco

    Existem diversos símbolos em um diagrama de bloco. Veja no quadro abaixo alguns dos símbolosque iremos utilizar:

    Símbolo Função

    TERMINALIndica o início ou fim de um processamentoExemplo: Início do algoritmo

    PROCESSAMENTO

    Processamento em geral

    Exemplo: x

  • 8/19/2019 Apostila 01 de de Algoritmos

    6/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 6

    Nome da variável: tipo da variável;

    Exemplos:A: inteiro;X: real;Nome: string (ou cadeia);

    Regras para formação do nome de uma variável:1 – O primeiro caractere é uma letra;2 – Se houver mais de um caractere, poderemos usar letras ou dígitos;

    3 – Nomes de variáveis escritas com letras maiúsculas serão diferentes de letras minúsculasem muitas linguagens de programação. Lembre-se: peso é diferente de PESO;

    4 – Nenhuma palavra reservada poderá ser nome de uma variável.

    Nomes Válidos Nomes Não-VálidosNome, profissao,n, n1,PESO, A 2X -> Começa por algarismo

    peso do aluno -> espaço não é permitido

    Tipos de VariáveisNuméricasSão aquelas que armazenam dados numéricos, podendo ser divididos em duas classes:Inteiro: são aqueles que não possuem componentes decimais ou fracionários, podendo serpositivos ou negativos.Normalmente uma variável do tipo inteira poderá ocupar 1, 2 ou 4 bytes na MP.Exemplos:

    10 número inteiro positivo-10 número inteiro negativo

    Real: são aqueles que podem possuir componentes decimais ou fracionários, podendo

    também ser positivos ou negativos.Normalmente uma variável do tipo real poderá ocupar 4 ou 8 bytes na MP.Exemplos:

    25.03 número real positivo com duas casas decimais235. número real positivo com zero casas decimais

    -10.5 número real negativo com uma casa decimalCadeia ou String ou Alfanuméricas

    São aquelas que possuem letras e/ou números. Pode em determinados momentos contersomente dados numéricos ou somente letras. Se usado somente para armazenamento denúmeros, não poderá ser utilizado para operações matemáticas.

    O número de bytes possíveis para armazenamento de uma variável desse tipo dependerá daquantidade de caracteres.Exemplos:“Maria” String de comprimento 5“123” String de comprimento 3“A” String de comprimento 1

    CaractereÉ aquele que armazena apenas uma letra ou dígito, é uma string de comprimento 1. Se usadopara armazenar número não poderá ser utilizado para operações matemáticas.

  • 8/19/2019 Apostila 01 de de Algoritmos

    7/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 7

    Normalmente uma variável do tipo caractere ocupará 1 byte na MP.

    Exemplos:“A” caractere que armazena uma letra“5” caractere que armazena um número

    Lógico

    Também conhecido como booleano. É representado no algoritmo pelos dois únicos valoreslógicos possíveis: verdadeiro ou falso. Porém é comum encontrar em outras referências outrospares de valores lógicos como: sim/não, 1/0, true/false, verdadeiro/falso.ConstantesConstante é um determinado valor fixo que não se modifica ao longo do tempo, durante aexecução de um programa. Conforme seu tipo, a constante é classificada como sendo numérica,lógica ou literal.As declarações das constantes em um algoritmo são feitas antes das declarações das variáveis:Sintaxe:

    Nome da constante = valor da constante;III - EXPRESSÕES

    O conceito de expressão em termos computacionais está intimamente ligado ao conceito deexpressão (ou fórmula) matemática, onde um conjunto de variáveis e constantes numéricasrelaciona-se por meio de operadores compondo uma fórmula que, uma vez avaliada, resulta numvalor.Operadores AritméticosOs operadores matemáticos são:

    Operador Função+ Somar- Subtrair* Multiplicar

    / DividirDiv Quociente inteiroMod Resto da divisão

    Os operadores Div e Mod só podem ser aplicados com operandos inteiros.O operador / sempre conduz a um resultado real.Com os operadores +, - e * , se pelo menos um dos operandos for real, então o resultado seráreal.Exemplos de expressões aritméticas:3 * 3 = 99 / 2 = 4.59 DIV 2 = 49 MOD 2 = 12 / 9 = 0.222 + 4.6 = 6.6

    Operadores RelacionaisUma expressão relacional é uma comparação realizada entre dois valores de mesmo tipo,

    tendo como resposta sempre um valor booleano (verdadeiro ou falso). Estes valores sãorepresentados na relação através de constantes, variáveis ou expressões aritméticas.

  • 8/19/2019 Apostila 01 de de Algoritmos

    8/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 8

     Os operadores relacionais são:

    Símbolo Descrição

    = Igual

    < > Diferente< = Menor ou igual

    > = Maior ou igual

    > Maior que

    < Menor que

    Exemplo de relações:X = 1 y = 2 z = 5X * X + Y > Z

    1 * 1 + 2 > 51 + 2 > 53 > 5Resultado desta expressão: FALSO

    Operadores LógicosUma expressão lógica serve para combinar resultados de expressões aritméticas e/ou

    relacionais, variáveis e/ou constantes, retornando verdadeiro ou falso.Exemplo de operadores lógicos, matematicamente conhecidos:

    E AndOu Or

    Não Not

    E / AND Uma expressão AND (E) é verdadeira se todas as condições foremverdadeiras.OR / OU Uma expressão OR (OU) é verdadeira se pelo menos uma condição forverdadeira.NOT / NÃO Uma expressão NOT (NÃO) inverte o valor da expressão ou condição,se verdadeira inverte para falsa e vice-versa.

    Tabela E (AND) Tabela OU (OR) Tabela NÃO (NOT)V e V = V V ou V = V Não V = F

    V e F = F V ou F = V Não F = VF e V = F F ou V = VF e F = F F ou F = F

    As prioridades entre os operadores são:1º - ( )2º - funções3º - Não4º - *, / , Div, Mod, E

  • 8/19/2019 Apostila 01 de de Algoritmos

    9/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 9

    5º - +, -, Ou6º - =, < >, =.

    Observação: em caso de empate entre as prioridades, resolver da esquerda para a direita.EXERCÍCIOS

    1. Identifique o tipo dos dados:

    (a) inteiro;(b) real;(c) lógico;(d) cadeia ou literal

    ( ) verdadeiro ( ) ‘c*d’ ( ) falso ( ) ’1 2 3 4’( ) ‘aula’ ( ) 897 ( ) ‘345’ ( ) -18.589( ) -0.342 ( ) 35.23 ( ) -23 ( ) ‘Maria’

    2. Indique os identificadores como válidos ou inválidos:(a) identificador válido

    (b) identificador inválido( ) ano ( ) ai! ( ) 3/1( ) media_salario ( ) A15B34 ( ) nome-aluno( ) média ( ) ‘aula’ ( ) 5ª

    3. Faça a declaração de 2 variáveis do tipo inteira, 2 do tipo real, 2 de um únicocaractere e 2 do tipo cadeia de caracteres.

    4. Indique qual o resultado das expressões aritméticas abaixo:Sendo: x = 6.0 y = 2 z = 4.0 a = 8 b = 7.5 c = 7.7

    d = 12 p = 4 q = 3 r = 10 s = 2.5a) x + y – z * a = f) ((z / a) + b * a) – d =b) d div y = g) 100 * (q div p) + r =c) d mod y = h) p * (r mod q) –q/2d) y div d = i) raiz (r – (q * q ) ) =e) y mod d = j) (a + r) * r =

    5. Dadas as informações abaixo, informe qual o valor das relações (verdadeiro oufalso):

    a) a = 2.0, b = 9.0, nome = ‘ana’, profissao = ‘advogado’a + 1 > = raiz (b) ( )nome < > ‘ana’ ( )profissao = ‘médico’ ( )

    b) a = 6.0, b = 121.0, nome = ‘pedro’, profissao = ‘médico’a + 1 > = raiz (b) ( )nome < > ‘ana’ ( )profissao = ‘médico’ ( )

    c) x = 3, y = 4, z = 16, nome = ‘maria’, resultado = verdadeiro( x + y > z ) and (nome = ‘maria’) ( )

  • 8/19/2019 Apostila 01 de de Algoritmos

    10/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 10

      (resultado) or ( y > = x ) ( )(not resultado) and ( z div y + 1 = x ) ( )(nome = ‘josé’) and ( x + y + z < ( y * y )) ( )

    IV – COMANDOS BÁSICOS

    Comando de AtribuiçãoEste comando é utilizado para atribuir valores a variáveis e, em portugol (português estruturado), érepresentado por

  • 8/19/2019 Apostila 01 de de Algoritmos

    11/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 11

    Write (nome, ‘ é um nome muitobonito! ‘);

    End.

  • 8/19/2019 Apostila 01 de de Algoritmos

    12/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 12

    EXERCÍCIOS - Estrutura Sequencial

    1. Faça um algoritmo que leia dois números, calcule e imprima a soma desses dois números.

    2. Faça um programa que receba dois números reais, calcule e mostre a subtração do primeironúmero pelo segundo.

    3. Faça um programa que receba dois números inteiros, calcule e imprima a divisão do primeironúmero pelo segundo.

    4. Faça um programa que leia um número e informe a metade e o dobro desse número.

    5. Escreva um programa que receba um número via teclado e informe em seguida a metade e oquadrado desse número.

    6. Escrever um programa que permita receber o nome e a idade de uma pessoa e em seguida,informar o nome digitado e a idade da pessoa daqui a 30 anos.

    7. Faça um programa que leia três notas de um aluno, calcule e imprima a média aritméticaentre essas notas.

    8. Faça um programa que receba dois números inteiros, calcule e imprima:- soma do dois números;- subtração do primeiro pelo segundo;- subtração do segundo pelo primeiro;- produto dos dois números;- divisão do primeiro pelo segundo;- quociente inteiro da divisão do primeiro pelo segundo;

    - resto da divisão do primeiro pelo segundo.9. Faça um programa que receba quatro números inteiros, calcule e mostre a soma dessesnúmeros.

    10. Faça um programa que receba três notas e seus respectivos pesos. Calcule e mostre amédia ponderada dessas notas.

    11. Faça um programa que receba o valor do salário de um funcionário. Calcule e mostre o novosalário, sabendo-se que este sofreu aumento de 25%.

    12. Faça um programa que receba o valor do salário de um funcionário e o percentual deaumento, calcule e mostre o valor do aumento e o novo salário.

    13. Faça um programa que receba o valor do salário-base de um funcionário, calcule e mostre osalário a receber, sabendo-se que este funcionário tem gratificação de 5% sobre o salário-base epaga imposto de 7% sobre o salário-base.

    14. Faça um programa que receba o valor do salário-base de um funcionário, calcule e mostre osalário a receber, sabendo-se que este funcionário tem gratificação de R$ 1.000,00 e pagaimposto de 10% sobre o salário-base.

  • 8/19/2019 Apostila 01 de de Algoritmos

    13/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 13

    V – ESTRUTURAS DE SELEÇÃOConceitos

    Os algoritmos até agora seguiram um mesmo padrão: entrava-se com dados, estes eramprocessados e alguma informação era mostrada na tela.

    Dessa forma, o computador mais parecia uma máquina de calcular. O aprendizado denovos conceitos, como a estrutura de seleção, nos dará uma visão maior da complexidade de

    tarefas que ele poderá executar.Um exemplo do nosso dia-a-dia: imagine-se diante de um caixa eletrônico e suponha quesua senha seja 1234:Na tela aparece a mensagem:- Digite sua senha :E o cursor ( ou | ) fica piscando:Você digita os algarismos da sua senha.Neste momento, a Unidade Lógica e Aritmética (um dos componentes da CPU) verifica se osnúmeros que você digitou são iguais a 1234.  Caso tenha sido, a transação bancária continua;mas, se você digitou algo diferente, aparece na tela a mensagem: SENHA INVÁLIDA.Sintaxes:

    Seleção Simples

    Se condição entãoInício

    Comando (s);

    Fim;

    Seleção CompostaSe condição entãoInício

    Comando (s);FimSenãoInício

    Comando (s);Fim;

    Podemos constatar que esta estrutura faz parte do nosso cotidiano:

    - Se eu não tiver prova, vou ao clube; senão vou estudar.- Se eu tiver aumento, troco de carro; senão espero o 13° salário.- Se minha média for maior ou igual a sete, passo direto; senão faço exame final.

    A única coisa diferente é a forma como iremos escrevê-la, vamos adaptar os algoritmos para umalinguagem específica de um modo formal, obedecendo as regras da linguagem.ExemploAlgoritmo que lê um número e mostra uma mensagem dizendo se o número digitado é ou nãomúltiplo de 5.Português Estruturado:Programa ExemploSe;Varnum, resto: inteiro;

    InícioEscreva (‘Digite um número: ‘);Leia (num);resto

  • 8/19/2019 Apostila 01 de de Algoritmos

    14/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 14

     Observações:  -  Antes de Else não se usa ponto e vírgula;-  O Begin e o End são obrigatórios somente quando se tem mais de um comando dentrodo If  e do Else.

    EXERCÍCIOS – Estrutura de Seleção

    1. Faça um programa que leia um número e informe se o dobro do número é maior que 35.2. Faça um programa que leia um número e informe se a metade do número é menor que 12.

    3. Faça um programa que leia dois números e informe apenas se o primeiro é maior que osegundo.

    4. Faça um programa que leia dois números e informa se o primeiro é igual ao segundo.

    5. Faça um programa que leia dois números e informe se o primeiro é maior, menor ou igualao segundo.

    6. Faça um programa que leia três números e informe qual dos três é o maior.

    7. Fazer um programa que receba um número e mostre se ele é positivo, negativo ou nulo (0).

    8. Elabore um algoritmo que leia um número e mostre o número com a mensagem ‘é par’ ou‘é ímpar’.

    9. Faça um programa que leia a altura e o sexo de uma pessoa, calcule e imprima seu pesoideal, utilizando as seguintes fórmulas:

    Para homens: (72.7 * h) – 58Para mulheres: (62.1 * h) – 44.7 (h = altura)

    10. Faça um programa que receba quatro notas de um aluno, calcule e imprima a médiaaritmética das notas e a mensagem de aprovado para média superior ou igual a 7.0 ou amensagem de reprovado para média inferior a 7.0.

    11. Faça um programa que calcule e imprima o salário reajustado de um funcionário de acordocom a seguinte regra:- salários até R$ 300,00, reajuste de 50%- salários maiores que R$ 300,00, reajuste de 30%

    12. A prefeitura do Rio de Janeiro abriu uma linha de crédito para os funcionários municipais. Ovalor máximo da prestação não poderá ultrapassar 30% do salário bruto. Fazer um algoritmo quepermita entrar com o salário bruto e o valor da prestação e informar se o empréstimo pode ou nãoser concedido.

    13. Ler um número qualquer e exibir na tela uma mensagem indicando se ele é positivo,negativo ou nulo (zero). Se ele for positivo, exibir também a raiz quadrada deste número. Se elefor negativo você deve escrever uma mensagem dizendo ‘Não é possível calcular a raiz destenúmero’.

  • 8/19/2019 Apostila 01 de de Algoritmos

    15/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 15

     

    14. Ler um número inteiro e exibir na tela a mensagem ‘Par’ se ele for um número par, ou‘Ímpar’ se ele for um número ímpar.

    15. Faça um programa que receba três notas de um aluno, calcule e mostre a médiaaritmética e as mensagens de acordo com a tabela abaixo. Para os alunos de exame, calcule e

    mostre a nota que deverá ser tirada no exame para aprovação, considerando que a média noexame é de 6,0.

    MÉDIA MENSAGEM[ 0,0 a ] 3,0 Reprovado[ 3,0 a ] 7,0 Exame[ 7,0 a 10,0 ] Aprovado

    16. Faça um programa que receba três números e os mostre em ordem crescente.

    17. Dados três valores X, Y e Z, verificar se eles podem ser os lados de um triângulo e, se

    forem, verificar se é um triângulo eqüilátero, isósceles ou escaleno. Se eles não formarem umtriângulo informar ao usuário tal situação. Considerar que:

    Condição para ser triângulo: O comprimento de cada lado de um triângulo é menor que a somados outros dois lados.

    Chama-se triângulo eqüilátero o triângulo que tem os três lados iguais;Chama-se triângulo isósceles o que tem o comprimento de dois lados iguais;Chama-se triângulo escaleno o triângulo que têm os três lados diferentes.

    18. Faça um programa que receba o código de origem de um produto e informe a suaprocedência. A procedência obedece a seguinte tabela:Código de origem Procedência1 Sul2 Norte3 Leste4 Oeste5 ou 6 Nordeste7, 8 ou 9 Sudeste10 até 20 Centro-oeste21 até 30 Noroeste

     Al ternat iva de Múlt ip las Escolhas

    É uma alternativa para quando o algoritmo tiver muitos SEs,  deixando o programa com umaestrutura melhor.Sintaxe:Português Estruturado

    Caso  seja Alvo 1: comando 1;

    Alvo 2: comando 2;Alvo n: comando n;Fim;

  • 8/19/2019 Apostila 01 de de Algoritmos

    16/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 16

    OuCaso  sejaAlvo 1: comando 1;Alvo 2: comando 2;

    Alvo 3: comando 4;Senãocomando 5;Fim;

    PascalCase  of  Alvo 1: comando 1;Alvo 2: comando 2;Alvo n: comando n;End;

    OuCase  ofAlvo 1: comando 1;Alvo 2: comando 2;Alvo 3: comando 4;Elsecomando 5;End;

     Observações:  -  No Case também pode fazer uso do Else;-  Antes do Else se usa ; (ponto e vírgula);

    -  O Case não  tem Begin, mas, tem End; -  A variável que fará a verificação deverá ser declarada do tipo Integer, Char  ou Boolean.

    Exemplo:Este programa lê a idade de um nadador e informa a sua categoria seguindo as seguintes regras:Infantil A (5 - 7 anos), Infantil B (8 – 10 anos), Juvenil A (11 – 13 anos), Juvenil B (14 – 17 anos),Sênior (maiores de 18 anos).

    Português Estruturado

    Programa Exemplo;var

    idade: integer;

    InícioEscreva('Idade do nadador: ');Leia (idade);

    so idade sej

    5..7: Escreva ('Categoria InfantilA');8..10:Escreva ('Categoria Infantil

    B');11..13:Escreva('Categoria JuvenilA');14..17:Escreva('Categoria JuvenilB');18..99:Escreva('Categoria Sênior');

    SenãoEscreva('Idade inválida!');Fim; //Fim do CasoFim.Pascal

    Program Exemplo;var

    idade: integer;

    BeginWrite ('Digite a idade do nadador:

    ');Read(idade);

    se idade of 

    5..7: Write ('Categoria InfantilA');8..10:Write ('Categoria Infantil

    B');11..13:Write('Categoria Juvenil A');14..17:Write ('Categoria Juvenil

    B');18..99:Write ('Categoria Sênior');ElseWrite('Idade inválida!');End; //End do CaseEnd. 

  • 8/19/2019 Apostila 01 de de Algoritmos

    17/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 17

    EXERCÍCIOS – Alternativa de Múltiplas Escolhas1. Faça um programa que receba o código de origem de um produto e informe a suaprocedência. (Obs.: este é o exercício 14 da estrutura de seleção se, mas, agora ele será feitoutilizando o escolha caso.) A procedência obedece a seguinte tabela:Código de origem Procedência1 Sul

    2 Norte3 Leste4 Oeste5 ou 6 Nordeste7, 8 ou 9 Sudeste10 até 20 Centro-oeste21 até 30 Noroeste

    2. Faça um programa que leia um número digitado pelo usuário e o escreva por extenso se eleestiver entre 1 e 5 inclusive, caso contrário mostrar uma mensagem: ‘Opção de número inválida!’

    3. Escrever um algoritmo que leia um peso na Terra e o número de um planeta e imprima ovalor do seu peso neste planeta. A relação de planetas é dada a seguir juntamente com o valordas gravidade relativas à Terra:

    N° gravidade relativa Planeta1 0.37 Mercúrio2 0.88 Vênus3 0.38 Marte4 2.64 Júpiter5 1.15 Saturno6 1.17 UranoPara calcular o peso no planeta escolhido use a seguinte fórmula:

    Peso no Planeta = Peso / 10 * gravidade.VI – ESTRUTURAS DE REPETIÇÃO

    Vamos supor que nossos algoritmos precisarão ser executados mais de uma vez e, para quenão tenhamos que reescrever trechos idênticos que aumentariam consideravelmente o tamanhodo programa, utilizaremos as estruturas de repetição.

    Comando Enquanto (While - Do)

    Esta estrutura é recomenda quando o número de repetições for desconhecido. Para quefuncione corretamente é necessário observar:

    -  É necessário um teste (uma condição) para interromper a repetição, esta estrutura testaa condição e só executa o que está dentro dela se for verdadeira.-  A variável que testa a condição deverá ter seu valor atribuído no início do programaatravés de um comando de leitura ou de atribuição, antes da estrutura do enquanto e dentro daestrutura, como último comando.-  O Enquanto começa com Início (Begin) e termina com Fim (End;)-  Pode-se usar outras estruturas dentro do Enquanto (While), como: If, Case, etc.

  • 8/19/2019 Apostila 01 de de Algoritmos

    18/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 18

    Sintaxe:Português Estruturado:

    ENQUANTO condição FAÇAINÍCIO

    Comando 1;Comando 2;

    Comando n;FIM;

    Pascal:WHILE condição DOBEGIN

    Comando 1;Comando 2;

    Comando n;END; Exemplo: Faça um programa que leia vários números e imprima a metade de cada número, oprograma termina quando o 0 (zero) for digitado:

    PORTUGUÊS ESTRUTURADO:PROGRAMA Enquanto1;VARnum: INTEIRO;metade:REAL;INÍCIOESCREVA (‘Digite um número inteiro‘);LEIA (num);ENQUANTO num 0 FAÇAINÍCIOmetade

  • 8/19/2019 Apostila 01 de de Algoritmos

    19/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 19

    3. Dado um país A, com 5.000.000 de habitantes e uma taxa de natalidade de 3% ao ano, eum país B com 7.000.000 de habitantes e uma taxa de natalidade de 2% ao ano, calcular eimprimir o tempo necessário para que a população do país A ultrapasse a população do país B.

    4. Uma pousada estipulou o preço da diária em R$ 40,00 e mais uma taxa de serviços diáriosde:

    - R$ 15,00, se o número de dias for menor que 10;- R$ 8,00, se o número de dias for maior ou igual a 10.Criar um algoritmo que imprima o nome, o valor da conta de cada cliente e ao final o total

    arrecadado pela pousada.5. Criar um algoritmo que entre com vários números inteiros e positivos e informe aquantidade de números múltiplos de 3 (três). O programa será encerrado quando o usuário digitar0 (zero) ou menos.

    6. Criar um algoritmo que entre com vários números inteiros e positivos e informe a média dosnúmeros múltiplos de 3 (três). O programa será encerrado quando o usuário digitar 0 (zero) oumenos.

    7. Uma fábrica produz e vende vários produtos e para cada um deles tem-se o nome,quantidade produzida e quantidade vendida. Criar um algoritmo que mostre:- Para cada produto, nome, quantidade no estoque e uma mensagem se o produto tiver menosde 50 itens no estoque.

    8. Faça um programa que leia a idade e a altura de várias pessoas. Calcule e informe a médiadas alturas das pessoas com mais de 50 anos. Para encerrar o programa digite zero para idade.

    9. Faça um programa que leia vários números, quando o zero for digitado o programa seráfinalizado. Mostre no final desse programa a soma dos números positivos, a soma dos negativos e

    a soma total dos positivos e negativos juntos.10. O GDF realizou uma pesquisa entre vários habitantes do DF, coletando dados sobre orendimento familiar e o número de filhos de cada família. O GDF quer saber:- A média dos rendimentos da população;- Média do número de filhos.

    11. Uma empresa decidiu fazer um levantamento em relação aos candidatos que seapresentarem para preenchimento de vagas no seu quadro de funcionários. Suponha que vocêseja o programador dessa empresa, criar um programa que leia para cada candidato a idade, osexo e se tem experiência no serviço (S ou N). Para encerrar o programa, digite zero para idade.Calcule e escreva:- O número de candidatos do sexo feminino;- O número de candidatos do sexo masculino;- A idade média dos homens que já tem experiência no serviço.

    12. Uma empresa classifica seus funcionários em três níveis de acordo com um índice deprodutividade. São eles (1) Excelente, (2) Bom e (3) Regular. Cada nível acrescenta um abono aosalário base do funcionário, de acordo com a seguinte tabela:-  Excelente 80% do salário base;-  Bom 50% do salário base;

  • 8/19/2019 Apostila 01 de de Algoritmos

    20/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes 20

    -  Regular 30% do salário base.O programa deve ler a matrícula do funcionário, seu salário base e seu nível de abono. Calcular eimprimir o salário a ser pago (salário a ser pago é = salário base + abono). O programa seráencerrado quando for digitado 0 para matrícula.

    13. Faça um programa que receba vários números positivos ou negativos, terminada por zero.

    O programa deve fornecer como saída, a soma dos números positivos e a soma dos númerosnegativos.

    14. Faça um programa que leia os dados de vários alunos, contendo o número da matrícula, astrês notas e a freqüência. Calcule e mostre: para cada aluno o número de matricula, a nota final ea mensagem (aprovado ou reprovado); a maior e a menor nota da turma; o total de alunosreprovados;

    15. Faça um programa que receba a idade, a altura e o peso de várias pessoas. Calcule emostre:•  A quantidade de pessoas com idade superior a 50 anos;•

      A média das alturas das pessoas com idade entre 10 e 20 anos;•  A percentagem de pessoas com peso inferior a 40 quilos entre todas as pessoasanalisadas.

    16. Uma empresa deseja aumentar seus preços em 20%. Faça um programa que leia o código,o preço de custo de vários produtos e que calcule o novo preço de cada um deles. Calculetambém a média de preços com e sem aumento. Mostre o código e o novo preço de cada produtoe, no final, as médias. A entrada de dados deve terminar quando for recebido um código deproduto menor ou igual a zero.

    17. Faça um programa que apresente um menu de opções para cálculo das seguintesoperações entre dois números: adição, subtração, multiplicação e divisão. O programa devepermitir a escolha da operação desejada, a entrada dos números, a exibição do resultado e a voltaao menu de opções. O programa só termina quando for escolhida a opção de saída.

    Comando Para (For)

    Esta estrutura de repetição é utilizada quando se sabe o número de vezes em que um trechodo programa deve ser repetido.

    Sintaxe:Português Estruturado

    PARA a

  • 8/19/2019 Apostila 01 de de Algoritmos

    21/54

  • 8/19/2019 Apostila 01 de de Algoritmos

    22/54

  • 8/19/2019 Apostila 01 de de Algoritmos

    23/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes3. Tenho 3 camisas: A, B e C. Uma é VERDE, uma é BRANCA e outra é AZUL, nãonecessariamente nesta ordem. Sabe-se somanete que a a camisa A é VERDE, B não É VERDE eC Não é AZUL. Quais as cores de A, B, e C, nessa ordem?

    4. Dentro de uma caixa fechada, há uma bola branca e uma bola preta. Numa segundacaixa fechada, há duas bolas brancas e, numa terceira caixa fechada, há duas bolas pretas. Cada

    caixa possui uma etiqueta indicando o conteúdo das caixas, mas alguém misturou as trêsetiquetas de modo que todas as etiquetas estão erradas. Você seria capaz de escolher apenasuma das seis bolas de modo tal que, olhando a sua cor, você possa dizer o conteúdo de cada umadas caixas?

     ANEXO II - Transferência de Comandos: Português Estruturado para Pascal

    Veja como seria a transferência de alguns comandos de Português Estruturado para Pascal:

    OBS: Os dados da tabela estão em ordem alfabética.

    Português Estruturado Pascal (atribuição) :=Algoritmo ou Programa ProgramCadeia (de caracteres) ou Literal StringCaracter CharE AndEnquanto n 0 faça While n 0 doEscreva (‘.....’) Write (‘.....’);Fim EndInício Begin

    Inteiro IntegerLeia (nome da variável); Read (nome da variável);Nome:arranjo [1..10] de cadeia (ou string); Nome: array [1..10] of string;Ou OrPara i1 até 10 faça For i:= 1 to 10 doSe x > 10 então If x > 10 thenSenão ElseVar ou Variáveis Var

  • 8/19/2019 Apostila 01 de de Algoritmos

    24/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes

    U.E PROF EDGAR TITO - NOITEPROF. RANILDO LOPESDISCIPLINA: Lógica de Programação 

     APOSTILA 03

    LÓGICA DE PROGRAMAÇÃO

    Visite nosso sítio

    http://ueedgartito.wordpress.com 

    “Nele estão os resumos e trabalhode sala de aula”

    Obrigado pela preferência de nossa ESCOLA! 

  • 8/19/2019 Apostila 01 de de Algoritmos

    25/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes

    Variáveis x Dados

    Variável  é o local de memória onde serão armazenados os dados de forma temporária. Em

    nossos algoritmos não nos preocuparemos com o endereço real dessas variáveis, pois a maioria

    das linguagens de programação tornam estes endereços transparentes ao programador.

    Para exemplificarmos a diferença entre dados (constantes) e variáveis, bem como entender

    melhor o endereçamento de variáveis, podemos citar o exemplo de uma estante de prateleiras,onde estão guardados livros ou quaisquer outros objetos (veja figura).

    Os livros e objetos podem ser chamados de dados, conteúdo das variáveis. Para nos

    referenciarmos à variável é necessário darmos um nome à mesma, pois não trabalharemos com

    endereço de memória propriamente dito, e sim com identificadores.

    É aconselhável que o nome da variável  expresse o que vai ser armazenado dentro dela, p.e.

    nomeAluno, quantidade_alunos .

    As variáveis podem ainda ser simples  ou compostas . As variáveis simples são aquelas que

    recebem um único dado por vez, enquanto que as compostas podem armazenar vários dados de

    uma só vez, porém, esta última não é objeto de nossa apostila.

    Quando declaramos uma variável, temos que associar a ela algumas características:

    •  NOME ou IDENTIFICADOR

    •  TIPO do dado

    Como dissemos anteriormente, o endereço físico da variável não precisa ser declarado, a menos

    que estejamos programando em alguma linguagem de baixo nível, como o ASSEMBLER. As

    linguagens de alto nível procuram espaços livres na memória do computador para associarem

    bytes à variável declarada.

    Uso das Variáveis no Algoritmo

    O nome a ser associado à variável (ex.: X, Y, KTI34), não é importante para o computador, pois

    este servirá apenas como uma mera referência. Entretanto para outros programadores que

  • 8/19/2019 Apostila 01 de de Algoritmos

    26/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopespossam vir a analisar os seus programas, ou até para você mesmo após algum tempo, é

    necessário que esses nomes sejam expressivos, simples e objetivos.

    Vejamos agora alguns exemplos de identificadores:

    SALARIO  Um bom nome para variável que irá armazenar um valor salarial;

    CONT Um bom nome para variável que irá registrar uma contagem;

    TOTAL Um bom nome para variáveis acumuladoras de somas;DATANASC  Um bom nome para variáveis usadas para armazenar uma data de nascimento.

    Devemos evitar nomes do tipo: X, K, C1, ABC, etc... a menos que eles expressem algo real.

    Nomes de variável, na maioria das linguagens, NÃO devem:

    Iniciar por números: 1C2, 9ANOS, 100, 4CANTOS, etc...

    Ser descontínuos: DATA NASC, FONE COMERC, etc...

    Outros requisitos podem aparecer dependendo de cada linguagem. O COBOL por exemplo

    permite nomes longos para variáveis, já o CLIPPER, com apenas 10 bytes. O COBOL permite

    separadores como hífens, barras, entre outros. Linguagens derivadas do DBASE permitemapenas o UnderLine (Nome_Aluno) como caracter separador. A maioria das linguagens apresenta

    certas restrições à livre escolha dos nomes das variáveis. A mais evidente é a impossibilidade da

    utilização de palavras reservadas da própria linguagem. Por exemplo, a palavra MOVE 

    representa um comando para o COBOL. Não é possível utilizarmos este nome como identificador

    de qualquer variável nesta linguagem. Já para o CLIPPER, o MOVE pode ser um identificador.

    Outras vezes, a linguagem traz consigo algumas variáveis reservadas. Tratam-se de algumas

    variáveis que são automaticamente declaradas pela linguagem. Normalmente elas registram adata e a hora do sistema operacional, ou algumas informações internas como códigos de

    periféricos, endereços de memória para buffers, etc.

    Escolhendo o TIPO do Identificador da Variável

    O segundo argumento presente na declaração de uma variável é o seu tipo. O tipo de uma

    variável define que tipos de dados poderão ser armazenados nela. A declaração (definição das

    variáveis) será feita no início do algoritmo.

    Tipo inteiro 

    Sinaliza que o conteúdo será de números e que não terá a parte decimal em sua composição.

    Ex.: 1200; -12; 0; etc

    Tipo real

    Sinaliza que o conteúdo será de números e que é permitida a digitação da parte decimal.

  • 8/19/2019 Apostila 01 de de Algoritmos

    27/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesEx.: 1200,00; -12,88; 0; etc

    Tipo Literal 

    Sinaliza que o conteúdo aqui armazenado será toda a rede de caracteres alfanuméricos e os ditos caracteres especiais. Osconteúdos destas variáveis SEMPRE serão demonstrados entre aspas (simples ou dupla, dependendo da linguagem);

    “São variáveis que aceitam conteúdos de qualquer natureza, portanto: números, letras e símbolos

    em geral, não podendo estes números ser utilizados para operações aritméticas”.Ex.: "MARIA JOSE"; "Recife"; "123"; "NOMES"

    Observações:

    a) Não confundir os valores numéricos com os literais ou entre os literais. Vejamos os

    casos a seguir .

    Caso 1.

    42 (inteiro) é diferente de “42” (literal) – Os tipos são diferentes, logo, seus valores em

    memórias são d iferentes;Caso 2.

    “01”(literal) é diferente de “1” (literal) – Os tipos são iguais, mas a representação em

    memória é diferente.

    Tipo Lógico 

    Este tipo de variável não permite o registro de dados numéricos ou literais. Uma variável lógica só

    armazena um entre dois valores: VERDADEIRO ou FALSO.

    Em nossa disciplina, não nos ateremos ao como exatamente, o computador registra esta

    informação na memória. Pode ser por bytes zerados e não zerados, pelas letras V ou F, ou por

    um outro mecanismo qualquer. O que nos interessa de fato é que este tipo de variável não

    registra outro tipo de informação exceto Verdadeiro ou Falso.

    Para efeito de representação, diremos que o conteúdo de uma variável lógica será representado

    pelas letras V e F, representando respectivamente, Verdadeiro e Falso:

    Tamanho das Variáveis

    Quando declaramos uma variável não precisamos delimitar o byte inicial e final que esta iráocupar na memória do computador, entretanto é imprescindível entendermos que elas ocupam um

    espaço na memória e que os tipos de dados trazem definições sobre as variáveis, inclusive o que

    pode armazenar e os seus limites.

    Outros tipos de variáveis também são tratados por novas linguagens, tais como: HORA,

    MEMORANDO, OBJETO. Entretanto aqui só trataremos os tipos mencionados anteriormente, ou

    seja: Literal, Inteiro, Real e Lógico..

  • 8/19/2019 Apostila 01 de de Algoritmos

    28/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesDeclaração de Variáveis

    TODAS as variáveis que o programa vier a utilizar têm que existir antes de serem referenciadas.

    Por esse motivo, necessitamos declarar  estas. Como fazer isso? Através do comando DECLARE.

    Comando DECLARE

    DECLARE [,]: ;

      Nome ou identificador da variável

      Tipo da variável definida: Literal, Inteiro, Real e Lógico.

    Exemplos: DECLARE NOME : Literal;

    DECLARE IDADE : Inteiro;

    DECLARE ALTURA: Real;

    DECLARE DEPENDENTE: LOGICO;

    Podemos declarar diversas variáveis utilizando apenas um comando DECLARE.

    Exemplos: DECLARE NOME : Literal;

    IDADE : Inteiro;

    ALTURA: Real;DEPENDENTE, LOGICO;

    Ou ainda, em uma mesma linha, desde que sejam do mesmo tipo de dados.

    Exemplo:

    DECLARE IDADE, CONTADOR:inteiro; (obs.: tipo e tamanho iguais}

    Observação: As vezes substituímos o comando Declare por Var  ou Defina, dependendo da linguagem que estamosquerendo nos aproximar. Outros comandos poderão sofrer variações. Cabendo ao professor dadisciplina fazer os ajustes baseados no direcionamento que queira dar à disciplina.

    Operadores

    Podemos atribuir a uma variável o resultado de uma expressão numérica.  At ribu i é uma ação que

    as linguagens possuem e que representa o ato de preencher o espaço da variável com um

    conteúdo, conforme o tipo de dado (veremos mais detalhadamente em tópico específico).

    Entendemos por expressão numérica um conjunto de operações aritméticas combinadas entre

    operandos e operadores . Mas além das expressões numéricas, existem expressões que exigem

    tratamentos particulares, como veremos a seguir.

    Operadores Numéricos

    São elementos (símbolos) utilizados para representar uma operação de cunho aritmético.

    +  indica SOMA

    -  indica SUBTRAÇÃO

    *  indica MULTIPLICAÇÃO

    /  indica DIVISÃO

    Relembrando um pouco a matemática elementar, a ordem de execução de uma expressão

    aritmética segundo as prioridades de operações é:

    Parêntesis: ( )

    Multiplicação e Divisão: * , /

    Soma e Subtração: + , -

  • 8/19/2019 Apostila 01 de de Algoritmos

    29/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesObs.: Caso existam numa mesma sentença operadores de mesma ordem de prioridade, a execução será feita da esquerda

    para direita.

    Operadores Relacionais

    São elementos (símbolos) utilizados para realizarmos operações de

    comparações, recebendo como resposta o valor verdadeiro ou falso.

    =iguala

    Exemplos:

    Dados A = 3, B = 2, C = ‘Jose’ , D = ‘Jose’, NOME = ‘JOSE’

    A > B Retorna V

    C = D Retorna V 

    NOME = "JOSE" Retorna V (Está sendo comparado o conteúdo da variável NOME com a string “JOSE”.NOME = D Retorna F (estão sendo comparados os conteúdos das variáveis NOME e D).

    Os operadores relacionais incidem sobre dados e variáveis numéricas e caracteres. Assim sendo,

    podemos comparar não apenas números, mas também palavras. Neste sentido, a comparação

    respeitará a ordem alfabética das iniciais de cada uma.

    Exemplos:

    "MARIA" > "ANA" Retorna V 

    "MARIA" < "MARIO" Retorna V

    observação: as comparações só podem ser feitas com elementos dos mesmos tipos. 

    Operadores Lógicos

    Estes elementos são necessários quando você deseja realizar comparações entre resultados lógicos obtendo comoresposta outro valor lógico. Estranho, não? Mas é exatamente isso que ocorre. Por exemplo: se você ler um anuncio sobreemprego que tenham as seguintes solicitações:

    Precisa-se de pessoas do sexo feminino e com idade máxima 40 anos. O que você consegue extrair deste anuncio? Aresposta seria: duas exigências, a saber, o SEXO da pessoa deve ser igual a feminino (“F”) e a IDADE deve ser menor ouigual a 40 anos. Logo, estamos diante de duas sentenças, que, dependendo do que seja colocado como dados nacomparação, poderemos ter a possibilidade do resultado ser falso ou verdadeiro. Se o SEXO for igual a “M” (masculino), aprimeira sentença será falsa. Para você poder ocupar a vaga oferecida, necessário que sejas do sexo feminino e sua idadeesteja na faixa etária solicitada. Para o programa, o raciocínio é exatamente igual.

    Para que gerenciarmos esta etapa da lógica, utilizaremos os operadores a seguir:

    Operador Detalhamento Prioridadede execução

    OU

    (Opcionalidade)

    A sentença que contiver este operador será verdadeira se pelomenos uma das expressões nela contida retornar valor verdadeiro. 

    3º 

    E

    (Simultaneidade)

    A sentença que contiver este operador será verdadeira se asexpressões nela contida resultarem valores verdadeiros. 

    2º 

    NÃO

    (Negação)

    Quando queremos inverter (negar) o resultado de uma condição ouexpressão lógica. 

    1º 

    Observação: caso sejam colocados os parênteses na sentença, a prioridade de execução será alterada iniciando-se pelos elementos

    contidos dentro destes. Caso exista mais de uma sentença nesta condição, observar-se-á, além do exposto acima, a

    execução dos comandos da esquerda para a direita da expressão.

    Vejamos a “TABELA VERDADE” a seguir para entendermos melhor.

    E OU

    > maior que < menor que = igual a

    >= maior ou igual a

  • 8/19/2019 Apostila 01 de de Algoritmos

    30/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesV V V V V V

    F V F F V V

    V F F V F V

    F F F F F F

    Exemplos:

    X = 90 E Z = 100

    A >= 67 OU A Delimita o espaço reservado para inserirmos um parâmetro do comando. A maioria dos comandos daslinguagens possui parâmetros.

    [ ] Delimita o espaço reservado para inserirmos um parâmetro opcional do comando, ou seja, tudo o quevier entre colchetes nem sempre precisará ser especificado no comando.

    Ex: DECLARE SOMA : Inteiro;

    DECLARE SOMA, QUANTIDADE_ALUNOS:inteiro;

    Observe ainda que os colchetes [ ] e os delimitadores maior/menor < > podem acumular-se

    entre si, ou seja, dentro de um grupo de parâmetros opcionais [ ], poderemos ter outros [ [..] ],

    dependendo apenas da característica do comando.

     Atribuição de Valores a VariáveisAté agora, vimos conceitos e exemplos de variáveis. Agora vamos aprender a utilizá-las em

    algoritmos.

    Representaremos o comando de atribuição  pela combinação de dois símbolos do teclado, que

    são dois pontos e o sinal de igual, sem espaços entre eles(:=). Este símbolo representará a

    atribuição de um dado a uma variável.

  • 8/19/2019 Apostila 01 de de Algoritmos

    31/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes

    :=

    Exemplos:

    NOME := "JOÃO"; Dados Literal têm que vir entre aspas 

    IDADE := 25; Dados Inteiros não precisam de aspas 

    ALTURA := 1,67; Dados tipo Real, possuem uma vírgula como delimitador entre a parte decimal e a parte inteira(linguagens comerciais adotam o ponto). 

    DEPENDE := F; Dados LOGICO devem vir entre pontos 

    Também podemos atribuir, a uma variável, o valor de outra:

    Exemplo: ALTURA := IDADE; a variável ALTURA recebe o valor de IDADE 

    Também podemos atribuir o resultado de uma expressão numérica, ou de outro tipo, a uma

    variável:

    SOMA := QUOEF * (VALOR + 10) / DIVISOR;

    Estruturação do AlgoritmoExistem alguns formatos para organizar um algoritmo, porém adotaremos o mais global,

    facilitando assim o aprendizado. Vejamos a seguir: Algoritmo ;

    Declare  {Local par a decl aração das var i ávei s}Início

    {Local par a i ni ci al i zação das vari ávei s / mensagens mont ando a tel a}{Local par a receber dados, processar dados e dar saí da nos dados / mensagens}

    Fim

    Entrada e Saída de Dados

    Até aqui nós vimos como atribuir um valor a uma variável dentro de um programa. Mas este valor

    foi atribuído pelo próprio programa, não é?

    Mas como fazer com que um programa, em um dado momento, receba um valor digitado pelo

    usuário?

    Como receber este dado através do teclado?

    Como exibir o resultado de uma operação qualquer no monitor?

    Existem nas linguagens de programação, comandos de entrada e saída de dados. No caso do

    algoritmo, estes comandos são os seguintes: Leia (entrada), Escreva (saída - tela).

    Comando LEIA 

    Leia ;Ou

    Leia ();

    - Variável que receberá os dados digitados pelo usuário.

     AlgoritmoDeclare  wnome: l i t er al ;

    Wi dade:I nt ei r o;Inicio

  • 8/19/2019 Apostila 01 de de Algoritmos

    32/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesLeia  wnome;Leia  wi dade;;

    Fim

    A execução do comando LEIA provoca uma pausa na execução do programa. O programa fica

    em estado de espera, aguardando a digitação de algo que deva ser atribuído às variáveis

    especificadas na sintaxe do comando.  É bom deixar claro que o LEIA, permite um

    preenchimento por vez. Se você desejar digitar várias informações referente a mesma

    variável, terá que utilizar uma estrutura de repetição (veremos mais adiante) e fazer com

    que o fluxo do programa passe pelo mesmo local onde o LEIA está posicionado 

    No exemplo acima, veja que o computador aguarda que o usuário digite dois valores distintos

    através do teclado. Estes dois valores irão ocupar, respectivamente, as variáveis NOME e IDADE.

    Comando ESCREVA (lista informações no v ídeo)

    Escreva [, ][, ];Ou

    Escreva ([, ][ , ] );

    Importante! Pelo menos um dos parâmetros deve ser informado quando da util ização deste comando.

    - Texto que está sendo encaminhado para tela.

    - Qualquer variável utilizada no programa.

    - Algum cálculo executado durante a exibição. Neste caso o processador realiza a operação de cálculo edepois libera o resultado para a exibição na tela.

    Por dentro dos t ermos: stri ng = conjun to de caracteres dentro de uma mesma variável.

    Exemplo:

     Algoritmo  exempl o;Decl are wnome: Li t eral ;

    INICIO

    ESCREVA   “ NOME . . : ”;LEIA   wnome;ESCREVA   "Seu nome é " , NOME;

    FIM;

    Quando estudamos lógica algorítmica não nos preocupamos em que coordenada ou posição a

    informação será exibida, mas sim com o fato de que deve ser dado o comando de saída dos

    dados.

    No exemplo acima, teremos o conteúdo da variável NOME  exibido no vídeo logo após a

    mensagem “Seu nome é ”, como mostra a ilustração abaixo.

     NOME ..: Karla Silva 

    Seu nome é Karla Silva

    Manipulaçao de valores

    1) Dados 2 números digitados via teclado, faça um algoritmo capaz de exibir a soma deles no vídeo. Algoritmo  soma;  

    Declare  X: I ntei ro; Y: I nt ei r o;SOMA: I nt ei r o;

    InicioLeia  X;

  • 8/19/2019 Apostila 01 de de Algoritmos

    33/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesLeia  y;SOMA : = X + Y;Escreva  SOMA;

    Fim  

    Comentário Na solução acima, declaramos 3 variáveis de memória. X e Y foram criadas para armazenar os dois números queseriam digitados pelo usuário, e SOMA serviu para armazenar o resultado final da operação com essas duas variáveis.

    Mas quase sempre existe mais de uma maneira de solucionarmos um problema, não é? Com

    algoritmos não é diferente. Tente repensar o algoritmo acima utilizando apenas 2 variáveis, emvez de 3 ! Como você pode observar, existem no mínimo duas soluções para este problema:

     Algoritmo  soma;  Declare  X: I ntei ro;

     Y: I nt ei r o;SOMA: I nt ei r o;

    InicioLeia  X;Leia  y;X : = X + Y;Escreva  X;

    Fim  

    Ou ainda:

     Algoritmo  soma;  Declare  X: I ntei ro;

     Y: I nt ei r o;SOMA: I nt ei r o;

    InicioLeia  X;Leia  y;

     Y : = X + Y;Escreva  Y;

    Fim  

    Qual a solução mais eficiente das duas?

    Somente o fato de economizar uma variável torna qualquer uma dessas soluções bem mais

    eficiente que a primeira. O mesmo caso, sem precisar utilizar as variáveis para guardar oresultado, agiliza ainda mais o processamento. Mas este caso deve ser utilizado só quando você

    não precisar do valor resultante da operação.

     Algoritmo  soma;  Declare  X: I ntei ro;

     Y: I nt ei r o;SOMA: I nt ei r o;

    InicioLeia  X;Leia  y;Escreva  ( X+Y);

    Fim  

  • 8/19/2019 Apostila 01 de de Algoritmos

    34/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesConceitos Fundamentais

    Contador x Acumulador

    Estes nomes são dados a expressões que realizam adição de dados, porém, no primeiro caso,

    CONTADOR, é a expressão de adição que contabiliza valores fixos e predeterminados. No

    segundo caso, ACUMULADOR, é a expressão de adição que contabiliza valores variáveis.Exemplo de Contador:

    QtdFem := QtdFem + 1 (note que o valor adicionado a quantidade de femininos será sempre

    1) 

    Exemplo de Acumulador:

    SomaIdade := SomaIdade + Idade (note que o valor adicionado a soma das idades será

    variável)

    Observação: na maior ia das vezes, estes elementos são iniciados com o 0 (zero). 

    Percentuais

    Encontramos algumas dificuldades quando tratamos estes temas. Aqui daremos algumas regras

    básica para que você se sinta a vontade no momento do cálculo.

    Encontrando um valor percentual: 

    Veja esta continha simples

    50 bolas 100 % (50 = Todo)

    25 bolas x % (25 = Parte do Todo)

    Chegaremos a conclusão:X % = 25 x 100 / 50

    Estas informações nos levam a fórmula:

    := < Parte do Todo> * 100 / < Todo>

    Encontrando um valor final após aplicação do percentual: 

    := * 1,;

    Ex.: adicionar 5 % sobre o salário e informar o valor do novo salário.

    Nsal := Salario * 1,05;

    Encontrando um valor adicionado percentualmente a uma variável: 

    := * 0,;

    Ex.: adicionar 5 % sobre o salário e informar o valor acrescido ao salário.

    Reajuste := Salario * 0,05;

    Observação: quando você não sabe o valor a ser aplicado pois vem dentro de uma variável,

    não podemos fazer a aplicação literal do que explicamos neste tópico, mas precisamos

  • 8/19/2019 Apostila 01 de de Algoritmos

    35/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopestraduzir em termos de programa este processo. Vamos fazer os mesmos exemplos

    anteriores, mas imaginando que o percentual virá em variáveis.

    a) Nsal := Salario * (1 + perc / 100);

    b) Nsal := Salario * (perc / 100);

    Maior Valor

    Existirão momentos em que você sentirá necessidade de identificar o maior elemento dentro de

    um conjunto de dados processados. Só existe uma forma de sabermos qual o maior valor:

    comparando as grandezas do conjunto. Para descobrirmos qual será o maior elemento,

    inicializaremos uma variável, que armazenará o maior   valor do conjunto, com um valor bem

    pequeno  para a situação, e, cada dado existente no conjunto iremos comparar com esta dita

    variável. Caso o valor encontrado seja superior, este será colocado como conteúdo da variável

    maior , já que este novo dado representa a maior grandeza neste momento do processamento.

    Encontrando o maior valor dentro de um conjunto:  

    Obs.: para entender melhor esse exemplo, é bom estar familiarizado com a estrutura de repetição

    comentada mais adiante. Algoritmo  mai or ;  

    Declare  MAI OR_I D: I nt ei r o;I dade: I ntei ro;Cont: I nt ei ro;

    Inicio

    MAI OR_I D : = 0;Para  cont : = 1 até  10 FaçaInicio Leia I dade;Se  I dade > MAI OR_I D entãoInicio

    MAI OR_I D : = I dade;Fim

    FimEscreva  “A mai or i dade é “, MAI OR_I D;

    Fim

    Menor Valor

    De igual forma iremos trabalhar para encontrar o elemento que possui o menor valor. Para tanto,

    iremos inicializar uma variável, que armazenará o menor  valor do conjunto, com um valor bem

    alto adequado para a situação, e, cada dado existente no conjunto iremos comparar com esta dita

    variável. Caso o valor encontrado seja inferior, este será colocado como conteúdo da variável

    menor , já que este novo dado representa a menor grandeza neste momento do processamento.

    Encontrando o menor valor dentro de um conjunto:   Algoritmo  Menor ;  

    Declare  menor _I D: I nt ei r o;I dade: I ntei ro;Cont: I nt ei ro;

    Inicio

  • 8/19/2019 Apostila 01 de de Algoritmos

    36/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopesmenor_I D : = 999;Para  cont : = 1 até  10 FaçaInicio Leia I dade;Se  I dade < Menor_ I D entãoInicio

    menor_I D : = I dade;Fim

    FimEscreva  “A menor i dade é “, Menor_I D;

    Fim

    Estruturas Condicionais

    Sabemos que as linhas de um programa estruturado são executadas de cima para baixo de forma

    seqüencial (na orientação ao objeto, apenas os métodos seguem este conceito). Mas

    freqüentemente precisamos mudar este curso natural de acordo com decisões a serem tomadas.

    Por exemplo, imagine se dentro de um conjunto de alunos você desejasse verificar a quantidade

    de homens. Só existiria uma forma para sabermos o resultado: fazendo uma pergunta sobre se os

    dados processados continham na variável SEXO o conteúdo igual a “M”.

    O comando que realiza esta “pergunta” é o SE, que possui três situações bem definidas dentro da

    programação: Estrutura Condicional Simples, Composta ou Encadeadas(Ninhos de SE’s).

    Estrutura Condicional SE (Símples)

    Se entãoinicio

    ;Fim

    - Expressão lógica qualquer. São comandos que serão executados caso o resultado da expressão lógica seja verdadeira.

    Esses comandos devem ser escritos entre as delimitações da gerência do comando, ou seja, entre aspalavras Início e fim.

    Em tempo de execução, se a expressão lógica retornar verdadeiro então a seqüência de

    comandos será executada.

    Para fixar esta idéia, tente depurar o seguinte algoritmo: Algoritmo  exempl oSE1;

    DECLARE  I dade, Numéri co, 3Nome, Caract er , 35Sexo, Caract er , 1

    InicioLeia  Nome;Leia  Sexo;Leia  I dade;Se  Sexo = “M” ent ãoInicio

    Escreva  "A i dade de ", Nome, “ é “, I dade;Fim

    Escreva  "Fi m da t r ansacao";Fim  

    Estrutura Condicional SE (Composta)

    Se entãoInicio

    ;

  • 8/19/2019 Apostila 01 de de Algoritmos

    37/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesFim

    senãoinicio

    ;Fim

    Onde:

    - Expressão lógica qualquer.

    São comandos quaisquer que serão executados caso o resultado da expressão lógica sejaverdadeira (V).

    São comandos quaisquer que serão executados caso o resultado da expressão lógica sejafalsa (F)

    Senão - Variação do comando, para atender o tratamento de informação que não foi contemplada na , por serfalso o resultado. Só deve ser utilizado para otimizar ou se precisar tratar a negativa da .

    Para fixar esta idéia, tente depurar o seguinte algoritmo: Algoritmo  exempl oSE2;

    DECLARE  I dade: I ntei ro;Nome : Li t er al ;Sexo : L i teral ;

    Inicio

    Leia  Nome;Leia  Sexo;Leia  I dade;Se  Sexo = “M” ent ãoInicioESCREVA   "A i dade de ", Nome, “ é “, I dade, “Sexo Mascul i no”;

    FimsenãoInicioSE  Sexo = “F” ENTAO Inicio

    ESCREVA   " A i dade de ", Nome, “ é “, I dade, “Sexo Femi ni no”;Fim

    FimEscreva  "Fi m da t r ansacao";

    Fim  

    Estrutura Condicional SE (Encadeada)

    Aqui vale comentar que esta estrutura não é algo preestabelecido, mas sim, uma estrutura

    formada de várias condições, separando informações e dando os tratamentos de acordo com a

    necessidade da questão. Abaixo segue um modelo hipotético de uma estrutura SE

    (Encadeada).

    Se  então Inicio

    ;Se  então 

    Inicio ;Fim

    FimSenãoInicioSe  entãoInicio

    ;Fim

    SenãoInicio

    ;Fim

    ;

  • 8/19/2019 Apostila 01 de de Algoritmos

    38/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesFim

    Fim

    Para exemplificarmos melhor, vejamos o exemplo:

    1) Receber dois números (Num1 e Num2).

    2) Realize a soma dos dois valores.

    2.1) Caso a soma seja maior que zero, mostrar na tela o valor da soma e a mensagem: “valorpositivo”;

    2.2) Caso contrário, verifique:

    2.2.1) se o valor calculado é igual a zero. Se for, informar "valor igual a zero", senão;

    2.2.2) informar, "valor negativo". (De qualquer maneira, em 2.2, exibir os dois números envolvidos

    na soma). Algoritmo  Posi t i voNegat i vo;

    Declare  Num1: I nt ei r o;Num2: I nt ei r o;

    SOMA: I nt ei r o;InicioLeia  Num1, Num2;SOMA: = Num1 + Num2;Se  SOMA > 0 ENTAOInicioEscreva  SOMA, “Val or Posi t i vo”;

    FimSenãoInicioEscreva  num1, num2;SE  SOMA = 0 então InicioEscreva  "Val or I gual a Zer o";

    FimSenãoInicio

    Escreva  "Val or Negati vo";Fim

    FimFim

    Sobre esta solução, é importante salientar o seguinte:

    •  Note que a estética, apesar de não influenciar no resultado da execução do programa, é de extrema importância para obom entendimento do mesmo. Perceba que todos os comandos subordinados ao primeiro SE ficam descolados na mesmamargem. Apenas a cláusula SENAO fica na mesma margem do SE. O mesmo ocorre com o segundo SE e com todos osque vierem. A isto damos o nome de EDENTAÇÃO.

    •  Veja que o comando Escreva num1, num2 é executado independente da condição do segundo SE. É por isto que elesforam escritos após o SENÃO do primeiro SE.

    Exercícios de Aprendizagem

    1) Dados 2 números digitados via teclado, faça um algoritmo capaz de exibir no vídeo o maior deles.

     Algoritmo  mai or;Declare  X: I ntei ro;

     Y: I nt ei r o;Inicio

    Leia  X;Leia  Y;Se  X > Y Então

  • 8/19/2019 Apostila 01 de de Algoritmos

    39/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesInicioEscreva  X;

    FimSenãoInicioEscreva  Y;

    FimFim

    2) Dados 3 números distintos, digitados via teclado, faça um algoritmo capaz de exibir no vídeo o maior deles. Algoritmo  mai or;

    Declare  X: I ntei ro; Y: I nt ei r o;Z: I ntei ro;

    InicioLeia  X;Leia  Y;Leia  Z;Se  (X > Y) E  (X > Z) EntãoInicioEscreva  X;

    FimSenãoInicioSe  (Y > Z) E  (Y > X) EntãoInicioEscreva  Y;

    FimSenão

    InicioEscreva  Z;

    FimFim

    Fim

    Comentário: Note que, para descobrirmos qual o maior entre três números, precisamos codificar 2 comandos SE encadeados. Se

     fossem 4 variáveis, seriam 3 SE´s.

    3) Dados 2 números distintos digitados via teclado, faça um algoritmo capaz de exibi-los em ordem crescente. Algoritmo  Or denacao;Declare  A: I ntei ro;

    B: I ntei ro;Inicio

    Leia  A;Leia  B;SE  A > B EntãoInicioEscreva  B, A;

    Fim  SenãoInicioEscreva  A, B;

    FimFim

    Como você solucionaria este problema se tivéssemos de utilizarapenas um

     comando ESCREVA?

    A primeira imagem que nos vem à mente é que seria impossível, tendo em vista que uma

    informação ao ser colocada em uma variável simples irá “ocupar” o lugar da informação já

    existente na outra variável. Mas em informática podemos utilizar todas as técnicas disponíveis

    para solucionarmos um problema, evitando soluções extensas ou complicadas.

  • 8/19/2019 Apostila 01 de de Algoritmos

    40/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesO recurso que vamos dispor nesse momento é a utilização de uma variável auxiliar . Variável

    auxiliar é aquela que nós utilizamos como apoio. Veja que para realizar a troca de dados exposta

    a seguir, só com esse recurso.

     Algoritmo  t roca;Declare  A: I ntei ro;

    B: I ntei ro;X: I ntei ro;Inicio

    Leia  A;Leia  B;

    Se  A > B EntãoInicio

    X : = A;A : = B;B : = X;

    Fim

    Escreva  A , B;Fim  

    Comentário: Para economizarmos comandos ESCREVA, observe que invertemos os valores de A e B toda vez que a variável A fosse

    maior que B. Assim, independente dos valores de A e  B , sempre exibiremos A e  B nesta ordem. Para propiciar estainversão utilizamos uma variável auxiliar X.

    Se você não entendeu muito bem o porque da variável X  ter sido utilizada no algoritmo acima,

    preste bastante atenção agora:

    Deseja-se trocar os valores de duas variáveis: A e B, por exemplo.

    A B

    10 15

    Se fizermos simplesmente  A := B, apagaremos o valor original de  A colocando o conteúdo de B em seu lugar. Assim, as variáveis ficariam com o valor 15. Para viabilizar o processo da troca,

    temos que recorrer a uma variável auxiliar que conterá provisoriamente o valor de uma das

    variáveis a fim de devolvê-lo para a outra.

    X

    10 15

    101º passo

    2º passo

    3º passo

    X:=A

    A:=B

    B:=X

  • 8/19/2019 Apostila 01 de de Algoritmos

    41/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes

    Estruturas de Repetição

    Algumas vezes, sentimos necessidade de escrevermos repetidamente o mesmo comando. Em

    alguns casos, a quantidade de vezes que temos de escrever é indeterminada ou depende de uma

    condição.Existem algumas formas de definir as estruturas de repetições. Algumas lembram até esta ou

    aquela linguagem. Em nosso curso iremos no ater a duas estruturas, as quais podemos

    representar tranqüilamente em qualquer ambiente de programação.

    As estruturas são: Enquanto e Para. Cada uma delas possui uma característica que lhe é peculiar.

    É normal ouvir a pergunta: “quando iremos utilizar esta ou aquela estrutura?”. A resposta é

    simples, pois depende da habilidade de cada um. Existem momentos que podemos resolver a

    mesma questão com todas as duas formas, mas existem momentos que não é possível. Por isso

    o segredo encontra-se no exercitar.

    Bem, vamos desmistificar estas estruturas.

    Comando ENQUANTO 

    O comando ENQUANTO prende um trecho do programa a um laço (looping), ou seja, podemos

    determinar que um certo bloco de comandos seja executado repetidamente enquanto uma

    condição for verdadeira.

    .Enquanto  Faça { se f or ver dadei r a}Inicio  { ser ão executados os comando dest e bl oco}

    < comandos >;Fim

    Esta estrutura possui duas formas de aplicação dentro de uma lógica:

    a) Testando sempre uma condição de saída no próprio comando, ou;b) Deixando este controle de saída da estrutura por conta de uma condição executada internamente.

    1o. CasoSó entra no laço de repetição, se e somente se, a condição for verdadeira. Para sair da repetição, a condição tem que ser

    satisfeita.Enquanto  Faça início

    < comandos > ;Fim  

    2o. CasoEntra no laço independente da condição, mas para sair, a condição 2 tem que ser verdadeira. Caso a condição não sejasatisfeita, dizemos que o programa “entrou em loop”.

    Enquanto  Faça início

    Se  < condi ção 2 > Então Iníciosair

  • 8/19/2019 Apostila 01 de de Algoritmos

    42/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesFim

    < comandos > ;Fim ;

    Comando PARA 

    O comando PARA executa um bloco de comandos, gerenciando esta execução em cima de uma

    contagem. Enquanto ela não for satisfeita, ou seja, o valor final não for ultrapassado, os

    comandos do bloco serão repetidos a cada nova verificação da condição e obtenção de resultado

    falso;

    Para  :=  até  incr[+/- ] Faça Inicio< comandos > ;

    Fim

    Se você utilizar este comando, irá poupar a inicialização da variável, pois esta assumirá como

    valor inicial o declarado como ; não precisará contar a quantidade de vezes que

    o laço fo i executado, pois esta estrutura tem como uma de suas características, o adicionar um

    determinado valor a variável  baseado no valor utilizado como incremento (+) ou decremento

    (-) utilizado no parâmetro incr[...] estabelecendo uma contagem até que o valor declarado como

      seja alcançado e realizando a última execução dos comandos existentes entre o

    Inicio  e o Fim . Se o parâmetro Incr [ +/- valor] for omitido, o programa assumirá por Default

    sempre o incremento de + 1.

    Vamos utilizar um exemplo para esclarecer cada uma dessas instruções dentro de suas

    respectivas estruturas de repetições. Digamos que temos de fazer o computador escrever o

    somatório de 5 idades informadas na tela. Usaremos os comandos aprendidos até agora.

    ♦  Com a estrutura ENQUANTO

     AlgoritmoDeclare  wi dade: I nt ei ro;

    Wcont : I nt ei ro;Wsomai d: I nt ei r o;

    InicioWcont : = 0;Wsomai d : = 0;Leia  wi dade;Enquanto  wcont < 5 FaçaInicio

    Wcont : = wcont + 1;Wsomai d : = wsomai d + wi dade;Leia  wi dade;

    FimEscreva “O t otal das i dades é “, wsomai d;

  • 8/19/2019 Apostila 01 de de Algoritmos

    43/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesFim

    ♦  Com a estrutura PARA Algoritmo

    Declare  wi dade: I nt ei ro;Wcont : I nt ei ro;Wsomai d: I nt ei r o;

    InicioWsomai d : = 0;Para  wcont : = 1 at é 5 FaçaInicioLeia  wi dade;Wsomai d : = wsomai d + wi dade;

    FimEscreva “O t otal das i dades é “, wsomai d;

    Fim

    Exercícios de Aprendizagem

    1) Elabore um algoritmo capaz de exibir todos os números inteiros, desde o 1 até o 10. Algoritmo  exempl o1;

    Declare  NUMERO: I ntei r o;Inicio 

    NUMERO : = 1;Enquanto  NUMERO

  • 8/19/2019 Apostila 01 de de Algoritmos

    44/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesSOMA : = SOMA + NUMERO;NUMERO : = NUMERO + 1;

    FimEscreva  SOMA;

    Fim  

    Comentário: Perceba que, para acumular os valores parciais assumidos pela variável NUMERO, precisamos lançar mão de uma

    outra variável, a qual chamamos de SOMA. Assim, a cada ciclo do Enquanto acrescentamos ao valor de SOMA o

    novo valor de NUMERO (SOMA :=SOMA+NUMERO).

    Observe também que ao declaramos SOMA, na prática das linguagens, temos que tomar ocuidado dela ter capacidade de absorver o resultado da expressão. É fácil entender por que!

    Como SOMA será um “Acumulador” dos valores de NUMERO, ela sempre terá valores maiores

    que NUMERO, podendo seu montante, exceder a capacidade definida em NUMERO.

    Técnicas de Algoritmização

    Como dissemos anteriormente, não há qualquer receita de bolo para resolvermos um determinado

    problema através da algoritmização. Cada caso é um caso bem particular. Entretanto, alguns

    procedimentos sistemáticos podem auxiliar a elucidação de alguns problemas.

    Dicas sobre Resolução de Algoritmos

    Nunca dê um algoritmo por encerrado antes de testar todas as possibilidades condicionais. Só o

    teste garante a eficácia do programa. Teste sempre as situações extremas. Em algoritmos utilize

    diversas condições; teste ao menos uma situação que se enquadre em cada condição previstapelo algoritmo.

    Não tente decorar algoritmos. Cada caso é um caso, por mais que se assemelhem.

    Há sempre uma forma melhor de fazer a mesma coisa. Após o ZERO ERRO, examine se o seu

    algoritmo é eficiente, isto é, se ele não usa variáveis demais, se ele é facilmente compreendido

    por uma terceira pessoa, se os nomes de variáveis são auto-expressivos, se o usuário não terá

    dificuldade em utilizá-lo, e se o computador não passará muito tempo para processá-lo

    (performance).Não tente arquitetar, ainda que mentalmente, a solução de um problema sem antes entender

    perfeitamente o que pede no enunciado.

    Não inicie a algoritmização sem ter claramente a solução arquitetada na sua cabeça.

    Não deixe a curiosidade afetar a sua criatividade. Durante o desenvolvimento do seu algoritmo,

    não pesas orientação sobre o como fazer, sem antes ter chegado a algum resultado, ainda que

    errado.

  • 8/19/2019 Apostila 01 de de Algoritmos

    45/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesNunca desista de uma solução. Concluí-a. Chegue até o fim. Teste-a, e somente quando os testes

    sinalizarem a sua ineficácia, tente modificá-la ou refazê-la.

    Técnica para extrair os dados de um enunciado

    Quando nos deparamos com um enunciado pequeno, nos sentimos a vontade para resolve-lo poisos dados existentes neste são poucos. Porém, quando nos deparamos com um enunciado mais

    complexo, existe a tendência natural de pensarmos que é algo muito difícil de resolver. Mas, por

    incrível que pareça, o maior problema encontra-se em nosso lidar com o desafio e o encarar

    “friamente”. Justamente para melhor lhe capacitar a interpretar um texto é que estamos te dando

    esta dica.

    Todos os programas possuem 3 fases bem definidas e nestas, os seus dados necessários.

    Quando você tiver domínio sobre estas três fases, o algoritmo fluirá naturalmente.

    Procure identificar a 1ª  fase que é a da identificação dos dados de entrada; a 2 ª  fase e a que

    verifica os dados relativos ao processamento (condições de encerramento, cálculos, mensagens,

    etc; a 3ª  fase é aquela aonde você descobre quais os dados de saída, ou seja, após o

    processamento, aonde irão ser colocado estes dados?

    Vamos exemplificar.

    Elaborar um algoritmo que receba a matrícula, o nome e o salário de 50 funcionários,

    imprimindo ao final, o somatório dos salários e a média salarial.

    Vamos por em prática nosso aprendizado.1ª fase (Dados de Entrada)

    Será lido na tela a MATRICULA, NOME E SALÁRIO;

    Leia Matricula;

    Leia Nome;

    Leia Salário;

    2ª fase (Processamentos)

    Serão processados dados de 50 funcionários. (isto implica dizer que

    precisaremos de uma variável para contabilizar e gerenciar este processo); O

    melhor comando para gerenciar um valor predefinido é o PARA.

    Cada elemento que for processado, será acumulado o valor do salário (somatório

    dos salários).

     AcumSal := AcumSal + Salário;

  • 8/19/2019 Apostila 01 de de Algoritmos

    46/54

  • 8/19/2019 Apostila 01 de de Algoritmos

    47/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes

    Desafios Resolvidos

      Como fazer para descobrir a quantidade de elementos iguais ao maior doconjunto?  Simples. Primeiro, você deverá encontrar o maior;  Em segundo lugar, verificar quais os elementos são iguais a este maior

    encontrado.  Aqui damos uma dica. Ao encontrar um elemento cujo valor seja superior

    àquele que representa o maior, temos duas tarefas a fazer. Uma é atribuir ovalor do elemento para ser o maior e em seguida inicializar a quantidadecom o numeral 1 (um). Mas porque 1 (um)? Pelo fato de que acabamos deencontrar um número maior e com certeza, nesse momento ele é único.Como fazer para contabilizar todos os iguais? A própria pergunta já é aresposta: cada vez que você encontrar algum valor igual ao maior,contabilizaremos mais um.

      Vamos ao Exemplo?“Elaborar um algoritmo que receba idade de 50 pessoas e informe ao final,

    a maior delas e quantas pessoas a possuem.” Algoritmo  r esol vi dos1;

    Declare  Ma_i dade: I nt ei r o;Qt _mai d : I nt ei r o;Cont : I ntei ro;  Wi dade : I nt ei r o;

    InicioMa_i dade : = 0;Qt _mai d : = 0;Para  cont :=  1 até  50 faça InicioLeia  wi dade;

    Se  wi dade > Ma_i dade entãoInicio

    Ma_i dade : = wi dade;Qt _mai d : = 1;

    FimSenãoInicioSe  wi dade = Ma_i dade então Inicio

    Qt _mai d : = Qt _mai d + 1;Fim

    FimFimEscreva  “ A mai or i dade é . . . . . . . . . . . . . . . . . . . . . . . . . . : “ , Ma_ i dade;Escreva  “Quant i dade de pessoas coma mai or i dade. . . : “, Qt _mai d;

    Fim

      Como fazer para descobrir a quantidade de elementos iguais aos dois maioreselementos do conjunto?  Agora ficou mais fácil. Precisamos atentar para um pequeno detalhe:

    quando encontrarmos um elemento que é superior ao primeiro, este últimopassa a ser o segundo maior. Para não perdermos o conteúdo original domaior, passaremos seus conteúdos para as respectivas variáveis e depoisprocederemos naturalmente colocando o elemento maior no seu referidolugar. Vejamos parte do código a seguir.

  • 8/19/2019 Apostila 01 de de Algoritmos

    48/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo LopesMa_i dade2 : = Ma_i dade1;Qt _mai d2 : = Qt _mai d1;Ma_i dade1 : = wi dade;Qt _mai d1 : = 1;

      Percebeu como é simples? Isso fazemos em todos os momentos em quequeremos verificar o maior e o segundo maior. No demais é tomar cuidado

    com o segundo maior, pois apesar do valor as vezes, ser inferior aoprimeiro, nada garante que ele o seja em relação ao segundo. Desta forma,precisamos fazer a comparação para termos certeza.

      Vamos ao Exemplo?“Elaborar um algoritmo que receba idade de 50 pessoas e informe ao final,

    as duas maiores idades e quantas pessoas as possuem.”

     AlgoritmoDeclare  Ma_i dade1: I nt ei r o;

    Ma_i dade2: I nt ei r o;Qt _mai d1 : I nt ei r o;

    Qt _mai d2 : I nt ei r o;Cont : I nt ei ro;  Wi dade : I nt ei r o;

    Inicio

    Ma_i dade1 : = 0;Ma_i dade2 : = 0;Qt _mai d1 : = 0;Qt _mai d2 : = 0;Para  cont :=  1 até  50 faça InicioLeia  wi dade;Se  wi dade > Ma_i dade1 então Inicio

    Ma_i dade2 : = Ma_i dade1;Qt _mai d2 : = Qt _mai d1;Ma_i dade : = wi dade;Qt _mai d : = 1;

    FimSenãoInicioSe  wi dade = Ma_i dade1 entãoInicio

    Qt _mai d1 : = Qt _mai d1 + 1;Fim

    Senão InicioSe  wi dade > Ma_i dade2 então Inicio

    Ma_i dade2 : = wi dade;Qt _mai d2 : = 1;

    FimSenãoInicioSe  wi dade = Ma_i dade2 então 

    InicioQt _mai d2 : = Qt _mai d2 + 1;

    FimFim

    FimFim

    FimEscreva  “ A mai or i dade é . . . . . . . . . . . . . . . . . . . . . . . . . . : “ , Ma_ i dade1;Escreva  “Quant . de pessoas com a mai or i dade. . . . . . . : “, Qt _mai d1;Escreva  “A segunda mai or i dade é . . . . . . . . . . . . . . . . . . : “ , Ma_i dade2;Escreva  “Quant . de pessoas com Seg. mai or i dade. . . . : “, Qt _mai d2;

    Fim

  • 8/19/2019 Apostila 01 de de Algoritmos

    49/54

  • 8/19/2019 Apostila 01 de de Algoritmos

    50/54

    EDGAR TITO - INFORMÁTICA 2014 – Prof. Ranildo Lopes

    Obrigado pela preferência de nossa ESCOLA! 

    INTRODUÇÃO A

     automatização

     de

     tarefas

     é um

     aspecto

     marcante

     da

     sociedade

     modern