prof. rodrigo coral 1 introdução aos algoritmos de programação prof. rodrigo coral programaÇÃo...

Post on 07-Apr-2016

225 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Prof. Rodrigo Coral1

Introdução aos algoritmos de programação

Prof. Rodrigo Coral

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;

2

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;

3

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;

4

MEDIA = 12 + 6 + 9 3

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

5

Símbolo Função

Início ou Fim de um algoritmo

Processamento de dados (cálculos)

Decisão

Fluxograma

• A seta indica a direção do fluxo dos dados

6

Símbolo Função

Entrada de dados (via teclado)

Execução de processo predefinido

Saída de dados (via tela)

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

Fluxograma• EXERCÍCIO 3:

– Implemente uma programa para ser utilizado com um computador para calcular a média aritmética de duas avaliações de um aluno, levando em conta que a média para aprovação é de 6,0;

8

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

91 – Depende de cada compilador

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/L10

Constantes e variáveis• EXERCÍCIO 4:

– 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;

11

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

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;

12

Operadores• Operador Aritmético

13

Operador Operação realizada

+ Soma

- Subtração

* Multiplicação

/ Divisão

% Resto da divisão

+ + Incremento

- - Decremento

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

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

14

Operador Operação realizada

= = Igual a

! = Não igual a

> Maior que

< Menor que

> = Maior ou igual a

< = Menor ou igual a

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

15

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;

16

Operador Operação realizada

& & AND

| | OR

! NOT (Negado)

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

17

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

operadores nas expressões bit a bit;

18

Operador Operação realizada

& AND

| OR

^ XOR

~ NOT

> > SHIFT RIGHT,desloca bits a direita

< < SHIFT LEFT, desloca bits a esquerda

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

19

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

20

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

21

Programação estruturada• Em 1960 Böhm e jacopini provaram que todo

algorítimo computacional pode ser descrito em termos de apenas três padrões de passos, denominados de estruturas de controle, que são passos básicos que auxiliam na construção dos programas:

• Sequência;• Seleção;• Repetição;

22

Programação estruturada• Sequência: estrutura que permite indicar dois ou

mais passos que devem ser executados sequencialmente, na ordem que são especificados;

23

Programação estruturada

• Condição: permite indicar dois ou mais passos que devem ser executados de forma mutuamente exclusiva, dependendo de uma determinada condição;

24

?V

F

Programação estruturada

• Repetição: permite indicar um ou mais passos que devem ser executados repetidamente, dependendo de uma determinada condição;

25

?V

F

• 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 e o forno desligado. Elabore um algoritmo que implemente essa situação;

Programação estruturada

26

• Resolução

Declarações de Controle

27

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.

Desliga o forno

Ler Tforno

Variáveis:Tforno – temperatura do forno

Declarações de Controle

28

InInício

Ler Tforno

Variáveis-entrada:Tforno;S_Forno;

Variáveis-sáida: Alarme;Forno;

S_Forno== 1?

Ligar forno?

S_Forno = 1

Tforno>= 700?

Alarme = 1

Forno = 0

Finalizarprograma?

InFim

Alarme== 1?

Desligar alarme?

Alarme = 0

F

V

V

F

V

F

V

F

V

F

V

FA 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.

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

Declarações de Controle

29

Pergunta1 ?

Comandos1

N

V

Pergunta2 ?

N

V

Pergunta3 ?

N

V

Comandos2

Comandos3

Comandos4

Declarações de Controle• Exercício 5: Implemente um algoritmo em

programação estruturada na qual é possível converter temperaturas em graus celcius em graus fahrenheit ou Kelvin

• oF = (oC . 9/5) + 32

• K = oC + 273,15

30

• Resolução

Declarações de Controle

31

Declarações de Controle• Exercício 6: 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

• Resolução

Declarações de Controle

33

Declarações de Controle• Exercício 7: 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

• Resolução

Declarações de Controle

35

Declarações de Controle• Exercício 8: 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

• Resolução

Declarações de Controle

37

• 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

Declarações de Controle• Exercício 9: 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

• Resolução

Declarações de Controle

40

Declarações de Controle• Exercício 10: 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

Declarações de Controle

42

• Resolução

Declarações de Controle

43

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

top related