INTRODUÇÃO À LÓGICA DE ROGRAMAÇÃO ... real, caracter, texto e logico - Portugol INTRODUÇÃO...
Transcript of INTRODUÇÃO À LÓGICA DE ROGRAMAÇÃO ... real, caracter, texto e logico - Portugol INTRODUÇÃO...
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
“É 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.” (Autor: ...)
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.”(Autor: ...)
MATEMÁTICA
PROGRAMAÇÃO
Co
nstru
ção
do
Algo
ritmo
Interpretação do Enunciado do problema
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
Co
nstru
ção
do
Algo
ritmo
Codificação em uma Linguagem de Programação
Interpretação do Enunciado do problema
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
PSEUDOLINGUAGEM PORTUGOL
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
http://www.dei.estt.ipt.pt/portugol/node/33
http://www.dei.estt.ipt.pt/portugol/node/32
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
INTERPRETADOR – PORTUGOL de TOMAR
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
23 + 18 23 nome “Entendi”
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.
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
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
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.”
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
Operador Significado Exemplo
+ adição 13 + 28
- subtração 28 - 13
* multiplicação 28 * 13
/ divisão 8 / 5 1 Portugol
/ divisão 8/ 5. 1.6 Portugol
% ou mod resto 8 % 5 3 Portugol
8 mod 5 3 VisualG
^ potenciação 2 ^ 3 8 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
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
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
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 <- ...
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 leia
Dentro desse símbolo, poderemos encontrar:
nomeVariavel noVar1, noVar2
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
ENTRADA DE DADOS Leia - Portugol
ler nomeVariavel ler noVar1, noVar2
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?
--- --- inicio <declaração_ de_ variáveis> <corpo_ do_ algoritmo> fim
#include <iostream> using namespace std; int main() { <declaração_ de_ variáveis> <corpo_ do_ programa> }
PORTUGOL C++
SINTAXES
INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
Tipos das variáveis •inteiro •real •caracter •texto •logico Exemplos: inteiro <identificador> real <identificador
Tipos das variáveis •int /long long int •float / double •char • vetor de 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 e caracter underscore _ O 1o é, normalmente uma letra, mas pode ser o underscore. Exemplo: float mediaAluno ou float media_Aluno
<identificador> formado por letras não acentuadas, algarismos e caracter underscore _ O 1o é, normalmente uma letra, mas pode ser o underscore. Exemplo: float mediaAluno ; ou float media_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>
escrever variá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
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
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 Teste
Uma expressão relacional
Duas, ou mais, expressões relacionais unidas por operadores lógicos
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 >=100 e num <= 999
nao var
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 - Exercício
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 - Exercício
#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
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