(Parte 5 de 9)

Tabela 1.8: Operadores relacionais

Símbolo Significado < menor que > maior que ≤ menor ou igual que ≥ maior ou igual que == igual ! = diferente

Na tabela 1.9 apresenta-se alguns exemplos da utilização dos operadores relacionais nos quais se consideram os valores a=5; b=6; c=7;.

Tabela 1.9: Exemplos de operadores relacionais

Exemplo Resultado (7==5) falso (a!=b) verdade (a<=7) verdade ((a*b)>=c) verdade

Operadores lógicos

A tabela 1.10 apresenta os operadores lógicos da linguagem C++

O resultado das operações com os operadores lógicos também é verdade ou falso.

O operador !, colocado à esquerda da expressão, inverte o valor lógico da mesma. Isto é, se a expressão é verdadeira passa a falsa e vice–versa. A tabela 1.1 apresenta alguns exemplos da utilização dos operadores lógicos.

De seguida são apresentadas as tabelas de verdades das operações lógicas: conjunção, disjunção e negação (tabela 1.12).

Apontamentos de Programação C/C++

Tabela 1.10: Operadores lógicos

Símbolo Significado && conjunção || disjunção ! negação

Tabela 1.1: Exemplos de operadores lógicos

!verdade falso

Operador ternário

O operador ternário ou condicional avalia uma expressão e devolve diferentes valores de acordo com a avaliação da expressão. A sintaxe deste operador é a seguinte: <condição> ? <resultado1> : <resultado2>

Se a <condição> é verdade então o operador vai devolver o <resultado1>. Caso contrário devolve o <resultado2>. Por exemplo:

A variável x vai ficar com o valor 3, uma vez que 7 é diferente de 5.

bool x; x=(5>3 ? true : false);

Neste caso é atribuída à variável x o valor verdade.

Operadores manipulação bits

Os operadores de manipulação de bits aplicam-se apenas a expressões numéricas inteiras.

O operador é um operador unário e complementa (os bits 1s passam a 0s e vice–versa) todos os bits da variável que estiver colocada ao seu lado direito. Os operadores de deslocamento executam os deslocamento do operando colocado à sua

Tabela 1.12: Tabelas de verdade: conjunção, disjunção e negação

ISEP/DEI - Jorge Santos e Paulo Baltarejo

Tabela 1.13: Operadores de manipulação de bits

Símbolo Significado

Complemento (not) & Conjunção (and) | Disjunção inclusiva (or) Disjunção exclusiva (xor)

>> Deslocamento à direita (shift) << Deslocamento à esquerda (shift)

Tabela 1.14: Tabela de verdade dos operadores de manipulação bits a b a & b a | b a b

esquerda, um número de posições indicado pelo operando da direita. Os operadores &, | e são binários e caracterizam-se pelas seguintes relações (ver tabela 1.14):

No deslocamento para a esquerda (<<) as posições que ficam livres são ocupadas com bits a 0. No deslocamento para a direita (>>) as posições livres são ocupadas com bits em 0, se a quantidade deslocada for sem sinal( unsigned ), ou com bits bits idênticos ao mais significativo, se as quantidades deslocadas possuírem sinal. Por exemplo, x<<2, desloca a representação binária do valor contido em x, duas posições (bits) para a esquerda. Se x contiver o valor binário 00000010 (2 em decimal) então x<<2 faz com que x passe a conter o valor 00001000 (8 em decimal).

1.6.2 Exercícios Resolvidos

Nesta secção são apresentados alguns problemas e respectivas soluções com o objectivo de ilustrar a utilização de instruções sequenciais.

1.6.2.1 Distância euclidiana entre dois pontos

O programa da listagem 1.6 permite realizar o cálculo da distância euclidiana entre dois pontos, sendo que cada ponto é definido pelas coordenadas (x,y). A distância pode ser calculada de acordo com a fórmula 1.6.1.

Listing 1.6: Distância euclidiana entre dois pontos

Apontamentos de Programação C/C++

1.6.2.2 Determinar perímetro e área de circunferência

O programa da listagem 1.7 permite determinar o perímetro e área de uma circunferência, a partir do valor do raio.

Listing 1.7: Área e perímetro de um circunferência

1.6.3 Exercícios Propostos

Nesta secção são propostos alguns problemas com vista à aplicação conjugada de instruções sequenciais.

1.6.3.1 Calcular índice de massa corpórea (IMC)

O índice de massa corpórea (IMC) de um indivíduo é obtido dividindo-se o seu peso (em Kg) por sua altura (em m) ao quadrado. Assim, por exemplo, uma pessoa de 1,67m e pesando 55kg tem IMC igual a 20,14, já que:

IMC = peso

ISEP/DEI - Jorge Santos e Paulo Baltarejo

Escreva um programa que solicite ao utilizador o fornecimento do seu peso em kg e de sua altura em m e a partir deles calcule o índice de massa corpórea do utilizador.

1.6.3.2 Converter horas, minutos e segundos

(Parte 5 de 9)

Comentários