Buscar

apostila algoritmo parte 1

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 10 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 10 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 10 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

Autor: Ernani Cláudio Borges 1 
 
 
Instituto Federal do Triângulo Mineiro Cursos da Área de Computação 
Disciplina de Algoritmos Prof. Ernani Cláudio Borges 
Estudos das atividades – PARTE 1 
 
Observações importantes: 
a) Esta atividade irá fazer a introdução aos conceitos de: 
• Algoritmos; 
• Tipos de Dados; 
� Inteiro; 
� Real 
� Caracter ou literais 
� lógicos 
• Tipos de Operadores: 
� Aritméticos; 
� Relacionais 
� Lógicos 
• Funções Matemáticas 
Tranquilidade, firmeza, objetividade e BONS ESTUDOS! 
 
 
Nome do aluno(a): __________________________________________________________________ Data: ____/_____/_____ 
Matrícula (RA): __________________________ ___________________________________________ 
 
 
 
 
1 CONCEITOS DE ALGORITMOS 
 
Analisando os exemplos apresentados anteriormente você pode verificar que 
para resolver um problema sempre efetuamos a sua análise e posteriormente 
descrevemos uma sequência finita de passos necessários para que possamos obter a 
solução desejada. Isto é, sempre acabamos definindo um algoritmo para solucionar o 
problema. Bem, como você já deve ter percebido, executamos algoritmos ao longo de 
toda a nossa vida e, muitas das vezes, nem nos damos conta disso. Certo? Vejamos 
agora como alguns autores da área de informática definem o que é algoritmo. 
Para Forbellone (1993, p. 2), um “algoritmo é uma sequencia de passos que 
visam atingir um objetivo bem definido.”. Já outros autores preferem definir a noção de 
algoritmo da seguinte forma: 
Algoritmo é um processo de cálculo matemático ou de resolução de um 
grupo de problemas semelhantes, em que se estipulam, com generalidade 
e sem restrições, regras formais para obtenção de um resultado ou da 
solução de um problema, englobando fórmulas de expressões aritméticas. 
(MANZANO, 1996, p.07). 
 
“Ação é um acontecimento que, a partir de um estado inicial, após um 
período de tempo finito, produz um estado final previsível e bem 
definido”. (FARRER, 1999, p.14). 
 
“Processo de cálculo; encadeamento das ações necessárias para o 
cumprimento de uma tarefa; processo efetivo, que produz uma solução 
para um problema num número finito de etapas" (HOUAISS, 2007, p.155). 
 
"Algoritmo é a descrição de uma sequencia de passos que deve ser 
seguida para a realização de uma tarefa." (ASCENCIO, 2007 apud 1999). 
Autor: Ernani Cláudio Borges 2 
 
 
Se você analisar cuidadosamente cada uma das definições dadas anteriormente, 
perceberá que todas elas definem, de uma forma geral, um algoritmo como sendo uma 
sequência de passos ou ações para se resolver um problema ou tarefa. Entretanto, 
Guimarães e Lages também nos lembram muito bem que: 
"Algoritmos devem ser feitos para serem lidos por seres humanos. Tenha 
em mente que seus algoritmos deverão ser lidos e entendidos por outras 
pessoas (e por você mesmo) de tal forma que possam ser corrigidos, 
receber manutenção e ser modificados." (GUIMARÃES/ LAGES, 1994, 
p.39). 
 
A questão é que todos os problemas, ou tarefas, possuem informações a serem 
analisadas e processadas. Como o nosso objetivo é escrever algoritmos que serão 
executados em um computador, então devemos avaliar mais cuidadosamente quais são 
os tipos de informações que o computador consegue manipular. Será que ele consegue 
utilizar os mesmos tipos de informações que nos humanos conseguimos? 
 
