algoritmos introdução

47
1 Introdução à Introdução à Informática Informática (Programação) (Programação)

Upload: sophia-myers

Post on 28-Dec-2015

3 views

Category:

Documents


0 download

TRANSCRIPT

1

Introdução à Introdução à InformáticaInformática

(Programação)(Programação)

2

Conceitos Básicos

-AlgoritmosAlgoritmos

-Programação Programação EstruturadaEstruturada

-Linguagens de Linguagens de ProgramaçãoProgramação

3

Os computadores, infelizmente,

só fazem aquilo que

mandamos, e não

necessariamente o que

desejamos que eles façam

4

ProblemaProblema

Solução em forma de

ALGORITMO

Solução como um

PROGRAMA de computador

Passo DifícilPasso Difícil

Fase de Resolução do

problema

Fase da Implementação

LINGUAGEM DE PROGRAMAÇÃO

5

O conceito central da Programação e

da Ciência da Computação

“Programar é basicamente construir Algoritmos”

ALGORITMOALGORITMO

6

O que é um O que é um ALGORITMO?ALGORITMO?

7

Algoritmo Bolo_Chocolate: Este algoritmo descreve os passos necessários para fazer um BOLO DE CHOCOLATE.

1. [Início: Separar os Ingredientes]

1.1. 3 ovos

1.2. 1 xícara e 1/2 de açucar

1.3. colher (chá) de baunilha

1.4. 1 xícara (chá) de maionese

1.5. 1 xícara e 1/2 de farinha

1.6. 1 colher (sopa) de pó royal

1.7. 1 xícara (chá) de chocolate em pó

2. [Após ter os ingredientes separados executar o modo de fazer]

2.1. Faça o bolo da maneira de costume

3. FIM

8

Algoritmo MENOR_2: Este algoritmo lê três números (A, B, C), determine e imprime o menor deles. Assumir os três números diferentes.

1. [Início: Ler os três números]

Declarar inteiros A,B,C,Menor;

Leia (A, B, C);

2. [Calcular o menor deles]

SE (A<B e A<C)

ENTÃO MENOR = A;

SENÃO SE (B<C)

ENTÃO MENOR = B;

SENÃO MENOR = C;

FIM DO SE;

FIM DO SE;

3. [Imprimir o menor deles]

Escreva (MENOR);

4. FIM

9

ALGORITMOALGORITMO Dia a Dia temos contato com algoritmos Exemplos

Indicações dadas para se chegar até uma determinada rua

Um receita culinária Uma planta serve ao mesmo propósito num

projeto de construção Instruções para o uso de medicamentos,

equipamentos Indicações de como montar um aparelho

10

ALGORITMOALGORITMO

SOLUÇÃOORDEM

PROBLEMA

11

• Uma Sequência Ordenada e sem Ambiguidade de passos executáveis,

• Precisamente definidos, que manipulam um conjunto de informações (dados) a fim de resolver um dado problema.

ALGORITMOALGORITMO

12

Propriedades de um AlgoritmoA descrição dos passos de um algoritmo deve ser simples e sem ambiguidades;

Os passos devem estar numa ordem cuidadosamente definida;

Deve ser efetivo, ou seja, resolver o problema utilizando um número finito de passos;

Têm um caráter imperativo, na qual a ocorrência de uma ação num algoritmo também é chamada de comando;

Legível, bem documentado, claro e de fácil compreensão

13

ALGORITMOALGORITMO

Definição de um algoritmo:

DESENVOLVIMENTO DA SOLUÇÃO DO PROBLEMA

+CODIFICAÇÃO DO PROGRAMA EM UMA

LINGUAGEM ESPECÍFICA

Como a PRECISÃOPRECISÃO é essencial, existem notações para descrever algoritmos

14

Descrição de AlgoritmosDescrição de Algoritmos

A descrição de um algoritmo de uma forma clara e fácil de ser seguida.

Ajuda o desenvolvimento e a subsequente transformação do mesmo num programa,

Ajudando ainda na preparação de sua documentação

15

Formas de descrever Formas de descrever um Algoritmosum Algoritmos

