Programação Imperativa
CONSTANTES, VARIÁVEIS,
TIPOS DE DADOS E
OPERADORES
Introdução
A linguagem C é o meio de comunicação com o computador. Esta pode ser
amplamente definida como: Alfabetos, digitos ou simbolos especiais
combinados para formar constantes, variáveis ou palavras reservadas. As
quais são combinadas para formar instruções, regras e regulamentos, isto é,
combinação de sintaxes para formar instruções e a combinação de instruções
formam o programa.
Alfabetos, digitos,
Constantes,
simbulos especiais
Variáveis e Instruções Programa
(Conjunt de
palavras reservadas
caracteres)
CONJUNTO DE CARACTERES – CHARACTER SET
É um conjunto de caracteres que podem ser usadas para representar as
informações em linguagem C.
Este conjunto é composto por todo alfabeto, dígitos e simbolos especiais:
Alfabeto A – Z, a – z
Dígitos 0–9
Simbolos Especiais , . ; : ? ! @ % & * / \ | { } ( _ ) etc.
CONSTANTES
Constante é um valor que não altera durante a execução do programa.
Classificação
Constante
Inteiro Real ou flotuante Caractere String
Constantes do tipo Inteiro
Uma contante inteira é um número inteiro.
É uma sequência de dígitos. Combinação de digitos de 0 a 9.
REGRAS PARA CONSTRUÇÃO DE CONSTANTES INTEIRAS
1. Deve ter no mínimo um dígito;
2. Não pode ter vírgula decimal;
3. Pode ser Positive ou Negativo caso não tenha sinal assume valor positive;
4. Não pode conter vírgula ou espaço em branco;
5. Inteiro é usado para alocar 2bytes na memória. O valor da constant inteira
não pode exceeder os limites estabelecidos: -32768 a +32767
CONSTANTES DECIMAIS / PONTO FLOTUANTE
Este tipo de constant podem ser representados de duas formas: Factorial e
Exponencial.
As constants do ponto flotuantes são normalmente representadas por
quantidade de precisão dupla em C.
Consequentemente, as constants deste tipo ocupam 4 bytes da memória.
REGRAS PARA CONSTRUÇÃO DE CONSTANTES FLOTUANTE
1. Deve ter no mínimo um dígito;
2. Deve conter um ponto decimal, caso não se coloque ele assume
automaticamente;
3. Pode ser positive ou negativo;, por defeito é positive;
4. Espaços em brancos e vírgulas não são permitidos.
Exponecial
1. A mantiça e expoente devem ser separados por e;
2. A mantiça pode ser positive ou negative. O padrão é positive;
3. O expoente deve ter no mínimo um digito, positive ou negativo.
4. O Range desse tipo é -3.4e+38 a 3.4e+38
CONSTANTE CARACTERE
• A constante caractere é um simples caractere entre apóstrofos. Este
pode ser qualquer simbolo.
• O tamanho máximo deste é de 1 byte da memória.
• Exemplo: „A‟ „%‟ „=„
CONSTANTE STRING
• Constante String consiste em um número de caracteres consecutives/
sequência de caracteres colocadas entre ASPAS “ ”.
• Exemplo: “A” “Jose” “1988” “%@kad”
REGRAS CONSTANTE STRING
1. Deve ser sequencia de qualquer número de caracteres entre aspas;
2. Pode existir uma string vazia “ “;
3. O compilador sempre insere o valor NULL caractere(|0) no fim de
cada constant string que não são visíveis quando este é visualizado.
PALAVRAS RESERVADAS
As palavras reservadas, também conhecidas como palavras chave da
linguagem C, são comandos de uso muito específico dentro da
linguagem.
Estas palavras não podem ser usadas com outro propósito além do
original dentro de programas em C.
O padrão ANSI C definiu um conjunto de 32 palavras reservadas na
linguagem C
Lista de palavras reservadas da linguagem C
asm: Indica instruções em assembly.
auto: Define a classe de armazenamento padrão, ou seja , a variável é criada
quando a função é invocada e depois é destruída quando a função termina.
break: Comando para forçar a saída imediata dos comandos switch, for, while,
e , do…while.
case: Utilizado dentro do comando switch para selecionar uma constante.
char: Tipo de dados utilizado para armazenar caracteres.
const: Impede que uma variável seja modificada, criando assim uma constante.
continue: Força a interrupção dos loops for , while , ou do…while fazendo
com que passem para a próxima iteração.
default: É utilizado dentro de switch…case para tratar valores não definidos
anteriormente nas opções case.
do: Estutura de repetição usada em conjunto com o while . O comando
do…while faz com que os comandos do bloco a ser repetido sejam
executados no mínimo uma vez.
double: Tipo de dados numérico de ponto flutuante com precisão dupla.
else: Indica um bloco de comandos a ser executado quando a condição do
comando if for falsa.
enum: Tipo de dados definido pelo programador que permite a definição de
constantes
extern: Indica que uma variável foi declarada em outro arquivo.
float: Tipo de dados de ponto flutuante com precisão simples.
for: Estrutura de repetição que utiliza condições e contador.
goto: Comando que permite “saltar” incondicionalmente para uma posição do
programa pré-deteminada.
if: Comando condicional que altera o fluxo do programa de acordo com uma
condição que pode ser verdadeira ou falsa.
int: É o tipo de dados mais usado para armazenar valores inteiros.
long: É um tipo de dados usado para armazenar valores inteiros que possui
precisão superior ao tipo int..
register: Solicita o armazenamento diretamente nos registradores do
processador.
return: Retorna um valor dentro de uma função ou força o abandono da
mesma.
short: É o chamado inteiro curto. Armazena valores inteiros com precisão
menor (apenas 2 bytes) do que o tipo int.
signed: Sinaliza que uma variável pode armazenar tanto valores positivos como
negativos.
sizeof: Comando usado para retornar o tamanho em bytes de um determinado tipo
de dados.
static: Comando que avisa ao compilador para reter o valor de uma determinada
variável.
struct: Cria as chamadas estruturas ou seja registros.
switch: Comando de seleção usando em conjunto com o comando case, permite
escolher entre várias opções.
typedef: É um comando modificador usado para criar novos nomes para tipos de
dados.
union: Permite que um conjunto de variáveis partilhem o mesmo espaço na
memória.
unsigned: Faz com que a variável apenas aceite valores positivos ou zero.
void: Comando que indica que a função não retorna nada ou que não tem
parâmetros de entrada.
volatile: Indica que uma variável pode ser alterada.
while: Estrutura de repetição que executa enquanto uma condição é verdadeira.
TIPOS DE DADOS
é uma combinação de valores e de operações que uma variável pode
executar,
Tipo de dados é um conjunto finito de valores, juntamente com conjunto de
regras para diferentes operações. Dado é muito importante em termos de
programação. estrutura de dados é basicamente como os dados são
armazenados e as diferentes operações executadas em que os dados particular.
TIPOS DE DADOS
PRIMÁRIOS SECONDÁRIOS DEFINIDOS PELO VOID
1. Int 1. Arrays/Vectores UTILIZADOR
2. Float 2. Structure/Estruturas 1. Enum
3. char 3. Union / Uniões 2. typedef
4. Pointers / Ponteiros
TIPOS DE DADOS PRIMÁRIOS
Tipo de dados primários são, basicamente, o bloco de construção de estrutura
de dados.
Tipo de dado Formato Significado Tamanho (em bytes) Intervalo de valores aceitos
char %c Caractere 1 - de 128 a 127
unsigned char %c Caractere não assinado 1 0 à 255
short int %d Inteiro curto 2 -de 32 768 a 32 767
unsigned short int %u Inteiro curto não assinado 2 de 0 a 65 535
int %d Inteiro 2 (no processador de 16 bits) -de 32 768 a 32 767
4 (no processador de 32 bits) - de 2 147 483 648 a 2 147 483 647
unsigned int %u Inteiro não assinado 2 (no processador de 16 bits) de 0 a 65 535
4 (no processador de 32 bits) de 0 a 4 294 967 295
long int %ld Inteiro longo 4 -de 2 147 483 648 a 2 147 483 647
unsigned long int %lu Inteiro longo não assinado 4 de 0 a 4 294 967 295
-38 38
float %f Flutuante (real) 4 3.4*10 à 3.4*10
-308 308
duplo %lf Flutuante duplo 8 de 1.7*10 a 1.7*10
-4932 4932
longo duplo %Lf Flutuante duplo longo 10 3.4*10 à 3.4*10
TIPOS DE DADOS SECONDÁRIOS
São tipos de dados derivados de um ou mais tipos de dados básicos e em C
existe 4 tipos: Arrays, Union, Structure e Pointers
ARRAY
É basicamenteuma colecção do mesmo tipo de dados. Array é um grupo de
elementos do mesmo tipo que são dados o mesmo nome.
A sua declaração é: tipo_de_dado identificador[tamanho];
STRUCRURE
É o tipo de dados que possibilita o agrupamento de registos de tipos de
dados diferentes.
struct identificador
{
Tipo_de_dado 1 identificador1;
Tipo_de_dado 2 identificador2;
….
Tipo_de_dado n identificadorn;
};
UNION
É um tipo de dado derivado, quase similar a estructura. É declarado da
mesma forma que a estrutura.
PONTEIRO
Ponteiro é outro tipo de dado derivado, usado para armazenar os endereços
de memória de variáveis do mesmo tipo.
Declaração: tipo_de_dados * identificador;
TIPOS DE DADOS DEFINIDOS PELO UTILIZADOR
Existem dois tipos: typedef e enum
TYPEDEF
Ela nos fornece uma maneira simples e significante para chamar um tipo de
dados que já declarada.
Typedef struct abc x;
x st1;
TIPO DE DADOS ENUMERADO
tipo de dados enumerado é usado para criar o nosso próprio tipo de dados e
dar-lhe os valores que tipo de dados que passará a tomar
enum minor
{
SISTEMA, ENSINO, REDES, MULTIMEDIA
};
enum minor m1,m2;
TIPO DE DADO NULO / VOID
também conhecida como tipo de dados vazia, é útil em muitas situações
importantes. Ele é usado para especificar o tipo de retorno de uma série de
funções em que a função não é suposto para retornar um valor. lista de
argumentos vazia de uma função e para declarar ponteiro genérico.
void add(int a, int b) void add( void )
{ {
…… ……
…… ……
….. …..
} }
Void * ptr;
VARIÁVEIS
• Variável é a representação simbólica dos elementos de certo conjunto.
• Cada variável corresponde a uma posição de memória, cujo conteúdo
pode ser alterado ao longo do tempo durante a execução de um
programa.
• Embora uma variável possa assumir diferentes valores, ela só pode
armazenar um valor a cada instante.
REGRAS PARA DECLARAR UMA VARIÁVEL
• Todo nome só pode conter letras e dígitos;
• O caractere "_" é contado como uma letra;
• Todo primeiro caractere deve ser sempre uma letra;
• Letras maiúsculas e minúsculas são consideradas caracteres diferentes;
• Todas as variáveis em C devem ser declaradas, antes de serem usadas;
• Uma declaração de variável em C consiste no nome de um tipo,
seguido do nome da variável, seguido de ponto-e-vírgula.
Exemplo: int x;
• O nome de uma variável pode ser de uma letra até palavras com no
máximo 32 caracteres;
Ex: a; num; essa_e_uma_variavel; tambem_essa;
• Palavras reservadas não podem ser usadas como nome de variáveis.
OPERADORES
Um operador é um simbulo or letra usado para indicar e especificar uma
operação em variáveis num programa. Os operadores operam em itens de
dados chamados OPERANDOS.
Alguns operadores requerem dois operandos e alguns em um so operando.
CATEGORIAS DE OPERADORES
• Operador virgula
• Operadores de Atribuição
• Operador sizeof()
• Operadores aritméticos
• Conversão de tipos
• Operadores Relacionais e Lógicos
• Regras de Precedência
• Operadores com Bits
• Operadores de Atribuição Composta
OPERADORES DE ATRIBUIÇÃO
• Este é o operador usado para transferir o resultado de uma expressão
para uma variável.
• Em C este operador é o sinal (=)
• Exemplos :
• Soma = a+b;
• Pi = 3.1416;
• a=b=c=1.0
OPERADORES ARITMÉTICOS:
• Os 5 primeiros são do tipo binário
• Incidem sobre duas variáveis (ex. A + B, A – B, etc.)
• Os 2 últimos são unários
• Incidem apenas sobre uma variável (ex. A++, B--, etc.)
• Nota: O operador “ % “ é apenas sobre inteiros
HIERARQUIA DE OPERADORES
OPERADORES ARITMÉTICOS E ATRIBUIÇÕES:
OPERADORES RELACIONAIS
• Operadores Relacionais:
• Refere-se às relações que os valores podem ter uns com os outros
(geralmente, retorna um valor V ou F)
• Operadores relacionais são muito usados quando temos que tomar decisões
nos algoritmos.
• Com eles fazemos testes, comparações, que resultam em valores lógicos
(verdadeiro ou falso):
• Exemplo: Tendo duas variáveis, A = 5 e B = 3:
OPERADORES LÓGICOS:
• Operadores Lógicos:
• Refere-se às maneiras como essas relações podem ser conectadas
(combinam resultados lógicos)
• Operadores Lógicos: Criar operações lógicas (V ou F)
• “AND”, é igual a operação de “multiplicação”
• 1 X 1 =1; 1 X 0 = 0; etc.
• “ OR”, é igual a operação de “soma”
• 1 + 1 =“1”; 1 + 0 = 1; 0 + 0 = 0; etc.
• “NOT”, é o inverso
• -1 = 0; 0 = 1
OPERADORES BITWISE / BIT A BIT
• Refere-se a testar, atribuir ou deslocar os bits efetivos de um byte ou uma
palavra
Exemplo do deslocamento de bit “>>” ou “<<“
OPERADOR DE ENDEREÇO
O operador de endereço (&) quando colocado antes da variável, retorna o
endereço da localização da memória onde a variável é armazenada.
Geralmente é usada com a função scanf() e na inicialização do ponteiro.
Exemplo: int x, *y; y = &x; printf(“%d”, *y);
VALOR NO OPERADOR DE ENDEREÇO (*)
Este também pode ser chamado como operador de indireção. o item de
dados representado por x também pode ser acessadido pelo *y, onde * é
operador unário que opera apenas com ponteiros
OPERADOR SIZEOF (sizeof())
Retorna o tamanho do seu operando em bytes. Este operandor também
procede o seu operand. A sua sintaxe é: sizeof(exp)
OPERADOR CONDICIONAL OU TERNÁRIA (? :)
Este operador (? : ) é a forma condeçada da expressão if then else do C.
exp1 ? exp2:exp3
int a= 6, b =8, big;
big = (a > b) ? a : b;
• Os operadores de nível mais elevado são
avaliados antes dos operadores de nível mais
baixo. Veja a ordem completa na tabela
abaixo:
• Operadores Associatividade
& esquerda para a direita
• () [] -> . esquerda para a direita ^ esquerda para a direita
• ! - ++ -- * & direita para a esquerda | esquerda para a direita
• */% esquerda para a direita && esquerda para a direita
• +- esquerda para a direita || esquerda para a direita
• << >> esquerda para a direita ?: direita para a esquerda
• < <= > >= esquerda para a direita += -= *= /= %= direita para a esquerda
• == != esquerda para a direita ^= |= <<= >>= esquerda para a direita