Fique de olho! 
1. Podem existir vários algoritmos para solucionar o mesmo problema. Entretanto, é 
importante construirmos um algoritmo da maneira mais otimizada possível. 
2. Além disso, o algoritmo deve ser fácil de se interpretar e codificar. Ou seja, ele deve 
ser o intermediário entre a linguagem falada e a linguagem a ser utilizada para se 
programar o computador, a qual denominamos de linguagem de programação. 
 
 
1.1 Tipos de Informação 
 
Segundo Manzano (1996), o computador é uma máquina capaz de solucionar 
problemas que permitem manipular informações, podendo estas informações ser de dois 
tipos básicos: dados e instruções. 
 
 
1.2 Tipos de Dados 
Os tipos de dados que são reconhecidos pelo computador são números inteiros, 
números reais, dados caracteres (também chamados de literais) e dados lógicos. 
Analisemos cada um deles. 
Autor: Ernani Cláudio Borges 3 
 
 
 
1.2.1 Tipos inteiros 
 
São dados numéricos positivos, negativos e o zero. Só como observação, em 
linguagens de programação, esse tipo de dado tem limite de memória, podendo variar de 
-32678 até +32677. 
Exemplos de tipos inteiros: 
78 -5 0 
 
1.2.2 Tipos reais 
 
São dados numéricos positivos, negativos, números fracionários e o zero. Seu 
limite de memória em linguagens de programação varia de 2.9 * 10-39 à + 1.7 * 1038. 
Exemplos de tipos reais: 
78 -5,8 0 521 -27,6 
 
1.2.3 Tipos caracteres ou literais 
 
É uma sequencia com letras e símbolos numéricos sempre apresentados entre 
aspas (" ") como por exemplo: 
"olá!" 
"Bom dia, hoje é dia 06 de janeiro de 2013" 
"5" 
 
É importante não confundir números com literais numéricos (números entre 
aspas), ou seja, o número 5 é diferente do literal "5". Veja o exemplo a seguir: 
 
a soma dos números 5 + 5 resulta em 10 
a soma dos literais "5" + "5" resulta em "55" 
 
Em outras palavras, a soma de caracteres (literais) nada mais é que a união 
desses caracteres. 
 
 
 
 
Autor: Ernani Cláudio Borges 4 
 
Fique de olho! 
Em programação, muitos autores denominam a união de caracteres como 
concatenação. 
 
1.2.4 Tipos lógicos 
 
São dados que representam valores verdadeiro (V) ou falso (F), também 
conhecidos como tipos boleanos. 
 
1.3 Tipos de operações e operadores 
 
As instruções representam um conjunto de operações, que permitem transformar 
os dados, ou um conjunto de comandos para se executar algum tipo de ação. Iniciaremos 
analisando primeiramente algumas operações e seus respectivos operadores. 
 
1.3.1 Operadores aritméticos 
 
Como vamos trabalhar com cálculos matemáticos é importante conhecer as 
principais operações aritméticas e seus símbolos, as quais são aplicadas apenas aos 
tipos de dados numéricos (inteiros e reais): 
 
Nome símbolo 
Exponenciação ^ 
Divisão / 
Multiplicação * 
Adição + 
Subtração - 
 
Utilizando os operadores aritméticos podemos construir expressões aritméticas 
da mesma maneira que na matemática: 
2 + 5 
8 – 7 
6 * 4 / 2 
2,0 * 3,1415 * 1,25 ^ 2,0 
Estas expressões, ao serem avaliadas, resultarão em um valor numérico. 
Autor: Ernani Cláudio Borges 5 
 
Lembre-se, assim como na matemática, as expressões aritméticas são avaliadas 
da esquerda para a direita, respeitando-se a precedência dos operadores. Portanto, de 
acordo com a precedência, a exponenciação deve ser executada antes da multiplicação, 
divisão, adição e subtração; e a multiplicação e divisão devem ser executadas antes da 
adição e subtração. Se desejarmos quebrar a precedência dos operadores, então 
devemos envolver a operação entre parênteses. Por exemplo, a avaliação da expressão 8 
– 4 / 2 resulta em 6, enquanto que a avaliação da expressão (8 – 4) / 2 resulta em 2. 
 
