Linguagem C - operadores, expressões e extensões ao tipo

Propaganda
Operadores
•
Os operadores (afectação, aritméticos, relacionais e lógicos) que utilizámos até ao
momento estão organizados com a prioridade e associatividade definidas na
tabela abaixo
Prioridade
Associatividade
esquerda
()
direita
!
esquerda
* / %
esquerda
+ esquerda
< <= > >=
esquerda
== !=
esquerda
&&
esquerda
||
direita
= += -= *= /= %=
•
O facto do operador = ter prioridade à direita quer dizer que se pode escrever,
dadas variáveis inteiras a, b e c:
a = b = c = 5; // todas as variáveis ficam com o valor 5
18-10-2015
1
Funções com valores reais
•
As bibliotecas de funções da linguagem C incluem um conjunto de funções
matemáticas, de que a tabela abaixo é um excerto. Para as utilizar terá de colocar
no início do programa a linha #include <math.h>
Função
double
double
double
double
sqrt(double r)
sin(double ang)
cos(double ang)
tan(double ang)
double asin(double s)
double floor(double r)
double
double
double
double
•
Descrição
retorna a raíz quadrada de r
retorna o seno do ângulo, dado em radianos
retorna o coseno do ângulo, dado em radianos
retorna a tangente do ângulo, dado em radianos
retorna o valor do ângulo em radianos (0 .. π) cujo
seno é dado
retorna o número sem parte decimal
imediatamente inderior
retorna o número sem parte decimal mais
próximo
round(double r)
pow(double x,
retorna xy
y)
log10(double r) retorna o logaritmo base 10 de r
Para gerar o programa terá de usar a opção –lm que indica ao compilador para
usar a biblioteca de funções matemáticas. Ex:
gcc –o mathprog mathprog.c -lm
18-10-2015
2
Variáveis com valor fixo definido na sua declaração (const)
• Por vezes pretendemos definir valores que funcionam como constantes.
Por exemplo:
double pi = 3.1415926;
neste caso é possível alterar o valor de pi o que seria naturalmente um
contrassenso, trantado-se de uma constante universal.
O qualificador const resolve a questão:
const double pi = 3.1415926;
Neste caso qualquer tentativa de alteração de pi geraria um erro de
compilação. Note-se que neste caso a afectação da variável apenas pode
ocorrer na sua declaração.
18-10-2015
3
Novos tipos de dados – extensões ao tipo int
•
A linguagem C permite criar novos tipos inteiros através de duas formas: variando o
seu alcance (a quantidade de valores suportados) e tratando os valores como
absolutos (sem sinal). Para isso são usadas as keywords qualificadoras de tipo
short e long– para modificar o alcance
signed e unsigned – para indicar valores relativos ou absolutos (os valores são
com sinal por omissão, pelo que o qualificador signed
não se costuma usar.
•
Exemplos:
short int s;
long int l;
unsigned int i;
unsigned long int l1;
•
// definição de um inteiro com menor alcance
// definição de um inteiro com maior alcance
// inteiro absoluto – o menor valor é zero
// inteiro longo absoluto – o menor valor é zero
O C permite omitir a keyword int nestes casos. Podemos então ter:
short s;
long l;
unsigned i;
unsigned long l1;
18-10-2015
4
Download