Buscar

Prepara AV1 INTRODUCAO A LOGICA DE PROGRAMACAO

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Introdução à Lógica de Programação
Professora ANITA MACIEL
LÓGICA 
Introdução à Lógica de Programação
”A lógica é o ramo da filosofia que cuida das regras do bem pensar, ou do pensar correto, sendo, portanto, um instrumento do pensar” .
(disponível em: www.academia.edu/4435931/curso_completo_de_logica)
LÓGICA DE PROGRAMAÇÃO 
Introdução à Lógica de Programaçã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 coerentes, que resolvam com qualidade os problemas que se deseja programar”. 
Forbellone, A., Eberspacher, H, 2000). 
(disponível em: www.academia.edu/4435931/curso_completo_de_logica)
Introdução à Lógica de Programação
ORIGEM
ALGORITMO
É uma palavra derivada do nome do matemático Abu Ja´far Muhammad(800- 847) que introduziu a escrita dos cálculos substituindo o ábaco. Ele ficou conhecido como Al-Kharazmi.
Designa um procedimento geral de cálculo que se desenvolve, por assim dizer, automaticamente, poupando-nos esforço mental durante o seu curso. (FONSECA,F. C., 1999, p.50) 
É uma sequência de passos finitos que devem ser escritos de forma precisa e clara, evitando qualquer tipo de dúvida na interpretação e que tem como objetivo solucionar um problema computacional.
MATEMÁTICA
PROGRAMAÇÃO
O PROBLEMA
Introdução à Lógica de Programação
Interpretação do Enunciado 
do problema 
O PROBLEMA
Introdução à Lógica de Programação
Construção 
do Algoritmo 
Interpretação do Enunciado 
do problema 
O PROBLEMA
Introdução à Lógica de Programação
Construção 
do Algoritmo 
Codificação em uma
Linguagem de Programação
Interpretação do Enunciado 
do problema 
O PROBLEMA
Introdução à Lógica de Programação
LINGUAGENS PARA REPRESENTAR ALGORITMOS
Introdução à Lógica de Programação
 PORTUGOL
LINGUAGEM GRÁFICA 
Introdução à Lógica de Programação
PSEUDOLINGUAGEM PORTUGOL
Introdução à Lógica de Programação
 PORTUGOL
http://www.dei.estt.ipt.pt/portugol/node/33
SÍMBOLOS DO FLUXOGRAMA
<-
Introdução à Lógica de Programação
http://www.dei.estt.ipt.pt/portugol/node/32
Introdução à Lógica de Programação
INTERPRETADOR - PORTUGOL 
Introdução à Lógica de Programação
INTERPRETADOR FLUXOGRAMA - PORTUGOL 
Todos os símbolos deverão ser colocados entre início e fim e unidos por linhas de fluxo.
ESTRUTURA DO FLUXOGRAMA
Introdução à Lógica de Programação
Dentro desse símbolo, poderemos encontrar:
Introdução à Lógica de Programação
SAÍDA (display)
23 + 18
23
nome
“Entendi”
Introdução à Lógica de Programação
SAÍDA (display)
Introdução à Lógica de Programação
SAÍDA (display)
Introdução à Lógica de Programação
ESTRUTURA DA PSEUDOLINGUAGEM
 Portugol de Tomar
Todos os comandos e estruturas deverão ser colocados entre inicio e fim.
 PORTUGOL
escrever variável
escrever constante numérica
escrever "texto"
escrever [expressão]
escrever variável , "texto" ,. . .
 escrever dia escrever 23 escrever “Entendi”
 escrever 23 + 89 escrever dia , “ Domingo” 
COMANDO DE SAÍDA (display)
Introdução à Lógica de Programação
 PORTUGOL
Introdução à Lógica de Programação
 PORTUGOL
COMANDO DE SAÍDA (display)
Introdução à Lógica de Programação
 PORTUGOL
Tecla tab
Tecla enter
COMANDO DE SAÍDA (display)
 com \n e \t
Introdução à Lógica de Programação
 PORTUGOL
12345678901234567890123456789012345678901234567890
s
e
 m
 p
 r
e
sol
g
o
s
t
o
.
.
fim.
COMANDO DE SAÍDA (display)
 com \n e \t
Introdução à Lógica de Programação
escrever “sol\t\tgosto\n\tsempre\n\n\nfim.”
 PORTUGOL
12345678901234567890123456789012345678901234567890
s
e
 m
 p
 r
