Você está na página 1de 26

Algoritmos e a Linguagem de Programação

Definições
 Engenharia de Software: uma área da computação voltada à
especificação, desenvolvimento, manutenção e criação de sistemas de
software, com aplicação de tecnologias e práticas de gerência de
projetos e outras disciplinas, visando organização, produtividade e
qualidade.
 Atualmente, essas tecnologias e práticas englobam linguagens de
programação, banco de dados, ferramentas, plataformas, bibliotecas,
padrões, processos e a questão da qualidade de software.
 Linguagem de programação: são regras que permitem transformar um
algoritmo em um programa.
 Algoritmo: é uma sequência lógica de ações a serem executadas em
uma determinada tarefa.
 Programa: é um algoritmo que pode ser entendido por um hardware.
Ementa do PPC
 Engenharia de Software: englobam linguagens de programação,
banco de dados, ferramentas, plataformas, bibliotecas, padrões,
processos e a questão da qualidade de software.
 Linguagem de programação: são regras que permitem transformar um
algoritmo em um programa.
 Algoritmo: é uma sequência lógica de ações a serem executadas em
uma determinada tarefa.
 Programa: é um algoritmo que pode ser entendido por um hardware.

 Nome alternativo desta disciplina: “Algoritmo e Lógica de Programação”


Algoritmo
 Um algoritmo é formalmente uma sequência lógica e finita de passos
que levam a execução de uma tarefa.
 Assim, até mesmo as coisas mais simples, podem ser descritas por
sequências lógicas:
 Por exemplo, a sequência para “Somar dois números quaisquer”
 1. Escreva o primeiro número no círculo A.
 2. Escreva o segundo número no círculo B.
 3. Some o número do círculo A com número do círculo B e coloque o

resultado no quadrado.
Programa
 Um programa corresponde as ações de um algoritmo transcritas em
uma linguagem de programação obedecendo à sua sintaxe.
 São exemplos de linguagens de programação: Java, Delphi, C, Pascal,
LabVIEW, Arduino etc.

Exemplo de programação
gráfica feito no LabVIEW

Exemplo de programação
através de linhas de comando
Motivo da escolha do Arduino
 Estudantes, hobbistas e profissionais de diversas áreas,cada vez mais,
estão utilizando a plataforma Arduino para por em prática suas ideias.
 O projeto do Arduino foi desenvolvido em uma ambiente educacional,
logo é excelente para os iniciantes obterem projetos trabalhando de
modo rápido.
 Seu ambiente de programação é um ambiente de desenvolvimento
muito fácil de usar por projetistas.
 É um "open source Hardware e software", sendo que se desejado,
pode-se baixar o diagrama do circuito, comprar todos os componentes e
fazer a sua própria placa.
 O hardware é um chip de baixo custo.
 Existem diversas comunidades onde se pode buscar ajuda.
 Há simuladores de Arduino online, o que dispensa a necessidade da
disponibilidade física de hardware para aprender a usar suas
funcionalidades básicas.
Hardware para programas
 Dependendo da aplicação, um programa pode rodar em um computador
associado a uma placa de aquisição de dados ou em um microcontrolador.

ou
Hardware para programas
 As aplicações podem ser as mais diversas.
Vídeo
What Most Schools Dont Teach:
https://youtu.be/nKIu9yen5nc

Projetos com Arduino:


https://www.youtube.com/watch?v=Lp8eSCuQqb0
https://www.youtube.com/watch?v=0f2DlmolKvQ
Apresentação do Plano de Ensino
 Vide arquivo no Moodle.
Definição de Algoritmo
 Formalmente, um algoritmo é uma sequência lógica e finita de passos
que levam a execução de uma tarefa.
 Assim, até mesmo as coisas mais simples, podem ser descritas por
sequências lógicas:
 Por exemplo, a sequência para “Somar dois números quaisquer”
 1. Escreva o primeiro número no círculo A.
 2. Escreva o segundo número no círculo B.
 3. Some o número do círculo A com número do círculo B e coloque o

resultado no quadrado.
Construção de um Algoritmo
 Etapas:

 1º Análise preliminar
 2º Solução
 3º Teste de qualidade
 4º Alteração
 5º Produto final
Construção de um Algoritmo
 1º Análise preliminar:
 Entender o problema, identificando os dados envolvidos e os resultados
esperados.
 Antes de montar um algoritmo, precisa-se dividir o problema
apresentado em três fases fundamentais.

 ENTRADA: São os dados de entrada do algoritmo provenientes do meio


externo, manual ou automaticamente.
 PROCESSAMENTO: São os procedimentos utilizados para chegar ao
