44
Apresentação Programação I Apresentação Prof. Carlos Alberto [email protected] [email protected]

Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Embed Size (px)

Citation preview

Page 1: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Programação I Apresentação

Prof. Carlos Alberto

[email protected]

[email protected]

Page 2: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT,

A. de M. E.; BIANCHI, F. Algoritmos e

Programação de Computadores. Editora

Campus/Elsevier, 2012.

Referências

Page 3: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

MEDINA, M.; FERTIG, C. Algoritmos e

programação: teoria e prática. São Paulo: Novatec,

2006.

Referências

Page 4: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

SCHILDT, Herbert. C Completo e Total. São Paulo:

Makron Books, 1996.

Referências

Page 5: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Vamos começar?

5

Page 6: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• O que é um algoritmo?

6

Page 7: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• O que é um algoritmo?

• Sequência finita de operações que, quando executadas na ordem

estabelecida, atingem um objetivo determinado em um tempo

finito.

7

Page 8: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• O que é um algoritmo?

• Sequência finita de operações que, quando executadas na ordem

estabelecida, atingem um objetivo determinado em um tempo

finito.

• Um algoritmo deve atender aos seguintes requisitos:

• Posuir um estado inicial;

• Consistir de uma sequência lógica finita de ações claras e

precisas;

• Produzir dados de saída corretos;

• Possuir estado final previsível (deve sempre terminar).

8

Page 9: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Podemos definir algoritmos para resolver problemas do

dia a dia;

• Mas, podemos também desenvolver algoritmos que

podem ser transformados em programas executados em

computadores.

9

Page 10: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Podemos definir algoritmos para resolver problemas do

dia a dia;

• Mas, podemos também desenvolver algoritmos que

podem ser transformados em programas executados em

computadores.

Objetivo da disciplina

10

Page 11: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Para que um algoritmo possa ser executado por um

computador é necessário identificar quais as ações que

essa máquina pode executar;

11

Page 12: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Para que um algoritmo possa ser executado por um

computador é necessário identificar quais as ações que

essa máquina pode executar;

• Exemplo:

Algoritmo “média”

Var

nota1, nota2, media : real

Inicio

leia(nota1, nota2)

media := (nota1 + nota2)/2

escreva(media)

fimalgoritmo

12

Page 13: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Analisando o exemplo, identificamos ações que podem

ser executadas por um computador:

• Obter um dado de uma unidade de entrada de dados, também

chamada de leitura de um dado;

• Resolver expressões aritméticas e lógicas;

• Colocar o resultado de uma expressão em uma variável.

• Informar um resultado através de uma unidade de saída, também

chamada de escrita de uma informação ou saída de um dado;

13

Page 14: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Essas ações são denominadas instruções

ou comandos

14

• Obter um dado de uma unidade de entrada de dados, também

chamada de leitura de um dado;

• Resolver expressões aritméticas e lógicas;

• Colocar o resultado de uma expressão em uma variável.

• Informar um resultado através de uma unidade de saída,

também chamada de escrita de uma informação ou saída de

um dado;

Page 15: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Formas de expressar um algoritmo

• Linguagem textual

• Pseudolinguagem

• fluxograma

15

Page 16: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Linguagem textual. Utiliza a linguagem natural.

• Exemplo: soma dois valores

1. Obter os dois valores

2. Realizar a soma

3. Informar o resultado

16

Page 17: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Pseudolinguagem. Semelhante a uma linguagem de

programação, sem entrar em detalhes como, por

exemplo, formatação de informações de entrada e de

saída.

• Exemplo: soma dois valores

Algoritmo – Soma

Entradas: valor1, valor2 (real)

Saídas: soma (real)

Inicio

ler(valor1, valor2)

soma ← valor1 + valor2

escrever (soma)

Fim

17

Page 18: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Fluxograma. Representação gráfica que possibilita uma

interpretação visual do algoritmo. Não é adequada para

algoritmos muito extensos.

• Exemplo: soma dois valores

18

Page 19: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Dois aspectos devem ser analisados quando se constrói

um algoritmo para ser executado em um computador:

