44
Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Embed Size (px)

Citation preview

Page 1: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Prof. Stefano1

ALGORITMOS

Prof. Stefano

PROGRAMAÇÃO - PRG

Page 2: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Introdução• Algoritmos• Fluxograma• Constantes e variáveis• Operadores• Declarações de Controle• Exercícios

2

Page 3: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Introdução• Lógica de programação:

– Técnica para gerar uma determinada sequência de atividades para atingir um determinado objetivo;

• Sequência Lógica:– São os diferentes passos ou instruções para solucionar um

problema;

• Instruções:– São um conjunto de regras ou normas definidas para

realização de uma atividade. É uma ação elementar executada pelo computador;

3

Page 4: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Algoritmos• Algoritmos é uma maneira de formalizar uma

sequência de passos para execução de uma atividade.

• A formalização é necessária para que diferentes pessoas possam entender e repetir os passos para chegar a solução do problema;

• Ex.:– Executar a operação de soma em uma calculadora;– Fazer uma transferência bancária;– Ajustar o horário no celular;– Programar um DVD para gravar um programa;

4

Page 5: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Algoritmos• EXERCÍCIO 1:

– Descreva passo a passo como você faria para obter a média de três números a seguir em sua calculadora;

5

MEDIA = 12 + 6 + 9 3

Page 6: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Fluxograma• Para representar graficamente um algoritmo

utilizaremos o fluxograma;• Um fluxograma é a representação das diferentes

etapas de um processo através de elementos gráficos ligados conforme a lógica de programação;

• Simbologia

6

Símbolo Função

Início ou Fim de um algoritmo

Processamento geral

Decisão

Page 7: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Fluxograma• EXERCÍCIO 2:

– Implemente em um fluxograma o algoritmo do cálculo da média de três números a seguir em sua calculadora do exercício anterior;

7

Page 8: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Constantes e variáveis• Identificadores: São nomes arbitrários dados as

funções, variáveis, constantes. Os identificadores podem ser1 letras de A à Z, números de 0 à 9 e “_“(underline). Não pode começar com número.– Exemplos:

• Temperatura_media• Temp• _T1

81 – Depende de cada compilador

Page 9: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Constantes e variáveis• Constantes: são elementos que tem um valor fixo,

não podendo ser mudados durante a execução do programa;– Exemplo: π = 3,1415927.... Em vez de escrever toda vez o

número podemos nomear uma constante PI = 3,1415927 e durante programa utilizar PI;

• Variáveis: são elementos que permitem a alteração do seu valor durante a execução do programa. É recomendável que no início do programa seja atribuído um valor inicial a elas, que elas sejam inicializadas;– Exemplo: Calcule consumo médio de combustível de um

automóvel. CONSUMO= KM/L9

Page 10: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Constantes e variáveis• EXERCÍCIO 3:

– Para preparar uma salada de frutas, um cozinheiro foi comprar 4 frutas, onde cada fruta tem seu preço e a quantidade que o cozinheiro precisa descrito na tabela a seguir. Monte um algoritmo que calcule quanto ele terá que pagar por cada fruta e o valor total da despesa;

10

FR1 FR2 FR3 FR4

Preço por kg(R$)

1,30 1,90 4,50 0,98

Peso (kg) 2,5 1,3 0,6 3,8

Observar a utilização de constantes e variáveis

Page 11: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Operador é um símbolo que faz com que

compilador execute alguma operação matemática ou lógica;

• Os principais operadores são aritméticos, de relação, lógicos e bit a bit;

• A seguir serão apresentados os principais elementos de cada operador. Este tópico será visto em maiores detalhes na linguagem de programação aplicado diretamente ao compilador utilizado;

11

Page 12: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Operador Aritmético

12

Operador Operação realizada

+ Soma

- Subtração

* Multiplicação

/ Divisão

% Resto da divisão

+ + Incremento

- - Decremento

Page 13: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Operador de Relação: eles testam as relações nas

expressões. Seu resultado é 1 se for verdadeiro ou 0 se for falso;

13

Operador Operação realizada

= = Igual a

! = Não igual a

> Maior que

< Menor que

> = Maior ou igual a

< = Menor ou igual a