1.3.2 Operadores relacionais 
 
Da mesma forma que os operadores aritméticos, os operadores relacionais são 
fundamentais, pois nos permitem efetuar comparações entre expressões numéricas ou 
expressões literais. Estes operadores encontram-se descritos pela tabela abaixo: 
Nome símbolo 
igual = 
diferente <> 
maior > 
menor < 
maior ou igual >= 
menor ou igual <= 
 
Utilizando os operadores relacionais podemos construir expressões relacionais 
que ao serem avaliadas resultarão em valores lógicos verdadeiro ou falso. Por exemplo, 
a avaliação da expressão relacional 5 > 4 resulta em verdadeiro, enquanto que a 
avaliação da expressão –5 > 4 resulta em falso. 
 
1.3.3 Operadores lógicos 
 
Os operadores lógicos nos permitem construir expressões lógicas que ao serem 
avaliadas resultarão em verdadeiro ou falso. Os operadores lógicossão: E (conjunção), 
OU (disjunção) e NÃO (negação). 
Para entender melhor estes operadores, considere as seguintes afirmações, que 
representaremos por A e B: 
A: a loja vende camisas; e 
B: a loja vende bonés. 
 
Autor: Ernani Cláudio Borges 6 
 
Estas afirmações podem ser verdadeiras ou falsas. Por exemplo, se entrarmos em 
uma loja qualquer e ela vender camisas, então a afirmação A (a loja vende camisas) é 
verdadeira. Entretanto, se ela não vender camisas, então a afirmação A é falsa. O mesmo 
raciocínio se aplica a afirmação B. 
 
Operador E: 
 
Suponha que você deseje comprar uma camisa e um boné em uma única 
loja (comprar um sem o outro não lhe serve). Então, a compra só será 
realizada se a loja vende camisas E a loja vende bonés. Isto é, a compra 
será realizada somente se a expressão lógica A E B for verdadeira, ou seja, 
somente se ambos, A e B, são verdadeiros. Podemos ilustrar melhor este 
raciocínio através de uma tabela denominada de TABELA VERDADE. 
 
E 
 
A 
(tem camisa) 
B 
(tem boné) 
Resultado 
(compra?) 
Linha 1) V V V 
Linha 2) V F F 
Linha 3) F V F 
Linha 4) F F F 
 
 Acompanhe a análise: 
 
Na linha 1) A loja tem a camisa e tem o boné, assim o 
resultado é verdadeiro (V), ou seja, a compra 
pode ser realizada; 
Na linha 2) A loja tem a camisa e não tem o boné, assim o 
resultado é falso (F), ou seja, a compra não 
poderá ser realizada; 
Na linha 3) A loja não tem a camisa e tem o boné, assim o 
resultado é falso (F), ou seja, a compra não 
poderá ser realizada; 
Na linha 4) A loja não tem a camisa e não tem o boné, assim 
o resultado é falso (F), ou seja, a compra não 
poderá ser realizada. 
 
 
 
 
 
 
 
 
Autor: Ernani Cláudio Borges 7 
 
Operador OU: 
 
Suponha agora que você deseje comprar uma camisa ou um boné em uma 
loja (neste caso, tanto faz comprar uma camisa, um boné ou ambos). Então, 
a compra será realizada se a loja vende camisas OU se a loja vende bonés. 
Isto é, a compra será realizada somente se a expressão lógica A OU B for 
verdadeira. Neste caso, a única situação em que a compra não será 
executada se, ambos, A e B, forem falsos (a loja não vende camisas e não 
vende bonés). Podemos ilustrar melhor este raciocínio através da TABELA 
VERDADE a seguir. 
 
 
 
 
 
 
 
Acompanhe a análise: 
 