Descrição Narrativa Descrição Verbal em Linguagem

Natural Linguagem Algorítmica

Linguagem simplificada Fluxograma

Linguagem gráfica

16

Descrição NarrativaDescrição Narrativa Método direto é expressar seus passos verbalmente Linguagem Natural (LN) é PROLIXA (cansativa,

longa, irritante) e IMPRECISA Problemas:

Perigo de má interpretação Perda de informação

Dificuldade de se transmitir informação com a LN é a base de um jogo popular

Explicar um caminho para sair do Anchieta e chegar em casa

17

Linguagem AlgorítmicaLinguagem Algorítmica

É uma linguagem especial para a expressão de algoritmos

É uma linguagem de programação simplificada

18

Algoritmos Estruturados

19

Objetivos:

Introduzir uma linguagem textual e outra gráfica para a representação de algoritmos.

Desenvolver as habilidades de leitura, interpretação e escrita de algoritmos em Portugol.

20

Definição de variáveis:

Nome de um local na memória onde se pode armazenar um valor (dado).

21

Declaração de variáveisTipos básicos.Inteiro: qualquer número inteiro, negativo, nulo ou positivo (integer).Real/Float: qualquer número real, negativo, nulo ou positivo (real).String: Conjunto de caracteres Char: um único carácter alfanumérico.Lógico: conjunto de valores FALSO ou VERDADEIRO em proposições lógicas (boolean).

22

Exemplos:

inteiro : X1;

real : A,B;

char: ‘F’,’ N’; ‘1’

String: ‘Informática’, ‘Aniversário’, ‘XPT45’,

lógico: TEM;

23

Comandos básicos:

Comando de atribuição: usaremos o símbolo de atribuição <destino> <fonte>Operadores aritméticos: operações básicas e os nomes das funções matemáticas mais comuns ( +, -, *, / ).Operadores lógicos: e , ou, nãoOperadores relacionais:

=, >=, <= etc.

24

Prioridades para as operações mistas:Primeiro: parênteses e funções.Segundo: expressões aritméticas

• 1º - ^ e sqrt• 2º *, /• 3º - +, -

Terceiro: comparaçõesQuarto: nãoQuinto: eSexto: ou

25

Exemplos:

A 3;

I I+1;

DELTA B*B - 4*A*C

TEM f also;

NOME ‘ABACATE’;

X1 raiz (DELTA);

RESTO N mod 2

26

Exemplo de um algoritmo em Portugol :

início inteiro: A, BA 1;B 2;se A > B

então A 5;senão A 10;

fim se Exibir (A)fim

27

Diagramas de Blocos

Início e Fim do fluxo

Operações seqüenciais

Decisão

Entrada de dados

28

Diagrama de Blocos

Saída de dados

Conectores

Sentido do Fluxo

29

Inicio

A = 1;B = 2;

A < BV

A = 5;A = 10;

F

Fim

30

Rastreando um Rastreando um AlgoritmoAlgoritmo

Uma vez desenvolvido um algoritmo, como saber se ele faz o que se supõe que faça?

Uma forma é executar o algoritmo manualmente, com dados representativos, utilizando lápis e papel para registrar os valores tomados pelas variáveis em cada passo do algoritmo, a este processo damos o nome de teste de mesa.

31

ALGORITMO

Técnicas de Programação

PROGRAMA COMPUTACIONAL

(SOFTWARE)

Linguagem de Linguagem de ProgramaçãoProgramação

32

PROGRAMA COMPUTACIONAL

Consiste na tradução de um algoritmo em uma

forma inteligível para a máquina, o que é feito com

o uso de uma Linguagem de Programação

Função Básica: Indicar ao computador as etapas

que precisam ser cumpridas para

se executar uma tarefa

33

PROGRAMA COMPUTACIONALPROGRAMA COMPUTACIONAL

Formulações concretas de algoritmos abstratos, baseados em representações e estruturas específica de dados

Conjunto de informações representadas de forma compreensível para o computador (máquina).

Utilizando uma linguagem de programação, a máquina pode executar os passos estabelecidos no programa e executar uma determinada tarefa.

