Escolar Documentos
Profissional Documentos
Cultura Documentos
DE PROGRAMAÇÃO I
PROF. ME. RICARDO ZANNI SILVEIRA
Diretor Geral | Valdir Carrenho Junior
“
A Faculdade Católica Paulista tem por missão exercer uma
ação integrada de suas atividades educacionais, visando à
geração, sistematização e disseminação do conhecimento,
para formar profissionais empreendedores que promovam
a transformação e o desenvolvimento social, econômico e
cultural da comunidade em que está inserida.
Av. Cristo Rei, 305 - Banzato, CEP 17515-200 Marília - São Paulo.
www.uca.edu.br
Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma
sem autorização. Todos os gráficos, tabelas e elementos são creditados à autoria,
salvo quando indicada a referência, sendo de inteira responsabilidade da autoria a
emissão de conceitos.
ALGORITMOS E LÓGICA
DE PROGRAMAÇÃO I
PROF. ME. RICARDO ZANNI SILVEIRA
SUMÁRIO
AULA 01 INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO 04
AULA 1
INTRODUÇÃO À LÓGICA DE
PROGRAMAÇÃO
É muito comum associarmos a palavra lógica apenas à matemática, mas esse termo
normalmente está relacionado à coerência e à racionalidade (FORBELLONE, 2005). A
lógica pode ser relacionada com a expressão “correção do pensamento”, pois uma de suas
responsabilidades é determinar quais operações são válidas e quais não são (FORBELLONE,
2005).
De acordo com Forbellone (2005), a lógica também pode ser interpretada como a “ciência
das formas do pensamento”, uma vez que a forma mais complexa do pensamento é o
raciocínio e, portanto, a lógica estuda a correção do raciocínio.
A lógica de programação utiliza-se do uso correto das leis do pensamento e dos processos
de raciocínio na programação de computadores, com o objetivo de racionalizar e desenvolver
técnicas que auxiliem na produção de soluções logicamente válidas e coerentes e que resolvam
com eficiência os problemas que se deseja programar (FORBELLONE, 2005).
Segundo Forbellone (2005), o principal objetivo do estudo da Lógica de Programação é
a construção de algoritmos válidos e compreensivos.
Indicação de filme
AULA 2
CONCEITOS INICIAIS
AULA 3
COMO CONSTRUIR ALGORITMOS
Um algoritmo tem por finalidade fazer a representação mais fiel do raciocínio envolvido
na Lógica de Programação, e desse modo, nos permite absorver uma sequência de detalhes
computacionais (FORBELLONE, 2005).
De acordo com Forbellone (2005), uma das importâncias da construção de algoritmos é
que uma vez compreendida uma solução algorítmica para um determinado problema, esta
pode ser traduzida para qualquer linguagem de programação.
Segundo Ascencio (2012), para a construção de qualquer tipo de algoritmo, é preciso
seguir estes passos:
a. Compreender completamente o problema a ser resolvido e destacar os pontos mais
importantes e os objetos que o compõem.
b. Definir os dados de entrada, isto é, quais dados serão fornecidos e quais objetos fazem
parte do cenário do problema.
c. Definir o processamento. Quais operações serão efetuadas e quais serão as restrições
para essas operações. A responsabilidade de transformar os dados de entrada em
dados de saída e de verificar quais objetos são responsáveis pela atividade é atribuição
do processamento;
d. Definir os dados de saída.
e. Construir o algoritmo utilizando um dos tipos mais comuns de algoritmos.
f. Testar o algoritmo através de simulações.
Dica de leitura
AULA 4
TIPOS DE ALGORITMOS:
LINGUAGEM NATURAL,
FLUXOGRAMA E PSEUDOCÓDIGO
Um algoritmo é uma linha de raciocínio que pode ser descrito de diversas maneiras, de forma
textual ou gráfica, e cada uma dessas técnicas tem suas vantagens e desvantagens, mas ambas
permitem um nível elevado de clareza em relação ao fluxo de execução (FORBELLONE, 2005).
De acordo com Ascencio (2012), os três tipos de algoritmos mais utilizados são: linguagem
natural, fluxograma e pseudocódigo.
Linguagem Natural
Fluxograma
Anote isso
Pseudocódigo
Algoritmo
Declare N1, N2, M Numérico
Escreva “Digite dois números”
Leia N1, N2
M N1 * N2
Escreva “Multiplicação = “, M
Fim_Algoritmo.
AULA 5
COMANDOS DE ENTRADA E SAÍDA
LEIA X
ESCREVA X
Variáveis
Constantes
+ Adição 1 + 2, A + B
- Subtração 6 – 3, A – B
* Multiplicação 2 * 4, A * B
a. 4 + 2 + 6/2
4+2+3
9
b. 4 – 2 * 6/3 – pot(2,3)
4 – 2 * 6/3 – 8
4 – 12/3 – 8
4–4–8
-8
Exemplos:
a. 3 * 4 = 24/2
12 = 12
V
AULA 6
TABELA-VERDADE
(OPERADORES LÓGICOS)
Os operadores lógicos são utilizados para associar expressões que estabelecem uma
comparação entre valores, segundo Guedes (2014), para a formação de novas proposições
lógicas compostas a partir de outras proposições lógicas mais simples (FORBELLONE, 2005).
Operador Função
não negação
e conjunção
ou disjunção
Tabela 6 – Operadores lógicos
Fonte: Adaptado de Forbellone (2005, p. 22).
A B AeB
F F F
F V F
V F F
V V V
Tabela 8 – Operação de conjunção
Fonte: Adaptado de Forbellone (2005, p. 23).
A B A ou B
F F F
F V V
V F V
V V V
Tabela 9 – Operação de disjunção
Fonte: Adaptado de Forbellone (2005, p. 23).
De acordo com o autor Forbellone (2005), abaixo seguem alguns exemplos de aplicações
com tabelas-verdade:
a. Se chover e relampejar, eu fico em casa.
Quando eu fico em casa?
Nesse exemplo, a proposição somente será verificada quando os termos chover e relampejar
forem simultaneamente verdadeiros.
b. Se chover ou relampejar eu fico em casa.
Quando eu fico em casa?
Com o operador lógico ou as possibilidades de “eu fico em casa” são maiores, pois de acordo
com a tabela-verdade, a proposição se tornará verdadeira nos casos: somente chovendo,
somente relampejando e chovendo e relampejando.
c. 2 < 5 e 15/3 = 5
Ve5=5
V=V
V
d. 2 < 5 ou 15/3 = 5
V ou V
V
Prioridade Operadores
1ª não
2ª e
3ª ou
Tabela 10 – Operação de conjunção
Fonte: Adaptado de Forbellone (2005, p. 24).
Prioridade Operadores
1ª parênteses mais internos
2ª operadores aritméticos
3ª operadores relacionais
4ª operadores lógicos
Tabela 11 – Precedência entre todos operadores
Fonte: Adaptado de Forbellone (2005, p. 24).
Exemplo:
a. não (4 <> 8/2) ou V e 3 – 6 > 6 – 3 ou V
não ( 4 <> 4 ou V e – 3 > 3 ou V)
não (F ou V e F ou V)
não (F ou F ou V)
não (F ou V)
não (V)
F
FACULDADE CATÓLICA PAULISTA | 18
ALGORITMOS E LÓGICA
DE PROGRAMAÇÃO I
PROF. ME. RICARDO ZANNI SILVEIRA
AULA 7
ESTRUTURA SEQUENCIAL
Segundo Ascencio (2012), as variáveis são declaradas após a palavra DECLARE e os tipos
mais usuais são: NUMÉRICO (para variáveis que irão receber números), LITERAL (para as
variáveis que irão receber caracteres) e LÓGICO (para as variáveis que irão receber valores
verdadeiro ou falso).
Exemplo:
DECLARE
X NUMÉRICO
Y, Z LITERAL
TESTE LÓGICO
Anote isso
Quando é criado um algoritmo deve-se especificar ações claras e precisas que, a partir de
um estado inicial e após um determinado tempo, resultem em um resultado final esperado.
Um algoritmo estabelece um padrão de comportamento a ser seguido, com o objetivo de
solucionar um problema, garantindo que sempre que for feito do mesmo modo, o resultado
final será o mesmo.
Fonte: Forbellone (2005, p. 4).
AULA 8
ESTRUTURA DE SELEÇÃO
A seleção simples é utilizada para testar certa condição antes de executar determinada
ação. Se a condição for aceita um determinado bloco de instruções deverá ser executado
e se a condição não for aceita, o fluxo da execução do algoritmo irá seguir após o fim do
bloco de decisão (GUEDES, 2014), como mostra o modelo abaixo:
se <condição>
então
<conjunto de instruções>
fimse
Exemplo:
Algoritmo Saber se o número informado é ímpar
1. declare
2. numero numérico
3.
4.início
5.
6. leia (numero)
7.
8. se ((numero mod 2) = 1 então
9.
10. escreva (“O número informado é ímpar”)
11.
12. fimse
13.
14. fim.
Como no exemplo anterior somente existe uma condição a ser executada, então esta
estrutura de seleção é denominada estrutura simples (GUEDES, 2014).
Utiliza-se a estrutura da seleção composta quando houver casos em que duas alternativas
dependem de uma mesma condição, uma de a condição ser verdade e outra de a condição
ser falsa como é descrito no modelo (FORBELLONE, 2005):
se <condição>
então
<conjunto de instruções para o teste de condição resultar em verdade>
senão
<conjunto de instruções para o teste de condição resultar em falso>
fimse
Exemplo:
Algoritmo Cálculo do bônus salarial
1. declare
2. salario, bônus, tempo numérico
3.
4. início
5.
6. leia (salario)
7. leia (tempo)
8.
9. se (tempo >= 5) então
10.
11. bônus salario * 0,20
12.
13. senão
14.
15. bônus salario * 0,10
16
17. fimse
18.
19. escreva (“O valor do bônus é”, bônus)
20.
21. fim.
Nota-se que existe uma condição para a resposta verdadeira e outra condição para
a resposta falsa, sendo assim, caracterizado como uma estrutura de seleção composta
(GUEDES, 2014).
Exemplo:
READLN(NOME);
Exemplo:
WRITELN(NOME);
Anote isso
AULA 9
SELEÇÃO HOMOGÊNEA
Então faça;
Fim_se;
De acordo com Forbellone (2005), uma estrutura de seleção heterogênea pode ser descrita
como o exemplo abaixo:
Exemplo:
Se <condição 1>
Então
Se <condição 2>
Então
Início // bloco verdade 1
Ação 1;
.
.
.
Ação n;
Fim; // bloco verdade 1
Fim_Se;
Senão
Se <condição 3>
Então
Início // bloco verdade 2
Ação 1;
.
.
.
Ação n;
Fim; // bloco verdade 2
Senão
Se <condição 4>
Então
Se <condição 5>
Então
<comando_verdadeiro>;
Fim_Se
Senão
<comando_falso>;
Fim_Se;
Fim_Se;
Fim_Se;
AULA 10
MÚLTIPLA ESCOLHA
Quando uma estrutura de seleção exerce um conjunto de opções para escolha ela é
denominada de seleção de múltipla escolha e existem duas formas de realizar, uma delas é
utilizando o encadeamento de instrução “Se”, e a outra é usando a instrução “escolha caso”
(GUEDES, 2014).
Na estrutura de seleção de múltipla escolha um conjunto de valores discretos precisa ser
testado e ações distintas são relacionadas a esses valores (FORBELLONE, 2005).
Exemplo pseudocódigo utilizando a instrução Se:
Se (variável = Tal_Coisa_1) então
<conjunto de instruções A>
Senão
Se (variável = Tal_Coisa_2) então
<conjunto de instruções B>
Senão
Se (variável = Tal_Coisa_3) então
<conjunto de instruções C>
Senão
<conjunto de instruções D>
Fim_Se
Fim_Se
Fim_Se
se verifica com todos os outros valores, exceto os discriminados caso a caso, é incluído a
situação “outro caso” (FORBELLONE, 2005).
Anote isso
Anote isso
Quer aprender um pouco mais sobre seleção múltipla escolha? acesse o link:< https://www.
youtube.com/watch?v=UG27GMtvzQM> e assista o vídeo “Seleção de Múltipla Escolha
(ESCOLHA...CASO)”, do Canal Byte no YouTube.
Existem situações recíprocas exclusivas que se uma situação for executada, as outras
demais não serão. Para o caso é indicado um comando mais seletivo como o “escolha_caso”
(ASCENCIO, 2012).
Escolha_caso (variável)
Início
Caso valor1: comando 1;
Ação 1;
Caso valor2: comando 2;
Ação 2;
Caso valor3: comando 3;
Ação 3;
Outro_caso: lista comandos;
Fim_Escolha_caso
O comando “escolha_caso” avalia o valor de uma variável para decidir qual caso será
executado. Cada caso está relacionado a um possível valor da variável. Quando o valor
da variável não coincidir com os valores especificados nos casos, então será executado o
comando “outro_caso” (ASCENCIO, 2012).
Dica de leitura
AULA 11
ESTRUTURA DE REPETIÇÃO
As estruturas de repetição permitem que um mesmo trecho de código seja executado mais
de uma vez (GUEDES, 2014). Essa estrutura é muito utilizada quando um algoritmo inteiro
ou somente um trecho dele precisa ser repetido e esse número de repetições pode ser fixo
ou estar vinculado a uma condição, segundo Ascencio (2012) que pode ser indeterminado,
mas necessariamente finito (FORBELLONE, 2005).
Segundo Forbellone (2005), os trechos dos algoritmos que se repetem são chamados de
laços de repetição e também são conhecidos por sua tradução em inglês, loops ou looping,
por lembrarem uma execução finita em círculos, que posteriormente, segue sua execução
normalmente.
A repetição com teste no início é caracterizada por uma estrutura de controle de fluxo de
execução que permite repetir diversas vezes um mesmo trecho de algoritmo, mas sempre
verificando antes de cada execução se é permitido executar o mesmo trecho do algoritmo
(FORBELLONE, 2005).
Para que aconteça a repetição com teste no início é utilizado a estrutura “enquanto”, que
possibilita que um bloco seja repetido enquanto uma determinada condição for verdadeira
(FORBELLONE, 2005).
De acordo com Ascencio (2012), essa estrutura de repetição é indicada quando não se
sabe a quantidade de vezes que um trecho do algoritmo deve ser repetido, mas também
pode ser utilizada quando se conhece a quantidade de vezes e se baseia na análise de uma
condição e a repetição é realizada enquanto a condição for verdadeira.
Enquanto a condição for verdadeira, os comandos 1, 2 e 3 serão executados.
Enquanto condição Faça
Início
Comando 1
Comando 2
Comando 3
Fim
Anote isso
De acordo com Guedes (2014), para os comandos internos das estruturas de repetição
existem dois tipos de uso de variáveis: os acumuladores e os contadores.
Quando a execução de um cálculo necessita de valores que sejam obtidos a cada interação
ou quando o cálculo somente estará finalizado com a conclusão da repetição, utiliza-se os
acumuladores. Para a operação em que será utilizado um acumulador deve ser inicializado
com um valor neutro (GUEDES, 2014).
No caso de uma adição o acumulador deve ser iniciado com o valor zero e ser for uma
multiplicação, o acumulador deve ser inicializado com o valor 1 (GUEDES, 2014). A variável
acumulador é usada para acumular à soma uma série de valores e devem ser inicializadas
com o valor zero antes de serem utilizadas, pois se isso não acontecer, a soma irá incluir o
valor anterior armazenado na posição de memória da variável acumulador (DEITEL, 2011).
Exemplo:
Algoritmo Soma
Var
Início
leia(num);
fim_para
escreva(“Soma = “, soma);
fim_algoritmo
Já os contadores servem para executar a contagem de uma ação que ocorre dentro da
estrutura de repetição (GUEDES, 2014). Essa técnica de utilizar um contador para controlar a
estrutura de repetição serve então para especificar a quantidade de vezes que um conjunto
de comandos será executado e é conhecida como repetição definida, pois o número de
repetições é conhecido antes que o loop comece a ser executado (DEITEL, 2011).
Essas variáveis contadoras devem ser inicializadas com os valores zero ou 1, dependendo
da sua utilização (DEITEL, 2011).
Exemplo:
Algoritmo Compara_Numero
Var
cont, i: inteiro;
Início
leia(num);
fim_se
fim_para
fim _algoritmo
Anote isso
A estrutura de repetição com teste no final é utilizada juntamente com a estrutura repita
que possibilita que um bloco ou uma ação seja repetida até que uma determinada condição
seja verdadeira (FORBELLONE, 2005).
Essa estrutura de repetição com teste no final é utilizada quando não se sabe a quantidade
de vezes que um trecho do algoritmo deve ser repetido, mas também pode ser utilizada quando
se conhece a quantidade de vezes de repetição do trecho do algoritmo (ASCENCIO, 2012).
O teste condicional da estrutura de repetição é realizado ao final da estrutura (GUEDES,
2014), e essa estrutura se baseia na análise de uma condição onde a repetição será realizada
até a condição se tornar verdadeira (ASCENCIO, 2012), e isso implica que os comandos
internos sempre serão executados na primeira iteração (GUEDES, 2014).
Exemplo estrutura de repetição repita:
Algoritmo Exemplo_Repita
Var
// declaração de variáveis
Início
Repita
Comando
Até condição
Fim_algoritmo
Início
Comandos
Fim_do
While (condição)
Anote isso
REFERÊNCIAS