aula 3 | programação de computadores

41
Programação para Computadores Professor: Paulo Alexandre da Silva Costa

Upload: fagnermota-barros

Post on 28-Mar-2016

221 views

Category:

Documents


1 download

DESCRIPTION

Professor Paulo Alexandre

TRANSCRIPT

Programação para

Computadores

Professor: Paulo Alexandre da Silva Costa

Agenda

• Aula 3/20:

• Conceito de algoritmo,

• Elementos da programa estruturada,

• Pseudo Código

Conceito

• Algoritmo

Elementos

• Sequência (Concatenação)

• Seleção

• Repetição

Elementos: Sequência

• Uma estrutura de controle de sequência

permite que as instruções sejam

executadas em ordem.

Elementos: Sequência

• Exemplo

...

int idade=0;

scanf(“%d”, &idade);

printf(“Idade recebida: %d”, idade);

...

Elementos: Seleção

• Uma estrutura de seleção permite (ou

não) a execução de um bloco de código

Elementos: Seleção

• Exemplo:

...

int idade=0;

scanf(“%d”, &idade);

printf(“Idade recebida: %d”, idade);

if(idade>18)

{

printf(“Voce e maior de idade\n”);

}

...

Elementos: Repetição

• Uma estrutura de repetição permite que

um bloco de ações seja repetido uma

quantas vezes necessário (mas de forma

controlada)

Elementos: Repetição

• Exemplo

int idade=0;

scanf(“%d”, &idade);

printf(“Idade recebida: %d”, idade);

while(idade<18)

{

printf(“Voce não e maior de idade.\nDigite novamente a sua idade.”);

scanf(“%d”, &idade);

}

printf(“Voce e maior de idade\n”);

...

Conceito

• Pseudo Código

• Informal

• Baseado na progração estrutural

• Voltado para humanos

• Omite(abstrair) certos detalhes

• Não existe um padrão oficial

Pseudo Código

• Exemplo

• Declare a;

• Declare b;

• Leia a;

• Leia b;

• Devolva a elevado a b;

Pseudo Código

• Nível de detalhes pode variar de uma

pessoa pra outra

Pseudo Código

• Exemplo

Declare a;

Declare b;

Declare pot;

Leia a;

Leia b;

pot recebe a;

para(i =0 até i < b)

pot recebe pot*a;

i recebe i+1;

Devolva pot;

Pseudo Código

• Use o bom senso para não exagerar!

Pseudo Código

• Exemplo

Declare a, b, pot;

Leia a;

Leia b;

pot recebe a;

para(i =0 até i < b)

para (j=0 até j < a)

pot recebe pot+pot;

j recebe j+1;

i recebe i+1;

Devolva pot;

Código para multiplicar pot por a

Pseudo Código

• Estruturas de seleção

• se...

• se...senão

• se...senão se...senão

Pseudo Código

• Estruturas de seleção

• se...

• Leia valor int

• se ( valor % 2 == 0 )

• Escreva “Esse numero e par”;

Pseudo Código

• Estruturas de seleção

• se...

• Leia valor int

• se ( valor % 2 == 0 )

• Escreva “Esse numero e par”;

• Senão

• Escreva “Esse numero nao e par”;

Pseudo Código

• Estruturas de seleção

• se...senão se

• Leia valor int

• se ( valor % 2 == 0 )

• Escreva “Esse numero e divisivel por 2”;

• Senão se ( valor % 3 == 0 )

• Escreva “Esse numero e divisivel por 3”;

Pseudo Código

• Estruturas de seleção

• se...senão se

• OBSERVAÇÃO!

• Leia valor int

• se ( valor % 2 == 0 )

• Escreva “Esse numero e par”;

• Senão se ( valor % 2 != 0 )

• Escreva “Esse numero nao e par”;

Pseudo Código

• Estruturas de seleção

• se...senão se...senão

Pseudo Código

• Leia primeiroDigito, segundoDigito,

somaBinaria

• se ( primeiroDigito==1)

• se( segundoDigito==1)

• somaBinaria ← 10

• Senão

• somaBinaria ← 1

• Senão

• se( segundoDigito==1)

• somaBinaria ← 1

• Senão

• somaBinaria ← 0

Pseudo Código

• Estruturas de repetição

• de ... até ...

• enquanto

Pseudo Código

• Estruturas de repetição

• de ... até ...

• declare soma=0;

• de i==1 até i==1000

• soma ← soma + i;

• Falta algo ?

Pseudo Código

• Estruturas de repetição

• de ... até ...

• declare soma=0;

• de i==1 até i==1000

• soma ← soma + i;

• i ← i +1 ;

• Devolva soma;

Pseudo Código

• Estruturas de repetição

• de ... até ...

• Leia a;

• Leia b;

• Declare pot ← a;

• de i==1 até i==b

• pot ← pot * a;

• i ← i + 1;

• Devolva pot;

Pseudo Código

• Estruturas de repetição

• enquanto

• Leia a;

• Leia b;

• Declare pot ← a;

• de i==1 até i==b

• pot ← pot * a;

• i ← i + 1;

• Devolva pot;

Fluxograma

• Representação Gráfica

Fluxograma

• Algoritmo da divisão euclidiana em

fluxograma

Leia a Leia b

Declare q ← 0 Declare r ← a

r>b ? q ← q +1 r ← r - a

Devolva q

Se sim

Se não

Exercício 1

• Escreve um pseudo código que recebe

quatro notas (n1, n2, n3 e n4) e

• Calcula a média ponderada (pesos 1, 2, 3

e 4, respectivamente)

Exercício 2

• Escreva em pseudo código um programa

• Que recebe a entrada n e

• Devolve o fatorial

• Lembrem-se

• 0!=1

• 1!=1

• 2!=2x1

• 3!=3x2x1

• ...

• N!=n x (n-1) x (n-2) x ... x 1

Exercício 3: O que esse fluxograma faz ?

Leia a, b, c

a<b ? a<c ?

b<c ?

Devola b e c

Se sim

Se não

Se sim

Se não

Devola a e b

Devolve a e c Se sim

Se não

Devolve a e b

Exercício 4

• Usando um fluxograma, escreva um

algoritmo que recebe como entrada um

valor (em dinheiro) a ser sacado e

• Informa quantas e quais cédulas a

pessoa receberá de forma

• A minimizar a quantidade de cédulas

• Sabendo que o caixa só emite cédulas de

20, 10, 5, e 2.

• Exemplo:

• Quero 27 reais, então recebo 1 cédula

de 20, outra de 5 e outra de 2;

Exercício 5

• Usando fluxograma

• Refaça o exercício 1 e 2

• Usando pseudo-código

• Refaça o exercício 3 e 4

Linguagem C

• Seu programa deve receber um inteiro

• E deve imprimir este inteiro ao contrário

• Se a entrada foi 1234 então a saída é

4321.

• Dica:

• Use a/1000 e a%1000

• Use a/100 e a%100

• Use a/10 e a%10