Buscar

Fundamentos da Linguagem C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programando em C ANITA LOPES
FUNDAMENTOS DA LINGUAGEM C
	
1 A linguagem C
1.1	Introdução
	
A linguagem C é uma linguagem de nível intermediário que utiliza recursos da linguagem de máquina de forma simples. É uma linguagem estruturada, com flexibilidade/portabilidade entre sistemas operacionais e tem sido usado para criação de vários tipos de programas tais como processadores de texto, sistemas operacionais, planilhas, outras linguagens de programação, etc.
A linguagem C é "Case Sensitive", isto é, maiúsculas e minúsculas fazem diferença.
	1.2	Estrutura de um programa em C
	
	Um programa em C é constituído de:
um cabeçalho que contem definições de pré-processamento tais como os arquivos de cabeçalho, as definições de constantes simbólicas, declaração de variáveis globais, declaração de rotinas, etc.
um bloco da função principal e outros blocos de de funções.
comentários. 
	[ <definições de pré-processamento> ]
	[ <declaração de variáveis globais> ]
	<tipo de retorno da função> main( <parâmetros>) >
	{
	 Bloco de comandos
	}
	<tipo de retorno da função> <nome_da_função1 >( <parâmetros>) >
	{
	 Bloco de comandos da função1
	}
	...
	<tipo de retorno da função> <nome_da_funçãon >( <parâmetros>) >
	{
	 Bloco de comandos da função2
	}
Exemplo de um programa em C
#include <stdio.h>
void main(void)
{ 
printf("\nPRIMEIRO PROGRAMA EM C");
}
	Explicando:
	#include <stdio.h> instrui o compilador a usar a biblioteca padrão de entrada e
 saída
	void main(void) a palavra void diz ao compilador que a função não retorna 
 nenhum valor; main é o nome da função principal; a palavra 
 void entre parênteses indica que a função não tem parâmetros
	{ inicia a função
	printf imprime na tela a msg após alimentar linha
	} finaliza a função
1.2.1 	Conjunto de caracteres
	Um programa fonte em C é um texto não formatado escrito em um editor de textos usando um o conjunto padrão de caracteres ASCII.	
	
Caracteres válidos:
	As letras minúsculas e maiúsculas não acentuadas
	Os algarismos de 0 - 9 
 	+ - * / \ = | & ! ? # % ( ) { } [ ] _ ‘ “ . , : < >
	
	Observação: Qualquer outro caracter é valido para as strings. 
	1.2.2	Comentários
	Os comentários em C podem aparecer em qualquer lugar do programa e têm como objetivo fazer um esclarecimento sobre uma linha ou trecho do programa.
	Os comentários terão um /* antes e um */ depois.
	Exemplo:
	/* programar em C eh facil */	
	1.2.3 	Diretivas de Compilação
	Na linguagem C, alguns comandos são processados durante a compilação. Estes comandos são chamados de diretivas de compilação e são eles que informam quais bibliotecas e constantes simbólicas deverão ser anexadas quando for gerado o programa executável.
A diretiva #include diz ao compilador para incluir na compilação do programa outros arquivos. Geralmente estes arquivos contem bibliotecas de funções ou rotinas do usuário. 
Sintaxe: 
	#include <nome_da_biblioteca>
onde nome_da_biblioteca é o nome da biblioteca que se deseja incluir. 
	Exemplos de bibliotecas:
BIBLIOTECA ctype.h
		Converte para maiúscula ou para minúscula uma letra
	toupper(letra)
	tolower(letra)
BIBLIOTECA math.h
	Calcula o valor absoluto real d
	fabs(double d)
	Funções trigonométricas do ângulo arco, em radianos
	sin(double arco)
	cos(double arco)
	tan(double arco)
	asin(double arco)
	acos(double arco)
	atan(double arco)
	Funções de arredondamento para inteiro
	ceil(double num) Ex. ceil(3.2) => 4.0 arredonda pra cima
	floor(double num) Ex. floor(3.2) => 3.0 arredonda para baixo
	Funções logarítmicas: log() é logaritmo natural (base e), log10() é logaritmo decimal (base 10).
	log(double num)
	log10(double num)
	Funções: potência e raiz quadrada
	pow(double base, double exp); Potenciacao: pow(3.2,5.6) => 3.25.6
	sqrt(double num); Raiz quadrada: sqrt(9.0) = >3.0.
BIBLIOTECA stdio.h
		Esvazia o buffer, lê e imprime
	fflush(stdin);
	scanf(…);
	scanf(…);
BIBLIOTECA stdlib.h
		Calcula o valor absoluto do inteiro i e do real d, respectivamente
	abs(int i)
BIBLIOTECA string.h
		Concatena duas strings
	strcat(str1, str2);
	Copia o conteúdo de uma variável em outra variável
	strcpy(str1, str2) /* não é permitido: str1 =str2;*/
	Fornece o número de caracteres de uma string
	strlen(str1) 
	Compara duas strings 
	 devolve número menor que 0 se str1 vier antes de str2 
strcmp(str1, str2) devolve número maior que 0 se str1 vier depois de str2
 devolve 0 se str1 for igual à str2 
	Converte para maiúscula ou para minúscula uma string
	strupr(lstr1) converte para maiúscula uma string
	strlwr(str1) converte para minúscula uma string
2. Saída 
	Existem varias maneiras de se fazer uma escrita de informações na linguagem C. 
	Primeiramente, vamos aprender a usar função printf().
 Biblioteca: stdio.h 
	printf( "expressão de controle ", <lista_de_argumentos > );
	
A expressão de controle contém uma descrição de tudo que aparecerá na tela.
	Além das mensagens, estarão presentes também os códigos de controle para impressão dos conteúdos das variáveis, alimentação de linha, tabulação, etc.
	 Código 
	Significado
	%d 
	Inteiro
	%f 
	Float
	%c 
	Caractere
	%s 
	String
	%o
	Constante octal
	%x  ou %X 
	Constante hexadecimal
	%u 
	Inteiro sem sinal
	%ld 
	Longo inteiro
	%f
	float
	%e
	exponencial
	%g
	Usa-se %e ou %f
	%p 
	Ponteiro
	%+.. 
	Coloca sinal
	%<n>d
	Formata Inteiro
	%0<n>d
	Formata inteiro preenchendo com 0
	%<n.f>f
	Formata real
	%% 
	Coloca na tela um % 
		Controle/Caracter
	Seqüência de escape
	nulo (null) 