Na linha 1) A loja tem a camisa e tem o boné, assim o 
resultado é verdadeiro (V), ou seja, a compra 
pode ser realizada; 
Na linha 2) A loja tem a camisa e não tem o boné, assim o 
resultado é verdadeiro (V), ou seja, a compra 
pode ser realizada; 
Na linha 3) A loja não tem a camisa e tem o boné, assim o 
resultado é verdadeiro (V), ou seja, a compra 
pode ser realizada; 
Na linha 4) A loja não tem a camisa e não tem o boné, assim 
o resultado é falso (F); ou seja, a compra não 
pode ser realizada. 
 
 
Operador NÃO: 
 
Já o operador NÃO tem a função de inverter o resultado da avaliação de 
uma expressão lógica. Tente interpretar a tabela abaixo antes de verificar a 
análise. 
 
 A 
(tem camisa) 
NÃO A 
(não tem camisa) 
Linha 1) V F 
Linha 2) F V 
OU 
 A (tem camisa) 
B 
(tem boné) 
Resultado 
(compra?) 
Linha 1) V V V 
Linha 2) V F V 
Linha 3) F V V 
Linha 4) F F F 
Autor: Ernani Cláudio Borges 8 
 
 
Acompanhe a análise: 
 
Na linha 1) Na segunda coluna, observamos que a loja tem a 
camisa, assim o resultado da afirmação é 
verdadeiro (V). A terceira coluna nega esta 
afirmação, ou seja, ela afirma que a loja não tem a 
camisa, o que é falso; 
Na linha 2) Na segunda coluna, observamos que a loja não 
tem a camisa, assim o resultado da afirmação é 
falso (F). A terceira coluna nega esta afirmação, 
ou seja, ela afirma que a loja não tem a camisa, o 
que é verdadeiro; 
 
1.3.4 Funções matemáticas 
 
São operações que não possuirão símbolos de operadores para representá-las. 
Por exemplo, para representar o símbolo da raiz quadrada de 16 ( 16 ) iremos usar a 
função chamada RAIZ (16). Assim como na matemática, uma função retorna sempre um 
resultado. Portanto, a utilizarmos a função RAIZ (16) ela nos retornará como resultado o 
valor 4. A Tabela abaixo apresenta as principais funções a serem utilizadas. 
 
Quadrado ( ) = retorna o quadrado de um número 
Raiz ( ) = retorna a raiz quadrada de um número 
Resto = retorna o resto da divisão inteira entre dois números 
inteiros 
Quociente = retorna o quociente da divisão inteira entre dois 
números inteiros 
Parte-inteira ( ) = retorna a parte inteira de número fracionário 
 
1.4 Precedência dos operadores 
 
 Na avaliação de uma expressão (seja ela aritmética, relacional ou lógica) é 
respeitada a precedência (ordem de avaliação) dos operadores indicada pela tabela a 
seguir. 
 
Operadores Tipo Precedência 
( ) – 1º 
Funções – 2º 
NÃO Lógico 3º 
^ Aritmético 4º 
Autor: Ernani Cláudio Borges 9 
 
* / Aritmético 5º 
+ - Aritmético 6º 
< <= > >= Relacional 7º 
= <> Relacional 8º 
E Lógico 9º 
OU Lógico 10º 
 
1.4.1 Exemplos de utilização dos operadores 
 
Para você testar seu aprendizado na utilização de operadores lógicos, relacionais, 
operadores de caracteres e também a precedência de execução dos cálculos, vejamos 
alguns exemplos. Acompanhe o resultado e as análises correspondentes à avaliação de 
cada uma das expressões contidas na primeira coluna da tabela. 
 
