Apostila Logica 110210 PDF
Apostila Logica 110210 PDF
Apostila Logica 110210 PDF
Disciplina de
Lógica de Programação
http://fabiologica.blogspot.com
1º Semestre / 2010
11/02/2010
1 - Introdução à disciplina de Lógica de Programação
Esta pequena apostila é resultado da agregação de diversos materiais pesquisados, e
reúne o conteúdo básico para o desenvolvimento da disciplina de Lógica de
Programação, do curso de Sistemas de Informação da Universidade Nove de Julho -
Uninove - 1º Semestre / 2010.
2 – Lógica de Programação
2.1 - O que é Lógica?
É a arte de pensar corretamente e, visto que a forma mais complexa do pensamento é o
raciocínio, a Lógica estuda ou tem em vista a correção do raciocínio.
Podemos ainda dizer que a lógica tem em vista a ordem da razão. Isto dá a entender que
a nossa razão pode funcionar desordenadamente, pode pôr as coisas de pernas para o
ar. Por isso a Lógica ensina a colocar Ordem no Pensamento. Exemplos:
Apesar de achar este nome estranho, algoritmos são comuns em nosso cotidiano, como,
por exemplo, uma receita de bolo. Nela está descrita uma série de ingredientes
necessários, uma seqüência de diversos passos - ações - a serem cumpridos para que se
consiga fazer determinado tipo de bolo – que é um objetivo bem definido.
2
Em geral um algoritmo destina-se a resolver um problema: fixa um padrão de
comportamento a ser seguido, uma norma de execução a ser trilhada, com o objetivo de
alcançar a solução de um problema.
Para determinar o sétimo elemento da série, precisamos descobrir qual a sua regra de
formatação, isto é, seu padrão de comportamento.
Para tal, observamos que a série obedece a uma constância; visto que existe uma
diferença constante entre cada elemento, a qual pode ser facilmente determinada, somos
capazes de determinar o sétimo e qualquer outro termo.
Podemos, então, descrever uma atividade bem quotidiana, como, por exemplo, trocar
uma lâmpada. Apesar de aparentemente óbvias demais, muitas vezes fazemos esse tipo
de atividade inconscientemente. Sem percebermos seus pequenos detalhes. Vejamos se
ela fosse descrita passo a passo:
- pegue a escada;
- posicione-a embaixo da lâmpada;
- busque uma lâmpada nova;
- suba na escada;
- retire a lâmpada velha;
- coloque a lâmpada nova.
2.5 – Programação
Para que um computador possa desempenhar uma tarefa é necessário que esta seja
detalhada passo-a-passo, numa forma compreensível pela máquina, utilizando aquilo que
se chama de programa. Neste sentido, um programa de computador nada mais é que um
algoritmo escrito numa forma compreensível pelo computador (linguagem de
programação).
É assim também com os algoritmos escritos para computador, você deve especificar
todos os passos, para que o computador possa chegar ao objetivo. Por exemplo:
Nos dois exemplos acima, o primeiro possui repertório bem definido, mas não finito,
enquanto que o segundo tem um critério de parada, ou seja, é finito e descreve um
padrão de comportamento, ou seja, temos um algoritmo.
3
2.6 – Programa
Programas são processos de automação. Uma tarefa deixa de ser desempenhada pelo
homem e passa a ser realizada por máquinas, sejam estes dispositivos mecânicos,
eletrônicos (como os computadores) ou de natureza mista.
Para que a automação de uma tarefa seja bem-sucedida é necessário que a máquina que
passará a realizá-la seja capaz de desempenhar cada uma das etapas constituintes do
processo a ser automatizado com eficiência, de modo a garantir a repetibilidade do
mesmo.
Assim, é necessário que seja especificado com clareza e exatidão o que deve ser
realizado em cada uma das fases do processo a ser automatizado, bem como a
seqüência em que estas fases devem ser realizadas.
Onde temos:
2.7.1 – Entrada
São os dados de entrada do algoritmo.
Hardwares para entradas de dados: teclado, mouse, microfone, scanner
2.7.2 – Processamento
São os procedimentos utilizados para chegar ao resultado final.
2.7.3 – Saída
São os dados já processados.
Hardwares para saída de dados: impressora, monitor, caixa de som
- Descrição Narrativa;
- Fluxograma;
- Pseudocódigo, também conhecido como Linguagem Estruturada ou Portugol.
4
3.1 - Descrição Narrativa
Nesta forma de representação os algoritmos são expressos diretamente em linguagem
natural.
Esta representação é pouco usada na prática porque o uso da linguagem natural muitas
vezes dá oportunidade a más interpretações, ambigüidades e imprecisões.
Vantagens:
Desvantagens:
- Imprecisão;
- Pouca confiabilidade (a imprecisão acarreta a desconfiança);
- Extensão (normalmente, escreve-se muito para dizer pouca coisa).
3.2 - Fluxograma
É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam
ações (instruções, comandos) distintos. Tal propriedade facilita o entendimento das idéias
contidas nos algoritmos e justifica sua popularidade.
5
Terminal – indica início e/ou fim do fluxo de um programa
ou sub-programa.
inicio
n1
n2
6
1
.F. .V.
(media >= 7)
“reprovado” “aprovado”
fim
De modo geral, um fluxograma se resume a um único símbolo inicial por onde a execução
do algoritmo começa, e um ou mais símbolos finais, que são pontos onde a execução do
algoritmo se encerra. Partindo do símbolo inicial, há sempre um único caminho orientado
a ser seguido, representando a existência de uma única seqüência de execução das
instruções.
Isto pode ser melhor visualizado pelo fato de que, apesar de vários caminhos poderem
convergir para uma mesma figura do diagrama, há sempre um único caminho saindo
desta. Exceções a esta regra são os símbolos finais, dos quais não há nenhum fluxo
saindo, e os símbolos de decisão, de onde pode haver mais de um caminho de saída
(usualmente dois caminhos), representando uma bifurcação no fluxo.
Vantagens:
Desvantagens:
3.3 - Pseudocódigo
De forma semelhante como os programas são escritos. Também chamado de Portugol ou
Português Estruturado.
7
Na verdade, esta representação é suficientemente geral para permitir a tradução de um
algoritmo nela representado para uma linguagem de programação específica seja
praticamente direta.
algoritmo <Nome_do_Programa>
<declaração_de_variáveis>
inicio
<corpo do algoritmo>
FimAlgoritmo
algoritmo CalculoMedia
var n1, n2, media: real
inicio
leia n1
leia n2
media ← ((n1 + n2) / 2)
se (media >= 7) entao
escreva (“aprovado”)
senao
escreva (“reprovado”)
fimse
FimAlgoritmo
Vantagens:
Desvantagens:
8
4 - Ciclo de vida de um programa
Como tudo na terra, o programa tem um tempo de vida, chamado de ciclo de vida de um
programa.
4.1.1 - Planejamento
É a fase onde definimos o problema a ser resolvido utilizando um computador. Nesta fase
relacionamos a entrada e a saída do futuro programa, assim como a definição dos
arquivos auxiliares que ele venha a utilizar.
4.1.2 - Projeto
É a fase onde a resolução do problema é concebida. Neste ponto são definidos detalhes
do algoritmo, estrutura de dados empregados pelo programa.
4.1.3 - Escrita
Consiste em codificar o programa em uma linguagem de programação apropriada.
4.1.4 - Depuração
Ao final da escrita estaremos com o programa quase pronto; mas será que ele funciona?
Esta é a fase onde se corrigem os erros, até que o objetivo seja alcançado.
4.1.5 - Implantação
O programa é disponibilizado ao cliente para utilização.
4.1.6 - Manutenção
O programa poderá ser alterado, tanto para corrigir erros não encontrados na fase de
depuração / implantação, como também para atender novas necessidades a serem
solicitadas pelos usuários.
9
Determinar o que deve ser feito para transformar as entradas determinadas nas saídas
específicas.
Cada uma das partes constituintes da figura abaixo tem os seguintes significados:
(4) Memória:
Guarda o algoritmo a ser executado e os dados a serem utilizados pelo mesmo. Todo
dado fornecido ao computador e o resultado de suas operações ficam guardados na
memória;
(2)
Unidade Lógica
e Aritmética
(4)
Memória Principal
10
4.4 - Funcionamento do nosso computador
Todos os computadores, independentemente dos seus tamanhos, são conceitualmente
semelhantes ao esquema da figura anterior (há algumas diferenças, mas não trataremos
aqui dos casos especiais).
Vejamos como seria resolvido esse mesmo problema em termos das operações básicas
citadas anteriormente:
Em resumo, pode-se dizer que escrever algoritmos ou, em última análise, programar
consiste em dividir qualquer problema em muitos pequenos passos, usando uma ou mais
das quatro operações básicas citadas.
Leia X,Y
SOMA = X + Y
Escreva SOMA
A maior parte das pessoas não ligadas à área de informática ignora o potencial dos
computadores e imagina que eles são capazes de tratar apenas com dados numéricos.
Na realidade, a capacidade dos mesmos se estende a outros tipos de dados.
- Inteiros;
- Reais.
12
Como dito anteriormente, os elementos dos conjuntos de números fracionários e reais são
necessariamente representados no computador por dados do tipo real. Havendo a parte
decimal, deverá ser utilizado o caractere ponto (.) e não a vírgula.
Note que, por exemplo, "1.2" representa um dado do tipo literal de comprimento 3,
constituído pelos caracteres "1", "." e "2", diferindo de 1.2 que é um dado do tipo real.
O tipo de dados lógico é usado para representar dois únicos valores lógicos possíveis:
verdadeiro e falso. É comum encontrar-se em outras referências outros tipos de pares de
valores lógicos como sim/não, 1/0, true/false.
Nos algoritmos apresentados nesta apostila os valores lógicos serão delimitados pelo
caractere ponto (.).
Exemplo:
13
A árvore abaixo resume a classificação dos dados com relação aos tipos de dados
apresentados.
5.4 - Variáveis
Tudo o que é instável, inconstante. Serão armazenadas pela memória do computador, e é
necessário identificar qual é o melhor tipo de dados a ser utilizado.
Para que não se "esqueça" das informações, o computador precisa guardá-las em sua
memória. Cada variável representa um valor, e a qualquer instante pode ser alterado
(quando for realizado um comando para fornecer um novo valor).
5.5.1 – Memória
O acesso às informações armazenadas na memória (leitura, escrita) é feita Byte a Byte.
Cada Byte é formado por uma combinação de 8 dígitos binários (0 e 1), sendo assim, um
Byte possui 256 (28) estados possíveis ou representa 256 símbolos de informação.
5.5.3 – Identificadores
Podemos imaginar a memória como sendo um armário repleto de gavetas, no qual as
gavetas seriam os locais físicos responsáveis por armazenar objetos; os objetos (que
podem ser substituídos ou não) seriam as informações (dados), e as gavetas as variáveis
ou constantes.
14
Visto que na memória (armário) existem inúmeras variáveis (gavetas), precisamos
diferenciá-las, o que é feito por meio de identificadores (etiquetas). Cada variável
(gaveta), no entanto, pode guardar apenas uma informação (objeto) de cada vez, sendo
sempre do mesmo tipo (material).
Exemplos válidos:
Todas as variáveis utilizadas em algoritmos serão definidas no início do mesmo, por meio
de um comando de uma das formas seguintes:
A palavra-chave var deverá estar presente sempre e será utilizada uma única vez na
definição de um conjunto de uma ou mais variáveis;
Numa mesma linha poderão ser definidas uma ou mais variáveis do mesmo tipo. Para tal,
devem-se separar os nomes das mesmas por vírgulas;
var
nome : caractere
idade : inteiro
salario : real
temfilhos : logico
15
No exemplo acima foram declaradas quatro variáveis:
6 - Expressões
6.1 - Conceito
O conceito de expressão em termos computacionais está intimamente ligado ao conceito
de expressão (ou fórmula) matemática, onde um conjunto de variáveis e constantes
numéricas relacionam-se por meio de operadores aritméticos compondo uma fórmula
que, uma vez avaliada, resulta num valor.
Esta fórmula utiliza três variáveis: b e h, que contêm as dimensões do triângulo, e area,
onde é guardado o valor calculado (resultado da avaliação da expressão). Há, também,
uma constante (0.5) e o operador de multiplicação (*), que aparece duas vezes na
expressão.
6.2 - Operadores
Operadores são elementos funcionais que atuam sobre operandos e produzem um
determinado resultado. Por exemplo, a expressão 3 + 2 relaciona dois operandos (os
números 3 e 2) por meio do operador (+) que representa a operação de adição.
Ex.: o sinal de (-) na frente de um número, cuja função é inverter seu sinal.
Mais adiante serão apresentados os operadores dos diversos tipos acima relacionados.
17
Tabela - Operadores aritméticos e sua ordem de prioridade
Operador Tipo Operação Prioridade
+ Binário Adição 4
- Binário Subtração 4
* Binário Multiplicação 3
/ Binário Divisão 3
^ ou ** Binário Exponenciação 2
+ Unário Manutenção de sinal 1
- Unário Inversão de sinal 1
A prioridade entre operadores define a ordem em que os mesmos devem ser avaliados
dentro de uma mesma expressão. Este assunto será tratado com maior profundidade
numa seção posterior.
Para exemplificar o uso de operadores lógicos, a Tabela 5.3 apresenta duas variáveis
lógicas A e B. Uma vez que cada variável lógica possui somente dois valores possíveis,
então há exatamente quatro combinações para estes valores, razão pela qual a tabela
tem quatro linhas. As diversas colunas contêm os resultados das operações lógicas sobre
as combinações possíveis dos valores das variáveis A e B.
O operador lógico .nao. sempre inverte o valor de seu operando. Ex.: . nao. .V. = .F. e .
nao. .F. = .V.;
Para que a operação lógica .ou. tenha resultado verdadeiro basta que um de seus
operandos seja verdadeiro; Para melhor visualizar este efeito, podemos imaginar que as
18
variáveis lógicas a e b são como dois interruptores ligados em paralelo num circuito de
acionamento de uma lâmpada.
Há, ainda, outro tipo de operador que pode aparecer em operações lógicas: os
operadores relacionais, mostrados na Tabela.
7 - Comandos de Atribuição
Um comando de atribuição permite-nos fornecer um valor a certa variável, onde o tipo
dessa informação deve ser compatível com o tipo da variável, isto é, somente podemos
atribuir um valor lógico a uma variável capaz de comportá-lo, ou seja, uma variável
declarada do tipo lógico. O comando de atribuição é uma seta apontando para a variável
ou dois pontos e o sinal de igual (<-):
Exemplo:
var
a, b,c : real
inicio
a <- 5
b <- a+b
c <- b*a
7.1 – Constantes
Entendemos que uma informação é constante quando não sofre nenhuma variação no
decorrer do tempo.
var
nomepadrao : caracter
valorpi: real
inicio
nomepadrao <- “João”
valorpi <- 3.1415
19
No exemplo acima foram declaradas duas constantes:
- a variável constante nomepadrao, que foi atribuído um valor fixo “João” do tipo
Alfanumérico;
- a variável constante valorpi, que foi atribuído um valor fixo 3.1415 do tipo Real;
leia (variável)
escreva (variável)
escreval (variável) // Para pulara para a linha seguinte, basta acrescentar a letra “l”
8 - Estruturas de Controle
8.1 - Estrutura Seqüencial
É o conjunto de ações primitivas que serão executadas numa seqüência linear de cima
para baixo e da esquerda para direita, isto é, na mesma ordem em que foram escritas.
Como podemos perceber, todas as ações devem pular uma linha, o que objetiva separar
uma ação de outra.
Variáveis;
(declaração de variáveis)
início
comando 1
comando 2
comando 3
FimAlgoritmo.
20
Planejamento
Problema: Calcular a soma de dois números.
Objetivo: Apresentar a soma de dois números.
Entradas: N1, N2
Saídas: SOMA
Projeto
Cálculos:
SOMA <- N1 + N2
Fluxograma
Portugol
algoritmo Algoritmo01
var
N1 : real
N2 : real
SOMA: real
inicio
leia N1
leia N2
SOMA <- N1 + N2
escreva SOMA
FimAlgoritmo
21
8.2.1 - Decisão Simples
Se <condição> entao
{bloco verdade}
Fimse
<condição> é uma expressão lógica, que, quando inspecionada, pode gerar um resultado
falso ou verdadeiro.
Se .V., a ação primitiva sob a cláusula será executada; caso contrário, encerra o
comando, neste caso, sem executar nenhum comando.
Planejamento
Problema: Calcular a soma de dois números e apresentar o resultado com condição.
Objetivo: Apresentar o resultado apenas se for maior que 10.
Entradas: N1, N2
Saídas: SOMA
Projeto
Cálculos e detalhamento:
SOMA <- N1 + N2
Se (SOMA > 10) entao
escreva SOMA
Fimse
Fluxograma
INICIO
N1
N2
SOMA N1 + N2
.F. .V.
SOMA > 10
SOMA
FIM
22
Portugol
Algoritmo Algoritmo02
Var
N1: Real
N2: Real
SOMA: Real
Inicio
Leia N1
Leia N2
SOMA <- N1 + N2
Se (SOMA > 10) entao
Escreva SOMA
Fimse
FimAlgoritmo
<condição> é uma expressão lógica, que, quando inspecionada, pode gerar um resultado
falso ou verdadeiro.
Se .V., a ação primitiva sob a cláusula será executada; caso contrário, isto é, se for .F., a
ação primitiva sob a cláusula será executada.Após isto, encerra a condição com o
comando Fimse.
Planejamento
Problema: Calcular a soma de dois números e apresentar o resultado com uma condição.
Objetivo: Apresentar o Resultado se for igual ou maior que 10 adicionando mais 5, se
não for igual ou maior que 10 deverá subtrair 7.
Entradas: A, B
Saídas: TOTAL
Auxiliares: SOMA
Projeto
Cálculos e detalhamento:
SOMA <- A + B
Se (SOMA >= 10) Então
TOTAL <- SOMA + 5
Senão
TOTAL <- SOMA - 7
Fimse
23
Fluxograma
INICIO
SOMA A+B
.F. .V.
SOMA > =10
TOTAL
FIM
Portugol
Algoritmo Algoritmo03
Var
A: Real
B: Real
SOMA: Real
TOTAL: Real
Inicio
Leia A
Leia B
SOMA ← A + B
Se (SOMA >= 10) entao
TOTAL ← SOMA + 5
Senao
TOTAL ← SOMA – 7
Fimse
Escreva TOTAL
FimAlgoritmo
Exemplo:
24
Se (variavel = valor1) entao
comando1
Senao
Se (variavel = valor2) entao
Comando2
Senao
Se (variavel = valor3) entao
Comando3
Senao
Se (variavel = valor4) entao
Comando4
Senao
comando5
Fimse
Fimse
Fimse
Fimse
Planejamento
Objetivo: Apresentar um número por extenso.
Entradas: numero
Saídas:
Auxiliares:
Projeto
Cálculos e detalhamento:
escolha numero
caso 1
escreva “um”
caso 2
escreva “dois”
caso 3
escreva “três”
caso 4
escreva “quatro”
outrocaso
escreva “número inválido”
fimescolha
25
Fluxograma
INICIO
numero
.V.
Numero=1 “um”
.V.
Numero=2 “dois”
.V.
Numero=3 “tres”
.V.
Numero=4 “quatro
”
“numero invalido”
FIM
Portugol
Algoritmo Algoritmo04
Var
numero: inteiro
Inicio
Leia numero
escolha numero
caso 1
escreva “um”
caso 2
escreva “dois”
caso 3
escreva “três”
caso 4
escreva “quatro”
outrocaso
escreva “número inválido”
fimescolha
FimAlgoritmo
26
8.3 – Estruturas de Repetição
Estas estruturas possibilitam que nosso algoritmo seja muito mais enxuto e fácil de se
programar.
Algoritmo FatorialNumero8
variaveis
fat : real;
início
fat <- 8 * 7
fat <- fat * 6
fat <- fat * 5
fat <- fat * 4
fat <- fat * 3
fat <- fat * 2
escreva (fat)
FimAlgoritmo.
O resultado será o fatorial com certeza, mas, imagine se fosse o fatorial de 250. Ou ainda,
o usuário deseja fornecer o número e o algoritmo deve retornar o fatorial, qual número
será digitado?
Para isso servem as estruturas de repetição, elas permitem que um determinado bloco de
comandos seja repetido várias vezes, até que uma condição determinada seja satisfeita.
Planejamento
Objetivo: Apresentar o resultado da soma obtida dos cem primeiros números inteiros
Entradas: Num
Saídas: Tot
27
Projeto
Cálculos e detalhamento:
Enquanto Num <= 100 faca
Tot<--Tot+Num
num=num+1
FimEnquanto
Fluxograma
INICIO
num <- 0
tot <- 0
.F.
Enquanto Num
<= 100
.V.
Tot <-Tot+Num
tot
FIM
Portugol
Algoritmo Algoritmo05
Var
Num, tot : inteiro
Inicio
Num <- 0
Tot <- 0
Enquanto Num <= 100 faca
Tot <-Tot+Num
Num <- num+1
FimEnquanto
Escreva Tot
FimAlgoritmo
28
8.3.2 – Repita ... Ateque - Estrutura com teste no final
Esta estrutura faz seu teste de parada após o bloco de comandos, isto é, o bloco de
comandos será repetido, até que a condição seja V. Os comandos de uma estrutura repita
.. até sempre serão executados pelo menos uma vez.
Repita
comando1
comando2
comando3
ateque <condição>
Planejamento
Objetivo: Apresentar o resultado da soma obtida dos cem primeiros números inteiros
Entradas: Num
Saídas: Tot
Projeto
Cálculos e detalhamento:
Num=1
Repita
Tot <-Tot+Num
Num <- num+1
Ateque Num >= 100
Portugol
Algoritmo Algoritmo06
Var
Num, tol : inteiro
Inicio
Num <- 1
Tot <- 0
Repita
Tot <-Tot+Num
Num <- num+1
Ateque Num >= 100
Escreva Tot
FimAlgoritmo
29
Fluxograma
INICIO
num <- 1
tot <- 0
Tot <-Tot+Num
.F. .V.
Ateque Num
>= 100
tot
FIM
8.3.3 – Para ... de ... ate ... Passo ... faca – Estrutura com
variável de Controle
Nas estruturas de repetição vistas até agora, acorrem casos em que se torna difícil
determinar quantas vezes o bloco será executado. Sabemos que ele será executado
enquanto uma condição for satisfeita - enquanto..faça, ou até que uma condição seja
satisfeita - repita...até. A estrutura para .. passo repete a execução do bloco um número
definido de vezes, pois ela possui limites fixos:
Planejamento
Objetivo: Apresentar o resultado da soma obtida dos cem primeiros números inteiros
Entradas: Num
Saídas: Tot
30
Projeto
Cálculos e detalhamento:
Para num de 1 a 100 passo 1 faca
Tot <-Tot+Num
FimPara
Fluxograma
INICIO
tot <- 0
.F.
Para num de 1
a 100 passo 1
f
.V.
Tot <-Tot+Num
tot
FIM
Portugol
Algoritmo Algoritmo07
Var
Num, tol : inteiro
Inicio
Tot <- 0
Para num de 1 a 100 passo 1 faca
Tot <-Tot+Num
FimPara
Escreva Tot
FimAlgoritmo
9 - Conclusão
Este semestre teve como principal objetivo capacitar o aluno a entender os conceitos
fundamentais de lógica de programação de forma independente da linguagem e introduzi-
lo a uma metodologia de desenvolvimento de programas.
31
Sumário
1 - Introdução à disciplina de Lógica de Programação.......................................................2
2 – Lógica de Programação................................................................................................2
2.1 - O que é Lógica? .........................................................................................................2
2.2 - Existe Lógica no dia-a-dia? ........................................................................................2
2.3 - O que é Algoritmo? ....................................................................................................2
2.4 - O que é padrão de comportamento?..........................................................................3
2.5 – Programação .............................................................................................................3
2.6 – Programa...................................................................................................................4
2.7 – Etapas de um programa ............................................................................................4
2.7.1 – Entrada ...................................................................................................................4
2.7.2 – Processamento.......................................................................................................4
2.7.3 – Saída ......................................................................................................................4
6 - Expressões..................................................................................................................16
6.1 - Conceito ...................................................................................................................16
6.2 - Operadores ..............................................................................................................17
6.3 - Tipos de Expressões ................................................................................................17
32
6.3.1 - Expressões Aritméticas .........................................................................................17
6.3.2 - Expressões Lógicas ..............................................................................................18
8 - Estruturas de Controle.................................................................................................20
8.1 - Estrutura Seqüencial ................................................................................................20
Algoritmo - 01: Criar um programa que efetue a leitura de dois valores numéricos. Faça a
operação de soma entre os dois valores e apresente o resultado obtido.........................................20
8.2 - Estruturas de Seleção ou Decisão ...........................................................................21
8.2.1 - Decisão Simples....................................................................................................22
Algoritmo - 02: Ler dois valores numéricos, efetuar a adição e apresentar o resultado caso o valor
somado seja maior que 10. .............................................................................................................22
8.2.2 - Decisão Composta ................................................................................................23
Algoritmo - 03: Ler dois valores numéricos, efetuar a adição. Caso o valor somado seja maior ou
igual a 10, este deverá ser apresentado somando-se a ele mais 5, caso o valor somado não seja
maior ou igual a 10, este deverá ser apresentado subtraindo-se 7..................................................23
8.2.3 – Seleção Múltipla ...................................................................................................24
Algoritmo - 04: Ler um número inteiro entre 1 e 4 e escrever o número por extenso
correspondente: exemplo: Lido 1, será apresentado um. Lido 2, será apresentado dois etc..........25
8.3 – Estruturas de Repetição ..........................................................................................27
8.3.1 – Enquanto ... Faca - Estrutura com teste no Início.................................................27
Algoritmo - 05: Apresentar o total da soma obtida dos cem primeiros números inteiros
(1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Enquanto ... Faca).........................27
8.3.2 – Repita ... Ateque - Estrutura com teste no final ....................................................29
Algoritmo – 06: Apresentar o total da soma obtida dos cem primeiros números inteiros
(1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Repita ... Até)................................29
8.3.3 – Para ... de ... ate ... Passo ... faca – Estrutura com variável de Controle..............30
Algoritmo - 07: Apresentar o total da soma obtida dos cem primeiros números inteiros
(1+2+3+4+5+6+7+...+97+98+ 99+100). (Utilizar a estrutura Para .. Passo).................................30
9 - Conclusão ...................................................................................................................31
Sumário ............................................................................................................................32
Anexo - Bibliografia ..........................................................................................................34
Anexo - Listas de Exercícios ............................................................................................35
1º Lista de Exercícios .....................................................................................................................35
2º Lista de Exercícios .....................................................................................................................35
3º Lista de Exercícios .....................................................................................................................36
4º Lista de Exercícios .....................................................................................................................37
5º Lista de Exercícios .....................................................................................................................38
6º Lista de Exercícios .....................................................................................................................38
7º Lista de Exercícios .....................................................................................................................38
8º Lista de Exercícios .....................................................................................................................39
9º Lista de Exercícios .....................................................................................................................39
10º Lista de Exercícios ...................................................................................................................39
11º Lista de Exercícios ...................................................................................................................40
12º Lista de Exercícios ...................................................................................................................40
13º Lista de Exercícios ...................................................................................................................41
14º Lista de Exercícios ...................................................................................................................42
15º Lista de Exercícios ...................................................................................................................42
33
Anexo - Bibliografia
Bibliografia básica recomendada:
Bibliografia complementar:
Lopes, A., Garcia, G.: Introdução à Programação – 500 Algoritmos resolvidos. Rio de
Janeiro: Campus, 2002.
34
Anexo - Listas de Exercícios
Instruções gerais
1º Lista de Exercícios
Montar em Descrição Narrativa, Fluxograma e Portugol.
1 - Crie uma seqüência lógica para tomar banho. Verificar o que fazer se acabar a água.
2 - Descreva com detalhes a seqüência lógica para Trocar um pneu de um carro. Verificar
se tem estepe.
3 - Faça um algoritmo que crie um suco de acerola. Caso não tenha açúcar substituir por
adoçante.
2º Lista de Exercícios
Utilizando linguagem natural, fluxogramas e Portugol, resolver os seguintes
problemas:
2 - Construa um algoritmo que mostre todos os passos que você segue para escolher o
tipo de roupa com que vai sair, após levantar, levando em consideração apenas o tempo
(bom, nublado, chuvoso) e a temperatura (quente, moderado, frio).
3 - Elabore um algoritmo que mova três discos de uma Torre de Hanói, que consiste em
três hastes (a - b - c), uma das quais serve de suporte para três discos diferentes (1 - 2 -
3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer
haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo é
transferir os três discos para outra haste.
Simulação no site: http://www.npd.ufes.br/hanoi
4 - Três jesuítas e três canibais precisam atravessar um rio; para tal, dispõem de um
barco com capacidade para duas pessoas. Por medidas de segurança não se permite que
em alguma margem a quantidade de jesuítas seja inferior à de canibais. Qual a seqüência
de passos que permitiria a travessia com segurança?
35
3º Lista de Exercícios
Favor entregar esta lista nesta própria folha (obrigatório)
1 - Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com I
os dados do tipo Inteiros, com R os Reais, com A os Alfanumérico, com B os lógicos
(Booleanos). Deixe em branco aqueles para os quais não é possível definir a priori um
tipo de dado.
3 - Assinale com um X os nomes válidos para uma VARIÁVEL: Justifique o motivo quando
for um nome inválido:
( ) z8ur8cmv ____________________________________________
( ) 18log ____________________________________________
( ) y3 ____________________________________________
( ) R$ 85.05 ____________________________________________
( ) PROVA 1 ____________________________________________
( ) data15_03_2000 ____________________________________________
( ) ShoppingMorumbi ____________________________________________
( ) constante80.9 ____________________________________________
( ) inicio ____________________________________________
( ) " mediad " ____________________________________________
( ) [email protected] ____________________________________________
( ) X ____________________________________________
( ) fim ____________________________________________
( ) laranja 12_reais ____________________________________________
( ) Sul ____________________________________________
( ) RAMAL ____________________________________________
( ) O I A ____________________________________________
( ) 5x ____________________________________________
( ) var ____________________________________________
36
4º Lista de Exercícios
Favor entregar esta lista nesta própria folha (obrigatório)
2 - Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com I
os dados do tipo inteiro, com R os reais, com L os literais, com B os lógicos (booleanos), e
com N aqueles para os quais não é possível definir a priori um tipo de dado.
37
5º Lista de Exercícios
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado
(Portugol) dos seguintes programas:
1 - Criar um programa que efetue a leitura de quatro valores numéricos. Faça a operação
de soma entre os quatro valores e apresente o resultado obtido.
6º Lista de Exercícios
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado
(Portugol) dos seguintes programas:
7º Lista de Exercícios
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado
(Portugol) dos seguintes programas:
8º Lista de Exercícios
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado
(Portugol) dos seguintes programas:
1 - Ler dois valores numéricos, efetuar a multiplicação entre eles, e apresentar o resultado
caso o valor multiplicado seja maior ou igual que 5000.
9º Lista de Exercícios
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado
(Portugol) dos seguintes programas:
1 - Ler 4 notas escolares de um aluno e imprimir uma mensagem dizendo que o aluno foi
aprovado, se o valor da média for maior ou igual que 7.
Caso o contrário, solicitar a nota do exame final, somar com o valor da média e obter a
nova média. Se a nova média for maior ou igual a 5, apresentar uma mensagem que o
aluno foi aprovado em exame. Se o aluno não foi aprovado, indicar uma mensagem
informando esta condição. Apresentar com as mensagens o valor da média do aluno,
para qualquer condição.
2 - Conheça três números inteiros, e informe qual é o maior. Exibi-los depois em ordem
crescente.
3 - Construa um algoritmo que verifique a validade de uma senha fornecida pelo usuário.
A senha válida deve ser igual a ‘cachorro’.
4 - Elaborar um programa que apresente o valor de uma potência de uma base qualquer
elevada a um expoente qualquer, ou seja, de NM.
40
13º Lista de Exercícios
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado
(Portugol) dos seguintes programas:
1 - Escrever um algoritmo que calcule a média dos números digitados pelo usuário, se
eles forem pares, termine a leitura se o usuário digitar 0 (zero) e mostre o resultado final.
2 - Fazer um programa para imprimir o conceito de um aluno, dada a sua nota. Supor
notas inteiras somente. O critério para conceitos é o seguinte:
- nota inferiores a 3 - conceito E;
- nota de 3 a 5 - conceito D;
- notas 6 e 7 - conceito C;
- notas 8 e 9 - conceito B;
- nota 10 - conceito A.
3 - Ler vinte valores e contar quantos deles são maiores que 1000.
4 – Faça um algoritmo que exiba os números pares entre 1000 e 0, nessa ordem, usando
a estrutura para.
41
14º Lista de Exercícios
Desenvolva os algoritmos nas 3 formas de representação: Descrição Narrativa
(Planejamento e Projeto), Fluxograma e codificação em Português Estruturado
(Portugol) dos seguintes programas:
1 - Faça um programa para gerar e exibir os números inteiros de 20 até 10, decrescendo
de 1 em 1.
3 - Escreva um algoritmo que escreva 15 vezes o nome do seu time preferido. O valor
deve ser inserido pelo usuário. Ao final, apresentar também: "O melhor time do século!".
4 - Escreva um algoritmo que calcule a soma e a média dos salários dos funcionários de
uma empresa. O programa termina quando o usuário digitar um salário menor que 0.
42