Buscar

Cap2. Componentes Básicos de um algoritmo - Prof Braulio Machado

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais