Linguagem de Programação C

Linguagem de Programação C

(Parte 4 de 7)

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

26 3.2 Escreva um programa que imprima na tela:

3.3 Escreva um programa que peça os dados da conta bancária de um cliente e, posteriormente, escreva na tela os dados do cliente também de forma organizada.

3.4 Escreva um programa que exemplifique todos os tipos de formatações fornecidas para o printf().

3.5 Escreva um programa que peça ao usuário para entrar com um valor real (float), converta este valor para uma variável do tipo char e depois imprima o seu valor na tela em formato decimal e em formato caractere.

3.6 Faça um programa que peça ao usuário para entrar com um caractere, converta este número para um valor inteiro e apresente na tela o valor deste número em formato float e o endereço da variável que o contém. Utilize ponteiros para armazenar e acessar este valor.

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

4 Operadores

C é uma linguagem rica em operadores, em torno de 40Alguns são mais usados que
outros, como é o caso dos operadores aritméticos que executam operações aritméticasC oferece 6
(opera sobre um operando)São eles:

4.1 Operadores Aritméticos operadores aritméticos binários (operam sobre dois operandos) e um operador aritmético unário

Binários:

= Atribuição + Soma - Subtração * Multiplicação / Divisão % Módulo (devolve o resto da divisão inteira)

Unário: - Menos unário (indica a troca do sinal algébrico do valor)

O operador = já é conhecido dos exemplos apresentados anteriormenteEm C, o sinal de
igual não tem a interpretação dada em matemáticaRepresenta a atribuição da expressão à direita
ao nome da variável à esquerdaJá os operadores + - / * representam as operações aritméticas
básicas de soma, subtração, divisão e multiplicaçãoA seguir está um programa que usa vários

operadores aritméticos e converte temperatura Fahrenheit em seus correspondentes graus Celsius.

#include <stdio.h> void main() { int ftemp = 0; int ctemp = 0; printf("Digite temperatura em graus Fahrenheit: "); scanf("%d", &ftemp);

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação ctemp = (ftemp - 32)*5/9; printf("Temperatura em graus Celsius e %d", ctemp); }

O operador módulo (%) aceita somente operandos inteirosResulta o resto da divisão do
inteiro à sua esquerda pelo inteiro à sua direitaPor exemplo, 17%5 tem o valor 2 pois quando

dividimos 17 por 5 teremos resto 2.

Os operadores relacionais são usados para fazer comparaçõesEm C não existe um tipo de
variável chamada “booleana”, isto é, que assuma um valor verdadeiro ou falsoO valor zero (0) é
inteiro 1Os operadores relacionais comparam dois operandos e retornam 0 se o resultado for falso
e 1 se o resultado for verdadeiroOs operadores relacionais disponíveis em C são:

4.2 Operadores Relacionais considerado falso e qualquer valor diferente de 0 é considerado verdadeiro e é representado pelo

O programa a seguir mostra expressões booleanas como argumento da função printf():

#include <stdio.h> void main() { int verdade, falso; verdade = (15 < 20); falso = (15 == 20);

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação printf("Verdadeiro= %d, falso= %d\n", verdade, falso); }

Note que o operador relacional “igual a” é representado por dois sinais de iguaisUm erro
comum é o de usar um único sinal de igual como operador relacionalO compilador não o avisará

que este é um erro, por quê? Na verdade, como toda expressão C tem um valor verdadeiro ou falso, este não é um erro de programa e sim um erro lógico do programador.

4.3 Operadores lógicos binários

são denominados operadores lógicos bináriosOu seja, estes operadores fazem uma comparação
lógica entre cada bit dos operandos envolvidosOs operadores binários disponíveis são:

Estes operadores são empregados para comparar os bits contidos em duas variáveis, por isso,

A seguir temos um exemplo da aplicação destes operadores.

k = i & j;/* k = i AND j */

#include <stdio.h> void main() { int i, j, k; i = 1; j = 2; printf("\ti = %x (00000001)\n\tj = %x (00000010)", i, j); printf("\n\t i & j => %x (0)", k);

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

k = i j;/* k = i XOR j */

30 printf("\n\t i ^ j => %x (01)", k); k = i << 2; /*k = i deslocando 2 bits à esquerda (4)*/ printf("\n\t i << 2 => %x (00000100)", k); }

número 2 (0x00000010)Por isso o resultado obtido é logicamente 0, ou seja, 0x00000000. Em
logicamente, 3, ou seja, (0x00000011)Por fim, o programa desloca o número 1 em duas casas para
binário, (0x00000100)A partir deste exemplo fica clara a utilização destes operadores.

Primeiro o programa faz uma comparação binária ‘e’ (&) entre o número 1 (0x00000001) e o seguida, o programa faz uma comparação binária ‘ou’ () entre estes dois números, resultando agora, a esquerda, representado no programa pelo operador << 2. Assim, o resultado é o número 4 ou, em

4.4 Operadores de Ponteiros

Estes operadores já foram apresentados anteriormente na secção sobre ponteiros (ver 2.7). O primeiro operador server para acessar o valor da variável, cujo endereço está armazenado em um ponteiro. O segundo operador server para obter o endereço de uma variável.

O programa abaixo apresenta novamente a aplicação destes operadores.

/* ptr = valor de i ! */

void main() { int i, j, *ptr; ptr = &i; /* atribui a ptr o endereço da variável i */ j = *ptr; /*atribui a j o conteúdo do endereço definido por*/ }

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação

4.5 Operadores Incrementais e Decrementais

operadores que podem comprimir comandos de programasNeste aspecto, destacam-se os

Uma das razões para que os programas em C sejam pequenos em geral é que C tem vários seguintes operadores:

O operador de incremento (++) incrementa de um seu operandoEste operador trabalha de
dois modosO primeiro modo é chamado pré-fixado e o operador aparece antes do nome da
variávelO segundo é o modo pós-fixado em que o operador aparece seguindo o nome da variável.
depois de seu valor ser usadoO programa abaixo mostra um exemplo destes operadores,

Em ambos os casos, a variável é incrementada. Porém quando ++n é usado numa instrução, n é incrementada antes de seu valor ser usado, e quando n++ estiver numa instrução, n é incrementado ressaltando esta questão.

#include <stdio.h> void main() { int n, m, x, y; n = m = 5; x = ++n; y = m++; printf("O valor de n=%d, x=++n=%d, m=%d e y=m++=%d;",n,x,m,y); }

Vamos analisar duas expressões seguintes.

Informática para Automação – Linguagem de Programação

Prof. Carlos Pantaleão Curso de Tecnologia de Automação Industrial e Engenharia de Controle e Automação a) k = 3*n++; Aqui, primeiro ‘n’ é multiplicado por 3, depois o resultado é atribuído a ‘k’ e, finalmente, ‘n’ é incrementado de 1.

b) k = 3*++n; Primeiro ‘n’ é incrementado em 1, depois ‘n’ é multiplicado por 3 e, por fim, o resultado é atribuído a ‘k’.

evitando que o compilador não compreenda a ordem correta de executar a operaçãoAbaixo, temos

Dica: Para evitar problemas, faça uso de parênteses para guiar a execução do programa um outro exemplo dos operadores incrementais apresentado várias aplicações destes operadores:

i++;/* incrementa i */
i--;/* decrementa i */
ptr = &i;/* recebe o endereco de i */
(*ptr)++;/* incrementa valor de i */
ptr++;/* incrementa em 2 Bytes (1 inteiro */

void main() { int i = 10; int *ptr = 0; i = i + 1; /* incrementa i */ i = i - 1; /* decrementa i */ /* ocupa 2 Bytes) o valor do endereço */

/* apontado pelo ponteiro ptr */ }

(Parte 4 de 7)

Comentários