Page 14: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Exemplos de Operador de Relação: • 4 = = 3; retorna 0 - FALSO• 3 = = 3; retorna 1 - VERDADEIRO• 7 > = 3; retorna 1 – VERDADEIRO• 4 < = 3; retorna 0 - FALSO• 4 ! = 3; retorna 1 – VERDADEIRO• 4 > 3; retorna 1 – VERDADEIRO

14

Page 15: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Operadores lógicos: realizam operações lógicas nas

expressões. Os operandos são considerados verdadeiros(1) ou falsos(0). Seu resultado é 1 se for verdadeiro ou 0 se for falso;

15

Operador Operação realizada

& & AND

| | OR

! NOT (Negado)

Page 16: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Exemplos de Operador Lógico: a) (3 > 1) & & (2= = 2); 1 & & 1; resulta em 1 - verdadeiro

b) (3 > 7) | | (2= = 2); 0 | | 1 ; resulta em 1 - verdadeiro

c) !{(3 > 1) & & (2= = 2)} ; !{ 1 & & 1}; !{ 1} ; - resulta em 0 - falso

16

Page 17: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Operadores Bit a Bit: eles testam as relações dos

operadores nas expressões bit a bit;

17

Operador Operação realizada

& AND

| OR

^ XOR

~ NOT

> > SHIFT RIGHT,desloca bits a direita

< < SHIFT LEFT, desloca bits a esquerda

Page 18: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Exemplos de Operador Bit a Bit: a) v1= 101101, v2=110011, v3 = v1 & v2; AND v1 = 1 0 1 1 0 1 v2 = 1 1 0 0 1 1 v3 = 1 0 0 0 0 1

b) v1= 110001, v2=010111, v3 = v1 | v2; OR v1 = 1 1 0 0 0 1 v2 = 0 1 0 1 1 1 v3 = 1 1 0 1 1 1

18

Page 19: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Exemplos de Operador Bit a Bit: c) v1= 101101, v2=110011, v3 = v1 ^ v2; XOR v1 = 1 0 1 1 0 1 v2 = 1 1 0 0 1 1 v3 = 0 1 1 1 1 0

d) v1= 110001, v2 = ~ v1 ; NOT v1 = 1 1 0 0 0 1 v2 = 0 0 1 1 1 0

19

Page 20: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Operadores• Exemplos de Operador Bit a Bit: e) v1= 000101, v2=v1 << 2; SHIFT LEFT (x 2) = 001010; <<1 v2 = 010100; <<2

f) v1= 010100, v2=v1 >> 2; SHIFT RIGHT (÷ 2) = 001010; >> 1 v2 = 000101; >> 2

20

Page 21: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle• As declarações controlam o fluxo de execução de um

algoritmo, sendo assim de fundamental importância o domínio da sua correta utilização;

• Em uma linguagem de programação existem diferentes declarações, mas aqui, para um primeiro contato, utilizaremos a declaração de controle condicional;

21

Page 22: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle• Declaração de controle condicional

IF.......THEN....ELSESE......ENTÃO...SENÃO

• Ele é utilizado para executar um determinado comando se uma determinada condição for verdadeira. A opção ELSE não é obrigatória.

22

IF (true) THEN CommandsTrueELSE CommandsFalse

IF (verdadeiro) THEN ComandosVerdadeiroELSE ComandosFalso

Page 23: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Para implementação do caso geral no algoritmo utilizamos o losango;

pergunta

Declarações de Controle

23

ComandosVerdadeiro

ComandosFalso

Pergunta?

V

F

As saídas V e Fpodem ser trocadas

Page 24: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• OPÇÃO 1: Somente verdadeiro;

pergunta

Declarações de Controle

24

ComandosVerdadeiro

Pergunta?

V

Page 25: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• OPÇÃO 1: Exercício 4:• Considere um forno onde a temperatura limite seja

de 700º C. Se a temperatura atual do forno atingir este valor o alarme deve ser ligado. Elabore um algoritmo que implemente essa situação;

Declarações de Controle

25

Page 26: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Resolução

Declarações de Controle

26

InInício

InFim

Ler Tforno

Tforno >= 700 Ligar AlarmeV

F

A inclusão da etapa de leitura do sensor do forno, considerando ser um sinal analógico, foi colocada aqui porque geralmente requer um tratamento adicional no programa.

Page 27: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• CASO 2: Com verdadeiro e falso o algoritmo fica da forma como já visto anteriormente;

pergunta

Declarações de Controle

27

ComandosVerdadeiro

ComandosFalso

