Professional Documents
Culture Documents
INTRODUÇÃO À LÓGICA DE
PROGRAMAÇÃO
Professor:
Denílson C Oliveira
infofortaleza@gmail.com
Plano da Aula
2
“A inovação é que
distingue um líder de um
seguidor”.
(Steve Jobs, magnata americano criador da
Apple)
1 – O QUE É LÓGICA
5
Para definir o que é lógica não basta apenas dizer que ela é um ramo da
matemática ou ainda da filosofia (pois ambas as afirmações podem ser
consideradas corretas), na realidade, é necessário compreender o que gera
uma conclusão lógica, ou seja, como ocorre o desenvolvimento do
pensamento humano.
Para que esta primeira etapa possa ocorrer, ou seja, para que o raciocínio
suceda, é necessário o fornecimento de dados para organizar as ideias e
desenvolver a compreensão, estas informações fornecidas são chamadas
de premissas.
Vejamos um exemplo simples: O Japão situa-se na Ásia. Todos que
nascem no Japão são japoneses. Portanto, podemos concluir que os
japoneses são asiáticos.
Vemos neste exemplo que há duas
premissas, duas informações, fornecidas
para se chegar à conclusão.
A primeira premissa é que o Japão situa-se
na Ásia e a segunda é que todos que
nascem naquele país são japoneses. Assim,
o desenvolvimento do raciocínio lógico
baseia-se nestes dois dados obtidos.
1 – O QUE É LÓGICA
7
Mas ainda há uma última etapa da lógica, que é a conclusão. A esta dá-se o
nome de inferência, ou ainda, dedução.
É a conclusão tirada de algo observado com base nas premissas
fornecidas. Voltando ao exemplo retro citado, a inferência foi ?????
Por exemplo, caso alguém deseje fazer um programa que será utilizado em
caixas de supermercados, esta pessoa deve primordialmente identificar
quais são as informações necessárias para concluir um processo de compra
e venda em um supermercado (fluxograma?). Esta etapa é a identificação
das premissas para planejamento do algoritmo.
1.1 – Desenvolvendo o pensamento
lógico para a programação
12
1 - identificar o produto A;
Percebe-se que nenhuma etapa pode ser esquecida pelo programa, ele
consulta, processa e informa.
Por isso, deve-se atentar para o fato de que uma única ordem isolada não
serve como instrução para concluir um processo, é necessário um conjunto
de instruções logicamente sequenciadas, pois o computador não é capaz de
raciocinar, apenas segue instruções para concluir tarefas.
Por isso a lógica é fundamental para a programação, pois um único erro na
sequência do passo-a-passo que o sistema deve seguir já desencadeia
erros nos cálculos ou a impossibilidade de fazê-los.
Retirado do livro: Mortari, Cezar A. Introdução à lógica. São Paulo: Editora UNESP –
Imprensa Oficial do Estado, 2001.
1.1 – Desenvolvendo o pensamento
lógico para a programação
17
RESPOSTA DO PROBLEMA:
1.1 – Desenvolvendo o pensamento
lógico para a programação
20
RESPOSTA DO PROBLEMA:
1.1 – Desenvolvendo o pensamento
lógico para a programação
23
DEFINIÇÃO
ESTRUTURA DE UM ALGORITMO
ESTRUTURA DE UM ALGORITMO
ESTRUTURA DE UM ALGORITMO
TIPOS DE ALGORITMOS:
DESCRIÇÃO NARRATIVA:
FLUXOGRAMA
EXEMPLO:
EXEMPLO:
FLUXOGRAMA:
Símbolos
2 – O QUE É UM ALGORITMO?
42
FLUXOGRAMA:
Outros Símbolos
2 – O QUE É UM ALGORITMO?
43
FLUXOGRAMA:
Desvantagem:
Aprender a simbologia.
O algoritmo resultante não apresenta muitos detalhes, dificultando
sua transcrição
2 – O QUE É UM ALGORITMO?
44
PSEUDOCÓDIGO (PORTUGOL)
O pseudocódigo é uma forma de representação baseada na escrita de
códigos que lembram uma linguagem de programação.
PSEUDOCÓDIGO (PORTUGOL)
Vantagem:
A passagem do algoritmo para qualquer linguagem é quase imediata; basta conhecer
as palavras reservadas que serão utilizadas
EXEMPLO:
“Inteligência...é a faculdade
de criar objetos artificiais,
principalmente ferramentas
para criar ferramentas.”
(Henri-Louis Bergson, filósofo e diplomata francês
com prêmio Nobel de literatura.)
3 – CONCEITOS BÁSICOS DO ALGORITMO EM UM
COMPUTADOR
56
INSTRUÇÕES
REPRESENTAÇÃO DE DADOS
3 – CONCEITOS BÁSICOS DO ALGORITMO EM UM
COMPUTADOR
60
DADOS NUMÉRICOS
Operações:
+ SOMA, - SUBTRAÇÃO, / DIVISÃO, *
MULTIPLICAÇÃO e ** POTENCIAÇÃO
3 – CONCEITOS BÁSICOS DO ALGORITMO EM UM
COMPUTADOR
62
DADOS LITERAIS
DADOS LITERAIS
3 – CONCEITOS BÁSICOS DO ALGORITMO EM UM
COMPUTADOR
64
DADOS LÓGICOS
Operações:
Exemplo:
Um programa que cria um boletim para alunos possui muitas
variáveis, como por exemplo: aluno, matrícula, notas, etc.
Mas o nome da instituição de ensino será sempre o mesmo, não
podendo ser modificado. Este dado é uma constante.
3.2 – Identificadores
67
OBSERVAÇÃO:
Evite identificadores muito longos e que tornem o programa confuso.
Prefira identificadores separados por sublinhado, como no exemplo
acima: nome_funcionário.
Se preferir utilizar palavras juntas, escreva a primeira letra de cada
palavra em maiúsculo, como por exemplo: NomeFuncionario.
Não são permitidos espaços em branco e nem caracteres especiais. Não
é permitido usar palavras reservadas
3.3 – Estrutura de controle
69
Estrutura condicional
Estrutura de repetição
3.3.1 – Estrutura sequencial
70
Nome do algoritmo
Declaração de variáveis
Bloco de comandos
Fim_algoritmo
3.3.2 – Estrutura condicional
71
Se (condição) Então
(bloco de código)
Senão
(bloco de código)
Fim Se
Se (condição) Então
(bloco de código)
Senão
Se (condição) Então
(bloco de código)
Fim Se
Fim Se
3.3.3 – Estrutura de repetição
73
Repetição pré-testada:
Nesta estrutura, a condição é primeiramente verificada e se for verdadeira o
bloco é executado. No final de execução do bloco a condição é novamente
testada.
Enquanto (condição) Faça
(bloco de código)
Fim Enquanto
3.3.3 – Estrutura de repetição
75
Repetição pós-testada:
É uma variação da estrutura
anterior e difere na etapa da
verificação da condição, pois
esta é feita após uma execução
do bloco de comandos.
Repita
(bloco de código)
Ate (condição)
3.3.3 – Estrutura de repetição
76
O QUE É O VISUALG?
Editor e interpretador de
algoritmos
TELA DO PROGRAMA
3.4 – Conhecendo o VisualG
80
CARACTERÍSTICAS:
CARACTERÍSTICAS:
Nome do programa
Comandos
3.4 – Conhecendo o VisualG
82
TIPOS DE DADOS:
inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais.
real: define variáveis numéricas do tipo real, ou seja, com casas decimais.
caractere: define variáveis do tipo string, ou seja, cadeia de caracteres.
logico: define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou
FALSO.
Declaração das
variáveis
3.4 – Conhecendo o VisualG
84
ATRIBUIÇÃO DE VALORES:
OPERADORES ARITMÉTICOS:
Operadores unários, isto é, são aplicados a um único operando. São os operadores
+,- aritméticos de maior precedência. Exemplos: -3, +x. Enquanto o operador unário - inverte
o sinal do seu operando, o operador + não altera o valor em nada o seu valor.
MOD
Operador de módulo (isto é, resto da divisão inteira). Por exemplo, 8 MOD 3 = 2. Tem a
ou mesma precedência do operador de divisão tradicional.
%
Operador de potenciação. Por exemplo, 5 ^ 2 = 25. Tem a maior precedência entre os
^ operadores aritméticos binários (aqueles que têm dois operandos).
3.4 – Conhecendo o VisualG
86
OPERADORES RELACIONAIS:
OPERADORES LÓGICOS:
Operador unário de negação. nao VERDADEIRO = FALSO, e nao
nao FALSO = VERDADEIRO. Tem a maior precedência entre os operadores
lógicos.
Operador que resulta VERDADEIRO quando um dos seus operandos
ou
lógicos for verdadeiro.
Operador que resulta VERDADEIRO somente se seus dois operandos
e
lógicos forem verdadeiros.
EXECUÇÃO DO PROGRAMA:
EXECUÇÃO DO PROGRAMA:
O resultado pode ser exibido clicando em “rodar o algoritmo” no menu “run”. Uma tela
em DOS mostrará o resultado.
3.4 – Conhecendo o VisualG
91
EXECUÇÃO DO PROGRAMA:
Janela em modo “Prompt de Comando”
3.4 – Conhecendo o VisualG
92
UTILIZANDO O PROGRAMA:
É possível usar
vários comando
“escreva” para
mostrar
diversas frases
na tela.
3.4 – Conhecendo o VisualG
93
ESTRUTURA DE REPETIÇÃO
O VisualG implementa as três estruturas de repetição usuais
nas linguagens de programação:
PARA...FAÇA
3.4 – Conhecendo o VisualG
102
ENQUANTO...FAÇA
3.4 – Conhecendo o VisualG
105
“Pensamentos sublimes
devem ser escritos em uma
linguagem sublime”.
(Aristófanes, dramaturgo grego.)
4 – TIPOS DE LINGUAGENS DE PROGRAMAÇÃO
109
Linguagens de máquina
Linguagens assembly
Linguagens de alto nível
4 – TIPOS DE LINGUAGENS DE PROGRAMAÇÃO
110
LINGUAGEM DE MÁQUINA
LINGUAGEM DE MÁQUINA
LINGUAGEM ASSEMBLY
LINGUAGEM ASSEMBLY
“C é excêntrico, defeituoso e
um enorme sucesso.”
(Dennis Ritchie (1941-2011), criador da
linguagem de programação C.)
5.1 – História
117
A DIRETIVA #INCLUDE
Ela faz com que outro arquivo seja incluído no programa fonte, ou seja, o
compilador substitui a linha contendo essa diretiva pelo conteúdo do arquivo
indicado. Isso ocorre antes do programa ser compilado e é possível ver a
apresentação de um texto como se todo o conteúdo do arquivo incluído tivesse
sido digitado.
A função printf(), por exemplo, contém suas definições no arquivo
stdio.h. Já a função system() contém suas definições no arquivo stdlib.h.
Quanto à sua sintaxe, a diretiva #include aceita duas formas:
#include “arquivo” Entre aspas
#include <arquivo> entre os sinais “maior que” e “menor que”
A diferença na sintaxe está relacionada com a ordem de procura do
arquivo nos diretórios. Se o caminho for pré-especificado no compilador utiliza-
se < >, caso o arquivo esteja no diretório de trabalho utiliza-se “ ”.
5.3 – Pré-processador e diretivas
123
A diretiva include
antes da compilação
( no DEV C)
5.4 – Funções
124
A FUNÇÃO main()
Todo programa em C, obrigatoriamente, possui uma função principal,
chamada de main(), ela é o ponto inicial de execução do programa e termina
quando for encerrada a execução da sua função. Se um programa em C tiver
apenas uma única função a ser executada, esta será main().
Os parênteses, após o nome main, são obrigatórios porque indicam ao
compilador que ali encontra-se uma função a ser executada. Caso ocorra a
escrita sem estes parênteses o programa não será executado, por erro de
sintaxe, ou ainda, o compilador poderá entender que main é uma variável
declarada, incidindo em erro na execução também.
Após escrever a função main() deve-se começar o bloco de comandos com
chave( { ) e, após terminar de escrever todas as instruções, ele será fechado
com chave também ( } )
5.4 – Funções
125
EXEMPLO:
Int main()
{
Bloco de comandos ;
system (“PAUSE”) ;
Segundo bloco de comandos ;
return 0;
}
Observações: O system (“PAUSE”) não é sempre utilizado, só é empregado nos casos
em que o programa solicita ao computador uma pausa até que alguma tecla seja
pressionada. O return 0 solicita à função main() que retorne o valor zero a quem o
chamou. Quanto ao ponto-e-vírgula, ele indica ao compilador que ali está escrita uma
instrução que deve ser lida, por isso é obrigatória a sua escrita.
5.4 – Funções
126
A FUNÇÃO printf()
Esta função não é parte da
definição de linguagem do C, ela é
uma função de I/O (entrada e saída)
da biblioteca padrão, fornecida pelos
compiladores.
Quando o programa inicia sua
execução e encontra esta função ele
executa a tarefa de imprimir seu
conteúdo na tela do computador.
Após o término da impressão o
controle segue para a próxima
instrução do programa principal.
5.4 – Funções
127
A FUNÇÃO printf()
A impressão ocorre na mesma
linha, não havendo inclusão de
novas linhas.
Para imprimir na próxima linha é
necessário acrescentar o \n no final
do texto digitado.
Observe que a posição da barra é
\ e não /.
5.4 – Funções
128
CARACTERES ESPECIAIS
Além do \n é possível utilizar outros caracteres para realizar tarefas
específicas, vejamos a tabela abaixo:
5.4 – Funções
129
A FUNÇÃO printf()
Esta função pode ter um ou vários argumentos. No nosso primeiro
exemplo temos apenas um, que é “OLÁ MUNDO”.
O primeiro argumento é chamado de EXPRESSÃO DE CONTROLE e
pode conter caracteres que serão exibidos na tela e códigos de formatação
que informam ao compilador como os argumentos devem ser impressos.
Cada argumento deve ser separado por vírgula.
Exemplo:
A FUNÇÃO system()
Este é um comando shell, ou
seja, é um meio que possibilita à
interface de usuário a ter acesso aos
serviços do kernel(núcleo) no
sistema operacional.
A função system() pode executar
tanto um comando interno do
sistema operacional quanto um
programa(.EXE, .COM ou .BAT).
Esta função é bastante utilizada,
porém, é muito complexa e por isso
utilizaremos apenas o system
(“pause”).
6 – PROGRAMANDO EM C
132