Expressão Resultado Análise 
5 = 7 e 7 > 3 Falso 
Analisando a precedência dos operadores, 
verificamos que os operadores de igualdade 
(=) e maior (>) devem ser analisados antes 
do operador lógico E. Procedendo a análise, 
temos que: 5 = 7 é falso (F) e 7 > 3 é 
verdadeiro (V). Logo, pela definição do 
operador lógico E, falso E verdadeiro 
(F e V) resulta em falso. Logo a avaliação 
da expressão resulta em falso. 
5 <> 7 ou 7 < 3 Verdadeiro 
Analisando a precedência dos operadores, 
verificamos que os operadores de 
desigualdade (<>) e menor (<) devem ser 
analisados antes do operador lógico OU. 
Procedendo a análise, temos que: 5 <> 7 é 
verdadeiro (V) e 7 < 3 é falso (F). Logo, 
pela definição do operador lógico OU, 
verdadeiro OU falso (V ou F) resulta em 
verdadeiro. Logo a avaliação da expressão 
resulta em verdadeiro. 
não (5 > 7) Verdadeiro 
Primeiro devemos analisar o que está dentro 
dos parênteses. Logo, 5 > 7 é falso (F). 
Agora, pela definição do operador lógico 
NÃO, NÃO falso (não F) resulta em 
verdadeiro. Logo a avaliação da expressão 
resulta em verdadeiro. 
(5 < 7) e (7 > 3) Verdadeiro 
Primeiro devemos analisar o que está dentro 
dos parênteses. Logo, 5 < 7 é verdadeiro 
(V) e 7 > 3 é verdadeiro (V). Logo, pela 
definição do operador lógico E, verdadeiro 
E verdadeiro (V e V) resulta em verdadeiro. 
Autor: Ernani Cláudio Borges 10 
 
Logo a avaliação da expressão resulta em 
verdadeiro. 
(5 >= 7) ou (7 = 3) Falso 
Primeiro devemos analisar o que está dentro 
dos parênteses. Logo, 5 >= 7 é falso (F) e 7 
= 3 também é falso (F). Logo, pela definição 
do operador lógico OU, falso OU falso (F ou 
F) resulta em falso. Logo a avaliação da 
expressão resulta em falso. 
não (5 <= 7) Falso 
Analisando, temos que 5 <= 7 é verdadeiro 
(V). Logo, pela definição do operador lógico 
NÃO, NÃO verdadeiro (não V) resulta em 
falso. Logo a avaliação da expressão é 
falso. 
(5 resto 3) = 2 Verdadeiro 
O resto da divisão inteira de 5 por 3 
(5 resto 3) resulta em 2. Logo, a avalição de 
2 = 2 resulta em verdadeiro. 
(5 quociente 3) = 2 Falso 
O quociente da divisão inteira de 5 por 3 (5 
quociente 3) resulta em 1. Logo, a avaliação 
de 1 = 2 resulta em falso. 
5 = 3 e 5 < 7 ou 7 > 3 Verdadeiro 
Como não há parênteses envolvendo as 
expressões, devemos respeitar as 
precedências dos operadores durante a 
avaliação. Pela precedência, os operadores 
relacionais devem ser analisados antes dos 
operadores lógicos. Resolvendo, temos que: 
5 = 3 é falso (F), 5 < 7 é verdadeiro (V) e 
7 > 3 é verdadeiro (V). Observando a 
precedência dos operadores lógicos, 
verificamos que o operadorE deve ser 
avaliado antes do operador OU. Então 
devemos resolver primeiramente a 
expressão 5 = 3 e 5 < 7, o que nos dá falso, 
pois falso E verdadeiro (F e V) resulta em 
falso (F). Agora podemos avaliar o operador 
OU, isto é falso OU verdadeiro 
(falso ou 7 > 3), assim temos falso ou 
verdadeiro (F ou V) o que nos dá 
verdadeiro. 
Parte-inteira (10.8) 10.0 
Observe que a função Parte-inteira retorna 
o resultado 10.0 que é do tipo "real" e não 
um número inteiro, como o nome parece 
indicar.

Continue navegando