34

Programação Estruturada

Wirth:

“A arte ou técnica de construir e formular algoritmos de uma forma sistemática”

35

LINGUAGEM DE LINGUAGEM DE PROGRAMAÇÃOPROGRAMAÇÃO

Linguagem que a máquina “entende”, direta

ou indiretamente. Possui uma técnica de notação para

programar, com intenção de servir de veículo para: a expressão de um raciocínio algorítmico execução automática de uma algoritmo no

computador

36

TIPOS DE LINGUAGEMTIPOS DE LINGUAGEM

Linguagem de Máquina

Linguagem de Montagem

Linguagem de Alto Nível

37

Linguagem de MáquinaLinguagem de Máquina

Os computadores executam diretamente algoritmos expressos em linguagem de máquina - um conjunto de instruções capazes de ativar diretamente os dispositivos eletrônicos do computador (utiliza somente os bits - símbolos 0 e 1).

Desvantagens para os programadores é diferente para cada tipo de computador, pois

depende da arquitetura da máquina é extremamente difícil de programar (lembrar das

seqüências possíveis de bits) é totalmente expressa em forma numérica

(binária ou hexadecimal) ou que torna pouco expressiva

38

Linguagem de MontagemLinguagem de Montagem Facilitar a programação - possibilidade de programar

através de mnemônicos Criou-se um sistema de codificação para representar as

instruções em linguagem de máquina. Este conjunto de códigos é chamado Linguagem Montadora (Assembler - Assembly Linguagem).

Exemplo desta linguagem, onde está sendo executada a soma de 1+1.

PUSH AX MOV BX, 1PUSH BX ADD AX, BXMOV AX, 1 POP BX

POP AX

39

Linguagem de Alto NívelLinguagem de Alto Nível OBETIVOS:

Conseguir independência em relação à máquina, podendo um mesmo programa ser utilizado em diferentes equipamentos.

Aproximar-se da linguagem humana para que o programa possa ser escrito e lido de uma maneira mais simples, eliminando muitas das possibilidades de se cometerem erros, presentes no uso da linguagem de máquina.

40

Linguagem AnoFORTRAN 1954-57ALGOL 60 1958-60COBOL 1959-60APL 1956-60LISP 1959-62SNOBOL 1962-66PL/I 1963-64BASIC 1965SIMULA 67 1967ALGOL 68 1963-68PROLOG 1970BLISS 1971PASCAL 1971C 1972-74MESA 1974Concurrent PASCAL 1975CLU 1974-77EUCLID 1977GYPSY 1977

41

PLZ 1977MODULA 1977ADA 1979SMALLTALKC++OBJECT PASCALCLIPPERVISUAL BASICVISUAL C++DELPHI

42

Exemplo

43

Calcular o lucro obtido de um investimento de R$ 42.5000,00, após um período de um ano, para uma taxa anual de remuneração de 17.55%. Todos os valores usados para o cálculo deverão ser escritos pelo programa.

44

Etapas a serem cumpridas para a resolução do problema

1 – Estabelecer os dados a serem usados para o cálculo do lucro.

2 – Calcular o lucro.

3 – Escrever todos os valores.

45

Refinando a solução1. Estabelecer os dados a serem usados para o cálculo

do lucro. 1.1 Definir a quantidade principal investida como R$

42.500,00. 1.2. Definir a taxa de juros como 0.1755.

2. Calcular o lucro.2.1. O lucro obtido é a taxa de juros multiplicada pela

quantidade principal investida.

3. Escrever todos os valores. 3.1. Escrever a quantidade principal investida e a taxa de juros.3.2. Escrever o lucro obtido.

46

Escrevendo em PortugolPrograma investimentoDeclarar float cap, jur, luc;Início

{Definir a quantidade principal} cap R$ 42.500,00;{Definir a taxa de juros} jur 17.55;{O lucro obtido é a taxa * principal}Luc cap * jur / 100Escrever ( cap, jur);Escrever (luc);

Fim.

47

Desenvolva o fluxograma do algoritimo para calcular o empréstimo a partir do algoritmo em portugol.