Teoria da Computação e Algoritmos Prof. Luís Augusto ... I... · • Algo similar ocorre com a...
Transcript of Teoria da Computação e Algoritmos Prof. Luís Augusto ... I... · • Algo similar ocorre com a...
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
2
Sumário
Unidade 1 – Lógica de Programação ....................................................................................... 5 1.1 - O que é Lógica de programação............................................................................................. 5 1.2 - Seqüência Lógica ...................................................................................................................... 6 1.3 - Instruções ................................................................................................................................. 6
Unidade 2 – Introdução aos Algoritmos................................................................................... 8 2.1 - Definição .................................................................................................................................... 8
2.1.1 – Uma Definição Formal ...................................................................................................................... 9 2.1.2 – Importância...................................................................................................................................... 10 2.1.3 - Algoritmos não – computacionais .................................................................................................... 10
2.2 Características.................................................................................................................... 10 2.3 Formas de representação .................................................................................................. 11
2.3.1 Descrição Narrativa....................................................................................................................... 11 2.3.2 Linguagem Algorítmica ................................................................................................................ 12 2.3.3 Portugol......................................................................................................................................... 13
2.4 Fases de um algoritmo ....................................................................................................... 13 2.5 O que é um programa e linguagem de programação...................................................... 14
2.5.1 O que é um Programa? .................................................................................................................. 14 2.5.2 O que é uma Linguagem de Programação? ................................................................................... 14
2.6 Exercícios de Fixação......................................................................................................... 14 Unidade 3 – Estruturas de implementação de algoritmos ..................................................... 15
3.1 Características de implementação dos algoritmos ................................................................. 15 3.1.1 Refinamentos Sucessivos ................................................................................................................... 16 3.1.2 Linearização de expressões................................................................................................................. 17 3.1.3 Modularização de Expressões............................................................................................................. 18
3.2 Operação de Entrada e Saída .................................................................................................. 18 3.3 Operadores ................................................................................................................................ 19
3.3.1 Operadores Aritméticos ...................................................................................................................... 19 3.3.2 Operadores Lógicos............................................................................................................................ 19 3.3.3 Operadores Relacionais ...................................................................................................................... 21 3.3.4 Operadores Especiais.......................................................................................................................... 21
3.4 - Exercícios de Fixação: ............................................................................................................ 21 UNIDADE 4 – Variáveis e Tipos de Dados............................................................................ 23
4.1 Conceitos de Variáveis.............................................................................................................. 23 4.2 Operação de Atribuição............................................................................................................ 23 4.3 Identificadores........................................................................................................................... 24 4.4 Tipos de Dados .......................................................................................................................... 24
4.4.1 Manipulação de Caracteres e Strings.................................................................................................. 26 4.5 – Declaração de Variáveis ........................................................................................................ 28
Unidade 5 – Estruturas De Decisão E Repetição................................................................... 29 5.1 – Estruturas de Decisão ............................................................................................................ 29
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
3
5.2 – Estrutura Condicional ........................................................................................................... 29 5.2.1 – Estrutura condicional Simples (Se ... então) .................................................................................... 30 5.2.2 – Estrutura Condicional Composta ..................................................................................................... 30
5.3 Estrutura de Repetição............................................................................................................. 31 5.3.1 – Enquanto ... faça .............................................................................................................................. 31 5.3.2 – Para ... faça ...................................................................................................................................... 32 5.3.3 – Repita ... até ..................................................................................................................................... 33
5.4 – Estruturas de Seleção............................................................................................................. 33 5.4.1 – Se ... então Aninhados ..................................................................................................................... 35
5.5 - EXERCÍCIOS.................................................................................................................. 35 MA = (Nota1 + Nota2 x 2 + Nota3 x 3 + ME )/7.................................................................... 36
AUMENTO.............................................................................................................................. 37
Unidade 6 - Linguagem De Programação Pascal.................................................................. 39 6.1 - Introdução ............................................................................................................................... 39 6.2 - Linguagens De Programação................................................................................................ 39 6.3 - Tradutores .............................................................................................................................. 39
6.3.1 - Compilador....................................................................................................................................... 40 6.3.2 - Interpretador..................................................................................................................................... 40
Unidade 7 - Linguagem De Programação Pascal................................................................. 41 7.1 - Elementos Básicos................................................................................................................... 41
7.1.1 - Identificadores.................................................................................................................................. 41 7.1.2 - Palavras Reservadas ........................................................................................................................ 42
7.2 - Tipos De Dados ....................................................................................................................... 43 7.2.1 - Simples............................................................................................................................................. 43 7.2.2 - Estruturados..................................................................................................................................... 44 7.2.3 - Definidos Pelo Usuário .................................................................................................................... 44
7.3 - Expressões Aritméticas .......................................................................................................... 45 7.3.1 - Operadores Aritméticos................................................................................................................... 45 7.3.2 - Prioridade ........................................................................................................................................ 46 7.3.3 - Funções E Procedimentos Numéricos Predefinidos ........................................................................ 46
7.4 - Expressões Lógicas ................................................................................................................. 48 7.4.1 - Operadores Relacionais................................................................................................................... 48 7.4.2 - Operadores Lógicos......................................................................................................................... 49 7.4.3 - Prioridade ........................................................................................................................................ 49
7.5 - Formato De Um Programa Pascal ....................................................................................... 50 7.5.1 - Declaração De Uso De Unidades .................................................................................................... 51 7.5.2 - Declaração De Constantes................................................................................................................ 51 7.5.3 - Declaração De Tipos ....................................................................................................................... 51 7.5.4 - Declaração De Variáveis ................................................................................................................. 52 7.5.5 - Declaração De Procedimentos E Funções ....................................................................................... 52 7.5.6 - Área De Comandos ......................................................................................................................... 53
7.6 - Comentários ............................................................................................................................ 53 Unidade 8 - Comandos Básicos Da Linguagem Pascal......................................................... 55
8.1 - Atribuição............................................................................................................................... 55 8.2 - Entrada .................................................................................................................................... 55 8.3 - Saída......................................................................................................................................... 57
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
4
8.4 - Comandos De Decisão ............................................................................................................ 59 8.4.1 - Decisão Simples ( If-Then ) ........................................................................................................... 59 8.4.2 - Decisão Composta ( If-Then-Else )................................................................................................ 60 8.4.3 - Decisão Múltipla ( Case-Of ) .......................................................................................................... 62
8.5 - Comandos De Repetição......................................................................................................... 65 8.5.1 - Repetição Com Teste No Início ( While-Do ) ................................................................................ 65 8.5.2 - Repetição Com Teste No Final ( Repeat-Until ) ............................................................................. 66 8.5.3 - Repetição Automática ( For ) ........................................................................................................... 68
Unidade 9 – Variáveis Compostas Homogêneas.................................................................... 70 9.1 - Vetores ..................................................................................................................................... 71 9.2 - Matrizes ................................................................................................................................... 72 10.1 - Procedimento ....................................................................................................................... 75 10.2 - Função................................................................................................................................... 77 10.3 - Variáveis Globais E Variáveis Locais ................................................................................. 80 10.4 - Parâmetros ............................................................................................................................ 80 10.5 - Utilizando Arrays Como Parâmetros ................................................................................. 83
Unidade 11 - Manipulação De Strings ................................................................................... 84 11.1 - O Tipo De Dado String......................................................................................................... 84 11.2 - Usando Strings Como Parâmetros Em Subrotinas ........................................................... 85 11.3 - Funções E Procedimento Predefinidos ............................................................................... 85 11.4 - Controle Do Vídeo E Do Teclado ........................................................................................ 90
APÊNDICE ............................................................................................................................. 95 - GLOSSÁRIO - .............................................................................................................................. 95
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
5
Unidade 1 – Lógica de Programação
• O uso corriqueiro da palavra lógica está normalmente relacionado à coerência
e racionalidade. Freqüentemente associa-se lógica apenas à matemática, não
percebendo sua aplicabilidade e relação com as demais ciências.
• Podemos relacionar lógica com a “correção do pensamento”, pois uma de
suas preocupações é determinar quais operações são válidas e quais não
são, fazendo análises das formas e leis do pensamento.
• Podemos dizer também que a lógica é a “arte de bem pensar”, que é a
“ciência das formas do pensamento”. Visto que a forma mais complexa do
pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”.
• A lógica tem em vista a “ordem da razão”. Por isso a lógica estuda e ensina a
colocar “ordem no pensamento”
• Exemplos:
Todo mamífero é um animal.
Todo cavalo é um mamífero.
Portanto, todo cavalo é um animal.
1.1 - O que é Lógica de programação
• Significa o uso correto das leis do pensamento, da “ordem da razão” e de
processos de raciocínio e simbolização formais na programação de
computadores, objetivando racionalidade e o desenvolvimento de técnicas
que cooperem para a produção de soluções logicamente válidas e coerente,
que resolvam com qualidade os problemas que se deseja programar.
• O raciocínio é algo abstrato, intangível.
• Os seres humanos têm a capacidade de expressá-lo através da palavra
falada ou escrita, que por sua vez se baseia em um determinado idioma, que
segue uma série de padrões (gramática).
• Um mesmo raciocínio pode ser expresso em qualquer um dos inúmeros
idiomas existentes, mas continuará representando o mesmo raciocínio,
usando apenas outra convenção.
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
6
• Algo similar ocorre com a Lógica de Programação, que pode ser concebida
pela mente treinada e pode ser representada em qualquer umas das
inúmeras linguagens de programação existentes.
• O objetivo principal do estudo da Lógica de Programação é a construção de
algoritmos coerentes e válidos.
Lógica de Programação - é a técnica de encadear pensamentos para atingir
determinado objetivo.
1.2 - Seqüência Lógica
• São passos executados até atingir um objetivo ou solução de um problema.
• Estes pensamentos, podem ser descritos como uma seqüência de instruções,
que devem ser seguidas para se cumprir uma determinada tarefa.
Seqüência Lógica são passos executados até atingir um objetivo ou solução de um
problema.
1.3 - Instruções
• São um conjunto de regras ou normas definidas para a realização de algo.
• Na linguagem comum, entende-se por instruções “um conjunto de regras ou normas definidas para a realização ou emprego de algo”.
• Em informática, porém, instrução é a informação que indica a um computador
uma ação elementar a executar.
• Convém ressaltar que uma ordem isolada não permite realizar o processo
completo, para isso é necessário um conjunto de instruções colocadas em
ordem seqüencial lógica.
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
7
• Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos
colocar em prática uma série de instruções: descascar as batatas, bater os
ovos, fritar as batatas, etc...
• É evidente que essas instruções tem que ser executadas em uma ordem
adequada – não se pode descascar as batatas depois de fritá-las.
• Dessa maneira, uma instrução tomada em separado não tem muito sentido;
para obtermos o resultado, precisamos colocar em prática o conjunto de
todas as instruções, na ordem correta.
Instruções são um conjunto de regras ou normas definidas para a realização ou
emprego de algo. Em informática, é o que indica a um computador uma ação
elementar a executar.
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
8
Unidade 2 – Introdução aos Algoritmos
2.1 - Definição
• Na medida em que precisamos especificar uma seqüência de passos,
precisamos utilizar ordem, ou seja, “pensar em ordem”, portanto, precisamos
utilizar lógica.
• Quando elaboramos um algoritmo devemos especificar ações claras e
precisas, que a partir de um estado inicial, após um período de tempo finito,
produzem um estado final previsível e bem sucedido.
• Um algoritmo é formalmente uma seqüência finita de passos que levam a
execução de uma tarefa. Podemos pensar em algoritmo como uma receita,
uma seqüência de instruções que dão cabo de uma meta específica. Estas
tarefas não podem ser redundantes nem subjetivas na sua definição, devem
ser claras e precisas.
• Como exemplos de algoritmos podemos citar os algoritmos das operações
básicas (adição, multiplicação, divisão e subtração) de números reais
decimais. Outros exemplos seriam os manuais de aparelhos eletrônicos,
como um videocassete, que explicam passo-a-passo como, por exemplo,
gravar um evento.
• Até mesmo as coisas mais simples, podem ser descritas por seqüências
lógicas. Por exemplo:
– “Chupar uma bala”. · Pegar a bala
· Retirar o papel
· Chupar a bala
· Jogar o papel no lixo
– “Somar dois números quaisquer”. · Escreva o primeiro número no retângulo A
· Escreva o segundo número no retângulo B
· Some o número do retângulo A com número do retângulo B e
coloque o resultado no retângulo C
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
9
Fazemos uso constantemente de algoritmos em nosso cotidiano: a maneira
como uma pessoa toma banho é um algoritmo.
Outros algoritmos freqüentemente encontrados são:
– Instruções para se utilizar um aparelho eletrodoméstico;
– Uma receita para preparo de algum prato;
– Guia de preenchimento para declaração de imposto de renda;
– A regra para determinação de máximos e mínimos de funções são calculadas
por derivadas sucessivas;
– A maneira como as contas de água, luz e telefone são calculadas
mensalmente, etc.
2.1.1 – Uma Definição Formal
“Um Algoritmo é uma seqüência de instruções ordenadas de forma lógica
para a resolução de uma determinada tarefa ou problema.”
– Um algoritmo é um conjunto finito de instruções que, se seguidas, realizam
uma determinada tarefa.
– Além disso, todo algoritmo deve satisfazer:
a) Entrada – zero ou mais valores de entrada
b) Saída – pelo menos um valor deve ser produzido
c) Clareza – toda instrução deve ser clara e não ambígua
d) Término – o algoritmo deve terminar após um número finito de passos
e) Efetividade – toda instrução deve ser factível
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
10
2.1.2 – Importância
– A importância do algoritmo está no fato de termos que especificar uma
seqüência de passos lógicos para que o computador possa executar uma
tarefa qualquer, pois o mesmo por si só não têm vontade própria, faz
apensa o que mandamos.
– Com uma ferramenta algorítmica, podemos conceber uma solução para
um dado problema, independendo de uma linguagem específica e até
mesmo do próprio computador,
2.1.3 - Algoritmos não – computacionais
– Exemplo de Algoritmo Não-Computacional:
– Problema: Usar um telefone público.
Início
1) Tirar o fone do gancho;
2) Ouvir o sinal de linha;
3) Introduzir o cartão;
4) Teclar o número desejado;
5) Se der o sinal de chamar
5.1) Conversar;
5.2) Desligar;
5.3) Retirar o cartão;
6) Senão
6.1) Repetir;
Fim.
2.2 Características
– Todo algoritmo deve apresentar algumas características básicas:
• Ter fim;
DESVIO SEQUENCIAL
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
11
• Não dar margem à dupla interpretação (não ambíguo);
• Capacidade de receber dado(s) de entrada do mundo exterior;
• Poder gerar informações de saída para o mundo externo ao do
ambiente do algoritmo;
• Ser efetivo (todas as etapas especificadas no algoritmo devem ser
alcançáveis em um tempo finito).
2.3 Formas de representação
2.3.1 Descrição Narrativa Faz-se uso do português para descrever algoritmos. Exemplo:
Receita de Bolo:
• Providencie manteiga, ovos, 2 kg de massa, etc
• Misture os ingredientes
• Despeje a mistura na fôrma de bolo
• Leve a fôrma ao forno
• Espere 20 minutos
• Retire a fôrma do forno
• Deixe esfriar
• Prove
– VANTAGENS
• O português é bastante conhecido por nós;
– DESVANTAGENS
• Imprecisão;
• Pouca confiabilidade ( a imprecisão acarreta a desconfiança);
• Extensão (normalmente, escreve-se muito para dizer pouca coisa).
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
12
2.3.2 Linguagem Algorítmica
– Consiste na definição de uma pseudolinguagem de programação, cujos
comandos são em português, para representar algoritmos.
– Os algoritmos são descritos em uma linguagem chamada pseudocódigo.
– Este nome é uma alusão à posterior implementação em uma linguagem
de programação, por exemplo, Visual Basic, estaremos gerando código
em Visual Basic.
– Por isso os algoritmos são independentes das linguagens de
Programação. Ao contrário de uma linguagem de programação não existe
um formalismo rígido de como deve ser escrito o algoritmo.
– O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja,
ele deve ser o intermediário entre a linguagem falada e a linguagem de
programação.
– EXEMPLO:
Algoritmo CALCULA_DOBRO; Inicio
Leia NUM;
DOBRO ← 2 * NUM;
Escreva DOBRO;
Fim.
– VANTAGENS:
Independência física da solução (solução lógica apenas);
Usa o português com base;
Pode-se definir quais e como os dados vão estar estruturados;
Passagem quase imediata do algoritmo para uma linguagem de
programação qualquer.
– DESVANTAGENS:
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
13
Exige a definição de uma linguagem não real para trabalho;
Não padronizado.
2.3.3 Portugol
– Durante nosso curso iremos aprender a desenvolver nossos Algoritmos
em uma pseudo-linguagem conhecida como “Portugol” ou Português
Estruturado.
– “Portugol” é derivado da aglutinação de Português + Algol.
– Algol é o nome de umalinguagem de programação usada no final da
década de 50.
2.4 Fases de um algoritmo
– Ao montar um algoritmo, precisamos primeiro dividir o problema
apresentado em três fases fundamentais.
– Onde temos:
ENTRADA: São os dados de entrada do algoritmo
PROCESSAMENTO: São os procedimentos utilizados para chegar
ao resultado final.
SAÍDA: São os dados já processados.
Entrada
Processamento
Saída
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
14
2.5 O que é um programa e linguagem de programação
2.5.1 O que é um Programa?
Os programas de computadores nada mais são do que algoritmos escritos
numa linguagem de computador e que são interpretados e executados por uma
máquina, no caso um computador. Dada esta interpretação rigorosa, um programa é
por natureza muito específico e rígido em relação aos algoritmos da vida real.
2.5.2 O que é uma Linguagem de Programação?
– São softwares que permitem o desenvolvimento de programas. Possuem
um poder de criação ilimitado, desde jogos, editores de texto, sistemas
empresariais até sistemas operacionais.
– Existem várias linguagens de programação, cada uma com suas
características próprias.
– Exemplos: Pascal, Clipper, C, C++, Visual Basic, Delphi, Java, etc.
2.6 Exercícios de Fixação
1) Crie uma seqüência lógica para tomar banho
2) Faça um algoritmo para somar dois números e multiplicar o resultado pelo
primeiro número
3) Descreva com detalhes a seqüência lógica para Trocar um pneu de um carro
4) Faça um algoritmo para trocar uma lâmpada. Descreva com detalhes
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
15
Unidade 3 – Estruturas de implementação de algoritmos – Quando temos um problema e vamos utilizar um computador para resolvê-lo
inevitavelmente temos que passar pelas seguintes etapas:
a) Definir o problema.
b) Realizar um estudo da situação atual e verificar quais a(s) forma(s) de resolver o
problema.
c) Terminada a fase de estudo, utilizar uma linguagem de programação para
escrever o programa que deverá a princípio, resolver o problema.
d) Analisar junto aos usuários se o problema foi resolvido. Se a solução não foi
encontrada, deverá ser retornado para a fase de estudo para descobrir onde está
a falha.
3.1 Características de implementação dos algoritmos
– Os algoritmos terão a seguinte estrutura:
ALGORITMO <Nome do algoritmo>
<definições>
INÍCIO
<comandos>
FIM
– Regras para se escrever um algoritmo
Para escrever um algoritmo precisamos descrever a seqüência de
instruções, de maneira simples e objetiva.
Para isso utilizaremos algumas técnicas:
• Usar somente um verbo por frase;
• Imaginar que você está desenvolvendo um algoritmo para pessoas
que não trabalham com informática;
• Usar frases curtas e simples;
• Ser objetivo;
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
16
• Procurar usar palavras que não tenham sentido dúbio.
– O aprendizado de Algoritmos
Algoritmos não se aprende:
• Copiando algoritmos
• Estudando algoritmos
Algoritmos só se aprende
• Construindo algoritmos
• Testando algoritmos
3.1.1 Refinamentos Sucessivos
– Um algoritmo é considerado completo se os seus comandos forem no
entendimento do seu destinatário.
– Num algoritmo, um comando que não for do entendimento do destinatário
terá que ser desdobrado em novos comandos, que constituirão um
refinamento do comando inicial, e assim sucessivamente, até que os
comandos sejam entendidos pelo destinatário.
– Por exemplo, o algoritmo para calcular a média de dois números pode ser
escrito da seguinte forma:
ALGORITMO CALCULA_MÉDIA;
INICIO
Receba os dois números;
Calcule a média dos dois números;
Exiba o resultado;
FIM.
– Podemos desdobrar o comando “Calcula a média dos dois números” em:
Soma os dois números;
Divida o resultado por 2;
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
17
– Após esse refinamento, o algoritmo pode ser considerado completo, a
menos que o destinatário não saiba fazer as operações de adição e
divisão, ou não seja capaz de entender diretamente algum comando.
– O algoritmo estando completo, podemos reescrevê-lo, inserindo o
refinamento na posição de comando que foi refinado. Assim sendo, obtém-
se:
ALGORITMO Calcula_Média;
Início
Receba os dois números;
Soma os dois números;
Divida o resultado por 2;
Exiba o resultado;
Fim.
– Reescrever um algoritmo, com os refinamentos sucessivos inseridos nos
seus devidos lugares, permite ter uma visão global de como o algoritmo
deve ser executado.
– À medida que o algoritmo passa a ser maior e mais complexo, esta visão
global torna-se menos clara e, neste caso, um algoritmo apresentado com
os refinamentos sucessivos separados oferece uma melhor abordagem
para quem precisar entendê-lo.
3.1.2 Linearização de expressões
– Para a construção de Algoritmos todas as expressões aritméticas devem
ser linearizadas, ou seja, colocadas em linhas.
– É importante também ressalvar o uso dos operadores correspondentes da
aritmética tradicional para a computacional.
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
18
( 2 / 3 + ( 5 – 3 ) ) + 1 =
COMPUTACIONAL
3.1.3 Modularização de Expressões
– A modularização é a divisão das expressões em partes, proporcionando
maior compreensão e definindo prioridades para resolução da mesma.
– Como pode ser observado no exemplo anterior, em expressões
computacionais usamos somente parênteses “ ( ) “ para modularização.
– Na informática podemos ter parênteses dentro de parênteses.
– Exemplos de prioridade:
(2+2)/2=2
2+2/2=3
3.2 Operação de Entrada e Saída
– Os cálculos do computador são de pouco valor a não ser que, primeiro
possamos fornecer os dados sobre os quais estes cálculos serão
efetuados e, segundo, ver os resultados destes cálculos.
– Definimos aqui dois novos comandos da nossa linguagem algorítmica para
manusear entrada e saída.
O comando leia nos permite ler valores dados atribuindo-os à
variáveis indicadas;
O comando escreva nos permite mostrar os resultados.
2 + ( 5 – 3 ) + 1 = 3 TRADICIONAL
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
19
– A entrada pode vir do teclado ou qualquer outro dispositivo de entrada.
– A saída pode aparecer na tela do monitor de vídeo ou ser impressa em
papel.
– Caso deseja-se imprimir o resultado, usa-se o comando imprima.
– A sintaxe destes comandos são:
Leia variável-1, variável-2,..., variável-n
Escreva expressão-1, expressão-2, ..., expressão-n
– Exemplos
Leia (Nota) Escreva (15) Imprima (Nota)
Leia(A, B, C) Escreva (Nota + 2) Imprima (Tel)
Leia (Nome) Escreva (A< B) Imprima (Result)
3.3 Operadores
3.3.1 Operadores Aritméticos
Operação Operador
Adição +
Subtração -
Multiplicação *
Divisão /
Exponenciação **
3.3.2 Operadores Lógicos
– Os operadores lógicos servem para combinar resultados de expressões,
retornando se o resultado final é verdadeiro ou falso.
– Os operadores lógicos são:
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
20
Operador Descrição
E (AND) Uma expressão E é verdadeira se todas as condições forem
verdadeiras.
OU (OR) Uma expressão OU é verdadeira se elo menos uma condição for
verdadeira.
Não (NOT) Uma expressão NÃO inverte o valor da expressão ou condição, se
verdadeira inverte para falsa e vice-versa.
– TABELA VERDADE
A B A E B A OU B NÃO(A)
V V V V F
V F F V F
F V F V V
F F F F V
– Exemplos:
Suponha que temos três variáveis A = 5. B = 8 e C = 1.
Os resultados das expressões seriam:
Expressões Resultado
A = B E B > C Falso
A < > B OU B < C Verdadeiro
A > B NÃO Verdadeiro
A < B E B > C Verdadeiro
A > = B OU B = C Falso
A < = B NÃO Falso
UNIVERSO
TCA – Teoria Da Computação E Algorítmos Luís Augusto M. Mendes
21
3.3.3 Operadores Relacionais
Operação Operador
Maior que >
Menor que <
Maior ou igual >=
Menor ou igual <=
Diferente < >
Igual =
3.3.4 Operadores Especiais
Operador Descrição
MOD Retorna o resto da divisão entre dois números inteiros.
DIV Retorna o valor inteiro que resulta da divisão entre dois números
inteiros.
3.4 - Exercícios de Fixação:
1. Determine o resultado das operações:
a) 25 DIV 3
b) 172 MOD 3
c) 74 DIV 2
d) 55 MOD 4
13 2
1 6
DIVMOD
13 DIV 2 = 6
13 MOD 2 = 1
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
22
2. Considere as variáveis a seguir e determine o resultado: A = 14; B = 7; C
= 21; D = -5; E =0
Expressões Resultado
A < B E D > C
D< A OU D = C
D = C OU B< C
B < > E E D< E
C < > D E D < > A OU D < E
A < > D NÃO
D < E E A = B E C < >D OU A < D
A = B E C < > D E B = C
C = D E A = C OU E < > D OU B < A
D < >B E B > E OU E > D
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
23
UNIDADE 4 – Variáveis e Tipos de Dados
4.1 Conceitos de Variáveis
– Sabe-se da Matemática que uma variável é a representação
simbólica dos elementos de um certo conjunto.
– Nos algoritmos destinados a resolver um problema no computador, a
cada variável corresponde uma posição de memória, cujo conteúdo pode variar ao longo do tempo durante a execução de um algoritmo. Embora a variável possa assumir diferentes valores,
ela só pode armazenar um valor a cada instante.
– Toda variável é identificada por um nome ou identificador.
Exemplo: num algoritmo para calcular a área de um triângulo
retângulo pelo teorema de Pitágoras (a2 = b2 + c2), os
identificadores A, B e C podem representar as posições de
memória que armazenam o valor da hipotenusa e dos catetos.
– Nunca usar uma palavra reservada (que faça parte da linguagem
algorítmica), visto que, poderá causar ambigüidade no entendimento
do algorítmo.
– Na nossa linguagem algorítmica, vamos admitir que nossas variáveis
poderão armazenar valores numéricos ou alfanuméricos (strings).
4.2 Operação de Atribuição
– A operação de atribuição permite que se forneça um valor a uma
certa variável.
Se for atribuído uma expressão à variável, será armazenado o
resultado daquela expressão.
Se for atribuído uma outra variável, será armazenado o
conteúdo daquela variável.
– Para a operação de atribuição, utilizaremos a seguinte sintaxe:
variável ← expressão
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
24
Exemplos:
A ← 2 B ← A NOTA ← 10
NOME ← ‘João’ SENHA ← ‘X3Y9’ C ← 1 / 3
A ← B + C NOTA ← NOTA - 1 X ← 2.5
4.3 Identificadores
– São os nomes dados a variáveis, constantes e programas.
– Regras para construção de Identificadores:
Não podem ter nomes de palavras reservadas (comandos da
linguagem);
Devem possuir como 1º caractere uma letra ou underscore ( _
);
Ter como demais caracteres letras, números ou underscore;
Ter no máximo 127 caracteres;
Não possuir espaços em branco;
A escolha de letras maiúscula ou minúscula é indiferente.
– Exemplos: nome, telefone, nota1, salário, idade_filho
4.4 Tipos de Dados
– No momento que formos trabalhar com variáveis, indiquemos o tipo
de informação que uma variável pode conter, isto é, se uma dada
posição de memória armazenará um número ou uma letra, etc.
– O Tipo de dado pode ser:
PRIMITIVO – pré-definido pela linguagem;
SUB-FAIXA – é uma parte de um tipo já existente;
DEFINIDO PELO USUÁRIO (ESCALAR) – definidos pelo
programador.
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
25
Tipo de Dados Descrição
Inteiro Representa números entre -32768 até + 32767. Ocupa 2 bytes
na memória.
Real Representa os números entre 2.9 x 10-39 até 1.7 x 1038. Ocupa 6
bytes na memória.
Caracter Representa um dos caracteres da tabela ASCII. Ocupa 1 byte
na memória.
String Conjunto de caracteres (CHAR). Ocupa de 1 a 255 bytes
namemória.
Lógico Valor lógico. Assume somente dois valores: TRUE (verdadeiro)
ou FALSE (falso). Ocupa 1 byte na memória.
– As definições de variáveis como sendo do tipo CHAR (caracter) e
STRING (cadeia), possuem algumas curiosidades que merecem um
cuidado especial por parte do usuário.
– Uso das aspas ( ‘ ‘ ): atribuição de um valor para uma variável do
tipo CHAR (caracter) ou STRING (cadeia) = colocar o valor (dado)
entre aspas (‘ ‘), pois esta é a forma de informar que a informação é
um caracter.
Exemplo:
ALGORITMO Teste;
VARIÁVEIS
Letra : Caracter;
Nome: Cadeia;
Início
Nome ← ‘João’;
Letra ← ‘A’;
FIM.
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
26
4.4.1 Manipulação de Caracteres e Strings
– Muitas vezes é necessário manipular caracteres individuais em uma
STRING (cadeia).
– Utilizaremos uma forma toda especial de permitir tal operação,
através do uso de colchetes ( [ ] ) logo após o Nome da variável do
tipo STRING (Cadeia), e o número do caracter que se deseja
manipular entre os colchetes (forma baseada no Pascal).
Exemplo: Atribuir o primeiro caracter de uma STRING a uma
variável do tipo CHAR.
ALGORITMO AtribuiString;
VARIÁVEIS
Letra :Caracter;
Nome :Cadeia;
INICIO
Nome ← ‘Joao’;
Letra ← Nome[1];
FIM.
– Quando definimos uma variável como sendo do tipo STRING não
estamos alocando 1 posição de memória apenas (uma caixa, pela
analogia inicial), mas na verdade, estamos alocando-se até 255
caixas, uma para cada caracter da STRING (lembre-se que uma
STRING pode ter no máximo 255 caracteres).
– Ao utilizarmos o símbolo de colchete, estamos na verdade indicando
qual o caracter (qual a caixa) desejamos manipular.
– De acordo com o Exemplo acima, teríamos na memória a seguinte
situação:
a) Alocamos 255 bytes (caracteres) na memória. A estas posições
de memória é dado o Nome de “Nome”. Inicialmente estas
posições de memória (Caixas) possuem o conteúdo indefinido.
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
27
b) Alocamos 1 byte (caracter) na memória. A este caracter é dado o
Nome de “Letra”. Inicialmente esta posição de memória possui o
conteúdo indefinido.
c) Na memória temos a seguinte situação:
Nome
Letra
1 2 3 4 ... 255
d) Atribuímos a variável “Nome” o valor “João”, obtendo na memória
a seguinte configuração
1 2 3 4 ... 255
‘J’ ‘O’ ‘Ã’ ‘O’
e) Atribuímos a variável “Letra” o primeiro caracter da variável
“Nome”, ou seja, o conteúdo da primeira posição de memória
(caixa). Na memória teremos a seguinte configuração:
Nome
Letra
1 2 3 4 ... 255
‘J’ ‘O’ ‘Ã’ ‘O’
‘J’
– Obs.: É possível definir variáveis do tipo STRING (Cadeia) com
menos de 255 caracteres. Para isto, basta colocar, após a
palavra STRING (Cadeia), o número de caracteres desejados
entre colchetes ( [ ] ). Exemplo:
ALGORITMO Define;
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
28
VARIÁVEIS
Nome :CADEIA[80];
INICIO
FIM.
– Desta forma, o espaço ocupado por uma variável STRING (Cadeia)
passa de 255 bytes para apenas 80 bytes, na memória.
4.5 – Declaração de Variáveis
ALGORITMO Teste;
VARIÁVEIS
Palavra : Cadeia;
INICIO
<Comandos>;
FIM.
ALGORITMO Teste;
VARIÁVEIS
Letra, Caracter : Caracter;
INICIO
<Comandos>;
FIM.
ALGORITMO Teste;
VARIÁVEIS
Letra, Caracter : Caracter;
Número : Inteiro;
INICIO
<Comandos>;
FIM.
PROGRAM Teste; VAR Letra, Caracter : CHAR; Número : INTEGER; BEGIN <Comandos>; END.
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
29
Unidade 5 – Estruturas De Decisão E Repetição
5.1 – Estruturas de Decisão
– Num algoritmo, os comandos deverão ser executados numa
seqüência linear, seguindo-se o texto em que estão escritos, de
cima para baixo, se não houver indicação em contrário.
INICIO
Comando-1;
Comando-2;
. . .
Comando-n;
FIM.
Exemplo:
Inicio
Leia A, B;
SOMA ← A + B;
Escreva SOMA;
Fim.
5.2 – Estrutura Condicional
– A estrutura condicional permite a escolha do grupo de ações e
estruturas a ser executado quando determinadas condições
(expressões lógicas) são ou não satisfeitas. Esta estrutura pode se
apresentar de duas formas:
Estrutura Condicional Simples;
Estrutura Condicional Composta.
INÍCIO
COMANDO-1
COMANDO-2
COMANDO-N
FIM
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
30
5.2.1 – Estrutura condicional Simples (Se ... então)
SE condição ENTÃO
Comando-1;
Comando-2;
. . .
Comando-n;
FIM_SE;
Exemplo:
se MÈDIA>= 7 então
SITUAÇÃO ← ‘Aprovado’;
Escreva SITUAÇÃO;
fim_se;
5.2.2 – Estrutura Condicional Composta
SE condição ENTÃO
Comando-A1;
Comando-A2;
. . .
Comando-An;
SENÂO
Comando-B1;
Comando-B2;
. . .
Comando-Bn;
FIM_SE;
CONDIÇÃO
COMANDO-1
COMANDO-2
COMANDO-N
CONDIÇÃO
COMANDO-A1
COMANDO-A2
COMANDO-AN
COMANDO-B1
COMANDO-B2
COMANDO-BN
F
V
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
31
Exemplo:
. . .
se PESO > 80 então
escreva ‘Você está obeso’;
escreva ‘Faça atividades físicas’;
senão
escreva ‘Você está no peso certo’;
escreva ‘Procure manter sua forma’;
fim_se;
. . .
5.3 Estrutura de Repetição
– A estrutura de repetição permite que uma sequência de comandos
seja executada repetidamente até que uma determinada condição
não seja satisfeita. Utilizaremos os comandos abaixo para
representar esta estrutura.
5.3.1 – Enquanto ... faça
enquanto CONDIÇÃO faça
Comando-A1;
Comando-A2;
. . .
Comando-An;
fim_enquanto;
Exemplo: Faça um algoritmo para ler e escrever o.
nome de 20 pessoas.
F
V
CONDIÇÃO
COMANDO-A1
COMANDO-A2
COMANDO-AN
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
32
ALGORITMO LeEscreve;
VARIÁVEIS
NOME: STRING;
Total: INTEIRO;
INICIO
TOTAL ← 0;
ENQUANTO Total < 20 Faça
Leia(Nome);
Escreva (‘Nome=’, Nome);
Total ← Total + 1;
FIM_ENQUANTO;
FIM.
5.3.2 – Para ... faça
para <VARIÁVEL> de <INÍCIO> até <FIM> faça
Comando-A1;
Comando-A2;
. . .
Comando-An;
fim_para;
Exemplo: Faça um algoritmo para ler e escrever o Nome de 20 pessoas.
ALGORITMO LeEscreve;
VARIÁVEIS
Nome: Cadeia;
Cont : Inteiro;
INICIO
PARA Cont DE 1 ATÉ 20, Passo 1, FAÇA
Leia(Nome);
Escreva(Nome);
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
33
FIM_PARA;
FIM.
5.3.3 – Repita ... até
repita
Comando-A1;
Comando-A2;
. . .
Comando-An;
Até <CONDIÇÃO VERDADEIRA>
Exemplo: Faça um algoritmo para ler e escrever o Nome de 20 pessoas
ALGORITMO LeEscreve;
VARIÁVEIS
Nome: Cadeia;
Total: Inteiro;
INICIO
Total ← 0;
REPITA
Leia(Nome);
Escreva(‘Nome=’, Nome);
Total ← Total +1;
ATÉ Total >= 20;
FIM.
5.4 – Estruturas de Seleção
– A estrutura de condição equivale a um ninho de SE’s.
ESCOLHA <expressão>
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
34
CASO 1
Comando A1; CASO 2
Comando A2;
CASO n
Comando An;
SENÃO
Comando n;
FIM_ESCOLHA;
Exemplo:
ALGORITMO Título;
VARIÁVEIS
Título :STRING;
Op : INTEIRO;
INICIO
Leia(Op);
ESCOLHA Op:
CASO 1
TITULO = “OPÇÃO 1”;
CASO 2
TITULO = “OPÇÃO 2”; CASO 3
TITULO = “OPÇÃO 3”; CASO 4
TITULO = “OPÇÃO 4”; CASO 5
TITULO = “OPÇÃO 5”; SENÃO
TITULO = “OPÇÃO ERRADA”;
FIM_ESCOLHA;
FIM.
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
35
5.4.1 – Se ... então Aninhados
– Usados para tomadas de decisões para mais de 2 opções.
SE condição
ENTÃO Comando-1;
SENÃO SE condição
ENTÃO Comando-2;
SENÃO Comando-3;
FIM_SE;
FIM_SE;
5.5 - EXERCÍCIOS
1) Faça um algoritmo que leia os valores A, B, C e diga se a soma de A + B é
menor que C.
2) Faça um algoritmo que leia dois valores inteiros A e B se os valores forem
iguais deverá se somar os dois, caso contrário multiplique A por B ao final do
cálculo atribuir o valor para uma variável C.
3) Faça um algoritmo que leia o nome e as três notas de uma disciplina de um
aluno. Ao final escreva o nome do aluno, sua média e se ele foi aprovado a
média é 8.
4) Faça um algoritmo que calcule a média aritmética de 4 valores inteiros.
5) Escreva um algoritmo para ler um número e determinar se ele é maior, igual
ou menor que zero.
6) Escreva um algoritmo que leia dois números e exiba o maior deles.
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
36
7) Dado as seguintes informações de um funcionário: Nome, idade cargo e o
seu salário bruto considere:
a) O salário bruto teve um reajuste de 38%.
b) O funcionário receberá uma gratificação de 20% do salário bruto.
c) O Salário total é descontado em 15%
Faça um algoritmo para:
• Imprimir Nome, idade e cargo.
• Imprimir o salário bruto.
• Imprimir o salário líquido.
8) Dado uma série de 20 valores reais, faça uma algoritmo que calcule e
escreva a média aritmética destes valores, entretanto se a média obtida for
maior que 8 deverá ser atribuída 10 para a média.
9) Elaborar um algoritmo que lê 3 valores a,b,c e os escreve. A seguir, encontre
o maior dos 3 valores e o escreva com a mensagem : "É o maior ".
10) Faça um algoritmo que leia um nº inteiro e mostre uma mensagem
indicando se este número é par ou ímpar.
11) Escrever um algoritmo que lê o número de identificação, as 3 notas obtidas
por um aluno nas 3 verificações e a média dos exercícios que fazem parte da
avaliação. Calcular a média de aproveitamento, usando a fórmula:
MA = (Nota1 + Nota2 x 2 + Nota3 x 3 + ME )/7
A atribuição de conceitos obedece a tabela abaixo:
Média de Aproveitamento Conceito
9,0 A
7,5 e < 9,0 B
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
37
6,0 e < 7,5 C
4,0 < 6,0 D
< 4,0 E
O algoritmo deve escrever o número do aluno, suas notas, a média dos
exercícios, a média de aproveitamento, o conceito correspondente e a
mensagem: APROVADO se o conceito for A,B ou C e REPROVADO se o
conceito for D ou E.
12) Faça um algoritmo que, dado as três notas de um aluno, determine e exiba
a sua média final e o seu conceito, sabendo-se que:
- a média final é calculada pela média aritmética das 3 notas;
- o conceito é determinado com base na tabela abaixo:
MÉDIA FINAL CONCEITO
≥ 8,0 A
≥ 5,0 e < 8,0 B
< 5,0 C
13) O São Paulo Futebol Clube deseja aumentar o salário de seus jogadores.
O reajuste deve obedecer a seguinte tabela:
SALÁRIO ATUAL (R$) AUMENTO
0,00 a 1.000,00 20%
1.000,01 a 5.000,00 10%
acima de 5.000,00 0%
UNIVERSO
Teoria da Computação e Algoritmos Luís Augusto M. Mendes
38
Escrever um algoritmo que leia o nome e o salário atual de um jogador,
e exiba o nome, o salário atual e o salário reajustado.
14) Escreva um algoritmo que leia três números inteiros e positivos (A, B, C) e
calcule a seguinte expressão:
R + S onde R = ( A + B )2 e S = ( B + C)2
D =
2
15) O custo ao consumidor de um carro novo é a soma do custo de fábrica com
a percentagem do distribuidor e dos impostos (aplicados ao custo de fábrica).
Supondo que a percentagem do distribuidor seja de 28% e os impostos de
45%, escrever um algoritmo que leia o custo de fábrica de um carro e escreva
o custo ao consumidor.