e
sol
g
o
s
t
o
.
.
fim.
COMANDO DE SAÍDA (display)
 com \n e \t
Introdução à Lógica de Programação
 PORTUGOL
COMANDO DE SAÍDA (display)
 com \n e \t
Introdução à Lógica de Programação
Operador
Significado
Exemplo
+
adição
13+28
-
subtração
28-13
*
multiplicação
28*13
/
divisão
8/51Portugol
/
divisão
8/5.1.6Portugol
% oumod
resto
8%53Portugol
8mod53VisualG
^
potenciação
2^38Portugol
OPERADORES ARITMÉTICOS
 PORTUGOL
Introdução à Lógica de Programação
 PORTUGOL
OPERADORES ARITMÉTICOS
Introdução à Lógica de Programação
 PORTUGOL
OPERADORES ARITMÉTICOS
Manipular dados/informações é, com certeza, uma das principais funções de um computador.
O dado é um valor fornecido pelo usuário, gerado pelo programa ou lido de um arquivo 
Tipos de Dados
Inteiro, Real, Caracter e Lógico
Introdução à Lógica de Programação
ORIGEM DO DADO
Célula
Introdução à Lógica de Programação
CONCEITO DE VARIÁVEL
Célula
Endereço
Introdução à Lógica de Programação
CONCEITO DE VARIÁVEL
DECLARANDO VARIÁVEL - Portugol 
tipo nomeDaVariável
tipo nV1, nV2, nVn
1- O nome tem de começar por uma letra ou pelo carácter  undescore (_) e não pode ser uma palavra reservada da linguagem.
2- Depois pode ter letras , algarismos ou undescore
Regras para se nomear variáveis 
Tipos de variáveis
inteiro, real, caracter, texto e logico - Portugol
Introdução à Lógica de Programação
EXERCITANDO- Portugol
Nome de uma pessoa
Idade de uma pessoa
Salário de uma pessoa
 PORTUGOL
Introdução à Lógica de Programação
Nome de uma pessoa
Idade de uma pessoa
Salário de uma pessoa
inteiro idade
real salario
texto nome
inicio
 inteiro idade
 real salario
 texto nome
fim
 PORTUGOL
Introdução à Lógica de Programação
EXERCITANDO- Portugol
É um dos três comandos sequenciais da programação. Consiste em se atribuir um valor a uma variável.
COMANDO DE ATRIBUIÇÃO
a <- ...
 PORTUGOL
Introdução à Lógica de Programação
DECLARANDO E/ OU ATRIBUINDO - Portugol
 PORTUGOL
Introdução à Lógica de Programação
Introdução à Lógica de Programação
ENTRADA DE DADOS
INTERAGINDO
Quando começamos a construir algoritmos, no início, parece tudo muito difícil afinal, essa não é nossa forma de pensar no cotidiano, visto que nossa vida não se resume a um conjunto de atividades onde uma só pode ser iniciada quando a outra for concluída. 
ESTRUTUTRA SEQUENCIAL (escrever, atribuição e ler)
Introdução à Lógica de Programação
ENTRADA DE DADOS
INTERAGINDO
Introdução à Lógica de Programação
ENTRADA DE DADOS
leia
Dentro desse símbolo, poderemos encontrar:
nomeVariavel
noVar1, noVar2
 PORTUGOL
Introdução à Lógica de Programação
ENTRADA DE DADOS
Leia - Portugol
ler nomeVariavel
ler noVar1, noVar2
Introdução à Lógica de Programação
ALGORITMO DO DOBRO
Fluxograma 
Introdução à Lógica de Programação
ALGORITMO DO DOBRO
Portugol
Introdução à Lógica de Programação
 C ++
Introdução à Lógica de Programação
Introdução à Lógica de Programação
Integrated Development Environment - IDE
Ambiente de Desenvolvimento Integrado
Integrated Development Environment – IDE
Ambiente de Desenvolvimento Integrado
Introdução à Lógica de Programação
Introdução à Lógica de Programação
LINGUAGEM C++
Bibliotecas
iostream
cstring
cmath
cctype
iomanip
cstdlib
...
Introdução à Lógica de Programação
LINGUAGEM C++
Bibliotecas
#include <iostream> #include “prepara.h”
Como incluir uma biblioteca no programa?
A diretiva include seguida do nome na biblioteca entre o sinal de < e o de >. 
Podem ser aspas também em alguns casos.
Introdução à Lógica de Programação
LINGUAGEM C++
Bibliotecas
Como Facilitar o Uso dos Recursos de E/S da Biblioteca iostream?
Introdução à Lógica de Programação
LINGUAGEM C++
Bibliotecas
Como Facilitar o Uso dos Recursos de E/S da Biblioteca iostream?
Introdução à Lógica de Programação
LINGUAGEM C++
ESTRUTURA BÁSICA
---
---
inicio
<declaração_de_variáveis>
<corpo_do_algoritmo>
fim
#include <iostream>
using namespace std;
intmain()
{
<declaração_de_variáveis>
<corpo_do_programa>
}
PORTUGOL
C++
SINTAXES
Introdução à Lógica de Programação
Tiposdasvariáveis
inteiro
real
caracter
texto
logico
 