• Eficácia (corretude). Um algoritmo deve realizar corretamente a

tarefa para a qual foi construído.

• Eficiência. A solução de um problema através de um algoritmo

não é necessariamente única. Pode-se calcular a forma mais

eficiente com base em dois critérios: tempo de execução e

espaço de memória ocupado. Exemplos: Algoritmos de Busca e

Algoritmos de Ordenação

19

Page 20: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução

• Programa

• Formalização de um algoritmo em uma determinada linguagem de

programação, segundo suas regras de sintaxe e semântica, de

forma que o computador possa entender a sequência de ações.

• Linguagem de programação

• Conjunto de símbolos (comandos, identificadores, operadores, etc.)

e regras que permitem a construção de sentenças que descrevem

de forma precisa ações compreensíveis e executáveis para o

computador.

• É definida por uma notação formal, através de dois componentes:

sintaxe e semântica.

Page 21: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução

• Sintaxe

• Estabelece a forma como as instruções da linguagem são escritas,

mas sem especificar seu significado.

• Conjunto de regras que determinam que construções estão

corretas e quais não estão.

• Por exemplo, na linguagem C, os blocos de códigos são limitados

por “{}”, enquanto em Pascal, são limitados por BEGIN END.

Page 22: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução

• Semântica

• Complementa a sintaxe.

• Corresponde à descrição do significado das instruções válidas de

uma linguagem.

• Por exemplo, a sintaxe da instrução IF (se) da linguagem PASCAL

é:

IF <condição> THEN

BEGIN

<instruções>

END;

• Sua semântica é: “se o valor da expressão for verdadeira, as

instruções incorporadas serão executadas pelo programa”.

Page 23: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução

• Diferença entre SINTAXE e SEMÂNTICA

Sintaxe: descreve as estruturas de uma linguagem;

Semântica: descreve o significado dessas estruturas.

Page 24: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução

• Tipos de linguagens

Page 25: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Etapas de construção de um programa

• Programar não é uma atividade trivial, pelo contrário, requer muito

cuidado e atenção;

• A dificuldade em gerar bons programas levou à definição de

técnicas específicas que iniciam frequentemente com a construção

de um algoritmo.

• A forma mais simples de garantir a qualidade de um programa é

construí-lo seguindo uma série de etapas.

25

Page 26: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Etapas de construção de um programa

• Análise detalhada do problema. Identifica os aspectos que são

relevantes para a solução do problema.

• Especificação dos requisitos do problema. Identifica e

especifica os resultados que deverão ser produzidos (saídas) e os

dados que serão necessários para a execução da tarfefa

(entradas).

• Construção de um algoritmo. Projeto de um algoritmo que

solucione o problema. Normalmente existem diversas soluções

possíveis, esta etapa determina qual será adotada.

26

Page 27: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Etapas de construção de um programa

• Validação do algoritmo. Nessa etapa é feita a validação lógica do

algoritmo, através de testes de mesa, simulando sua execução

com dados virtuais. O objetivo é verificar se a solução proposta

atinge o objetivo.

• Codificação do programa. Tradução do algorimo para uma

linguagem de programação.

27

Page 28: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Etapas de construção de um programa

• Verificação do programa. Compilação, teste e depuração do

programa gerado. Os mesmos valores utilizados no teste de mesa

podem ser utilizados para testar o programa.

• Manutenção. Essa etapa acompanha o tempo de vida útil do

programa, após ele ser disponibilizado para os usuários. A

finalidade é corrigir eventuais erros detectados e/ou adicionar

novas funcionalidades.

28

Page 29: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Etapas de construção de um programa

29

Page 30: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Paradigmas de programação

• Paradigma. Modelo ou padrão de como uma realidade é

entendida e de como se interage com essa realidade.

• Paradigma de programação. Forma como a solução está

estruturada e será executada no programa gerado, incluindo

técnicas e conceitos específicos, bem como os recursos

disponibilizados.

30

Page 31: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Principais paradigmas das linguagens de programação

• Imperativo ou procedural.

• Funcional.

• Lógico.

• Orientação a objetos.

