Material Didtico Proposto 1 Programao Estruturada Comandos - - PowerPoint PPT Presentation

material did tico proposto
SMART_READER_LITE
LIVE PREVIEW

Material Didtico Proposto 1 Programao Estruturada Comandos - - PowerPoint PPT Presentation

Universidade Federal de Ouro Preto - UFOP Departamento de Computao - DECOM Comisso para Coordenao das Atividades Pedaggicas da Disciplina BCC701 CAP-BCC701 www.decom.ufop.br/bcc701 2014-1 Material Didtico Proposto 1


slide-1
SLIDE 1

Material Didático Proposto

1

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas da Disciplina BCC701 – CAP-BCC701 www.decom.ufop.br/bcc701 2014-1

slide-2
SLIDE 2

 Programação Estruturada  Comandos Condicionais (Decisão)  Operadores Relacionais

2

slide-3
SLIDE 3

3

Programação Estruturada

slide-4
SLIDE 4

4

Conceito ito: Progr grama mação ão estrutur turad ada a é um uma forma de Progr grama mação ão de computad adore

  • res

s que preconiz iza a que todos os pro rogr gramas as possív íveis eis podem ser reduzi zidos dos a a apenas as três estrutur uras: as:

  • sequên

uência cia

  • decis

isão ão

  • it

iteração ão

slide-5
SLIDE 5

5

Sequên ênci cia Até a última a aula, os programa amas s co constituí stituíram ram-se e por uma a seq equência ência de e instr truç uções, ões, ou co comando ndos, , execu cutados tados sequen encial cialmente, mente, co confo forme rme o fluxograma xograma ao ao lad ado.

slide-6
SLIDE 6

6

Deci cisão são ( (co comandos andos co condici icionais)

  • nais)

A seg egunda da es estrutura utura é u é utiliza izada da quan ando do é n é nec eces essário ário realiz izar r um desvi vio

  • de fluxo,
  • , realizado

ado co com base em uma deci cisão

Se “condição” for verdadeiro Então Faça a tarefa A; Senão // caso falso Faça a tarefa B;

O desvio de fluxo é caracterizado pela “escolha” (condição) entre execut ecutar ar a tarefa a A ou execut cutar ar a tarefa fa B

slide-7
SLIDE 7

7

Deci cisão são (co comandos andos co condici icionais)

  • nais)

Fluxo uxogr grama ama

Esta é a tarefa B, ela será executada apenas quando “condição” for falsa. Esta é a tarefa A, ela será executada apenas quando “condição” for verdadeira. Observe que sempre será executada apenas uma das tarefas, ou seja, a tarefa A ou a tarefa B. “condição”

slide-8
SLIDE 8

8

Iteração ração Re Repete e um co conjunto unto de instruções, ruções, co comandos, ndos, um ce certo número ro de vezes s ou co confo form rme e uma co condição. ição. Será estudado ado no 2º 2º m módul ulo.

  • .
slide-9
SLIDE 9

9

slide-10
SLIDE 10

10

 Equação  Raízes (reais se ∆>0)  Calcular as raízes para a = 534.2765, b =

9987.3431 e c = 225.7690

slide-11
SLIDE 11

 Ler os valores dos coeficientes a, b e c  Calcular o valor de delta  Obter as raízes da equação  Imprimir as raízes da equação

11

slide-12
SLIDE 12

12

// Cálculo das raízes de equação de 2o grau