Exemplos:
inteiro<identificador>
real<identificador
Tiposdasvariáveis
int /longlongint
float / double
char
vetorde char
bool
Exemplos:
int<identificador>;
float<identificador>;
C++
PORTUGOL
SINTAXES
Introdução à Lógica de Programação
<identificador>
formado por letras não acentuadas, algarismos ecaracterunderscore _
O 1oé, normalmente uma letra, mas pode ser o underscore.
Exemplo:
floatmediaAluno
ou
floatmedia_Aluno
<identificador>
formado por letras não acentuadas, algarismos ecaracterunderscore _
O 1oé, normalmente uma letra, mas pode ser o underscore.
Exemplo:
floatmediaAluno;
ou
floatmedia_Aluno;
C++
PORTUGOL
SINTAXES
Introdução à Lógica de Programação
// comentário de uma linha
/*
comentário com mais de uma linha
*/ 
Comando de Saída
escrever<variável>
escrever<constantes>
escrever<operações>
escrevervariável,“texto”, ...
// comentário de uma linha
/*
comentário com mais de uma linha
*/ 
Comando de Saída
cout<<<variável>;
cout<<<constantes>;
cout<<<operações>;
cout<<variável<<”texto”<< ...;
C++
PORTUGOL
SINTAXES
Introdução à Lógica de Programação
Caracteres de controle usados com imprima:
"\n"alimenta linha(enter)
"\t"tabula (tab)
1/ 9/ 17/ 25/ 33/ 41/ 49/ 57/ 65/ 73
Caracteres de controle usados com cout:
"\n"alimenta linha(enter)
"\t"tabula (tab)
1/ 9/ 17/ 25/ 33/ 41/ 49/ 57/ 65/ 73
"\\"exibe\
"\" "exibe"
C++
PORTUGOL
SINTAXES
Introdução à Lógica de Programação
Comando de Atribuição
<identificador><-expressão;
Exemplo:
media<-( a + b ) / 2
Comando de Atribuição
<identificador>=expressão;
Exemplo:
media = ( a + b ) / 2;
C++
PORTUGOL
SINTAXES
Introdução à Lógica de Programação
Comando de Entrada
ler<variável>
ler var1, var2
Comando de Entrada
cin>><variável>;
cin>><var1>>><var2>;
C++
PORTUGOL
SINTAXES
Introdução à Lógica de Programação
OPERADOR DE EXTRAÇÃO E OPERADOR DE INSERÇÃO,
 cin e cout
Introdução à Lógica de Programação
OPERADORES ARITMÉTICOS
Introdução à Lógica de Programação
Operador
C/ C++
PORTUGOL
adição
+
+
subtração
-
-
multiplicação
*
*
divisão
/
/
resto
%
%
potenciação
__
^
OBS: Se o dividendo e o divisor forem inteiros, INTEIRO será o QUOCIENTE
Introdução à Lógica de Programação
PROGRAMA DO DOBRO
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Muitas vezes em nossos algoritmos/ programas precisaremos tomar uma decisão, ou várias, para que certas situações aconteçam.
Nesses momentos, teremos que fazer uso da estruturas de decisão.
As estruturas decisão poderão ser:
 Simples - quando somente será executado um bloco, que poderá ter somente uma instrução, se a condição lógica for verdadeira.
 Composta - quando desejarmos que um bloco seja executado quando a condição for verdadeira e um outro bloco, quando for falsa.
 Encadeadas – quando temos várias possibilidades de respostas
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Operadores
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Teste
Uma expressão relacional
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Teste
Uma expressão relacional
Duas, ou mais, expressões relacionais
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Exemplos
C++
Portugol
idade >= 18
idade >= 18
n % 2 == 0
n % 2 = 0
8 != 5
8 =/= 5
sexo == ‘f’
sexo = "f"
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Exemplos
C++
num >=100&&num <= 999
!var
Portugol
num >=100enum <= 999
naovar
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
se ... entao
PORTUGOL
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
se ... entao ... senao
PORTUGOL
ESTRUTURA DE DECISÃO
Simples - Exercício
Uma empresa fez uma seleção de candidatos baseada em prova e entrevista. Hoje será anunciado o resultado.
O candidato deverá entrar com o número de inscrição e a nota que ele recebeu em casa.
Se ele estiver na lista dos classificados, aparecerá a matrícula na tela. Caso contrário, nada acontece.
Para estar na lista, a nota deverá ser maior do que 8,5.
Introdução à Lógica de Programação
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Simples
PE > 8.5
Insc, PE
Insc
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Simples
PORTUGOL
inicio 
 inteiro Insc
 real PE 
 escrever "digite Inscrição "
 ler Insc
 escrever "digite nota recebida "
 ler PE
 se PE > 8.5 então 
 escrever Insc
 fimSe 