31

Page 32: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Imperativo ou procedural. O programa é composto por

uma sequência de comandos a serem executados pelo

computador em uma determinada ordem.

• Ex.: Pascal, C, Fortran, Cobol, Basic;

• Funcional. O programa é composto pela declaração de

funções que transformam a(s) entrada(s) na(s) saída(s)

desejada(a).

• Ex.: Lisp, Haskell;

32

Page 33: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Lógico. Utilza a avaliação de condições lógicas como

base para a escrita dos programas. Um programa é

composto por regras que disparam ações a partir da

identificação de premissas.

• Ex.: Prolog;

• Orientação a objetos. O mundo real é representado por

meio de classes de objetos e das operações que podem

ser realizadas sobre eles, as quais definem seu

comportamento. Conceitos básicos adotados nesse

paradigma: herança e polimorfismo.

• Ex.: Java, C++, C#, Smalltalk.

33

Page 34: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Nessa disciplina será utilizado o paradigma imperativo ou

procedural, pelas seguintes razões:

• O paradigma imperativo permite representar de uma forma intuitiva

os problemas do dia a dia, que geralmente são executados através

de sequências de ações;

• Historicamente, os primeiros programas foram desenvolvidos em

linguagens imperativas, sendo esse paradigma dominante e bem

estabelecido;

• Existe um grande número de algoritmos e de sistemas

implementados em linguagens que seguem esse paradigma, os

quais podem ser utilizados como base para o desenvolvimento de

novos programas.

34

Page 35: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Programação estuturada

• A programação estruturada pode ser vista como um subconjunto

do paradigma imperativo.

• Princípio da programação estruturada

• O fluxo do programa deve ser estruturado, devendo esse fluxo ficar

evidente a partir da estrutura sintática do programa.

• A estruturação deve ser garantida em dois níveis:

• Nível de comandos

• Nível de unidades.

35

Page 36: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Nível de comandos

• O programa deve ter um único ponto de entrada e um único

ponto de saída;

• Deve exisitir de “1 a n” caminhos definidos do princípio ate o fim do

programa, sendo todas as instruções executáveis;

• Não podem aparecer loops infinitos de alguns comandos;

36

Page 37: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Nível de comandos

• O programa deve ser composto por blocos elementares de

instruções (comandos), interconectados apenas pelos três fluxos

de execução: sequência, seleção e iteração;

• Cada bloco elementar deve ser delimitado por um ponto de início e

por um ponto de término.

• É totalmente proibido o uso de desvios incondicionais,

implementado pelo comando GOTO (vá para).

37

Page 38: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Nível de comandos

38

Page 39: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Nível de unidades

• A programação estruturada baseia-se na ideia proposta em 1972

por Dijkstra:

“A arte de programar consiste na arte de organizar e dominar a

complexidade dos sistemas”.

• Deve-se enfatizar a utilização de unidades separadas de

programas (módulos), que são ativadas através de comandos

especiais;

• Deve-se utilizar a tática de “dividir para conquistar”;

39

Page 40: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Nível de unidades

• O programa deve ser feito de forma descendente, decompondo o

problema inicial em módulos ou estruturas hierárquicas

(programação modular).

40

Page 41: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• Em resumo, a programação estruturada consiste em:

• Uso de um número muito limitado de estruturas de controle;

• Desenvolvimento de algoritmos por fases ou refinamentos

sucessivos;

• Decomposição do algoritmo total em módulos.

41

Page 42: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

• A programação estruturada visa à:

• Corretude da solução desenvolvida;

• Simplicidade da solução, garantindo fácil compreensão do código;

• Fácil manutenção dos programas, inclusive por outras pessoas

além do desenvolvedor inicial.

42

Page 43: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Introdução à programação

Nessa disciplina será utilizada a programação

estruturada, incentivando a modularização, de

forma a garantir a qualidade dos programas

construídos;

43

Page 44: Programação I - alged.webnode.com · Apresentação Introdução à programação •Dois aspectos devem ser analisados quando se constrói um algoritmo para ser executado em um

Apresentação

Obrigado!!!