PROFESSOR EDUARDO PARETO
LÓGICA 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 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)
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:...) MATEMÁTICA 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) PROGRAMAÇÃO É 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:...)
Interpretação do Enunciado do problema
Interpretação do Enunciado do problema Construção do Algoritmo
Interpretação do Enunciado do problema Construção do Algoritmo Codificação em uma Linguagem de Programação
LINGUAGENS PARA REPRESENTAR ALGORITMOS
LINGUAGEM GRÁFICA
PSEUDOLINGUAGEM PORTUGOL http://www.dei.estt.ipt.pt/portugol/node/33
SÍMBOLOS DO FLUXOGRAMA <-
INTERPRETADOR PORTUGOL de TOMAR http://www.dei.estt.ipt.pt/portugol/node/32
INTERPRETADOR FLUXOGRAMA - PORTUGOL
ESTRUTURA DO FLUXOGRAMA Todos os símbolos deverão ser colocados entre início e fim e unidos por linhas de fluxo.
SAÍDA (display) Dentro desse símbolo, poderemos encontrar: 23 23 + 18 nome Entendi
SAÍDA (display)
SAÍDA (display)
ESTRUTURA DA PSEUDOLINGUAGEM Portugol de Tomar Todos os comandos e estruturas deverão ser colocados entre inicio e fim.
COMANDO DE SAÍDA (display) 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)
COMANDO DE SAÍDA (display) com \n e \t Tecla tab Tecla enter
COMANDO DE SAÍDA (display) com \n e \t 12345678901234567890123456789012345678901234567890 sol g o s t o s e m p r e.. fim.
COMANDO DE SAÍDA (display) com \n e \t 12345678901234567890123456789012345678901234567890 sol g o s t o s e m p r e.. fim. escrever sol\t\tgosto\n\tsempre\n\n\nfim.
COMANDO DE SAÍDA (display) com \n e \t
OPERADORES ARITMÉTICOS 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
OPERADORES ARITMÉTICOS
ORIGEM DO DADO 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 Manipular dados/informações é, com certeza, uma das principais funções de um computador.
CONCEITO DE VARIÁVEL Célula
CONCEITO DE VARIÁVEL Célula Endereço
DECLARANDO VARIÁVEL - Portugol tipo nomedavariável tipo nv1, nv2, nvn Tipos de variáveis inteiro, real, caracter, texto e logico - Portugol Regras para se nomear variáveis 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
EXERCITANDO - Portugol Idade de uma pessoa Salário de uma pessoa Nome de uma pessoa
EXERCITANDO - Portugol Idade de uma pessoa Salário de uma pessoa Nome de uma pessoa inteiro idade real salario texto nome inicio inteiro idade real salario texto nome fim
COMANDO DE ATRIBUIÇÃO É um dos três comandos sequenciais da programação. Consiste em se atribuir um valor a uma variável. a <-...
DECLARANDO E/ OU ATRIBUINDO - Portugol
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)
ENTRADA DE DADOS INTERAGINDO
ENTRADA DE DADOS leia Dentro desse símbolo, poderemos encontrar: nomevariavel novar1, novar2
ENTRADA DE DADOS Leia - Portugol ler nomevariavel ler novar1, novar2
ALGORITMO DO DOBRO Fluxograma
ALGORITMO DO DOBRO Portugol
Integrated Development Environment - IDE Ambiente de Desenvolvimento Integrado
Integrated Development Environment IDE Ambiente de Desenvolvimento Integrado
LINGUAGEM C++ Bibliotecas cctype cstring... iostream cmath iomanip cstdlib
LINGUAGEM C++ Bibliotecas 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. #include <iostream> #include prepara.h
LINGUAGEM C++ Bibliotecas Como Facilitar o Uso dos Recursos de E/S da Biblioteca iostream?
LINGUAGEM C++ Bibliotecas Como Facilitar o Uso dos Recursos de E/S da Biblioteca iostream?
LINGUAGEM C++ ESTRUTURA BÁSICA
SINTAXES PORTUGOL --- --- inicio <declaração_ de_ variáveis> <corpo_ do_ algoritmo> fim C++ #include <iostream> using namespace std; int main() { <declaração_ de_ variáveis> <corpo_ do_ programa> }
SINTAXES PORTUGOL Tipos das variáveis inteiro real caracter texto logico Exemplos: inteiro <identificador> real <identificador C++ Tipos das variáveis int /long long int float / double char vetor de char bool Exemplos: int <identificador> ; float <identificador> ;
SINTAXES PORTUGOL <identificador> formado por letras não acentuadas, algarismos e caracter underscore _ O 1 o é, normalmente uma letra, mas pode ser o underscore. Exemplo: float mediaaluno ou float media_aluno C++ <identificador> formado por letras não acentuadas, algarismos e caracter underscore _ O 1 o é, normalmente uma letra, mas pode ser o underscore. Exemplo: float mediaaluno ; ou float media_aluno ;
SINTAXES PORTUGOL // comentário de uma linha /* comentário com mais de uma linha */ C++ // 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,... Comando de Saída cout<< <variável> ; cout<< <constantes>; cout<< <operações> ; cout<< variável << texto <<...;
SINTAXES Caracteres de controle usados com imprima: "\n" alimenta linha(enter) "\t" tabula (tab) PORTUGOL 1/ 9/ 17/ 25/ 33/ 41/ 49/ 57/ 65/ 73 C++ 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 "
SINTAXES PORTUGOL Comando de Atribuição <identificador> <- expressão; Exemplo: media <- ( a + b ) / 2 C++ Comando de Atribuição <identificador> = expressão; Exemplo: media = ( a + b ) / 2;
SINTAXES PORTUGOL Comando de Entrada C++ Comando de Entrada ler <variável> ler var1, var2 cin>> <variável> ; cin>> <var1> >> <var2>;
OPERADOR DE EXTRAÇÃO E OPERADOR DE INSERÇÃO, cin e cout
OPERADORES ARITMÉTICOS 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
PROGRAMA DO DOBRO
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
ESTRUTURA DE DECISÃO Operadores
ESTRUTURA DE DECISÃO Teste Uma expressão relacional
ESTRUTURA DE DECISÃO Teste Uma expressão relacional Duas, ou mais, expressões relacionais unidas por operadores lógicos
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"
ESTRUTURA DE DECISÃO Exemplos C++ num >=100 && num <= 999!var Portugol num >=100 e num <= 999 nao var
ESTRUTURA DE DECISÃO se... entao
ESTRUTURA DE DECISÃO se... entao... senao
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.
ESTRUTURA DE DECISÃO Simples - Exercício Insc, PE PE > 8.5 Insc
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
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"); }
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:...
ESTRUTURA DE DECISÃO Composta - Exercício valor, percentual total=valor valor*percentual / 100 total >=200 total 2 parcelas, total/2
ESTRUTURA DE DECISÃO Composta - Exercício 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 #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"); }
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
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
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
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
TESTE DE MESA Memória Principal num u d c um 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
TESTE DE MESA Memória Principal num u d c um Display 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
TESTE DE MESA Memória Principal num u d c um 9876 Número inteiro... 9876 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
TESTE DE MESA Memória Principal num u d c um 9876 6 Número inteiro... 9876 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 9876 % 10 = 6
TESTE DE MESA Memória Principal num u d c um 9876 6 7 Número inteiro... 9876 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 9876 / 10 = 987 987 % 10 = 7
TESTE DE MESA Memória Principal num u d c um 9876 6 7 8 Número inteiro... 9876 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 9876 / 100 = 98 98 % 10 = 8
TESTE DE MESA Memória Principal num u d c um 9876 6 7 8 9 Número inteiro... 9876 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 9876 / 1000 = 9
TESTE DE MESA Memória Principal num u d c um 9876 6 7 8 9 Display Número inteiro... 9876 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