Aula 3Aulas teóricas - notas...Aula 1Aula 2

Aula 2


                --------------------------------------
                Estrutura de um programa em C, funções
                       Variáveis: nomes e tipos
                              Expressões
                              Atribuição
                --------------------------------------

Variáveis - variáveis e posições de memória. 
Tipos de variáveis.  Necessidade de as declarar.


Expressões aritméticas, operadores +, -, /, %: N x N -> N
Operadores de relação: <, <=, ==, !=, >=, >  : N x N -> {f,v}
Expressões condicionais, operadores &&, ||, !  {f,v} x {f,v} -> {f,v}, etc
Precedência dos operadores


Exprimir
  a) o cubo de x
  b) x é um inteiro par
  c) x é múltiplo de 3 mas não de 5
  d) x é um inteiro par compreendido entre y+5 e 1000


-----------------------------------------------------------


Instrução de atribuição (muito importante):
-------------------------------------------

Sintaxe:

   <variável>:   coresponde a uma posição de memória

   <expressão>:  tem um valor


Semântica: 
  I) a <expressão> do lado direito é calculada
  II) o valor resultante é colocado na posição de memória
      correspondente à <variável>. 

Exemplos:

   x=x+1;
   x=x;
   x=5;
   z=2*sin(w)+zz

Exemplo de variáveis: a, as_cores, a1777


------------------------------------------------------------------
Notas
- Notação mais intuitiva:      <expressão> -> <variável>
- Em Pascal, Maple...: <variável>  := <expressão>
- De facto em C a atribuição é uma parte das expressões e podemos ter
  expressões (instruções) como  y+(x=7)*(z=z+5); Não usaremos este
  conceito mais geral de expressão.
------------------------------------------------------------------

Exercício: as variáveis x e y têm determinados valores. Trocar esses
valores, simbolicamente x <--> y, em linguagem C.

  a) solução "ingénua"
  b) solução correcta

------------------------------------------------------------------
Exercício: as variáveis x, y e z têm determinados valores. Efectuar a
transformação ("rotação") x -> y, y-> z, z-> x.

  a) Usando 3 novas variáveis com os valores iniciais de x, y, e z.
> b) Usando 1 só nova variável.

(O ">" significa "exercício para casa")
------------------------------------------------------------------
Exercício: o que imprime a seguinte parte de programa?

     ...
     int x;
     x=2;
     x=x*x; x=x*x; x=x*x; x=x*x; 
     printf("%d",x);
     ...


------------------------------------------------------------------
Exercício: x tem um valor que foi lido. Calcular e imprimir x^18

  a) Multiplicando 18 vezes t (valor inicial 1) por x.
> b) Tentar usar um processo que reduza substancialmente o número de
  multiplicações efectuadas.
  [b] Com um ciclo while, seguindo um método semelhante ao da 
      alínea a).

 
------------------------------------------------------------------
Abreviaturas para algumas atribuições
  x=x*2;   <==>  x*=2;
  x=x+5;   <==>  x+=2;
  ....................
  (identicamente para /=, etc)
  x=x+1    <==>  x+=1;    <==>  x++;
  x=x-1    <==>  x-=1;    <==>  x--;





PC/PI - página reservada - versão 2005.02.08

Aula 3Aulas teóricas - notas...Aula 1Aula 2