Prof. MSc. Fabiano Amorim Vaz
Apresentação da Disciplina
Quem é esse Professor?
Nome: Fabiano Amorim Vaz Formação Acadêmica:
• Mestre em Ciência da Computação – UFPE
– Universidade Federal de Pernambuco
• Pós-graduando em Docência do Ensino Superior
– Universidade Leonardo Da Vinci
• Bacharel em Sistemas de Informação – FASETE
– Faculdade Sete de Setembro
Research Interests:
• Realidade Virtual e Aumentada; • Inteligência Artificial;
• Processamento de Imagens;
Índice da Apresentação
Prof. MSc. Fabiano Amorim Vaz 3 » Apresentação da Disciplina
» Objetivo da Disciplina
» Critérios para a Avaliação
» Objetivo da Aula
» Fundamentos de Lógica de Programação
» Lógica
» Sequência
» Instruções
» Algoritmos
Apresentação da Disciplina
» Fundamentos de Algoritmos e Programas:
» Noções básicas sobre linguagens de programação;
» Discussão das formas de representação do raciocínio algoritmo;
» Definição dos elementos básicos de um algoritmo em uma linguagem de pseudo-código;
» Apresentação e utilização de um Ambiente Integrado de Desenvolvimento (IDE):
» Tipos de dados (constantes e variáveis);
Objetivo da Disciplina
Prof. MSc. Fabiano Amorim Vaz 5 » Capacitar o aluno a entender os conceitos básicos relacionados à lógica
de programação e algoritmos
» Demonstrar a importância dos conceitos para o desenvolvimento de sistemas computacionais.
» Utilizar formas de representações de problemas com construções de algoritmos e programas.
» Caracterizar e ilustrar o que é um algoritmo
Como conseguiremos?
» Proporcionando o desenvolvimento de uma visão crítica sobre a Lógica de Programação.
» Desenvolvendo a habilidade de solucionar problemas de média complexidade.
» Compreendendo a linguagem C e os mecanismo para utilizá-la.
» Praticando o raciocínio lógico e delineando sequências de instruções.
O que precisamos saber?
Prof. MSc. Fabiano Amorim Vaz 7 » Habilidades pessoais:
– Raciocínio Lógico;
– Organização de Pensamentos;
– Inglês Instrumental (para Ciência da Computação).
» Conhecimento especifico:
Recursos Didáticos
» Site da Disciplina:
– Fórum de discussões centralizado;
– Resolução de questões.
» Plano de Curso (conteúdo programático, método de avaliação,..);
» PIT (Planejamento cronológico,...);
Metodologia de Trabalho
Prof. MSc. Fabiano Amorim Vaz 9 » Aulas expositivas intercalada com aulas práticas onde serão feitos pequenos
protótipos utilizando os conceitos apresentados;
» A disciplina será trabalhada a partir de presença e participação em aulas;
» Apresentação de textos complementares, discussões e trabalhos em grupos (projetos), avaliação formal e informal;
» Exercícios tem destaque especial na avaliação, por comprovar na prática o que conhecimento teórico discutido.
Método de Avaliação
» 1ª NOTA:
– 10,0 pontos – Exercícios Complementares.
– 10,0 pontos – “Mini-prova”.
• A 1ª nota é composta pela média aritmética das notas.
» 2ª NOTA:
– 10,0 pontos – Projeto.
– 10,0 pontos – “Mini-prova”.
O QUE É LÓGICA?
R: Encadeamento e ordenação de ideias
INICIANDO...
Lógica de Programação: é a técnica de
encadear pensamentos para atingir
determinado objetivo.
Lógica de Programação
»
A lógica de programação é necessária para pessoas que
desejam trabalhar com desenvolvimento de sistemas e
programas, ela permite definir a seqüência lógica para o
desenvolvimento.
Sequência Lógica são passos
executados até atingir um objetivo
ou solução de um problema.
Sequência Lógica
Prof. MSc. Fabiano Amorim Vaz 13
»
Estes pensamentos, podem ser descritos como uma seqüência
de instruções, que devem ser seguidas para se cumprir uma
determinada tarefa.
» Exemplo:
» Sacar dinheiro no Banco (desordenado)
» Sair do Banco
» Pegar a fila do caixa
» Informar o valor
» Inserir o cartão
» Inserir a senha
» Pegar o dinheiro
» Entrar no Banco
Sequência Lógica
Prof. MSc. Fabiano Amorim Vaz 15
» Exemplo:
» Sacar dinheiro no Banco (ordenado)
1. Entrar no Banco
2. Pegar a fila do caixa
3. Inserir o cartão
4. Inserir a senha
5. Informar o valor
6. Pegar o dinheiro
7. Sair do Banco
Sequência Lógica
Instruções
são um conjunto de regras
ou normas definidas para a realização
ou emprego de algo.
Em informática, é o que indica a um computador uma ação
Instruções de Programas
» Indica a um computador uma ação elementar a executar.
» Uma ordem isolada não permite realizar o processo completo, para isso é necessário um conjunto de instruções colocadas em ordem sequencial lógica.
Até mesmo as coisas mais simples,
podem ser descritas por sequências
lógicas.
Por exemplo: Trocar uma lâmpada;
Algoritmos de Programação
Prof. MSc. Fabiano Amorim Vaz 17
»
Sequência finita de passos que levam a execução de uma
tarefa.
»
Estas tarefas não podem ser redundantes nem subjetivas na
sua definição, devem ser claras e precisas.
Algoritmos de Programação
»
Características básicas de um algoritmo:
– Sequência lógica
• As instruções devem ser definidas em uma ordem correta.
– Não ambígua
• A sequência lógica e as instruções não devem dar margem à
dupla interpretação.
– Solução de um problema
• A sequência lógica deve resolver exatamente (nem mais e
nem menos) o problema identificado.
Algoritmos de Programação
Prof. MSc. Fabiano Amorim Vaz 19
• Exemplos de algoritmos
– Receitas de comidas
– Coreografia
– Manuais de instalação
• Contra-exemplos de algoritmos
– Listas de compras
– Dança informal
Algoritmos de Programação
»
Atenção:
»
Um algoritmo é “uma solução” e não “a solução” de
um problema.
»
Um problema pode ser resolvido por mais de um algoritmo!
»
Tarefas que possuem “padrão de comportamento”
podem ser descritas por um algoritmo.
Exemplo:
Prof. MSc. Fabiano Amorim Vaz 21
Retângulo A Retângulo B Retângulo C
1º - Escrever o primeiro número no retângulo A
2º - Escrever o primeiro número no retângulo B
3º - Some o número do retângulo A com o número do
retângulo B e coloque o resultado no retângulo C
Um programa é por natureza muito
específico e rígido em relação aos algoritmos
da vida real.
O que são Programas?
» Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador:
– Pascal; C; Java; Python; Ruby; entre outras
Fluxo de Dados de um Programa
Prof. MSc. Fabiano Amorim Vaz 23
Instruções de E/S
Entrada
de Dados
Processamento
de dados
Saída
de
Dados
COMO CRIAR UM PROGRAMA?
INICIANDO...
Linguagem de Programação?
Prof. MSc. Fabiano Amorim Vaz 25
COMO REPRESENTAR UM
ALGORITMO?
INICIANDO...
Representando um Algoritmo
Prof. MSc. Fabiano Amorim Vaz 27
»
Algoritmos podem ser representados, dentre outras maneiras,
por:
»
DESCRIÇÃO NARRATIVA
» Utiliza uma linguagem de escrita natural para descrever algoritmos.
»
FLUXOGRAMA (DIAGRAMA DE MÓDULOS)
» Utiliza uma linguagem de representação gráfica para descrever
algoritmos.
»
LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO)
Representando um Algoritmo
• Descrição narrativa do algoritmo
Fahrenheit-Celsius:
- solicite a temperatura em Fahrenheit;
- transforme a temperatura em Fahrenheit para Celsius;
- informe a temperatura em Celsius.
Representando um Algoritmo
Prof. MSc. Fabiano Amorim Vaz 29
• Fluxograma (Diagrama de Módulos)
– Seus principais símbolos gráficos são:
= Início e final do fluxograma = Operação de entrada de dados
= Operações de processamento
= Decisão
= Operação de saída de dados em vídeo
= Seta de Fluxo de Dados = Conector de Fluxo de Dados
Representando um Algoritmo
• Fluxograma do algoritmo Fahrenheit-Celsius
Início Fahrenheit Celsius = 5/9 * (Fahrenheit – 32) Celsius Início do algoritmo Entrada da temperatura (F) Cálculo da temperatura (C) Apresentação do resultadoRepresentando um Algoritmo
Prof. MSc. Fabiano Amorim Vaz 31
• Linguagem algorítmica (pseudo-código)
– A forma geral de um algoritmo em pseudo-código:
Algoritmo <nome_do_algoritmo>
[<declaração_de_variáveis>]
[<sub-algoritmos>]
Início
<corpo_do_algoritmo>
Fim.
Representando um Algoritmo
• LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO)
– Onde:
• Algoritmo
– Indica o início da definição do algoritmo.
• <nome_do_algoritmo>
– Nome dado ao algoritmo para distingui-lo dos demais.
• [<declaração_de_variáveis>]
Representando um Algoritmo
Prof. MSc. Fabiano Amorim Vaz 33
• LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO)
– Onde:
• [<subalgoritmos>]
– Parte opcional onde são definidos os sub-algoritmos.
• Início
– Palavra que delimita o início
do corpo do algoritmo.
• <corpo_do_algoritmo>
– Conjunto
de instruções do algoritmo.
• Fim
Representando um Algoritmo
• Pseudo-código do algoritmo Fahrenheit-Celsius
Algoritmo Fahrenheit-Celsius
Real: Fahrenheit, Celsius;
Início
Ler (Fahrenheit);
Celsius 5/9 * (Fahrenheit – 32);
Escrever (Celsius);
Representando um Algoritmo
Prof. MSc. Fabiano Amorim Vaz 35
Ling. Algorítmica
Algoritmo Fahrenheit-Celsius Real: Fahrenheit, Celsius; Início Ler (Fahrenheit); Celsius 5/9 * (Fahrenheit – 32); Escrever (Celsius); Fim
Fluxograma
Desc. Narrativa
Solicite a temperatura em Fahrenheit. Transforme de Fahrenheit para Celsius. Informe a temperatura em Celsius. Início Fahrenheit Celsius = 5/9 * (Fahrenheit – 32) Celsius FimRepresentando um Algoritmo
Vantagens Desvantagens
Descrição Narrativa
O português é bastante conhecido
por nós.
Imprecisão.
Pouca confiabilidade (a imprecisão
acarreta a desconfiança).
Extensão (normalmente, escreve-se
muito para dizer pouca coisa).
Fluxograma Padrão mundial.
Ferramenta bem conhecida.
Figuras dizem muito mais que
palavras.
Complica-se à medida que o
algoritmo cresce.
Pouca atenção aos dados, não
oferecendo recursos para declará-los.
Linguagem Algorítmica
Independência de linguagem de
programação.
Usa o português como base.
Define-se melhor quais e como os
dados vão estar estruturados.
Exige a definição de uma linguagem
não real para trabalho.
Feedback de conhecimentos
Prof. MSc. Fabiano Amorim Vaz 37 » Atividade de Participação (em dupla):
» Desafios Lógicos
» Desafios Algoritmos
» Objetivo:
» Verificar o grau da aprendizagem do tema apresentado: Lógica de Programação.
» Inicio: AGORA!!!