Pergunta?

V

F

Page 28: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle• Exercício 5: Na esteira abaixo quando o sensor S1 for

acionado o motor M1 deve ser ligado. Implemente um algoritmo que atenda o solicitado.

28

S1

M1

Page 29: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Resolução

Declarações de Controle

29

InInício

InFim

Ler S1

S1 == 1 M1= 0

V

F

M1= 1

A inclusão da etapa de leitura do sensor S1 em muitas situações pode ser considerada redundante, sendo colocada aqui para chamar a atenção ao fato, podendo ser omitida no futuro.

Page 30: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle• Exercício 6: Na esteira abaixo quando o sensor S1 for

acionado por uma peça o motor M1 deve ser ligado e quando a peça acionar o sensor S2 o motor deve ser desligado. Implemente um algoritmo que atenda o solicitado.

30

S1

M1

S2

Page 31: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Resolução

Declarações de Controle

31

Page 32: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle• Exercício 7: Na esteira abaixo a peça é colocada na posição

dada pelo sensor S1, e com isso o motor M1 é ligado, levando a peça até o sistema de aquecimento. Neste instante o motor M1 é desligado e a peça espera 10 segundos, sendo o motor M1 ligado novamente para levar a peça para o resfriamento, quando então o motor M1 é desligado novamente, aguardando agora 20 segundos neste estágio. Após decorrido o tempo o motor M1 é ligado novamente para levar a peça até a posição dada pelo sensor S4, quando o motor é desligado novamente. Implemente um algoritmo que atenda o solicitado.

32

Page 33: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Resolução

Declarações de Controle

33

Page 34: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle• Exercício 8: No sistema abaixo quando uma peça é colocada

na posição dada pelo sensor S1 o motor M1 é ligado, levando a peça até o sensor S2 e caindo na caixa de saída. Sabe-se que a caixa suporta até 20 peças. Implemente um contador(CONT) para que somente quando somente 20 peças caírem na caixa o motor M1 é desligado e a lâmpada L1 é ligada, alertando ao operador da necessidade de trocar a caixa. Implemente um algoritmo que atenda o solicitado.

34

Page 35: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Resolução

Declarações de Controle

35

Page 36: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle• Exercício 9: No exercício anterior foi acrescentado o

botão B1 no painel para que quando o operador trocar a caixa ele irá apertar o botão a lâmpada L1 irá apagar, o motor M1 é ligado novamente, o contador é zerado e o ciclo se inicia novamente.

36

Page 37: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Resolução

Declarações de Controle

37

Page 38: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• CASO 3: IF ANINHADO. Quando vários laços são utilizados, um dentro de outro;

Declarações de Controle

38

Pergunta1 ?

Comandos1

N

V

Pergunta2 ?

N

V

Pergunta3 ?

N

V

Comandos2

Comandos3

Comandos4

Page 39: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle• Exercício 10: No reservatório da figura abaixo um

sensor mede o nível (NIVEL) de líquido existente. Elabore um algoritmo que controle o acionamento das bombas de acordo com a tabela abaixo;

39

NIVEL B1 B2 B3

NIVEL>9 0 0 0

6<NIVEL≤9 1 0 0

2<NIVEL≤6 1 1 0

NIVEL≤2 1 1 1

Page 40: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Resolução

Declarações de Controle

40

Page 41: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle• Exercício 11: No sistema de seleção da página

seguinte quando uma caixa é colocada na posição dada pelo sensor S1 o motor M1 é ligado levando a caixa até o sensor S5, quando então é desligado. Implemente um algoritmo para que de acordo com o tipo de caixa, dada pela figura e identificada no sistema através do acionamento dos sensores S2,S3 e S4, somente a lâmpada correspondente fique ligada. Esta lâmpada somente poderá ficar ligada até a caixa correspondente chegar ao sensor S5. O sistema é contínuo. Implemente também um contador para cada tipo de caixa.

41

Page 42: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

Declarações de Controle

42

Page 43: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

• Resolução

Declarações de Controle

43

Page 44: Prof. Stefano 1 ALGORITMOS Prof. Stefano PROGRAMAÇÃO - PRG

44

REFERÊNCIAS

• Robert Schildt. C completo e total.• User´s Manual MikroC• Fábio Pereira. Programação em C• Notas de aula do Prof. Stefano• Curso básico de lógica de programação.

Unicamp