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