campainha (bell) 
retrocesso (backspace) 
tabulacao horizontal 
nova linha (new line) 
tabulacao vertical 
alimentacao de folha (form feed) 
retorno de carro (carriage return)
aspas (") 
apostrofo (') 
interrogacao (?) 
barra invertida (\) 
	\0
\a
\b
\t
\n
\v
\f
\r
\"
\'
\?
\\
	Exemplos:
	printf("\nUNESA\n"); /*sem lista de argumentos */ 
	printf("\nO numero eh: %d", num); /* imprime mensagem e conteúdo de uma
 variável inteira*/
	#include <stdio.h>
void main()
{
 printf("\nletra %c - numero %d ",'A','A');
 printf("\n%06d",123);
 printf("\n%d",-15);
 printf("\n%+d",123);
 printf("\n%8.5f", 12.3456);
 printf("\n%8.0f", 12.3456);
}
	
3. Constantes e variáveis
	
3.1 Constantes
	O C possui quatro tipos básicos de constantes: inteiras, de ponto flutuante, caracteres e strings. Constantes inteiras e de ponto flutuante representam números de um modo geral.
	3.1.1	Constantes inteiras
	As constantes inteiras na linguagem C podem ser escritas no formato decimal (base 10), hexadecimal (base 16) ou octal (base 8). 
	Exemplos:
 	Decimal: 12 
	Octal : 033 ( em decimal vale 27. O zero antes do número caracteriza a constante octal)
	Hexadecimal: 0xff ( em decimal vale 255. O zero e o x antes do número caracterizam a constante hexadecimal)
	
	#include <stdio.h>
void main(void){ 
 printf("\ndecimal= %d octal= %o hexadecimal= %X",27,27,27);
 printf("\ndecimal= %d octal= %o hexadecimal= %X",27,27,27);
}
	
	3.1.2	Constantes de ponto flutuante
	
	São números reais com um ponto decimal e (opcionalmente) um expoente.	
	Exemplos: 
	1.876 476.65 1.23e-9 -1.e2 10.6e18 -.853E+67
	3.1.3	Constantes caracteres
	Uma constante caracter é uma letra ou símbolo colocado entre plicas.
	Exemplo:
	’U’	’N’	’E’	’S’ ’A’	
	As constantes caracter são armazenadas como números inteiros. Estes números correspondem aos valores de cada caracter dentro do código ASCII.
	
	3.1.4	Constantes strings
	Uma constante string consiste de um conjunto de caracteres do código ASCII padrão ou estendido, colocados entre aspas duplas.
	Exemplo: 
	”UAL!”
	”Matemática”
	”APRENDENDO A PROGRAMAR EM C ”
Na linguagem, C uma string é um vetor de caracteres terminado com um caracter nulo. O caracter nulo é um caracter com valor inteiro igual a zero (código ASCII igual a 0). O terminador nulo também pode ser escrito usando a convenção de barra invertida do C como sendo '\0'.
	char nome_da_string[tamanho];
Como precisamos reservar uma posição para o terminador, sempre iremos declarar o tamanho necessário mais um.
Vamos supor que declaremos uma variável de nome palavra de 11 posições(char palavra[11]; ) e armazenemos a palavra PROGRAMAS nela. 
É bom ressaltar que a linguagem C não inicializa as variáveis e toda célula não usada têm valor indeterminado. 
Não se esqueça de inicializar as variáveis de seus programas, pois coisas incríveis podem acontecer!
As strings são consideradas vetores de caracteres( matriz linha). Como na Matemática, para se acessar um determinado caracter de uma string, basta "indexarmos". 
	
	str[1] = 'o'
str[2] = 'a'
	No exemplo acima, percebemos que o primeiro caracter se encontra na posição 0( em algumas linguagens, seria a posição 1). Desta forma, se indexarmos com 1, na verdade estaremos nos referindo ao segundo caracter da string; se indexarmos com 2, na verdade estaremos nos referindo ao terceiro caracter da string e assim sucessivamente. 
3.1.5 Constantes Simbólicas
	A Matemática define pi como tendo o valor 3,14159265. Muitas vezes precisaremos definir algumas constantes em nossos programas.
3.1.5.1 Constantes definidas pelo programador 
	
	O programador pode definir constantes simbólicas em qualquer programa.
	Sintaxe: 
	#define <nome> < valor >
	Onde #define é uma diretiva de compilação que diz ao compilador para trocar as ocorrências do texto nome por valor. Observe que não há ; no final da instrução pois trata-se de um comando para o compilador e não para o processador. A instrução #define deve ser escrita antes da instrução de declaração da rotina principal. 
	
	Exemplo: 
	
	#include <stdio.h>
#include <math.h>
#define quadrado(x) (x*x)
#define pi 3.14159265
#define conv(x) (x*pi/180)
void main(void)
{ 
 printf("\nnumero: 12" );
 printf("\n\nquadrado= %d", quadrado(12));
 printf("\n\nangulo: 30" );
 printf("\n\nseno de %.2f eh %4.2f",30.,sin(conv(30)));
}
	
	O uso da diretiva #define não se restringe apenas para declarar constante(#define pi 3.14159265 ) mas também podemos usá-la para definir macro instruções(#define conv(x) (x*pi/180) ou #define quadrado(x) (x*x) ). 
3.2 Variáveis
A variável é um lugar na memória principal que armazena um dado e tem um nome associado.
	Em C, como na maioria das linguagens, as variáveis devem ser declaradas no inicio do programa. Estas variáveis podem ser de vários tipos: int (inteiro), float (real de simples precisão) , char (caracter único), double (real de dupla precisão).
	Tipo
	Tamanho
	Intervalo
	Uso
	char
int 
float 
double
	1 byte 
2 bytes 
4 bytes 
8 bytes 
	-128 a 127
-32768 a 32767
3.4e-38 a 3.4e38 
1.7e-308 a 1.7e308 
	número muito pequeno e caracter ASCII
contador, controle de laço
real (precisão de 6dígitos)
científico (precisão de 10 dígitos)
	Quando se define um tipo de variável, informamos ao computador quanto de memória será necessária para armazenar este dado e que tipos de operações poderão ser realizadas com este dado.
	Para se declarar uma variável, usamos a seguinte sintaxe:
	< tipo> nome_da_variável ;
	
	O nome de uma variável deve obedecer algumas regras:
O primeiro caracter pode ser uma letra ( maiúscula ou minúscula) ou o caracter sublinha.
Os demais caracteres, letras algarismos ou o caracter sublinha.
Exemplos:
	int a; float peso; char sexo; int idade1, idade2;
3.2.1	Palavras reservadas
	Existem certos nomes que não poderão ser usados como identificadores. São chamadas as palavras reservadas e são de uso restrito da linguagem C. O conjunto de palavras reservadas usadas em C é o seguinte:
	asm 
	auto 
	break 
	case 
	cdecl 
	char
	class
	const 
	continue
	_cs 
	default
	delete
	do 
	double
	_ds 
	else 
	enum
	_es
	extern 
	_export 
	far 
	_fastcall 
	float 
	for
	friend 
	goto 
	huge 
	if
	inline
	int
	interrupt 
	_loadds 
	long 
	near
	new 
	operator
	pascal 
	private 
	protected 
	public 
	register
	return
	_saveregs 
	_seg 
	short
	signed
	sizeof 
	_ss
	static
	struct
	switch
	template
	this
	typedef
	union
	unsigned
	virtual
	void
	volatile
	while
 
3.2.2	Tipos modificados
	Além dos tipos de dados mencionados, existem os modificadores: long, short, signed e unsigned. Tipicamente o modificador long aumenta o número de bytes usados para o registro do número. O modificador unsigned, usado somente em inteiros, permite que um bit usado para guardar o sinal do número seja usado para guardar o valor do número. 
	Tipo
	Tamanho (bytes)
	Intervalo
	unsigned char 
	1
	0 a 255 
	unsigned int 
	2
	0 a 65 535
	unsigned long int 
	4
	0 a 4 294 967 295
	long int 
	4
	-2 147 483 648 a 2 147 483 647
	short int
	2
	-32768 a 32767
	long double 
	10
	3.4e-4932 a 1.1e4932
3.2.3 Conversão de tipo (Casting)
	Algumas vezes queremos, momentaneamente, modificar o tipo de dado representado por uma variável, isto é, queremos que o dado seja apresentado em um tipo diferente do qual a variável foi inicialmente declarada. Por exemplo: ao fazermos uma divisão entre dois inteiros, a linguagem C trunca a parte fracionária e podemos desejar que isto não aconteça. Este procedimento é chamado de conversão de tipo ou casting . 
	Sintaxe: 
	(tipo) variável
onde tipo é o nome do tipo ao qual queremos converter o dado armazenado em variável. 
Exemplo: 
	#include <stdio.h>
void main(void)
{ 
 printf("\nnumero: 7" );
 printf("\n\nDIVIDINDO POR 3\nsem conversao= %d com conversao= %f",7/3, (float)7/3);
}
	
4. Atribuição
Consiste em atribuir um valor a uma variável. Em C, o comando de atribuição tem a seguinte sintaxe:
	< nome_da_variável > = <conteúdo> ;
	
Exemplos:
a = 12 ; peso = 65.2; sexo ='f'; idade1 = 21; idade2 = 34;
Observação 1: Em C, é possível declarar e inicializar uma variável: int a = 12; 
Observação 2: Em C, é possível inicializar várias variáveis: x =t =s = 0;
Na atribuição múltipla as operações ocorrem da direita para a esquerda, isto é, inicialmente o valor 0 é atribuído a s, depois o valor de s é atribuído a t e, por último, o valor de t é atribuído a x.
5. Entrada de dados
	scanf
O formato geral da função scanf() é:Biblioteca: stdio.h
	scanf( "expressão de controle ", <lista_de_argumentos > );
  	 A função scanf() permite que o usuário digite dados através do dispositivo padrão de entrada: teclado. 
	A expressão de controle contém os códigos de formatação para o tipo de dado que será lido.
	A lista de argumentos corresponde aos endereços das variáveis. O nome de cada variável deverá ser precedido pelo caracter &.
	 Código 
	Significado
	%d 
	Lê um número inteiro
	%f 
	Lê um número em ponto flutuante
	%e 
	Lê um número em ponto flutuante
	%g 
	Lê um número em ponto flutuante
	%c 
	Lê um caracter
	%s 
	Lê uma string
	%o
	Lê um número octal
	%x  ou %X 
	Lê um número hexadecimal
	%u 
	Lê um inteiro sem sinal
	%ld 
	Lê um longo inteiro
	%lf 
	Lê um double inteiro
	%p 
	Lê um ponteiro
Exemplos:
	scanf("%d", &num); /* lê para uma variável inteira*/ 
	 scanf("%d %d", &num1, &num2 ); /* lê para duas variáveis inteiras separadas por um espaço*/ 
scanf("%d,%d", &num1, &num2 ); /* lê para duas variáveis inteiras separadas por uma vírgula*/ 
	#include <stdio.h>
void main(void)
{ 
 int n;
 char resp;
 printf("\nnumero:" );scanf("%d",&n);
 printf("\ndecimal= %d octal= %o hexadecimal= %X hexadecimal= %x",n,n,n,n);
 fflush(stdin);
 scanf("%c",&resp);
}
	
6. Operadores Aritméticos
	
Existem cinco operadores aritméticos em C. Cada operador aritmético está relacionado a uma operação aritmética elementar: adição, subtração, multiplicação e divisão. Existe ainda um operador (%) chamado operador de módulo cujo significado é o resto da divisão inteira. 
	
	Operador
	Operação
	+
-
*
/
%
	adição
subtração
multiplicação
divisão
módulo (resto da divisão inteira)
	
	Sintaxe: 
	operando1 operador operando2
	onde operador é um dos símbolos mostrados acima e operando é uma constante ou um identificador de variável. 
	Exemplos:
	12 + 5 -> 17
	12 * 5 -> 60
	12 / 5 -> 2 quando se divide dois inteiros, o resultado é um inteiro
	12 % 5 -> 2 resto da divisão inteira	
		Não existe em C, como existe em outras linguagens, um operador específico para a operação de potenciação (ab). Existe, porém, uma função de biblioteca (pow()) que realiza esta operação. 
		
	#include <stdio.h>
void main(void)
{ int n;
 char resp;
 printf("\nnumero:" );scanf("%d",&n);
 printf("\n\nTUDO POR 5 \n\nsoma= %d subtracao= %d multiplicacao= %d divisao inteira= %d resto= %d",n+5,n-5,n*5,n/5,n%5);
 fflush(stdin); /* esvazia o buffer de entrada */
 scanf("%c",&resp);
}
	
	6.1	Hierarquia das operações
	
	Categoria
	Operadores
	Prioridade
	parênteses
	( ) 
	interno ( externo
	função
	nome() 
	E ( D
	incremental, lógico
	++ -- ! 
	E ( D
	aritmético
	* / %
	E ( D
	aritmético
	+ -
	E ( D
	relacional
	< > <= >=
	 E ( D
	relacional
	== !=
	E ( D
	lógico
	&&
	E ( D
	lógico
	||
	E ( D
	condicional
	?:
	E ( D
	atribuição
	= += -= *= /= %= 
	E ( D
6.2 	Operadores de Atribuição Aritmética
	Muitas vezes queremos alterar o valor de uma variável realizando alguma operação aritmética com ela.
A linguagem C apresenta instruções otimizadas com o uso de operadores ditos operadores de atribuição aritmética. Os símbolos usado são (+=, -=, *=, /= , %=). 
Sintaxes: 
	var += exp;
var -= exp; 
var *= exp; 
var /= exp; 
var %= exp;
	var = var + exp;
var = var - exp; 
var = var * exp; 
var = var / exp; 
var = var % exp;
onde var é o identificador da variável e exp é uma expressão válida. Estas instruções são equivalentes as seguintes:
Exemplos: 
	Atribuição Aritmética
	Instrução Equivalente
	cont += 1; 
j -= i ; 
num *= 1 + k;
divide /= 5; 
resto %= 2; 
	cont = cont + 1;
j = j – i ;
num = num * (1 + k);
divide = divide / 5;
resto = resto % 2;
O operador de atribuição aritmética tem precedência menor que os outros operadores até aqui discutidos.
6.3 	Operadores Incrementais
	Em programação existem instruções muito comuns chamadas de incremento e decremento. Uma instrução de incremento adiciona uma unidade ao conteúdo de uma variável. Uma instrução de decremento subtrai uma unidade do conteúdo de uma variável. 
Existem, em C, operadores específicos para realizar as operações de incremento (++) e decremento (--). Eles são genericamente chamados de operadores incrementais.
Sintaxe: 
	
	Instrução Equivalente
	++ var;
var ++ ; 
-- var ; 
var -- ; 
	var = var + 1;	
var = var + 1;
var = var – 1;
var = var – 1;
onde var é o nome da variável da qual se quer incrementar ou decrementar um unidade. 
Observe que existe duas sintaxes possíveis para os operadores: pode-se colocar o operador como prefixo ou como sufixo. Nos dois casos o valor da variável será incrementado (ou decrementado) de uma unidade. Porém se o operador for colocado como sufixo, o valor da variável será incrementado (ou decrementado) antes que a variável seja usada em alguma outra operação. Caso o operador seja colocado como sufixo, o valor da variável será incrementado (ou decrementado) depois que a variável for usada em alguma outra operação. 
	#include <stdio.h>
void main(void)
{ int n,n1,n2;
 char resp;
 printf("\033[2J");
 printf("\033[30;47m");
 printf("\nnumero:" );scanf("%d",&n);
 printf("\n\nprefixo++ n1= %d sufixo++ n2= %d",n1=++n, n2=n++);
 fflush(stdin);
 scanf("%c",&resp);
}
	
Observação: Não se preocupe com os avisos, pois o objetivo foi mostrar os incrementos pré e pós fixados. Como visto na tabela de hierarquia das operações, o operador ++ tem hierarquia da direita para esquerda. Desta forma, ele atribui 13 à variável n2 e depois incrementa n. Como a atribuição à variável n1 é com prefixo, ele incrementa n outra vez e depois atribui o valor 15 à variável n1.
	Os operadores incrementais tem a mais alta precedência entre todos, sendo superados apenas pelos parênteses que tem precedência ainda maior. 
6.4 	Operadores Relacionais e Lógicos
	
	As expressões lógicas usadas nas estruturas de teste são formadas pelos operadores relacionais e lógicos. 
6.4.1	Operadores relacionais
Operadores relacionais verificam a relação de magnitude e igualdade entre dois valores. São seis os operadores relacionais em C:
	Operador
	Significado
	>
<
>=
<=
==
!=
	maior que
 menor que
maior ou igual a 
menor ou igual a 
igual a
diferente de
Sintaxe: 
	expressão_1 operador expressão_2
onde expressão_1 e expressão_2 são duas expressões numéricas quaisquer, e operador é um dos operadores relacionais.
	Ao contrário de outras linguagens, em C não existem tipos lógicos, portanto o resultado de uma expressão lógica é um valor numérico: uma expressão avaliada verdadeira recebe o valor 1, uma expressão lógica avaliada falsa recebe o valor 0.
Os operadores relacionais de igualdade (== e !=) tem precedência menor que os de magnitude (>, <, >= e <=). Estes, por sua vez, tem precedência menor que os operadores aritméticos. 
6.4.2	Operadores lógicos
São três os operadores lógicos de C: &&, || e !. Estes operadores têm os mesmos significados dos operadores lógicos Booleanos AND, OR e NOT. 
Sintaxes: 
	expr_1 && expr_2
expr_1 || expr_2
!expr
onde expr_1 , expr_2 e expr são expressões quaisquer. 
Observe que os operadores lógicos atuam sobre expressões de quaisquer valores. Para estes operadores todo valor numérico diferente de 0 é considerado 1.
	Operador
	Matemática
	C
	conjunção
disjunção
negação
	e 
 ou 
nao
	&& 
|| 
!
TABELA VERDADE DO OPERADOR&&
Suponha duas perguntas feitas a quatro pessoas. Se a resposta do candidato for negativa, deverá falar 0, caso contrário, falará 1.
Suponha também que só será chamado para entrevista o candidato que dominar as duas linguagens.
	 Você conhece C?
	Você conhece PASCAL?
	SAÍDA
	0
	0
	0
	0
	1
	0
	1
	0
	0
	1
	1
	1
Neste exemplo, somente o quarto candidato seria chamado para a entrevista, pois o operador && (e), só considera a expressão como verdadeira se todas as expressões testadas forem verdadeiras.
 
TABELA VERDADE DO OPERADOR ||
Suponha duas perguntas feitas a quatro pessoas. Se a resposta do candidato for negativa, deverá falar 0, caso contrário, falará 1.
Suponha também que será chamado para entrevista o candidato que dominar pelo menos uma linguagem.
	 Você conhece C++?
	Você conhece JAVA?
	SAÍDA
	0
	0
	0
	0
	1
	1
	1
	0
	1
	1
	1
	1
Neste exemplo, somente o primeiro candidato não seria chamado para a entrevista , pois o operador || (ou), considera a expressão como verdadeira se, pelo menos uma expressão testada for verdadeira.
Observação:
O Operador && tem precedência sobre o operador ||. Estes dois têm precedência menor que os operadores relacionais. 
TABELA VERDADE DO OPERADOR !
Suponha uma pergunta feita a duas pessoas. Se a resposta do candidato for negativa, deverá falar 0, caso contrário, falará 1.
	Você Não conhece C++?
	SAÍDA
	1
	0
	0
	1
O operador ! tem a mesma precedência que os operadores incrementais. 
6.5 	Operador Condicional
	
	O operador ternário (?) é usado em expressões condicionais. Este operador necessita de três operandos. Seu uso poderá simplificar a instrução if expressão1; else expressão2;.
Sintaxe: 
	condição ? expressão_1 : expressão_2
	
Exemplo:
	...
	a=24;
	b=38;
	c= (a >b) ?a: b; /* o valor de c seria 38, pois b é maior do que a.
O operador condicional tem baixa precedência, precedendo apenas aos operadores de atribuição. 
			 
.
� PAGE �1�

Outros materiais