Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lógica de Programação e Algoritmos Aêda Sousa aedasousa@gmail.com 25/08/2017 1 Agenda O que veremos nesta aula ? ➢ Representações de Algoritmos ➢ Fluxograma Convencional ➢ Pseudocódigo ➢ Linguagens de Programação ➢ Compilador ➢ Interpretador 25/08/2017 Aula Anterior • Lógica • Lógica de Programação • Algoritmos – Descrição Narrativa 25/08/2017 Para programar você precisa aprender a pensar de uma forma “burra”. E se expressar também... Ou seja, precisamos aprender a pensar de uma forma lógica, em forma de instruções. Como se falássemos com um robô. 25/08/2017 Este é o primeiro passo para se dominar a arte de programar! Primeiro precisamos entender o problema, depois resolvê-lo. 25/08/2017 Algoritmos Soma de dois números... • Escreva o primeiro número no retângulo A • Escreva o segundo número no retângulo B • Some o número do retângulo A com o número do retângulo B e coloque o resultado em C. 25/08/2017 3 5 8 Algoritmos Passos de um Algoritmo • Entrada de dados – dados de entradas do algoritmo • Processamento de dados – procedimentos para chegar ao resultado final • Saída de dados – os dados já processados 25/08/2017 3 5 8 Entrada de Dados Processamento de Dados Saída de Dados Algoritmos • Todo o algoritmo possui pelo menos um resultado. • Os passos devem ser precisos, não dando margem a ambiguidades. • Um algoritmo útil deve terminar em um tempo finito. 25/08/2017 Algoritmos Características Importantes ➢ Finitude: Um algoritmo tem que terminar com um número finito de passos. ➢ Definição: Cada passo do algoritmo deve ser definido com precisão. ➢ Entrada: Um algoritmo pode ter zero ou mais entradas. ➢ Saída: Um algoritmo tem uma ou mais saídas. 25/08/2017 Algoritmos Representação ➢ Descrição Narrativa: uso de português ➢ Fluxograma: símbolos gráficos para representar fases e componentes dos algoritmos; ➢ Pseudocódigo: Definição de uma pseudo-linguagem de programação, cujos comandos são em português. 25/08/2017 Fluxograma Diagrama de Blocos... ➢Representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos; ➢Fácil visualização; ➢Facilita o entendimento do algoritmo. 25/08/2017 Fluxograma 25/08/2017 Fluxograma 25/08/2017 25/08/2017 INÍCIO N1, N2 MEDIA = (N1+N2)/2 MEDIA FIM 25/08/2017 Fluxograma ➢Vantagem ➢Representação gráfica é mais concisa que a representação textual. ➢Desvantagem ➢Necessário aprender a simbologia dos fluxogramas. 25/08/2017 Pseudocódigo ➢Pseudolinguagem de programação ➢Comandos em português ➢Informações ricas em detalhes; ➢Assemelha-se com à forma em que os programas serão escritos 25/08/2017 Pseudocódigo Algoritmo <Nome do Algoritmo> <declaração_de_variáveis> Início <corpo_do_algoritmo> Fim 25/08/2017 Pseudocódigo Algoritmo Calcula_Dobro Var Num, Dobro: Inteiro; Inicio Leia Num; Dobro Num*2; Escreva Dobro; Fim 25/08/2017 Pseudocódigo Principais Comandos ➢Atribuição (= ou := ou ) : Utilizado para guardar um valor em uma variável ➢total = 0 ➢SOMA SOMA + 1 ➢mensagem := ''Erro de Digitação !'' 25/08/2017 Pseudocódigo Principais Comandos ➢ Entrada de Dados: Utilizado para ler dados do usuário de dispositivos externos ➢ leia(Idade) ➢ leia(número) ➢ Saída de Dados: Utilizado para exibir dados ➢ escreva(Idade) ➢ escreva(“Melhor disciplina do período!) ➢ escreva(‘’Olá Mundo!'') 25/08/2017 Pseudocódigo ➢Vantagem ➢ Usa o português como base. ➢ Pode-se definir quais e como os dados vão estar estruturados. ➢ Passagem quase imediata de um algoritmo para uma linguagem qualquer. ➢Desvantagem ➢ Necessário aprender as regras do pseudocódigo. ➢ Não é padronizado 25/08/2017 Pseudocódigo 25/08/2017 Pseudocódigo 25/08/2017 Pseudocódigo 25/08/2017 Algoritmos • DICAS IMPORTANTES 25/08/2017 Algoritmos NÃO se aprende Algoritmos SE aprende Copiando algoritmos Construindo algoritmos Estudando algoritmos prontos Testando algoritmos Algoritmos DICAS IMPORTANTES ➢De forma genérica, a construção de um algoritmo se resume às seguintes etapas: ➢ 1. Entendimento do problema ➢ 2. Elaboração da solução algorítmica ➢ 3. Codificação da solução em pseudocódigo ou linguagem de programação ➢Geralmente a etapa 2 é a mais complexa 25/08/2017 Algoritmos ➢O fluxo de controle segue a mesma sequência linear da nossa escrita, ou seja: ➢De cima para baixo; ➢Da esquerda para direita 25/08/2017 Linguagens de Programação 25/08/2017 Linguagens de Programação ➢Uma linguagem de programação é um vocabulário e um conjunto de regras usadas para escrever programas de computador; ➢Divididas em três tipos, com relação à similaridade com a linguagem humana: ➢Linguagem de Máquina ➢Linguagem Simbólica ➢Linguagem de Alto Nível 25/08/2017 Linguagens de Programação Linguagem de Máquina ➢ É linguagem de mais baixo nível de entendimento pelo ser humano e a única entendida pelo Unidade Central de Processamento (UCP); ➢ Constituída inteiramente de números (0’s e 1’s) – Sistema Binário ➢ Uma instrução típica em linguagem de máquina seria algo como: 0100 1111 10102 25/08/2017 Linguagens de Programação Sistema Binário ➢ O sistema binário ou de base 2 é um sistema de numeração posicional em que todas as quantidades se representam com base em dois números, ou seja, zero e um (0 e 1); 25/08/2017 • Sistema Decimal para Sistema Binário 25/08/2017 Linguagens de Programação Sistema Decimal para Sistema Binário ➢ Atividade: Calcule 20 em binário. 25/08/2017 Linguagens de Programação 25/08/2017 Linguagens de Programação Sistema Binário para Sistema Decimal ➢ Atividade: Qual o valor em sistema decimal para o valor 101002 25/08/2017 Linguagem Simbólica: Assembly ➢ linguagem de nível imediatamente acima da linguagem de máquina; ➢ Possui a mesma estrutura e conjunto de instruções que a linguagem de máquina, porém permite que o programador utilize nomes (mnemônicos) e símbolos em lugar de números; ➢ A conversão da linguagem simbólica para a linguagem de máquina se chama montagem, e é feita por um programa chamado montador (assembler). 25/08/2017 Linguagens de Programação Linguagem Simbólica: Assembly ➢ Exemplo de instrução: ➢ ADD A, B (Adição de valores) ➢ MOV AX, 61h (Mover o valor 61h para o registrador AX) ➢ Classificada como linguagem de segunda geração; ➢ Assim como a linguagem de máquina, é considerada uma linguagem de baixo nível. 25/08/2017 Linguagens de Programação Linguagem de Alto Nível ➢ linguagens de programação que possuem uma estrutura e palavras-chave que são mais próximas da linguagem humana ➢ C, C++, Java, Python, etc ... ➢Programas escritos nessas linguagens são convertidos para a linguagem de baixo nível através de um programa denominado compilador ou de um interpretador. 25/08/2017 Linguagem de Alto Nível ➢ Exemplo de instrução de uma linguagem de alto nível: if (A>10) then A=A-7; 25/08/2017Hardware Linguagem de Máquina Linguagem Assembly Linguagem Alto Nível Similaridade com a Linguagem humana. Linguagens de Programação Compilador ➢Transformação de um programa em código fonte para linguagem de máquina ➢Programa em código fonte = programa escrito pelo programador. ➢Programa em linguagem de máquina = programa executável. ➢Linguagem C 25/08/2017 Linguagens de Programação Interpretador ➢Executa instruções emuma determinada linguagem: ➢Traduz o código fonte em uma representação intermediária e o executa imediatamente. ➢Python, Matlab, Java, etc. ➢Principal desvantagem: Eficiência 25/08/2017 Dúvidas 25/08/2017 43 Lembre-se sempre: Entenda primeiro o problema antes de executar qualquer coisa. 25/08/2017 Atividade • Um algoritmo para calcular sua idade em 2030 • Fluxograma • Pseudocódigo • Um algoritmo para calcular a média (levando em consideração que são 3 notas). • Fluxograma • Pseudocódigo 25/08/2017 Obrigada! “Não importa o quão devagar você vá, desde que você não pare” -Confúcio 25/08/2017 46 Lógica de Programação e Algoritmos Aêda Sousa aedasousa@gmail.com 25/08/2017 47
Compartilhar