Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Bráulio de Paula Machado CAPÍTULO 2 COMPONENTES BÁSICOS DE UM ALGORITMO 2.1 INTRODUÇÃO Antes de iniciar a confecção de algoritmos é necessário definir alguns componentes básicos que serão usados para expressar a lógica da solução criada pelo programador. Esses componentes básicos são simples porém fundamentais para a construção de estruturas mais complexas. Seu entendimento é imprescindível para a construção de algoritmos. 2.2 CONSTANTES Uma constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um algoritmo. Na implementação de um algoritmo uma constante será um valor conhecido que faz parte do texto do algoritmo ou uma posição de memória cujo valor armazenado não se modificará durante o tempo de execução do algoritmo (programa). Serão empregados três tipos de constantes: numérica, lógica e literal. Estes tipos são suficientemente simples e abrangentes para atender às necessidades de expressão de uma linguagem algorítmica. Constante Numérica: pode ser inteira ( Z ) ou real ( R), positiva ou negativa. Na ausência de sinal considera-se, como em matemática, a constante como positiva. Para o caso de uma constante muito grande ou muito pequena utiliza-se a notação de mantissa e expoente, com ou sem sinal. Exemplo de constante numérica: 0,0001 = 1 x 10-4; 4584; -9.32 x 105 ; 25.145x10-3 ; 9. Constante Lógica: como só existem dois valores lógicos possíveis, só existem duas constante lógicas: verdadeiro e falso. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 18 Constante Literal: qualquer seqüência de caracteres (letras, dígitos ou símbolos especiais) colocada entre aspas. As constantes literais serão muito usadas para comentar ou esclarecer o significado de uma saída fornecida por um algoritmo. Exemplo de constante literal: “MARIA DA SILVA”, “1234”, “&#@@*”, “30/03/99” 2.3 VARIÁVEIS Uma variável é uma posição de memória cujo conteúdo poderá modificar (variar) durante a execução do algoritmo. Uma variável é a representação simbólica dos elementos de um conjunto pois nela poderá ser armazenado qualquer valor do tipo especificado. Podemos imaginar uma variável como o nome de um local onde se pode colocar qualquer valor do conjunto de valores possíveis para a variável. A cada variável corresponde uma posição de memória do computador, cujo conteúdo pode variar ao longo do tempo, durante a execução de um programa. Toda variável é identificada por um nome ou identificador. Formação de identificadores: um identificador é formado por um ou mais caracteres, sendo que o primeiro caracter será sempre uma letra e os seguintes poderão ser letras ou dígitos. Não é permitido o uso de símbolos especiais. Os identificadores serão escritos em letras maiúsculas. Os nomes das variáveis devem ser o mais significativos possível, isto é, devem refletir (lembrar) a natureza dos valores armazenados pela variável. Exemplos de identificadores: NOTA, SALARIO, TOTAL, A1,CC32. Declaração de variáveis As varáveis, da mesma forma que as constantes, podem ser de três tipos: numérica, literal e lógica. As variáveis só podem armazenar valores de um mesmo tipo. Isto é, uma variável que for declarada como numérica só poderá armazenar números. Uma variável passa a existir dentro de um algoritmo a partir do momento em que ela for declarada. Na declaração é estabelecido um identificador para cada variável e especifica-se o tipo de uma ou mais variáveis. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 19 No momento 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 a simbolizar. Depois de declarada uma variável, qualquer referência ao seu identificador (nome) implica a referência ao conteúdo da posição de memória representada pelo mesmo. Imediatamente após a declaração de uma variável seu conteúdo é desconhecido, ela estará armazenando algum lixo resultante do processamento anterior. A declaração de variáveis será feita da seguinte maneira: declare lista_de_idenificadores: nome_do_tipo Tabela 1: Descrição da declaração de uma variável. Componente Descrição declare Palavra chave lista_de_identificadores Nomes escolhidos para as variáveis, que deverão estar separados por vírgula nome_do_tipo Um dos três tipos possíveis de variável: numérico, lógico ou literal. Exemplos: declare T1, T2, NT : numérico declare TESTE, RESPOSTA : lógico declare NOME, RUA, ESTADO_CIVIL : literal Para cada tipo de variável corresponderá uma declaração. Isto é, pode-se declarar 10 variáveis numéricas numa única declaração entretanto, se for necessário declarar além destas uma variável do tipo lógico deverá ser feita outra declaração para esta variável. 2.4 COMENTÁRIOS Comentários são textos em português utilizados para dar mais clareza ao algoritmo. Os comentários estarão sempre contidos entre duas chaves o que indica para o sistema que as linhas em questão não contém comandos e serão desprezadas durante a execução do algoritmo. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 20 Os comentários poderão ser colocados em qualquer ponto do algoritmo, onde se façam necessários, sem excessos. Um algoritmo de boa qualidade deverá conter uma quantidade mínima de comentários suficiente para esclarecer seu funcionamento. Os comentários devem ser escritos levando em consideração que eles destinam-se a pessoas que não participaram da criação do algoritmo e que precisarão entendê-lo sem estarem familiarizadas com os métodos adotados pela equipe responsável pela confecção do algoritmo. Os comentários serão sempre escritos entre chaves. Exemplos: { Calcula a média de cem valores fornecidos.} {TOTAL: somatório das notas dos alunos.} {Autor: José da Silva Data: 05 Março 99 } 2.5 EXPRESSÕES ARITMÉTICAS Uma expressão aritmética é uma expressão na qual os operadores são aritméticos e os operandos são constantes ou variáveis do tipo numérico. Os operadores aritméticos são apresentados na tabela 2. Tabela 2: Operadores Aritméticos Tipo Operador aritmético potenciação (**) , radiciação ( √¯ ) multiplicação(*), divisão (/) adição (+) , subtração (-) A notação utilizada para expressões aritméticas nos algoritmos é, basicamente, a mesma da matemática com a restrição de que não é permitido omitir o operador de multiplicação e que existe apenas um símbolo para cada operador. A radiciação será expressa através de exponenciação fracionária. A prioridade entre os operadores, apresentada na tabela 3, é a mesma da matemática. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 21 Tabela 3: Prioridade entre Operadores Aritméticos Prioridade Operador 1ª Potenciação, radiciação 2ª Multiplicação, divisão 3ª Adição, subtração Operadores de mesma prioridade serão executados da esquerda para direita na ordem em que aparecerem. Para evitar erros quanto a prioridade dos operadores a ordem de execução das operações será sempre explicitada através do uso de parênteses. As operações contidas entre parêntese são executadas dos parênteses mais internos para os mais externos. Exemplos: a. 3 + 5 * 2 + 24 / 6 * 3 ** 2 = 3 + 5 * 2 + 24 / 6 * (3 ** 2) = 3 + (5 * 2) + ((24 /6) * (3 ** 2)) = 3 + 10 + 36 = 49 b. 16 / 2 / 4 * 5 = (((16 / 2) / 4) * 5) = 10 c. 5 – 2 * 4 / 16 + 9 – 10 = 5 – ((2 * 4) / 16) + 9 – 10 = 3.5 d. 48/2/6*5-10+8/2**3 = 11 Observe o uso de parênteses para modificar a ordem de execução dos operadores e conseqüentemente o resultado final da expressão. e. (48/2/6)*((5-10)+((8/2)**3)) = 236 Funções Aritméticas A função no âmbito de um algoritmo é um operador que recebe uma ou mais entradas denominadas argumentos e fornece uma única saída. Todas as linguagens de programação possuem um conjunto de funções básicas prontas para uso. No caso da linguagem algorítmica adotada (em construção) também estarão disponíveis algumas funções aritméticas, que são apresentadas na tabela4. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 22 A função aritmética atua sobre um argumento numérico, que pode ser uma constante, o valor de uma variável ou o resultado da avaliação de uma expressão aritmética (EA). O nome das funções será escrito com letras maiúsculas. A ativação de uma função é feita através da evocação de seu nome seguido dos argumentos da função. A tabela 4 apresenta as funções disponíveis na linguagem algorítmica adotada neste trabalho. Tabela 4: Funções Básicas Nome Resultado Fornecido LOG (EA) Logaritmo na base 10 de EA LN (EA) Logaritmo neperiano de EA ( e = 2,71828183 ) EXP (EA) o número e elevado a EA ( eEA ) ABS (EA) valor absoluto de EA TRUNCA (EA) parte inteira de um número fracionário ARREDONDA (EA) transforma, por arredondamento, um número fracionário em inteiro SINAL (EA) fornece o valor -1, 1 ou 0 conforme o valor de EA seja, respectivamente, negativo, positivo ou igual a zero QUOCIENTE (EAx,EAy) quociente da divisão inteira de EAx por EAy - (1) RESTO (EAx,EAy) resto da divisão inteira de EAx por EAy SENO (EA) seno de EA ( EA em graus) COS (EA) cosseno de EA ( EA em graus) (1) Divisão inteira é a operação de divisão no conjunto dos números inteiros (Z). Desta forma não existe parte fracionária nos resultados, não existe nada depois da virgula. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 23 Exemplos: a. Sejam as variáveis e respectivos conteúdos apresentados na tabela a seguir. Variável Valor armazenado A 10 B 3 X 2.5 Y 1.2 Calcule: 1) QUOCIENTE (A,B) = QUOCIENTE(10,3) = 3 2) QUOCIENTE (B,A) = QUOCIENTE(3,10) = 0 3) RESTO(A,B) = RESTO(10,3) = 1 4) RESTO(B,A) = RESTO(3,10) = 3 5) SINAL(X+Y–A) = SINAL(2.5+1.2–10) = SINAL(-6.3) = -1 6) SINAL(A – 4 * X) = SINAL(10 – (4 * 2.5)) = SINAL (0) = 0 7) ARREDONDA(A-X) = ARREDONDA(7.5) = 8 8) ARREDONDA(B + Y) = ARREDONDA(4.2) = 4 9) TRUNCA(A / 3 + 1) = TRUNCA(4.333) = 4 10) EXP(Y * (B+2) – 6) = EXP(1.2 * 5 – 6) = EXP(O) = 1 b. Sejam as variáveis e respectivos conteúdos apresentados na tabela a seguir. Variável Valor armazenado P 2 Q 3 R 12 S 4.5 Calcule: 1) 100 * QUOCIENTE(Q,P) + R = 112 2) P * RESTO(R,5) – Q / 2 = P * 2 – Q / 2 = 2.5 3) P + ARREDONDA(2.9 + TRUNCA(0.3 + S) * 2) = P + ARREDONDA(2.9 + 4 * 2) = P + 11 = 13 4) P + QUOCIENTE(RESTO(Q,P), R) + SINAL(S – R * Q) + R 5) EXP(R – P * P * Q) – LOG(R * 5 + 40) + ABS(S – Q * 3) PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 24 c. Escreva, usando as funções disponíveis, a seguinte expressão matemática: 1) TOTAL = √ B3 + (5 * R / Q) Resposta: TOTAL =( (B ** 3) + (( 5 * R) / Q) ) ** (1/2) TOTAL = EXP ( LN( EXP( (3* LN(B) ) + ((5 * R)/Q) ) / 2 ) 2) TESTE = X4 / A + B – Z (K-S) * X + C / 7 3) RESULT = B / F+ K (X-Y/3) – T (C/2 + F) + G * D / W / B 2.6 EXPRESSÕES LÓGICAS Denomina-se expressão lógica à expressão cujos operadores são lógicos e cujos operandos são relações ou variáveis do tipo lógico. No capítulo 1 foi dito que os algoritmos seriam descritos usando-se 3 estruturas básicas: seqüência, decisão e repetição. As expressões lógicas serão úteis para montagem de estruturas de decisão dentro do algoritmo. Combinando as expressões a seguir apresentadas será possível estabelecer escolhas (decisões) bastante sofisticadas quando necessário. Uma expressão relacional ou simplesmente relação é uma comparação realizada entre dois valores de mesmo tipo básico. Tais valores poderão ser constantes, variáveis ou expressões aritméticas. O resultado de uma relação é sempre um valor lógico: falso ou verdadeiro ). Os operadores lógicos permitirão a montagem de condições bastante complexas através da combinação de condições mais simples. Serão empregados os operadores relacionais e lógicos constantes da tabela5. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 25 Tabela 5: Operadores Relacionais e Operadores Lógicos Tipo Operador relacional igual ( = ) diferente ( ¹ ) maior que ( > ) menor que ( < ) maior ou igual ( ³ ) menor ou igual ( £ ) lógico negação ( não ) conjunção ( e ) disjunção ( ou ) disjunção exclusiva ( xor ) Os operadores lógicos foram desenvolvidos ao longo de muitos anos visando estabelecer um vocabulário preciso e adequado para analisar conceitos e problemas envolvidos no desenvolvimento sistemático de conhecimento. Os operadores serão definidos através de tabelas verdade que apresentam as saídas para cada par de entradas possíveis. O operador lógico conjunção ( e ): a conjunção de duas entradas será verdadeira se e somente se ambas as entradas forem verdadeiras. A tabela 6 apresenta a definição do operador conjunção. Tabela 6: Operador Conjunção ( e ) A B A e B F F F F V F V F F V V V e F V F F F V F V Observação: V º verdadeiro F º falso. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 26 O operador lógico disjunção ( ou ): a disjunção de duas entradas será verdadeira se e somente se pelo menos uma das entradas for verdadeira. A tabela 7 apresenta a definição do operador disjunção. Tabela 7: Operador Disjunção ( ou ) A B A ou B F F F F V V V F V V V V ou F V F F V V V V O operador lógico disjunção exclusiva ( xor ): a disjunção exclusiva de duas entradas será verdadeira se e somente se uma das entradas forem verdadeiras mas não ambas. A tabela 8 apresenta a definição do operador disjunção exclusiva. Tabela 8: Operador Disjunção Exclusiva ( xor ) A B A xor B F F F F V V V F V V V F xor F V F F V V V F O operador negação ( não ): a negação de uma entrada verdadeira será falsa e a negação de uma entrada falsa será verdadeira. A tabela 9 apresenta a definição do operador negação. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 27 Tabela 9: Operador Negação ( não ) A não A F V V F As regras De Morgan (1806-1871), apesar de não estarem dentro do escopo da disciplina, poderão ser úteis, mais tarde, na confecção e análise de algoritmos. Negação de uma conjunção: não (A e B) º não A ou não B Negar que duas proposições dadas são ao mesmo tempo verdadeiras eqüivale a afirmar que pelo menos uma é falsa. Negação de uma disjunção: não (A ou B) º não A e não B Negar que uma pelo menos de duas proposições é verdadeira eqüivale a afirmar que ambassão falsas. Uma vez apresentados todos os operadores que serão empregados na construção de algoritmos pode-se estabelecer a prioridade geral dos operadores, apresentada na tabela 10. Tabela 10: Prioridade Geral dos Operadores Prioridade Operador 1ª aritmético 2ª relacional 3ª não 4ª e 5ª ou , xor Apesar de existir uma prioridade geral de operadores sempre deverão ser usados parênteses para estabelecer a ordem na qual se deseja a execução das operações. 2.7 EXPRESSÕES LITERAIS Uma expressão literal é aquela formada por operadores literais e operandos que são constantes ou variáveis do tipo literal. No caso de expressões literais será usado apenas o operador concatenação, representado por uma barra vertical: │. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 28 A operação concatenação fornece como resultado um único literal formado pelo conteúdo do primeiro operando seguido do conteúdo do segundo operando. Exemplo: sejam as variáveis e respectivos conteúdos apresentados na tabela a seguir. Variável Valor armazenado A XE34 B DFV45 A variável A concatenada com a variável B resulta: A │ B Þ “XE34DFV45” 2.8 O COMANDO DE ATRIBUIÇÃO Um comando numa linguagem de programação ou linguagem algorítmica é a descrição de uma ação a ser executada em um dado momento. Lembrando que uma “ação é um evento que ocorre num período de tempo finito, estabelecendo um efeito intencionado e bem definido”. (Guimarães e Lages, 1985) O comando de atribuição permite que se forneça um valor a uma certa variável, onde a natureza deste valor tem de ser compatível com o tipo da variável na qual está sendo armazenado. O comando de atribuição, descrito na tabela 11, é constituído de 3 partes a saber, da esquerda para direita: um identificador de variável, o símbolo de atribuição e uma constante, variável ou expressão. No comando de atribuição, o valor ou o resultado obtido do cálculo da expressão à direita é armazenado na posição de memória identificada pelo identificador à esquerda. identificador ¬ constante, variável ou expressão Tabela 11: Descrição do Comando de Atribuição Componente Descrição identificador nome da variável à qual está sendo atribuído o valor ¬ símbolo de atribuição Constante, variável ou expressão uma constante, variável ou expressão aritmética, uma constante, variável ou expressão lógica ou uma constante, variável ou expressão literal de cuja avaliação é obtido o valor a ser atribuído (armazenado) à variável PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 29 2.9 COMANDOS DE ENTRADA E DE SAÍDA De uma forma geral um programa em execução está na memória principal de uma máquina. Um algoritmo por analogia reside e é executado também na memória principal de uma máquina hipotética. Desta forma para que dados sejam introduzidos no ambiente do algoritmo torna-se necessário um comando de entrada que permita a comunicação de fora (mundo externo) para dentro do algoritmo. Por outro lado é necessário também um meio de comunicação entre o algoritmo e o mundo externo para que se possa fornecer os resultados do processamento. Assim é necessário um comando de saída que permita a comunicação do algoritmo com o mundo externo. Os comandos de entrada e saída são executados através de unidades de entrada e saída. As unidades de entrada e saída são dispositivos que possibilitam a comunicação entre o usuário e o computador. Existe uma grande quantidade e variedade de unidades de entrada e saída. Todavia, para a feitura de algoritmos será considerada a existência de uma unidade de entrada que tenha os meios mínimos para permitir a entrada adequada dos dados. Da mesma forma, a unidade de saída terá características tais que permitam a saída dos dados de acordo com as necessidades do algoritmo. O momento da entrada e da saída de dados é estabelecido pelo programador através dos comandos de entrada e saída. O comando de entrada, descrito na tabela 12, terá a seguinte forma: leia lista_de_identificadores Tabela 12: Descrição do Comando de Entrada Componente Descrição leia palavra chave lista_de_identificadores nomes das variáveis, separadas por vírgula, nas quais serão armazenados os valores provenientes da unidade de entrada PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 30 O comando de saída, descrito na tabela 13, terá a seguinte forma: escreva lista_de_identificadores Tabela 13: Descrição do Comando de Saída Componente Descrição escreva palavra chave lista_de_identificadores nomes das variáveis, separadas por vírgula, cujos conteúdos serão mostrados ao usuário através de uma unidade de saída. Além dos conteúdos das variáveis, o valor de uma constante ou o resultado de uma expressão pode ser emitido diretamente 2.10 EXERCÍCIOS 2.10.1. Sejam as variáveis e respectivos conteúdos apresentados na tabela a seguir. Variável Valor armazenado A 2 B -2 C 4 K -6 Qual o valor armazenado em cada um dos comandos apresentados a seguir. a. RESUL ¬ A=1 e (B+C ¹ 0 e K £ 2 RESUL ¬ (A=1) e (B+C ¹ 0) e (K £ 2) RESUL ¬ falso b. VALOR ¬ verdadeiro c. FLAG ¬ não (A £ 2 e B ¹ A) ou ( C³ K) FLAG ¬ verdadeiro 2.10.2. Sejam as variáveis e respectivos conteúdos apresentados na tabela a seguir. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 31 Variável Valor Armazenado Variável Valor Armazenado A 3 X falso B 8 Y verdadeiro D 20 C 5 Dê o valor armazenado em cada um dos comandos abaixo. a. RESULTADO ¬ A * D / C * 2 + B * A b. TOTAL ¬ 2 ** A / B * C + D - B c. RESULTADO ¬ D / C / 2 * A / A + 4 d. VALOR ¬ RESTO((A * C - B),D) + TRUNCA(C/D) e. RESULTADO ¬ SENO(A**3*10) + B + C f. VALOR ¬ 25 + A - TRUNCA(B/A) + SINAL(B*C-D) + ARREDONDA(D/B) - RESTO(C,B) g. VALOR ¬ A > B * C ou X e B*C < D ou Y h. RESULTADO ¬ COS(SEN(D-4*C)) + SINAL(LN(C/B)) i. VALOR ¬ (A=10 ou D>B*C) e não X e(C > A)e não(A < C) j. VALOR ¬ EXP((LN(B)) / 3) * EXP(D / C - B/2) + ABS( B * A - D / B) 2.10.3. Complete a tabela abaixo escrevendo na coluna Tipo, o tipo do conteúdo armazenado na variável à esquerda do comando de atribuição. Comando Tipo A ¬ (B = C) Z ¬ C / D D ¬ K | H X ¬ ((B1 + C2) = M) FLAG ¬ SINAL (A+B) TOTAL ¬ 15 * C + D AUX ¬ RESTO(X,Y) N ¬ EXP(LN (QUOCIENTE(A,B) + (C ** 3)) DIST ¬ ABS(X + V) PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 32 2.10.4. Faça um algoritmo que leia um número, divida-o por 2 e forneça o resultado. Uma solução: algoritmo METADE { Lê um número, calcula e fornece a sua metade.} declare N, METADE : numérico leia N METADE ¬ N/2 escreva METADE, “É a metade de:”, N fim algoritmo Outra solução: algoritmo METADE { Lê um número, calcula e fornece a sua metade.} declare N : numérico leia N escreva (N/2), “É a metade de:”, N fim algoritmo 2.10.5. Faça um algoritmo que leia 3 números e forneça sua média. 2.10.6. Faça um algoritmo que leia um valor numérico e armazene-o numa variável A, leia outro valor numérico e armazene-o numa variável B. Em seguida troque os conteúdos das variáveis, isto é, coloque em A o conteúdo armazenado emB e vice-versa. O algoritmo deverá fornecer o identificador da variável seguido do conteúdo armazenado por ela. Descrição de uma solução: O exercício determina que sejam trocados os conteúdos de duas variáveis. Esta é uma tarefa freqüente em programação. É importante perceber que para efetuar a troca é necessário empregar uma variável auxiliar de modo que seja preservado o conteúdo de uma das variáveis antes que ela receba o conteúdo da outra. Observe a solução apresentada a seguir. Estabeleça o conteúdo para as variáveis com valores numéricos e simule o comportamento dinâmico do algoritmo de modo a constatar a necessidade de uma variável auxiliar. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 33 algoritmo TROCA { Lê um número e armazena-o na variável A. Lê outro número e armazena-o na variável B. Troca os conteúdos das variáveis e fornece como saída o identificador de cada variável seguido do conteúdo armazenado.} declare A, B, AUXILIAR : numérico leia A, B AUXILIAR ¬ A A ¬ B B ¬ AUXILIAR escreva “A:”, A, “B:”, B fim algoritmo 2.10.7. Faça um algoritmo que leia o nome e a idade de 2 pessoas e forneça os nomes concatenados e a soma das idades. 2.10.8. Faça um algoritmo que leia três números e forneça a soma deles e a sua média. 2.10.9. Faça um algoritmo que leia 2 números e forneça o quociente e o resto da divisão inteira do primeiro número pelo segundo. 2.10.10. Faça um algoritmo que receba o valor de um raio e forneça a área do circulo e o volume da esfera de mesmo raio. { Área do círculo S = p r2 ; volume da esfera V = (4 p r3 )/ 3 } algoritmo ÁREA_VOLUME { Lê o valor de um raio e fornece a área do círculo e volume da esfera de mesmo raio. p = 3.1416 } declare R, AREA, VOLUME : numérico leia R AREA ¬ 3.1416 * (R **2) VOLUME ¬ (4 * 3.1416 * (R **3) ) / 3 escreva “Área do círculo:”, AREA, “Volume da esfera:”, VOLUME fim algoritmo 2.10.11. Faça um algoritmo que leia as 4 notas bimestrais de um aluno e forneça sua média anual sabendo que a nota do 1º bimestre tem peso 2, a do 2º bimestre tem peso 3, a do 3º bimestre tem peso 5 e a nota do 4º bimestre tem peso 6. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 34 2.10.12. Faça um algoritmo que leia um valor de x e forneça o seno hiperbólico e a tangente hiperbólica de x. { Senh x = (ex – e-x)/2 ; Cosh = (ex + e-x)/2 ; Tangh x= senh x / cosh x } 2.10.13. Faça um algoritmo que leia dois números e forneça como saída o logaritmo do primeiro número na base “segundo número”. { loga N = logb N / logb a } 2.10.14. Faça um algoritmo que leia a área de um quadrado e forneça como saída o lado de um quadrado com metade da área lida. 2.10.15. Faça um algoritmo que leia um número inteiro que representa um valor em reais e forneça o número mínimo de notas de 100, 50, 10, 2 e 1 reais necessário para decompor este valor. algoritmo TROCO { Lê um valor em reais e fornece o número mínimo de notas de 100, 50, 10, 2 e de 1 real necessárias para decompor o número. } declare VALOR, CEM, CINQUENTA, DEZ, DOIS, UM : numérico leia VALOR CEM ¬ QUOCIENTE(VALOR,100) CINQUENTA ¬ QUOCIENTE ( RESTO(VALOR,100),50) DEZ ¬ QUOCIENTE((RESTO(RESTO(VALOR,100),50),10) DOIS ¬ QUOCIENTE(RESTO((RESTO(RESTO(VALOR,100),50),10),2) UM ¬ RESTO(RESTO((RESTO(RESTO(VALOR,100),50),10),2) escreva “Quantidade de notas de 100 reais:”, CEM, “Quantidade de notas de 50 reais:”, CINQUENTA, “Quantidade de notas de 10 reais:”, DEZ, “Quantidade de notas de 2 reais:”, DOIS, “Quantidade de notas de 1 real:”, UM fim algoritmo PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 35 algoritmo TROCO_A { Lê um valor em reais e fornece o número mínimo de notas de 100, 50, 10, 2 e de 1 real necessárias para decompor o número. } declare VALOR, CEM, CINQUENTA, DEZ, DOIS, UM, R100, R50, R10 : numérico leia VALOR CEM ¬ QUOCIENTE(VALOR,100) R100 ¬ RESTO(VALOR,100) CINQUENTA ¬ QUOCIENTE ( R100,50) R50 ¬ RESTO(R100,50) DEZ ¬ QUOCIENTE(R50 ,10) R10 ¬ RESTO(R50, 10) DOIS ¬ QUOCIENTE(R10,2) UM ¬ RESTO(R10,2) escreva “Quantidade de notas de 100 reais:”, CEM, “Quantidade de notas de 50 reais:”, CINQUENTA, “Quantidade de notas de 10 reais:”, DEZ, “Quantidade de notas de 2 reais:”, DOIS, “Quantidade de notas de 1 real:”, UM fim algoritmo 2.10.16. Faça um algoritmo que receba como entrada a hora de início ( hora, minuto e segundo) de um evento e a hora de término do mesmo. O algoritmo fornecerá como saída a duração do evento em segundos. 2.10.17. O serviço de cronometragem de uma maratona conta o tempo de cada atleta em horas, com precisão de milésimos. Isto é, um tempo de 2,742 horas significa 2 horas e 742 milésimos de hora. Faça um algoritmo que leia o tempo de um atleta e forneça o mesmo tempo em horas, minutos e segundos. 2.10.18. Faça um algoritmo que leia o nome, a data de nascimento de uma pessoa, a data atual e calcule o número total de dias de vida da pessoa. Considere os meses com 30 dias. Faça a leitura da data através de três variáveis numéricas: dia, mês ano. Forneça como saída o nome da pessoa, sua data de nascimento e o número de dias vividos. 2.10.19. Faça um algoritmo que receba como entrada o número de dias que uma pessoa viveu e forneça como saída o número de anos, meses e dias que esta mesma pessoa viveu. Considere os meses com trinta dias. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 36 2.10.20. Faça um algoritmo que receba como entrada a duração de um evento em dias, horas, minutos e segundos e forneça como saída o valor correspondente em segundos. 2.10.21. Faça um algoritmo que leia uma quantidade de segundos e forneça como saída o valor correspondente em horas minutos e segundos. 2.10.22. Faça um algoritmo que receba: nome de um funcionário; seu número de registro; o número de horas trabalhadas no mês; o número de horas extras trabalhadas no mês; o valor da hora normal; o valor da hora extra. O algoritmo deverá calcular e fornecer o salário bruto e o salário líquido do funcionário, especificando os descontos efetuados. { salário bruto = (horas normais x valor da hora normal) + (horas extras x valor da hora extra); salário líquido = salário bruto – 15% IRPF – 17% INSS } 2.10.23. Seja o seguinte algoritmo: algoritmo Exercício 21 declare NUMERO, D1,D2,D3,D4 : numérico NUMERO ¬ 1352 D4 ¬ RESTO(NUMERO,10) D3 ¬ RESTO(QUOCIENTE(NUMERO,10),10) D2 ¬ RESTO(QUOCIENTE(NUMERO,100),10) D1 ¬ RESTO(QUOCIENTE(NUMERO,1000),10) escreva D4,D3,D2,D1 fim algoritmo Qual a saída fornecida pelo algoritmo? O que este algoritmo faz. 2.10.24. Faça um algoritmo que receba como entrada o valor da altura, largura e comprimento de um paralelepípedo e forneça como saída o valor do comprimento da diagonal do sólido. 2.10.25. Faça um algoritmo que receba o valor de um ângulo em graus e forneça como saída: o valor do ângulo em radianos, sua tangente e sua cossecante. PDF created with pdfFactory trial version www.pdffactory.com Capítulo 2 – Componentes Básicos de um Algoritmo Prof. Bráulio de Paula Machado - 04 Mar 2004 37 2.10.26. Faça um algoritmo que receba como entradas as coordenadas cartesianas de um ponto e forneça como saída suas coordenadaspolares no formato ângulo (em radianos ) e raio. Para este exercício suponha a existência de uma função ARCSEN(EA) que fornece como saída o ângulo (em radianos) cujo seno é EA. 2.10.27. Faça um algoritmo que recebe como entrada o raio externo, o raio interno e o comprimento de um tubo metálico e forneça como saída: a área da superfície externa do tubo, a área da superfície interna do tubo e o volume de metal que constitui o tubo. Área de um círculo de raio r : p r2 Comprimento de uma circunferência de raio r : 2pr 2.10.28. Seja uma equação quadrática da forma: a x2 + b x + c o discriminante desta equação é dado por (b2-4ac). Faça um algoritmo que leia os coeficientes (a, b, c) de uma equação e forneça o valor do discriminante da equação. 2.10.29. Faça um algoritmo que receba como entrada os lados de um triângulo e forneça como saída sua área. Seja um triângulo com lados a, b, c. Semiperímetro (p): p = (a +b +c)/2 Área do triângulo (Fórmula de Herão): S = (p (p-a)(p-b) (p-c)) 1/2 PDF created with pdfFactory trial version www.pdffactory.com
Compartilhar