resultado esperado.
 SAÍDA: São as ações geradas pelo algoritmo para o meio externo.
Construção de um Algoritmo
 2º Solução:
 Desenvolver a sequência lógica e finita de passos que levam a
execução de uma tarefa para resolver o problema.
 Para tanto, pode-se empregar uma decomposição (Top-Down), que
consiste em pegar um grande problema, de difícil solução, e dividi-lo em
problemas menores que devem ser mais facilmente resolvidos.
Construção de um Algoritmo
 2º Solução:
 Desenvolver a sequência lógica e finita de passos que levam a
execução de uma tarefa para resolver o problema.
 Para tanto, pode-se empregar uma decomposição (Top-Down), que
consiste em pegar um grande problema, de difícil solução, e dividi-lo em
problemas menores que devem ser mais facilmente resolvidos.
Construção de um Algoritmo
 3º Teste de qualidade:
 Ideal testar o algoritmo com o máximo de combinações possíveis.
 4º Alteração:
 Caso o resultado do algoritmo não seja satisfatório, altere-o e submeta
a um novo teste.
5º Produto final:
 Algoritmo concluído e testado.
Formas de Representação de um Algoritmo
 Dentre as formas de representação de algoritmos mais conhecidas,
podemos citar:
 Descrição Narrativa;
 Fluxograma;
 Pseudocódigo.
Formas de Representação de um Algoritmo
 Descrição Narrativa: Nesta forma de representação, os algoritmos são
expressos diretamente em linguagem natural.
 Porém, apresenta o inconveniente da ambiguidade de alguns termos.
 Por exemplo, para o cálculo da média de um aluno:
 Obter as notas da primeira e da segunda prova;
 Calcular a média aritmética entre as duas;
 Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele
foi reprovado.
Formas de Representação de um Algoritmo
 Fluxograma: Permite visualizar os caminhos (fluxos) e as etapas de
processamento de dados possíveis.
 Dentro destas etapas, os passos para a resolução do problema utiliza
modelagem com uma linguagem visual para especificar o conjunto de
instruções por meio de formas geométricas, facilitando a compreensão
da lógica utilizada pelo profissional.
 Existem atualmente vários padrões
para definir as formas geométricas a
serem utilizadas para as diversas
instruções (passos) a serem
seguidos pelo sistema.
Formas de Representação de um Algoritmo
 Fluxograma:

- Obter as notas da primeira e da segunda


prova;
- Calcular a média aritmética entre as duas;
- Se a média for maior ou igual a 7, o aluno
foi aprovado, senão ele foi reprovado.
Se resultado=>7,
Então rfinal= aprovado
Senão,
Então rfinal= reprovado
Formas de Representação de um Algoritmo
 Pseudocódigo: É uma forma genérica de escrever um algoritmo,
utilizando uma linguagem simples.
 Por assemelhar-se bastante à forma em que os programas são escritos,
encontra muita aceitação.
 Na verdade, esta representação é suficientemente geral para permitir a
tradução de um algoritmo nela representado para uma linguagem de
programação.
 Existem algumas variações no formato do pseudocódigo, dependendo
do autor.
Formas de Representação de um Algoritmo
 Pseudocódigo: Exemplo de implementação em Arduino.
Formas de Representação de um Algoritmo
 Pseudocódigo: Exemplo de implementação em LabVIEW.
Cadastrar no TinkerCad
 www.tinkercad.com
Vídeo
Quarta Revolução Industrial:
https://www.youtube.com/watch?v=jTLpqipsw0g
Bibliografia
Bibliografia Básica:
FARREL, Joyce. Lógica e design de programação: introdução. São Paulo:
Cengage Learning, 2010.
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica
para desenvolvimento de programação de computadores. 8.ed. São Paulo:
Érica, 2000.
SOUZA, Marco Antonio Furlan de et al. Algoritmos e lógica de programação: um
texto introdutório para Engenharia. São Paulo: Cengage Learning, 2004.

Bibliografia Complementar:
DROZDEK, Adam. Estrutura de dados e algoritmos C++. São Paulo: Pioneira
Thomson Learning, 2002.
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de
programação: a construção de algoritmos e estruturas de dados. 3. ed. São
Paulo: Pearson Prentice Hall, 2005.
PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. 6.
ed. São Paulo: McGraw-Hill, 2010.
SALVETTI, Dirceu Douglas; BARBOSA, Lisbete M. Algoritmos. São Paulo: Makron
Books, 1998.
TUCKER, Allen B.; NOONAN, Robert E. Linguagens de programação: princípios
e paradigmas. 2.ed. São Paulo: MacGraw Hill, 2008.

Você também pode gostar