disp(“Raízes de equação de 2o grau")

// Entrada de dados

a = input("Digite o valor de a:") b = input("Digite o valor de b:") c = input("Digite o valor de c:")

Diálogo com

  • usuário
slide-13
SLIDE 13

// Resolvendo a equação

delta = b^2 - 4*a*c r1 = (-b + sqrt(delta))/ (2*a) r2 = (-b - sqrt(delta))/ (2*a)

// Imprimindo resultados

printf(“Raiz 1 = %g”,r1) printf(“Raiz 2 = %g”,r2)

13

slide-14
SLIDE 14

14

Raízes de equação de 2o grau Digite o valor de a:534.2765 Digite o valor de b:9987.3431 Digite o valor de c:225.7690 Raiz 1 = -0.0226329 Raiz 2 = -18.6706

Os valores digitados pelo usuário estão em vermelho

slide-15
SLIDE 15

 Quando propomos uma solução para um

problema temos que pensar em testes que verifiquem a correção do que fazemos

 Nesse caso, o teste é simples: se r é um valor

calculado para uma raiz, o valor da expressão a*r^2 + b*r + c deve ser zero

15

slide-16
SLIDE 16

16

  • ->a*r1^2 + b*r1 + c

ans = 1.017D-11

  • ->a*r2^2 + b*r2 + c

ans = 2.888D-11

Notação científica:

2.888 x 10 -11

(muito próximo a zero)

slide-17
SLIDE 17

 Escrever delta = b^2 – 4ac, omitindo os

  • peradores de multiplicação
  • Um erro de sintaxe, que é apontado pelo Scilab

 Escrever r1 = (-b+sqrt(delta))/2*a , o que

na verdade calcula

  • Um erro de semântica, que só pode ser descoberto

por meio de testes, que o programador deve fazer

17

a b r . 2

1

           

slide-18
SLIDE 18

 Equação  Bhaskara (∆>0, a≠0)  Qu

Quai aisque squer valores de coeficiente!

18

slide-19
SLIDE 19

 a = 0

  • Equação de primeiro grau
  • Divisão por zero no nosso programa!

 Δ< 0

  • Raízes complexas
  • Só imprime a parte real no nosso programa!

19

slide-20
SLIDE 20

20

OB OBS.: verifica icando ndo o valor r do co coefici cien ente te a, , pode pode-se se evitar r este erro !

slide-21
SLIDE 21

21

se a igual a 0 então mensagem de erro; resolver equação de primeiro grau; senão // caso contrário apresentamos as raízes reais; Condiçã ição

  • (expressão relacional)
slide-22
SLIDE 22

22

<condição> é uma expressão relacional : <expr pr 1> 1> <o <opera rado dor r Re Rela laci cional al> > <expr 2> 2>

Onde: <expr n> é uma expressão, que pode ser um valor numérico, ou uma expressão matemática que resulta em um valor numérico. A avaliação de uma expressão relacional pode resultar em: verdadeiro (%t

  • u %T) ou

falso (%f ou %F).

slide-23
SLIDE 23

23

Opera rado dor Descri criçã ção > Maior que. >= Maior ou igual a. < Menor que. <= Menor ou igual a. == Igual a. <> ou ~= Diferente de.

slide-24
SLIDE 24

24

  • ->p = %t

p = T

  • ->q = 5+3 < 2

q = F

  • ->a = 0

a =

  • ->a == 0

ans = T

  • ->a <> 0

ans = F

Literal True igual diferente

Note que operadores aritméticos têm precedência sobre

  • peradores

relacionais

Expressão lógica, usando o operador relacional <

slide-25
SLIDE 25

25

Priori

  • ridade

dade de e Ex Exec ecuçã ção

  • Qu

Quando do temos

  • s uma co

combina inaçã ção

  • entre expressões

sões matemá emáti tica cas s e ex expressões ssões lógicas, cas, primeirame iramente nte o Sci cilab ca calcula cula as expressõe ssões s matemát emáticas; icas; a s seguir, r, o Sci cilab ca calcula cula as expressõe ssões s lógicas. cas.

  • os oper

erado adore res s mat atemáticos emáticos tem em mai aior priorida idade de de e execução, cução, co com relaçã ção

  • aos operadore

dores s relaci cionai

  • nais.

s.

slide-26
SLIDE 26

26

A condição deve ser uma expressão lógica

if <condição> then <bloco do então> end

OB OBSERV RVAÇ AÇÕE ÕES: :

um bloco é um conjunto de quaisquer comandos Scilab sintaticamente corretos (inclusive outro if). if, then, else e end: são palavras reservadas do Scilab e não podem ser usadas para nomear variáveis.

slide-27
SLIDE 27

27

if <condição> then <bloco do então> else <bloco do senão> end

<condição> é um uma expressão ssão relaci ciona

  • nal.
  • l. Assim

m , r resulta ta em em um val alor r ver erdadeiro adeiro (%t) ou fal also (%f). <bloco do então> será execu cuta tado do somente nte quando do a co condição ição resulta tar r em verdadei adeiro ro (%t). <bloco do senão> será execu cuta tado do somente nte quando do a co condiçã ção

  • resultar

tar em falso (%f).

slide-28
SLIDE 28

28

if a == 0 then printf(“Coeficiente a não pode ser 0”); end // programa como antes

slide-29
SLIDE 29

29

Agora, verifi fica ca-se e o valor r de a, antes de co continua tinuar r co com a ex execu cução. ção.

slide-30
SLIDE 30

30

slide-31
SLIDE 31

31

Nova va execu cuçã ção,

  • , co

com entrada da de valores es diferen ente tes: s:

slide-32
SLIDE 32

32

O O erro oco correu eu novamente amente, pois:

  • O

O usuári rio

  • teve somente

nte duas oportunida tunidades des de inserir ir um valor r não nulo para o co coeficiente ciente a;

  • Qu

Quando do aprende dermos rmos a 3ª 3ª es estrutura tura de program amaçã ção

  • estruturada,

uturada, repetiçã ção, permitir tiremos emos ao usuári rio

  • inserir

rir o v valor r de a, q quanta tas s vezes es forem m nece cessári árias, as, at até é que e um val alor r não ão nulo sej eja a fornec ecido do.

slide-33
SLIDE 33

33

if a == 0 then printf(“Coeficiente a não pode ser 0”); else // programa como antes end

slide-34
SLIDE 34

34

Aprimorando morando a l lógica ca da programa amação: ção:

slide-35
SLIDE 35

35

Exempl mplo

  • 1

1 de execu cuçã ção

  • do program

ama:

slide-36
SLIDE 36

36

Exempl mplo

  • 2

2 de execu cuçã ção

  • do program

ama:

slide-37
SLIDE 37

37

Se delta for positivo Então apresentamos as raízes reais; Senão // caso contrário apresentamos as raízes complexas;

slide-38
SLIDE 38

38

O O Sci cilab possibil ibilita ita manipul pular ar números ros co comple lexo xos s de forma ma simples. les.

real(x1) 

retorna na a p parte real.

imag(x1) 

retorna na a p parte imaginá nária. ia. Exemplo plos s de números ros co comple plexo xos: s:

z1 = 3 + 4 * %i; z2 = 1 - %i; z3 = z1 + z2; z4 = z1 * z2;

slide-39
SLIDE 39

39

  • quando delta for maior ou igual a zero, a expressão

relacional resultará em %t e, portanto, somente o bloco do então (then) será executado;

  • quando delta for menor que zero, a expressão relacional

resultará em %f e, portanto, somente o bloco do senão (else) será executado.

slide-40
SLIDE 40

40

slide-41
SLIDE 41

41

Exempl mplo

  • 1

1 de execu cuçã ção

  • do program

ama:

slide-42
SLIDE 42

42

Exempl mplo

  • 2

2 de execu cuçã ção

  • do program

ama:

slide-43
SLIDE 43

43

Considerando o programa que calcula a equação do segundo grau, observamos que quando as duas raízes são iguais, o programa calcula e imprime x1 e x2 com os mesmos valores. Como poderíamos resolver isso?

slide-44
SLIDE 44

44

slide-45
SLIDE 45

45

slide-46
SLIDE 46

 Faça um programa que:

  • Leia o nome do usuário
  • Leia o total de pontos feitos pelo usuário
  • Imprima, conforme o caso, a frase

 <usuário>, com <pontos> você passou!

  • Ou

 <usuário>, com <pontos> você não passou!

  • Ex.: José, com 75 pontos você passou!

46

slide-47
SLIDE 47

47

// Leitura do nome do usuário Nome = input("Digite seu nome, por favor") // Leitura da pontuação Pontos = input(Nome + ", qual foi sua pontuação? ") // Impressão do resultado if Pontos >= 60 then printf("%s, com %g pontos você passou!",Nome,Pontos); else printf("%s, com %g pontos você não passou :(",... Nome,Pontos); end

Comando continua na próxima linha

slide-48
SLIDE 48

Certa vez a mãe disse ao filho estudante de computação: “Filho, por favor vá ao mercado e compre 1 caixa de leite. Se eles tiverem ovos, traga 6. Ele retornou com 6 caixas de leite. A mãe disse: "Porque diabos você comprou 6 caixas de leite?". Ele disse: "PORQUE ELES TINHAM OVOS!".

48

slide-49
SLIDE 49

49

se tiverem ovos então traga 6 caixas de leite; senão traga 1 caixa de leite;

http://www.hardware.com.br/artigos/computadores-receitas-bolo-aprendendo-comunicar-com-maquina/aprendendo-pensar-como-maquina.html

slide-50
SLIDE 50

50

slide-51
SLIDE 51

51

Codifi fique que um programa rama que ca calcu cule le o v volume ume de uma pirâmid mide, e, em cm cm3, atravé vés s da fórmula ula:

Volume = 1/3 * ÁreaBase * altura

  • nde

ÁreaBase = comprimento * largura

O O usuário io deve fornec ecer r os valore res s do co compr prim imento, nto, da largura ura e d da altura. . Ao entrar r um valor

  • r,

, ele também ém será solicita citado do a i a indicar car se e o v val alor

  • r digitado

ado foi em em poleg egadas adas (‘p’) ou em centímetros (‘c’). Quando a entrada for em polegadas, gadas, o programa ama a co converte verte automa maticame ticamente nte para ce centím tímetro tros. s. Ao final, , o programa ama imprime ime o volume ume ca calcu culado. lado. Ob Observaçã rvação:

  • : 2.

2.54 54 cm cm =

= 1 p

1 polega gada. da.

slide-52
SLIDE 52

52

slide-53
SLIDE 53

53

slide-54
SLIDE 54

54

slide-55
SLIDE 55

55

Na química, o pH de uma solução aquosa é medido por suaacidez. A escala do pH varia entre 0 e 14, inclusive. Uma solução como pH igual a 7 é dita neutra; uma solução com

  • pH maior que 7 é dita básica; e uma solução com o pH

menor que 7 é dita ácida. Codifique um programa que tenha como entrada o pH de uma solução. O programa imprime se o ph é neutro, básico ou ácido.

slide-56
SLIDE 56

56

Co Codifi fique que um programa rama que e co conve verta rta uma a tem emper eratu atura a em graus ce celsius us para graus kelvi vin, n, ou para graus s fahren enhe heit. t. Após o usuário io fornec ecer r a t temperat eratura ura em ce celsius us, , o usuário deve responder ‘f’ para conversão em fahrenheit,

  • u ‘k’ para conversão em kelvin.

Fórmulas: ulas:

slide-57
SLIDE 57

57

Co Codifi fique que um programa rama que e ger ere e um val alor r intei eiro ro aleatório ório. A s seguir r o programa ama imprime ime a m mensage agem

“O NÚMERO GERADO É PAR”

ca caso

  • o número
  • gerado
  • seja par;

ca caso co contrár rário io imprim ime e a m a men ensagem: agem:

“O NÚMERO GERADO É ÍMPAR”

Dica ca:

floor (rand() * 10)