A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I – BCC701 www.decom.ufop.br/moodle.

Apresentações semelhantes


Apresentação em tema: "1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I – BCC701 www.decom.ufop.br/moodle."— Transcrição da apresentação:

1 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I – BCC701

2 UFMG DCC Equação Raízes (reais se >0) Calcular as raízes para a = , b = e c =

3 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 3

4 UFMG DCC // Cálculo das 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 o usuário

5 // 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) 5

6 Primeiro pense! Inclua comentários Observe a precedência de operadores O separador decimal é o ponto Teste o seu programa 6

7 Em todo problema de transformação de informação, 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 UFMG DCC

8 8 -->a*r1^2 + b*r1 + c ans = 3.865D-12 -->a*r2^2 + b*r2 + c ans = D-13

9 Escrever delta = b^2 – 4ac, omitindo os operadores 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 UFMG DCC

10 Equação Bhaskara (>0, a0) Quaisquer valores de coeficiente!

11 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! 11

12 12

13 13 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; Expressão lógica, cujo valor é verdadeiro ( %t ) ou falso ( %f )

14 UFMG DCC >p = %t p = T -->q = 5+3 < 2 q = F -->a = 0 a = 0 -->a == 0 ans = T -->a <> 0 ans = F Literal True Expressão lógica, usando o operador relacional < igual diferente Note que operadores aritméticos têm precedência sobre operadores relacionais

15 15 OperadorDescrição >Maior que. >=Maior ou igual a. ou ~=Diferente de.

16 UFMG DCC if then else end A condição deve ser uma expressão lógica

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

18 18

19 19 Exemplo 1 de execução do programa:

20 20 Exemplo 2 de execução do programa:

21 21 se delta for não negativo então apresentamos as raízes reais; senão // caso contrário apresentamos as raízes complexas;

22 22 Exemplo 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.

23 23

24 24 Exemplo 1 de execução do programa:

25 25 Exemplo 2 de execução do programa:

26 26 O Scilab possibilita manipular números complexos de forma simples: real(x1) retorna a parte real. imag(x1) retorna a parte imaginária. Exemplos de números complexos: z1 = * %i; z2 = 1 - %i; z3 = z1 + z2; z4 = z1 * z2;

27 Afastar os blocos para esquerda Torna mais claro o que está sendo feito em cada fluxo do programa Será EXIGIDO Existe uma tecla especial no SciNotes 27

28 28 Forma Alternativa if then end OBS.: um bloco é um conjunto de quaisquer comandos Scilab sintaticamente corretos (inclusive outro if ).

29 Certa vez a mãe disse ao filho estudante de computação: "Querido, 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!". 29

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

31 31 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?

32 32 Solução

33 33 Solução

34 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, com você passou! Ou, com você não passou! Ex.: José, com 75 pontos você passou! UFMG DCC

35 UFMG DCC // 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

36 Seja f :x definida por: Construir um programa para calcular o valor de f(x,y), para valores de x e y dados. 36 Note que o valor de f(x,y) é dado por 4 expressões diferentes, conforme sejam os valores de x e de y

37 se x>= 0 e y>=0 então r = x + y; senão se x>= 0 e y<0 então r = x + y^2; senão se x =0 então r = x^2 + y; senão r = x^2 + y^2; 37

38 if x>= 0 & y>=0 then r = x + y; elseif x>= 0 & y<0 then r = x + y^2; elseif x =0 then r = x^2 + y; else r = x^2 + y^2; end 38 Operador lógico &

39 Operador lógicoDescrição & Conjunção (ê) | Disjunção (ou) ˜ Negação (não) 39 Sejam e1 e e2 expressões lógicas. ~e1 é falsa se e1 é verdadeira; é verdadeira se e1 é falsa e1 & e2 é verdadeira se e1 e e2 são ambas verdadeiras; é falsa nos demais casos e1 | e2 é falsa se e1 e e2 são ambas falsas; é verdadeira nos demais casos

40 40 Ordem de precedência maior operadores aritméticos operadores relacionais operadores lógicos menor

41 Seja f : a função definida por: Escreva um programa que leia o valor de x e imprima o valor de f(x) 41

42

43 43

44 Escreva um programa que determina se 3 valores dados constituem lados de um triângulo e, em caso afirmativo, se o triângulo é equilátero, isósceles ou escaleno. 44

45 45


Carregar ppt "1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I – BCC701 www.decom.ufop.br/moodle."

Apresentações semelhantes


Anúncios Google