fim
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Simples
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int Insc;
 float PE; 
 cout << "digite Inscricao ";
 cin >> Insc;
 cout << "digite nota recebida " ;
 cin >> PE ;
 if( PE > 8.5 )
 { //Experimente retirar a chave
 cout << Insc <<"\n"; //troque por << endl;
 } //Experimente retirar a chave
 system("pause");
}
Introdução à Lógica de Programação
ESTRUTURA DE DECISÃO
Composta - Exercício
Um comerciante resolveu fazer uma liquidação dando desconto nas mercadorias e ainda podendo parcelar em duas vezes caso o valor com desconto ficasse maior ou igual a R$ 200,00.
Construa um programa que deixe entrar com o valor do produto e o percentual do desconto.
Deverá ser exibida uma das mensagens:
 Duas parcelas no valor de ...
 Total: ...
Introdução à Lógica de Programação
total >=200
valor, percentual
total=valor – valor*percentual / 100
total
“ 2 parcelas “, 
 total/2
ESTRUTURA DE DECISÃO
Composta - Exercício
Introdução à Lógica de Programação
inicio
 real valor, percentual, total
 escrever "\nValor do produto "
 ler valor
 escrever "\nPercentual de desconto "
 ler percentual 
 total <- valor - valor * percentual / 100
 se total >= 200 entao
 escrever "\nDuas parcela no valor de ", total / 2 , "\n"
 senao 
 escrever "\nTotal ", total , "\n"
 fimse
fim
PORTUGOL
ESTRUTURA DE DECISÃO
Composta - Exercício
Introdução à Lógica de Programação
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 float valor, percentual, total;
 cout << "\nValor do produto "; cin >> valor;
 cout << "\nPercentual de desconto "; cin >> percentual; 
 total = valor - valor * percentual / 100;
 if(total >= 200 )
 cout << "\nDuas parcelas no valor de "<< total / 2 << endl;
 else 
 cout << "\nTotal "<< total << endl ;
 system("pause");
} 
ESTRUTURA DE DECISÃO
Composta - Exercício
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Introdução à Lógica de Programação
TESTE DE MESA
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >=
1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Memória Principal Display
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Memória Principal Display
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
num u d c um
Número inteiro...
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Memória Principal Display
num u d c um
Número inteiro...
9876
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Memória Principal Display
num u d c um
9876
Número inteiro...
9876
9876 % 10 = 6
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Memória Principal Display
num u d c um
9876
6
Número inteiro...
9876
9876 / 10 = 987
987 % 10 = 7
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Memória Principal Display
num u d c um
9876
6
7
Número inteiro...
9876
9876 / 100 = 98
98 % 10 = 8
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Memória Principal Display
num u d c um
9876
6
7
8
Número inteiro...
9876
9876 / 1000 = 9
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Memória Principal Display
num u d c um
9876
6
7
8
9
num u d c um
Número inteiro...
9876
9876
6
7
8
9
9 8 7 6
inicio
 inteiro num, u, d, c, um
 escrever "\Número inteiro positivo de 4 algarismos: "
 ler num
 se num >= 1000 e num <=9999 então 
 u <- num % 10
 d <- ( num / 10) % 10
 c <- ( num / 100) % 10
 um <- num / 1000 
 escrever um ,"\t", c, "\t", d, "\t", u
 SENAO 
 ESCREVER "\nNumero não tem quatro algarismos ou é negativo "
 fimse 
fim
Introdução à Lógica de Programação
TESTE DE MESA
Memória Principal Display

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes