Leituras de valores numéricos

Tamanho: px
Começar a partir da página:

Download "Leituras de valores numéricos"

Transcrição

1 DIM Conceitos e Técnicas de Programação Leituras de valores numéricos 1

2 Leitura de valores numéricos em uma linha só... São dois comandos: read_int() read_float() Erro de execução quando não é digitado um número 2

3 Leitura de valores numéricos em uma linha só... São dois comandos: read_int() read_float() Erro de execução quando não é digitado um número (* lê um inteiro, dá o nome i1 ao valor lido *) let i1 : int = read_int ();; (* lê um inteiro, dá o nome i2 ao valor lido *) let i2 : int = read_int ();; (* lê um float, dá o nome f ao valor lido *) let f : float = read_float ();; (* imprime a soma de i1 e i2 em uma linha *) print_int (i1 + i2); print_newline (); (* imprime o dobro de f em uma linha *) print_float (f *. 2.); print_newline ();; 2

4 Leitura de valores numéricos em uma linha só... São dois comandos: read_int() read_float() Erro de execução quando não é digitado um número (* lê um inteiro, dá o nome i1 ao valor lido *) let i1 : int = read_int ();; (* lê um inteiro, dá o nome i2 ao valor lido *) let i2 : int = read_int ();; (* lê um float, dá o nome f ao valor lido *) localhost:david$ ocamlc.opt leitura.ml -o leitura let f : float = read_float ();; localhost:david$./leitura (* imprime a soma de i1 e i2 em uma linha 3 *) print_int (i1 + i2); print_newline (); (* imprime o dobro de f em uma linha *) print_float (f *. 2.); print_newline ();; localhost:david$ 2

5 DIM Conceitos e Técnicas de Programação Funções 3

6 Funções Wikipedia: Function (mathematics), an abstract entity that associates an input to a corresponding output according to some rule. Exemplo: Em programação funcional, funções são trechos de códigos responsáveis para calcular o valor da aplicação de uma função (matemática) para uma determinada entrada. Exemplo: Caml Lua C fun (x : int) -> x * x function (x) return x*x end int f (int x) { return x * x; } 4

7 Definição de funções em OCaml Funções são definidas com: a palavra chave fun, seguida de os parâmetros: os argumentos da função, o separador ->, o corpo: uma expressão que depende dos parâmetros e que define o resultado. Exemplos: fun (x : int) -> x * x fun (x : float) -> x *. x 5

8 Funções nomeadas Frequentemente, precisamos atribuir um nome a uma função: A função pode ser utilizada em diversos lugares e não queremos digitar toda a definição a cada vez. Dar um bom nome à definição permite esclarecer o seu papel e tornar o código mais legível. Em OCaml, o mecanismo para dar um nome a um valor é o let (aula 3). Exemplo: # let int_square : int -> int = fun (i : int) -> i * i;; val int_square : int -> int = <fun> O nome int_square passa a representar uma função Caml que calcula o quadrado de um inteiro. # int_square (~- 5);; - : int = 25 # int_square (1 + (int_square 3));; 6 - : int = 100

9 Funções nomeadas Podemos utilizar a sintaxe alternativa para explicitar o tipo da função: Exemplo: let int_square : int -> int = fun i -> i * i Pode-se também explicitar ambos tipos: da função e dos parâmetros. let int_square : int -> int = fun (i : int) -> i * i Evidentemente, deve-se ter tipos compatíveis... O sistema de tipos de OCaml permite inferir o tipo também: let int_square = fun i -> i * i 7

10 Funções: unidades coesas de código Em programação, funções podem ser usadas para agrupar unidades coesas de código: módulos responsáveis por um determinado papel o papel só depende dos parâmetros o papel pode ser usado para definir outros papeis. # let potencia2 = fun (n : int) -> n * n;; val potencia2 : int -> int = <fun> # let potencia4 = fun (n : int) -> (potencia2 (potencia2 n));; val potencia4 : int -> int = <fun> # potencia4 2;; - : int = 16 8

11 Exercícios Escreva, em O Caml, uma função que, dada um numero inteiro, retorna o cubo deste número. 9

12 Exercícios Escreva, em O Caml, uma função que, dada um numero inteiro, retorna o cubo deste número. fun (x : int) -> x * x * x 9

13 Tipos de funções Funções são valores de tipos funcionais. Um tipo funcional é composto de dois tipos: O tipo dos valores de entrada da função (A) O tipo dos valores de resultado da função (B) A notação empregrada é A -> B Exemplos: # fun (i : int) -> i * i;; - : int -> int = <fun> # fun (i : int) -> i *. i;; - : float -> float = <fun> 10

14 Tipo do parâmetro # fun x -> x * x;; -: int -> int = <fun> # fun x -> x *. x;; -: float -> float = <fun> Caml determina corretamente o tipo dessas duas funções. O tipo dos operandos do operador * é int. O tipo dos operandos do operador *. é float. Podemos definir explicitamente esse tipo: # fun (x : int) -> x * x;; - : int -> int = <fun> # fun (x : float) -> x *. x;; - : float -> float = <fun> É uma forma de explicitar a intenção. Torna mais fácil a leitura e o entendimento do programa Permite verificar se a nossa intenção é corretamente implementada. 11

15 Tipo do parâmetro # fun x -> x * x;; -: int -> int = <fun> # fun x -> x *. x;; -: float -> float = <fun> Caml determina corretamente o tipo dessas duas funções. O tipo dos operandos do operador * é int. O tipo dos operandos do operador *. é float. Podemos definir explicitamente esse tipo: # fun (x : int) -> x * x;; - : int -> int = <fun> # fun (x : float) -> x *. x;; - : float -> float = <fun> É uma forma de explicitar a intenção. Torna mais fácil a leitura e o entendimento do programa Permite verificar se a nossa intenção é corretamente implementada. # fun (x : float) -> x * x;; This expression has type float but is here used with type int 11

16 Para cada função, identifique: o tipo do parâmetro o tipo do resultado o tipo da função fun (x : int) -> x * (x + x) Tipo do parâmetro: exercício fun x -> x /

17 Para cada função, identifique: o tipo do parâmetro o tipo do resultado o tipo da função Tipo do parâmetro: exercício fun (x : int) -> x * (x + x) int int int -> int fun x -> x /

18 Para cada função, identifique: o tipo do parâmetro o tipo do resultado o tipo da função Tipo do parâmetro: exercício fun (x : int) -> x * (x + x) int int int -> int fun x -> x /. 2. float float float -> float 12

19 Aplicação de funções Aplicar uma função Caml a um, ou vários valores, permite calcular a imagem desses valores pela função matemática representada. Sintaxe: função valores ou (função valores) Exemplos: (fun i -> i * i) 2 ou ((fun i -> i * i) 2) Semântica: O parâmetro formal é substituído pelo valor do parâmetro efetivo o parâmetro formal i é substituído pelo parâmetro efetivo 2 O corpo da função é avaliado a expressão 2 * 2 é avaliada; O resultado da avaliação é o resultado da aplicação da função: - : int = 4 13

20 Aplicação de funções 14

21 Exemplos: Aplicação de funções 14

22 Exemplos: ((fun i -> i * i) 2) Aplicação de funções 14

23 Exemplos: ((fun i -> i * i) 2) ((fun i -> i * i) 2) Aplicação de funções 14

24 Exemplos: ((fun i -> i * i) 2) ((fun i -> i * i) 2) 2 * 2 Aplicação de funções 14

25 Exemplos: ((fun i -> i * i) 2) ((fun i -> i * i) 2) 2 * 2 4 Aplicação de funções 14

26 Aplicação de funções 15

27 Exemplos: Aplicação de funções 15

28 Aplicação de funções Exemplos: ((fun i -> i * i) (5-4)) 15

29 Aplicação de funções Exemplos: ((fun i -> i * i) (5-4)) ((fun i -> i * i) (5-4)) 15

30 Aplicação de funções Exemplos: ((fun i -> i * i) (5-4)) ((fun i -> i * i) (5-4)) ((fun i -> i * i) 1) 15

31 Aplicação de funções Exemplos: ((fun i -> i * i) (5-4)) ((fun i -> i * i) (5-4)) ((fun i -> i * i) 1) 1 * 1 15

32 Aplicação de funções Exemplos: ((fun i -> i * i) (5-4)) ((fun i -> i * i) (5-4)) ((fun i -> i * i) 1) 1 *

33 Aplicação de funções 16

34 Exemplos: Aplicação de funções 16

35 Aplicação de funções Exemplos: ((fun i -> i + i) ((fun i -> i * i) 2)) 16

36 Aplicação de funções Exemplos: ((fun i -> i + i) ((fun i -> i * i) 2)) ((fun i -> i + i) ((fun i -> i * i) 2)) 16

37 Aplicação de funções Exemplos: ((fun i -> i + i) ((fun i -> i * i) 2)) ((fun i -> i + i) ((fun i -> i * i) 2)) ((fun i -> i + i) 4) 16

38 Aplicação de funções Exemplos: ((fun i -> i + i) ((fun i -> i * i) 2)) ((fun i -> i + i) ((fun i -> i * i) 2)) ((fun i -> i + i) 4)

39 Aplicação de funções Exemplos: ((fun i -> i + i) ((fun i -> i * i) 2)) ((fun i -> i + i) ((fun i -> i * i) 2)) ((fun i -> i + i) 4)

40 Aplicação de funções 17

41 Exemplos: Aplicação de funções 17

42 Aplicação de funções Exemplos: ((fun i -> i *. i) 2.0) 17

43 Aplicação de funções Exemplos: ((fun i -> i *. i) 2.0) ((fun i -> i *. i) 2.0) 17

44 Aplicação de funções Exemplos: ((fun i -> i *. i) 2.0) ((fun i -> i *. i) 2.0) 2.0 *

45 Aplicação de funções Exemplos: ((fun i -> i *. i) 2.0) ((fun i -> i *. i) 2.0) 2.0 *

46 Aplicação de funções 18

47 Exemplos: Aplicação de funções 18

48 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y))

49 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) (fun x -> fun y -> x + (int_of_float y))

50 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) (fun x -> fun y -> x + (int_of_float y)) (fun y -> 2 + (int_of_float y))

51 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) (fun x -> fun y -> x + (int_of_float y)) (fun y -> 2 + (int_of_float y)) 5.3 (fun y -> 2 + (int_of_float y))

52 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) (fun x -> fun y -> x + (int_of_float y)) (fun y -> 2 + (int_of_float y)) 5.3 (fun y -> 2 + (int_of_float y)) (int_of_float 5.3) 18

53 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) (fun x -> fun y -> x + (int_of_float y)) (fun y -> 2 + (int_of_float y)) 5.3 (fun y -> 2 + (int_of_float y)) (int_of_float 5.3)

54 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) (fun x -> fun y -> x + (int_of_float y)) (fun y -> 2 + (int_of_float y)) 5.3 (fun y -> 2 + (int_of_float y)) (int_of_float 5.3)

55 Aplicação de funções 19

56 Exemplos: Aplicação de funções 19

57 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) 0 19

58 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) 0 (fun x -> fun y -> x + (int_of_float y)) 0 19

59 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) 0 (fun x -> fun y -> x + (int_of_float y)) 0 (fun y -> 0 + (int_of_float y)) 19

60 Exemplos: Aplicação de funções (fun x -> fun y -> x + (int_of_float y)) 0 (fun x -> fun y -> x + (int_of_float y)) 0 (fun y -> 0 + (int_of_float y)) fun y -> (int_of_float y) 19

61 Aplicação de funções e tipagem O tipo do parâmetro efetivo deve ser o mesmo do parâmetro formal: # (fun i -> i *. i) 2;; This expression has type int but is here used with type float 20

62 Aplicação de funções e associatividade # (fun i -> i * i) (fun i -> i * i) 2;; This function is applied to too many arguments, maybe you forgot a `;' OCaml aplica a primeira função. É seguida de dois argumentos (uma função e um inteiro). Não corresponde à definição da função. Colocar os parênteses elimina eventuais ambigüidades. # (fun i -> i * i) ((fun i -> i * i) 2);; - : int = 16 21

63 Aplicação de funções e precedência # (fun i -> i * i) 2 * 3;; - : int = 12 # ((fun i -> i * i) 2) * 3;; - : int = 12 # (fun i -> i * i) (2 * 3);; - : int = 36 A aplicação de função tem maior precedência que os demais operadores. 22

64 Multiplos parâmetros Pode-se definir funções que tenham mais de um parâmetro. Exemplo # let linear = fun (a : float) (b : float) (x : float) -> a *. x +. b;; val linear : float -> float -> float -> float = <fun> # linear ;; - : float = 5.8 linear » (fun (a : float) (b : float) (x : float) -> a *. x +. b) » 2.0 * »

65 Como funciona? Funções de n parâmetros são representadas como funções de 1 parâmetro retornando uma função de n-1 parâmetros. Exemplo 24

66 Como funciona? Funções de n parâmetros são representadas como funções de 1 parâmetro retornando uma função de n-1 parâmetros. Exemplo fun (a : float) (b : float) (x : float) -> a *. x +. b» fun (a: float) -> fun (b : float) (x : float) -> a *. x +. b 24

67 Como funciona? Funções de n parâmetros são representadas como funções de 1 parâmetro retornando uma função de n-1 parâmetros. Exemplo fun (a : float) (b : float) (x : float) -> a *. x +. b» fun (a: float) -> fun (b : float) (x : float) -> a *. x +. b fun (b : float) (x : float) -> a *. x +. b» fun (b: float) -> fun (x : float) -> a *. x +. b 24

68 Como funciona? Funções de n parâmetros são representadas como funções de 1 parâmetro retornando uma função de n-1 parâmetros. Exemplo fun (a : float) (b : float) (x : float) -> a *. x +. b» fun (a: float) -> fun (b : float) (x : float) -> a *. x +. b fun (b : float) (x : float) -> a *. x +. b» fun (b: float) -> fun (x : float) -> a *. x +. b fun (a : float) (b : float) (x : float) -> a *. x +. b»»» fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b 24

69 Como funciona? 25

70 linear Como funciona? 25

71 linear Como funciona?» (fun (a : float) (b : float) (x : float) -> a *. x +. b )

72 Como funciona? linear » (fun (a : float) (b : float) (x : float) -> a *. x +. b ) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b)

73 Como funciona? linear » (fun (a : float) (b : float) (x : float) -> a *. x +. b ) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b) » (fun (b : float) -> fun (x : float) -> 2.0 *. x +. b) » (fun (b : float) -> fun (x : float) -> 2.0 *. x +. b)

74 Como funciona? linear » (fun (a : float) (b : float) (x : float) -> a *. x +. b ) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b) » (fun (b : float) -> fun (x : float) -> 2.0 *. x +. b) » (fun (b : float) -> fun (x : float) -> 2.0 *. x +. b) » (fun (x : float) -> 2.0 *. x ) 1.4» (fun (x : float) -> 2.0 *. x )

75 Como funciona? linear » (fun (a : float) (b : float) (x : float) -> a *. x +. b ) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b) » (fun (b : float) -> fun (x : float) -> 2.0 *. x +. b) » (fun (b : float) -> fun (x : float) -> 2.0 *. x +. b) » (fun (x : float) -> 2.0 *. x ) 1.4» (fun (x : float) -> 2.0 *. x ) 1.4» 2.0 *

76 Como funciona? linear » (fun (a : float) (b : float) (x : float) -> a *. x +. b ) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b) » (fun (a : float) -> fun (b : float) -> fun (x : float) -> a *. x +. b) » (fun (b : float) -> fun (x : float) -> 2.0 *. x +. b) » (fun (b : float) -> fun (x : float) -> 2.0 *. x +. b) » (fun (x : float) -> 2.0 *. x ) 1.4» (fun (x : float) -> 2.0 *. x ) 1.4» 2.0 * »

77 Visualizando a avaliação da aplicação de função. # let f1 = fun x y -> x + y;; val f1 : int -> int -> int = <fun> # #trace f1;; f1 is now traced. # f1 3 4;; f1 <-- 3 f1 --> <fun> f1* <-- 4 f1* --> 7 - : int = 7 # 26

78 Funções como valores Funções são valores de tipos funcionais. Uma função pode então ser o resultado de uma função. exemplos função de múltiplos argumentos (técnica de curryficação). Uma função pode ser o parâmetro de uma função. exemplos função de ordem superior 27

79 Exercícios Considere a função Caml seguinte: fun a b c -> (a * b * c *. 6.0) / Aplicamos os valores 7,0 e 9,0. Qual função representa o resultado da aplicação desses dois valores? 28

80 Exercícios Considere a função Caml seguinte: fun a b c -> (a * b * c *. 6.0) / Aplicamos os valores 7,0 e 9,0. Qual função representa o resultado da aplicação desses dois valores? substituindo a por 7.0 e b por 9.0: fun c -> ( c*.6.0) /

81 Funções tendo função como resultado A aplicação de uma função pode ser uma função O tipo resultado é um tipo funcional Exemplo: 29

82 Funções tendo função como resultado A aplicação de uma função pode ser uma função O tipo resultado é um tipo funcional Exemplo: # let f1 = fun expo -> (fun x -> x ** (float_of_int expo));; val f1 : int -> float -> float = <fun> # let float_cubo = f1 3;; val float_cubo : float -> float = <fun> # float_cubo 2.0;; - : float = 8. 29

83 Funções tendo função como resultado A aplicação de uma função pode ser uma função O tipo resultado é um tipo funcional Exemplo: # let f1 = fun expo -> (fun x -> x ** (float_of_int expo));; val f1 : int -> float -> float = <fun> # let float_cubo = f1 3;; val float_cubo : float -> float = <fun> # float_cubo 2.0;; - : float = 8. f1: dado um inteiro n, retorna uma função que, dada um real x, retorna x elevado à potência n. 29

84 Funções tendo função como resultado A aplicação de uma função pode ser uma função O tipo resultado é um tipo funcional Exemplo: # let f1 f2 = fun expo x -> (fun -> (fun e -> x (int_of_float -> x ** (float_of_int ((float_of_int expo));; x) ** (float_of_int e))));; val f1 f2 : int -> float int -> -> int float = <fun> = <fun> # let float_cubo pot2 = f2 2;; = f1 3;; val float_cubo pot2 : int ->: float int = -> <fun> float = <fun> # float_cubo pot2 4;; 2.0;; - : float int = = 168. f1: dado um inteiro n, retorna uma função que, dada um real x, retorna x elevado à potência n. 29

85 Funções tendo função como resultado A aplicação de uma função pode ser uma função O tipo resultado é um tipo funcional Exemplo: # let f1 f2 = fun expo x -> (fun -> (fun e -> x (int_of_float -> x ** (float_of_int ((float_of_int expo));; x) ** (float_of_int e))));; val f1 f2 : int -> float int -> -> int float = <fun> = <fun> # let float_cubo pot2 = f2 2;; = f1 3;; val float_cubo pot2 : int ->: float int = -> <fun> float = <fun> # float_cubo pot2 4;; 2.0;; - : float int = = 168. f1: dado um inteiro n, retorna uma função que, dada um real x, retorna x elevado à potência n. f2: dado um inteiro x, retorna uma função que, dada um inteiro e, retorna x elevado à potência e. 29

86 Funções poliádicas como combinação de funções monádicas Uma função de n > 1 parâmetros pode ser vista como uma função de um único parâmetro que tem como resultado uma função de n - 1 parâmetros (técnica conhecida como curryficação 1 ). Exemplo: Notação simplificada (mas equivalente): 1 30 vem do nome do lógico Haskell Curry.

87 Funções poliádicas como combinação de funções monádicas Uma função de n > 1 parâmetros pode ser vista como uma função de um único parâmetro que tem como resultado uma função de n - 1 parâmetros (técnica conhecida como curryficação 1 ). Exemplo: # let media_float = fun (x1 : float) -> fun (x2 : float) -> (x1 +. x2) /. 2;; val media_float : float -> float -> float -> float = <fun> Notação simplificada (mas equivalente): # let media_float = fun (x1 : float) (x2 : float) -> (x1 +. x2) /. 2;; val media_float : float -> float -> float -> float = <fun> 1 30 vem do nome do lógico Haskell Curry.

88 Sintaxe alternativa A função: fun a b c -> (a * b * c *. 6.0) / é equivalente à função: fun a -> (fun b c -> (a * b * c *. 6.0) /. 15.0) que é equivalente à função: fun a -> (fun b -> (fun c -> (a * b * c *. 6.0) /. 15.0)) 1 vem do nome do lógico Haskell Curry. 31

89 Funções de ordem superior Funções são valores. Funções que tem como parâmetro outras funções são chamadas funções de ordem superior. Exemplo: 32

90 Funções de ordem superior Funções são valores. Funções que tem como parâmetro outras funções são chamadas funções de ordem superior. Exemplo: # let misterio = fun f x -> (f (f x)) + (f x) + x;; val misterio : (int -> int) -> int -> int = <fun> # misterio (fun n -> n * 3) 4;; - : int = 52 # misterio (fun x -> x / 3) 2;; - : int = 2 32

91 Funções de ordem superior: exemplo 1 # let misterio = fun f -> (fun x -> (f (f x))) val misterio :... = <fun> # let pot2 = fun (i : int) -> i * i;; val pot2 : int -> int = <fun> # let adivinhacao = misterio pot2;; val bizarro : int -> int = <fun> # adivinhacao 4;; - : int =

92 Funções de ordem superior: exemplo 1 # let misterio = fun f -> (fun x -> (f (f x))) val misterio :... = <fun> # let pot2 = fun (i : int) -> i * i;; val pot2 : int -> int = <fun> # let adivinhacao = misterio pot2;; val bizarro : int -> int = <fun> # adivinhacao 4;; - : int = 256 O que faz a função misterio? O que faz a função adivinhacao? 33

93 Funções de ordem superior Derivar: uma operação que transforma uma função em outra função (sua derivada) entrada: uma função de uma variável (número real) saída: uma função de uma variável (também número real) # let epsilon : float = 1e-10;; val epsilon : float # let deriv = fun f -> fun x -> (f (x +. epsilon) -. f x) /. epsilon;; val deriv : (float -> float) -> float -> float = <fun> 34

94 Funções de ordem superior Derivar: uma operação que transforma uma função em outra função (sua derivada) entrada: uma função de uma variável (número real) saída: uma função de uma variável (também número real) # let epsilon : float = 1e-10;; val epsilon : float # let deriv = fun f -> fun x -> (f (x +. epsilon) -. f x) /. epsilon;; val deriv : (float -> float) -> float -> float = <fun> # let sin = deriv sin;; val sin' : float -> float = <fun> 34

95 Funções de ordem superior Derivar: uma operação que transforma uma função em outra função (sua derivada) entrada: uma função de uma variável (número real) saída: uma função de uma variável (também número real) # let epsilon : float = 1e-10;; val epsilon : float # let deriv = fun f -> fun x -> (f (x +. epsilon) -. f x) /. epsilon;; val deriv : (float -> float) -> float -> float = <fun> # let sin = deriv sin;; val sin' : float -> float = <fun> # sin' 0.0;; - : float = 1. # let pi = acos (~-. 1.0);; val pi : float = # sin' pi;; - : float =

96 Procedimentos Procedimentos são rotinas que não retornam resultados. em OCaml, o tipo do resultado dos procedimentos é unit, o valor é () (leia: nada). exemplos: print_int, print_float Procedimentos podem alterar o conteúdo de uma memória escrever valores ler valores Exemplo: let i : int ref = ref 0 let leia : unit -> unit = fun () -> i := read_int() 35

97 Funções e programas (* funcoes auxiliares *) let aux1 :... = fun... (* funcao principal) let main : unit -> unit = fun () -> let (* declaração dos dados lidos e escritos *) <nome1> : <tipo1> = <valor inicial1> and <nome2> : <tipo2> = <valor inicial2> in (* leitura dos dados *) (* calculo dos valores a imprimir *) (* impressao dos valores calculados *) let _ = main() Modelo de programa 2: 36

98 Funções e programas (* declaração dos dados lidos e escritos *) let <nome1> : <tipo1> = <valor inicial1> and <nome2> : <tipo2> = <valor inicial2>... (* funcoes auxiliares *) let aux1 :... = fun... (* funcao principal) let main : unit -> unit = fun () -> (* leitura dos dados *) (* calculo dos valores a imprimir *) (* impressao dos valores calculados *) let _ = main() Modelo de programa 3: 37

99 Conclusões Função: conceito de programação, relação com funções matemáticas. Como definir funções em Caml: sintaxe e semântica Tipos funcionais, funções e o sistema de tipos da linguagem; Curryficação permite construir funções de n parâmetros como funções de um parâmetro; Funções podem ser nomeadas (variável) ou anônimas; Funções de ordem superior; Procedimentos. 38

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.7. Funções 3.7.1. Introdução 3.7.2. Uso de

Leia mais

Introdução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação Introdução à Programação Aula 09 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação A linguagem C, como qualquer outra linguagem de programação, permite

Leia mais

Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios

Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios David Déharbe 1 1 Objetivos da aula Complementar os conhecimentos sobre a construção de expressões Novos tipos para valores

Leia mais

EXPRESSÕES ARITMÉTICAS PARTE 1

EXPRESSÕES ARITMÉTICAS PARTE 1 AULA 5 EXPRESSÕES ARITMÉTICAS PARTE 1 5.1 Operadores aritméticos Os operadores aritméticos definem as operações aritméticas que podem ser realizadas sobre os números inteiros e reais. Para os inteiros,

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

5. Expressões aritméticas

5. Expressões aritméticas 5. Expressões aritméticas DIM0320 2015.1 DIM0320 5. Expressões aritméticas 2015.1 1 / 37 Sumário 1 Operadores inteiros 2 Precedências 3 Alteração de prioridades 4 Operadores reais 5 Expressões de tipo

Leia mais

Sub-rotinas David Déharbe

Sub-rotinas David Déharbe Sub-rotinas David Déharbe 1 1 Objetivos da aula Os conceitos de sub-rotina, funções e procedimentos; Como usar sub-rotinas em C: parâmetros de sub-rotinas: parâmetros formais e parâmetros efetivos. passagem

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano 2013-1 Objetivos Entender o mecanismo de um programa em C/C++ Apresentar e estrutura da Linguagem C/C++

Leia mais

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática Capítulo 1: Introdução à Linguagem C Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso caso, a linguagem C.

Leia mais

C Operadores e Expressões

C Operadores e Expressões C Operadores e Expressões Adriano Cruz adriano@nce.ufrj.br Instituto de Matemática Departamento de Ciência da Computação UFRJ 15 de agosto de 2013 Adriano Cruz adriano@nce.ufrj.br (IM-DCC-UFRJ)C Operadores

Leia mais

Linguagens de Programação Funcional

Linguagens de Programação Funcional Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Tipos de Dados, Expressões, Operadores e Comandos Básicos Prof.: Julliano Rosa Nascimento julliano.rn@gmail.com Roteiro Tipos de Dados: Revisão Expressões Operadores Comandos Básicos

Leia mais

CCO 016 / COM 110 Fundamentos de Programação

CCO 016 / COM 110 Fundamentos de Programação CCO 016 / COM 110 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 05 Entrada de dados Leia scanf Entrada dos dados Entrada de dados compreende a operação

Leia mais

Roteiro da aula. Resolução de exercícios O operador de indireção Sub-rotinas e tipos. DIM Conceitos e Técnicas de Programação

Roteiro da aula. Resolução de exercícios O operador de indireção Sub-rotinas e tipos. DIM Conceitos e Técnicas de Programação Roteiro da aula Resolução de exercícios O operador de indireção Sub-rotinas e tipos. 1 1 Exercícios David Déharbe 2 2 Uma definição de sub-rotina em C int max (int x, int y) int result; if (x > y) result

Leia mais

Algoritmos. Conceitos e Comandos

Algoritmos. Conceitos e Comandos Algoritmos Conceitos e Comandos Trabalho - Reposição Arquitetura Funcional do Computador Para próxima aula 16/03/2018 Valerá duas presenças. Variável Uma variável é um local na memória principal, isto

Leia mais

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação

Leia mais

Algoritmos e Programação I

Algoritmos e Programação I Algoritmos e Programação I Modularização Prof. Fernando Maia da Mota mota.fernandomaia@gmail.com CPCX/UFMS Fernando Maia da Mota 1 Os algoritmos que temos construído até então são muito simples, pois resolvem

Leia mais

Aula 6: Entrada e Saída

Aula 6: Entrada e Saída Aula 6: Entrada e Saída Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Entrada e Saída Programação de Computadores IV 1 / 29 Agenda 1 Revisão e Contexto

Leia mais

Aula prática 14. Expressão Lambda

Aula prática 14. Expressão Lambda Programação Funcional UFOP DECOM 2014.1 Aula prática 14 Expressão Lambda Sumário Resumo Expressões lambdas são funções anônimas que podem ser usadas como qualquer outro valor de primeira classe. Nesta

Leia mais

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1 Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação Lista de Exercícios 1 1. O programa seguinte tem vários erros em tempo de compilação. Encontre-os. Main() int a=1; b=2,

Leia mais

Linguagem Computacional

Linguagem Computacional Informática II Linguagem Computacional Algoritmos e Programação Parte 3 Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves 1 Sumário Operações e Expressões q Definição q Operadores: Aritméticos. Relacionais.

Leia mais

7 Operadores e Expressões

7 Operadores e Expressões 7 Operadores e Expressões 7.1 Definição de operador, expressão e operando Um operador é um símbolo utilizado para identificar que uma determinada operação deve ser realizada sobre um ou mais parâmetros,

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II Prof. Dr. Daniel Caetano 2012-1 Material de Estudo Material Notas de Aula Apresentação Material Didático Acesso ao Material

Leia mais

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa: Algoritmos Algoritmos Leandro Tonietto Unisinos ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto/inf/pg1/algoritmosi_java.pdf Mar-2008 Possuem sintaxe flexível e são mais úteis para descrição

Leia mais

Primeira Prova de Linguagens de Programação - DCC024 - Sistemas de Informação

Primeira Prova de Linguagens de Programação - DCC024 - Sistemas de Informação Primeira Prova de Linguagens de Programação - DCC024 - Sistemas de Informação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem

Leia mais

Conceitos de Linguagem de Programação - 2

Conceitos de Linguagem de Programação - 2 Conceitos de Linguagem de Programação - 2 Arthur Jovita Guerra Thalles Santos Silva Universidade Estadual de Santa Cruz - Ilhéus, BA 1 de novembro de 2011 1 Revisão Natureza das linguagens de Programação

Leia mais

Estruturas condicionais

Estruturas condicionais Estruturas condicionais David Déharbe 1 1 Objetivos da aula Revisar os primeiros elementos de linguagem C já vistos. Condicionais simples Condicionais compostas Operadores lógicos 2 2 Objetivos da aula

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Introdução à Programação em C Input / Output

Introdução à Programação em C Input / Output Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Material Didático Unificado.

Material Didático Unificado. Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II Prof. Dr. Daniel Caetano 2013-1 Material de Estudo Material Notas de Aula Apresentação Material Didático Acesso ao Material

Leia mais

Aula 4: Introdução à Linguagem C++

Aula 4: Introdução à Linguagem C++ CI208 - Programação de Computadores Aula 4: Introdução à Linguagem C++ Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas

Leia mais

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

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 www.decom.ufop.br/red AULA TEÓRICA 02 1 Prof. Marcelo Luiz Silva Red CONTEÚDOS DA AULA

Leia mais

Computação I - Python

Computação I - Python Computação I - Python Aula 2 - Teórica: João C. P. da Silva Carla A. D. M. Delgado Ana Luisa Duboc Dept. Ciência da Computação - UFRJ http://www.dcc.ufrj.br/ pythonufrj/ Computação I - Python Aula 2 1

Leia mais

Introdução à Linguagem C Variáveis e Expressões

Introdução à Linguagem C Variáveis e Expressões INF1005: Programação 1 Introdução à Linguagem C Variáveis e Expressões 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Programando em C Funções Variáveis Define Operadores e Expressões Entrada e Saída

Leia mais

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias SCC 124 - Introdução à Programação para Engenharias Expressões Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes Aula de

Leia mais

puras um ou mais apenas mesmos

puras um ou mais apenas mesmos Funções Relembrando um dos objetivos do paradigma de programação funcional: Escrever funções puras Na prática, uma função pura apresenta as seguintes características: Possui um ou mais parâmetros; Realiza

Leia mais

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Primeiro programa em C #include int main() { int num1, num2, result; scanf("%d",&num1); scanf("%d",&num2); result = num1 + num2; printf("%d",

Leia mais

Introdução à Programação

Introdução à Programação Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de

Leia mais

Expressões Lambda. Programação Funcional. Capítulo 7. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto

Expressões Lambda. Programação Funcional. Capítulo 7. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto Programação Funcional Capítulo 7 Expressões Lambda José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2012.1 1/64 1 Valores de primeira classe 2 Expressão lambda 3 Aplicação

Leia mais

Algoritmos II Aula 11 Funções e Procedimentos

Algoritmos II Aula 11 Funções e Procedimentos Algoritmos II Aula 11 Funções e Procedimentos Professor: Max Pereira max.pereira@unisul.br Ciência da Computação Programação Estruturada ou Programação Modular 1960 crise do software; Programas grandes

Leia mais

Computação 1 - Python Aula 2 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 39

Computação 1 - Python Aula 2 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 39 Computação 1 - Python Aula 2 - Teórica Função 1/ 39 Calcule a área da coroa circular (anel) formada por dois círculos de raios r1 e r2 (r1 > r2 e Pi = 3.14). 2/ 39 Calcule a área da coroa circular (anel)

Leia mais

Capítulo 2 Operadores. A função scanf()

Capítulo 2 Operadores. A função scanf() Capítulo 2 Operadores A função scanf() A função scanf() é outra das funções de E/S implementadas em todos os compiladores e nos permite ler dados formatados da entrada padrão (teclado). Sintaxe: scanf(

Leia mais

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO LINGUAGEM E TECNICAS DE PROGRAMAÇÃO Aula 03 Lógica Entrada de dados Lógica Lógica, no seu sentido mais amplo, está presente em todos os passos de nossas vidas, servindo de base para resolução de nossos

Leia mais

Exercícios Repetição

Exercícios Repetição Curso de Engenharia de Controle e Automação Disciplina: Informática para a Automação Professor: Marcelo Cendron Exercícios Repetição 1.1 8.3 Exercícios 1. Faça um programa utilizando o comando while, que

Leia mais

Modularidade - Funções e Procedimentos

Modularidade - Funções e Procedimentos Modularidade - Funções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situações, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de entrada

Leia mais

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito

Leia mais

Ciência da Computação A&P

Ciência da Computação A&P Algoritmos e Programação Informática II Ciência da Computação Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian 1 Sumário Operações e Expressões Definição Operadores: Aritméticos. Relacionais.

Leia mais

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa Computação Eletrônica Tipos de dados, constantes, variáveis, operadores e expressões Prof: Luciano Barbosa Site da disciplina: www.cin.ufpe.br/~if165/ Recapitulando num cubo = n * n * n cubo Algoritmo

Leia mais

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini Apresentação do Professor Professor: José Carlos Perini E-mail: jose.perini@metrocamp.edu.br Blog: http://profperini.com Formação

Leia mais

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Disciplina de Programação de Computadores I Universidade Federal de Ouro

Leia mais

Principais paradigmas de programação. Programação imperativa Programação funcional Programação lógica Programação OO

Principais paradigmas de programação. Programação imperativa Programação funcional Programação lógica Programação OO Principais paradigmas de programação Programação imperativa Programação funcional Programação lógica Programação OO Programação Imperativa É o paradigma mais usado. Programas são definidos através de sequências

Leia mais

ponteiros INF Programação I Prof. Roberto Azevedo

ponteiros INF Programação I Prof. Roberto Azevedo ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada

Leia mais

Material Didático Unificado.

Material Didático Unificado. Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos

Leia mais

Computação 1 - Python 1/ 41

Computação 1 - Python 1/ 41 Computação 1 - Python Aula 2 - Teórica: Função 1/ 41 Função Exercício: Calcule a área da coroa circular (anel) formada por dois círculos de raios r1 e r2 (r1 > r2 e Pi = 3.14). 2/ 41 Função Exercício:

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano 2018-1 Objetivos Entender o mecanismo de um programa em C/C++ Apresentar e estrutura da Linguagem C/C++

Leia mais

5. Expressões aritméticas

5. Expressões aritméticas 5. Expressões aritméticas 5.1. Conceito de Expressão O conceito de expressão em termos computacionais está intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis

Leia mais

Linguagem C. André Tavares da Silva.

Linguagem C. André Tavares da Silva. Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser

Leia mais

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab.

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab. Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

Oficina de Python Prof. Me. José Carlos Perini

Oficina de Python Prof. Me. José Carlos Perini Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes marinagomes@unipampa.edu.br 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes

Leia mais

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa AULA 2: INTRODUÇÃO A PYTHON Luís Feliphe Silva Costa Sumário Variáveis simples Entrada e Saída de dados Operadores Estruturas Condicionais Estruturas de repetição Funções Tratamento de erros Variáveis

Leia mais

6 Alguns conceitos e comandos em programação

6 Alguns conceitos e comandos em programação 6 Alguns conceitos e comandos em programação 6.1 Diretivas Diretivas são instruções que permitem ao programador efetuar algum tipo de modificação à compilação, sendo analisadas e executadas pelo pré-compilador,

Leia mais

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Introdução à Programação. Expressões Booleanas e Comandos Condicionais Introdução à Programação Expressões Booleanas e Comandos Condicionais Comandos Condicionais Misture os ingredientes Unte forma com manteiga Despeje a mistura na forma Algoritmo para preparação de bolo

Leia mais

Introdução à Linguagem Lua Variáveis e Expressões

Introdução à Linguagem Lua Variáveis e Expressões Introdução a Programação em Lua Introdução à Linguagem Lua Variáveis e Expressões 1 Tópicos Principais Programando em Lua Funções Variáveis Operadores e Expressões Entrada e Saída Exemplos 2 Programando

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Lambda Cálculo e Programação Funcional. Programação Funcional Bacharelado em Sistemas de Informação Maio

Lambda Cálculo e Programação Funcional. Programação Funcional Bacharelado em Sistemas de Informação Maio Lambda Cálculo e Programação Funcional Programação Funcional Bacharelado em Sistemas de Informação Maio - 2009 Alonzo Church (1903 1995) Professor em Princeton, EUA (1929 1967) e UCLA (1967 1990) Inventou

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 2 Elementos fundamentais de Algoritmos, Conceitos de Variáveis Profa. Marina Gomes marinagomes@unipampa.edu.br 21/03/2017 Engenharia de Computação - Unipampa 1 Aula de Hoje

Leia mais

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna Aula 3 C++: variáveis e expressões aritméticas 2017/1 BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro

Leia mais

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA PSEUDO-CÓDIGO Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Um algoritmo pode ser

Leia mais

Oficina de Python Prof. Me. José Carlos Perini

Oficina de Python Prof. Me. José Carlos Perini Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação

Leia mais

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Programação de Computadores I BCC701 www.decom.ufop.br/moodle Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada

Leia mais

Vetores. e o programa deverá ler os valores separadamente:

Vetores. e o programa deverá ler os valores separadamente: Vetores Vetor é um tipo de dado usado para representar uma certa quantidade de variáveis de valores homogêneos (do mesmo tipo). Imagine o seguinte problema: calcular a média das notas da prova de 5 alunos.

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas

Leia mais

1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA. Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C. Página 1

1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA. Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C. Página 1 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C Página 1 2 TECNOLOGIA ELEMENTAR CAPÍTULO 3 SUMÁRIO Apresentação -----------------------------------------------------------

Leia mais

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/1 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Pampa Campus-Bagé Algoritmos e Programação Aula 2 - Elementos fundamentais de Algoritmos, Conceitos de Varíaveis Prof. Julio Saraçol juliodomingues@unipampa.edu.br Slide1 Aula de

Leia mais

Primeiros programas.

Primeiros programas. Primeiros programas. David Déharbe 1 1 Objetivos da aula Revisar as atividades "edição", "compilação", ("correção" e) "execução". Revisar os primeiros elementos de linguagem C já vistos. Aprender a escrever

Leia mais

Aula 7 Oficina de Programação Estruturas de Repetição no C. Profa. Elaine Faria UFU

Aula 7 Oficina de Programação Estruturas de Repetição no C. Profa. Elaine Faria UFU Aula 7 Oficina de Programação Estruturas de Repetição no C Profa. Elaine Faria UFU - 2017 Aula de Hoje Estruturas de repetição: do while while for Introdução Apresentar as estruturas de repetição do while,

Leia mais

Aula 8 Comandos de Seleção

Aula 8 Comandos de Seleção Aula 8 Comandos de Seleção Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br 1 Introdução Até agora não aprendemos a dizer

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Tipos de Dados, Expressões, Operadores e Comandos Básicos Prof.: Julliano Rosa Nascimento julliano.rn@gmail.com Roteiro Tipos de Dados: Revisão Expressões Operadores Comandos Básicos

Leia mais

16 Definição e Uso de Funções em Programas

16 Definição e Uso de Funções em Programas 16 Definição e Uso de Funções em Programas Ronaldo F. Hashimoto e Carlos H. Morimoto Nessa aula falaremos mais sobre funções. Veremos como declarar funções usando protótipos, como definir o corpo da função

Leia mais

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas Estrutura de um Programa em Linguagem Algorítmica Nesse curso nós vamos utilizar a linguagem algorítmica para

Leia mais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Programação de Computadores 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

Unidade 4: Introdução à Lógica de Programação - Parte II

Unidade 4: Introdução à Lógica de Programação - Parte II Lógica de Programação para Engenharia 1 Unidade 4: Introdução à Lógica de Programação - Parte II Português Estruturado Prof. Daniel Caetano Objetivo: Explicitar os elementos básicos envolvidos na programação

Leia mais

Lógica de Programação Atividade Avaliativa 1 RESPOSTAS

Lógica de Programação Atividade Avaliativa 1 RESPOSTAS Lógica de Programação Atividade Avaliativa 1 RESPOSTAS Avaliação individual. A interpretação das questões faz parte da avaliação. Não é permitida conversa bem como troca de materiais entre os alunos; 1)

Leia mais

Introdução ao Scilab. Comandos de entrada e saída de dados.

Introdução ao Scilab. Comandos de entrada e saída de dados. BCC701 Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência da Computação www.decom.ufop.br/bcc701 2012/01 Semana 02: Introdução ao Scilab. Comandos de entrada e saída

Leia mais

, se x = y. , se x > y

, se x = y. , se x > y Exercício 1 Seja a função definida do 2 : Aula Prática 08 f(x, y) = x 2-3x + y 2 4 2, se x < y, se x = y, se x > y Escreva um programa para gerar a tabela de valores dessa função (conforme o exemplo a

Leia mais