Ajude
o nosso blog.
O
nosso conteúdo sempre foi, é e sempre será livre e gratuito, isto
quer dizer que você pode compartilhá-lo, pode usá-lo e divulgá-lo.
Se esse conteúdo é, ou de alguma forma, foi relevante para você,
você pode nos incentivar a continuar este trabalho fazendo uma
doação de qualquer quantia na conta abaixo.
Banco:
Caixa Econômica Federal
Agência:
0051 – Caruaru-PE
Operação:
013 – Conta poupança
Conta:
00307298-3
Beneficiário:
José Roberto
TIPOS, VARIÁVEIS E CONSTANTES EM C
Para aprendermos qualquer linguagem, devemos aprender as suas
particularidades, com a linguagem de programação em C não é
diferente, nessa aula vamos falar de algumas dessas particularidades
da linguagem C, vamos conhecer algumas palavras reservadas do C,
vamos aprender o que são variáveis, constantes, tipos e
identificadores.
Palavras reservadas
Vamos começar falando das palavras reservadas do C, as palavras
reservadas não podem ser usadas fora dos seus propósitos, as
palavras reservadas do C são palavras com funções específicas
dentro de um programa em C, nós já fizemos uso de uma dessas
palavras na nossa primeira aula. Naquela aula nós usamos a palavra
reservada printf para imprimir algo na tela, essa palavra na
linguagem C é reservada exclusivamente para essa função não sendo
permitido o uso dela para qualquer outra função dentro do programa
que não seja imprimir algo na tela do seu monitor.
Existem muitas palavras reservadas na linguagem C, a seguir podemos
ver uma tabela com algumas dessas palavras, deixando claro que são
apenas algumas, no decorrer de nosso curso vamos usar e explicar a
função de algumas delas.
Tabela 1: Palavras reservadas do C
Tipos
Uma das unidades básicas de um computador é a memória, a memória
tem como finalidade básica armazenar dados que serão manipulados
pelo processador, programas têm a função básica de manipular
dados, os programas para serem executados devem primeiro ser
carregados na memória do computador para que o processador possa
então manipulá-los, esses programas na memória já vêm com dados
e eles próprios geram dados que devem ser armazenados na memória,
então quando o sistema operacional carrega um programa na memória
ele divide uma região da memória em partes e reserva essas partes
para serem usadas pelo programa, esses pequenos pedaços de memória
são chamados de posições de memória
que o sistema pode acessar para armazenar ou excluir dados, cada
um desses pedaços de memória tem um endereço que é um número
inteiro escrito no sistema binário que é a linguagem da máquina,
assim o sistema acessa cada um deles devido ao seu endereço, a
quantidade de dados que cada um desses endereços “pedaços” de
memória pode armazenar depende do seu tipo.
O C
tem cinco tipos básicos de
dados, são eles, int, float, char, void e double,
o void estudaremos quando
estudarmos funções em C, o
float é o tipo usado para armazenar valores
de ponto flutuante ou seja,
um número onde uma parte é
inteira e a outra fracionária, por exemplo o número 5,123458 é um
valor
de ponto flutuante, o double
pode ser visto como um float maior, ou
seja, um número com mais
precisão, aliás, podemos
usar os modificadores de tipos para alterar os tipos de dados (os
tamanhos dos dados que podem ser armazenados), podendo assim o
sistema reservar um “espaço”
maior de memória para armazenar esse tipo de dado. Os modificadores
em C são quatro, unsigned, signed, short e long.
Para
armazenar um char
por exemplo, o
sistema reserva um “pedaço” de memória que é capaz de
armazenar oito bits, um
caractere no código ASCII é
armazenado no espaço de memória reservado para o tipo char e é
codificado com um número decimal que está em um intervalo que vai
de -128 a 127, na realidade, tudo em um computador é codificado em
números
binários de base dois, por isso a unidade
básica de medida é o bit
(binary digit),
ou seja, 0 ou 1, ligado ou
desligado etc. O bit (com ‘b’ minúsculo) é a menor unidade
manipulável por uma máquina digital, tudo em um computador é
representado por sequências de “zeros” e “uns”, por meio de
código binário, por exemplo, se tivermos um bit, esse bit pode
assumir dois valores (0 e 1) e assim podemos representar dois valores
numéricos em binário e
ou decimal 0 e 1 conforme
a tabela abaixo.
Tabela
2: Representação de valores com um bit
Se pudermos usar dois bits para representar valores, iremos poder
representar quatro valores.
Tabela
3:
Representação de valores com dois
bits
E ainda, se pudéssemos usar 3 bits, quantos valores poderíamos
representar?
Tabela
4:
Representação de valores com três
bits
Seguindo
esse raciocínio, se dispusermos de “n” bits poderemos
representar 2n
valores,
para o caso de querermos representar caracteres (char) que são
codificados em números pela tabela ASCII e que ocupam oito bits na
memória, podemos representar 28
caracteres, ou seja, podemos representar 256 caracteres, por exemplo,
o número decimal “65” corresponde ao caractere “A” na tabela
ASCII e é codificado no computador pelo número binário de oito
bits “01000000”, como
na representação de valores
devemos considerar também os valores
negativos, podemos afirmar que com oito bits podemos representar os
256 caracteres da tabela ASCII estendida ou caracteres
codificados em um intervalo que vai de -128 a +127 incluindo o
“zero”, o mesmo raciocínio vale para representar o tipo “int”,
o tipo “int” ocupa dezesseis bits em um “pedaço” de memória,
com dezesseis bits podemos representar 216
= 65536 valores, mas como também temos que representar os valores
negativos desses números e só dispomos de dezesseis bits para isso,
dividimos 65536 por 2, assim 65536 / 2 = 32768 valores negativos e
32768
valores positivos incluindo também o zero, por
isso dizemos que o tipo “int” pode representar valores numa faixa
que vai de -32768 a +32767, abaixo deixo uma tabela com alguns tipos
do C e suas respectivas faixas de representação de valores.
Tabela
5:
Tipos em C
As faixas de valores que podemos representar com pontos flutuantes
parecem mais longas devido ao fato de que os números de ponto
flutuantes são representados um pouco diferente dos demais números
no sistema binário.
Uma observação importante a fazer a respeito do tamanho dos espaços
de memória reservados para os tipos de dados é que esses tamanhos
vão depender da arquitetura do seu computador, ou mais
especificamente, da arquitetura do seu processador, o compilador vai
escolher o tamanho desses espaços dependendo se o seu processador é
de 32 ou 64 bits, esses valores da tabela 5, são os valores
considerados mínimos.
Variáveis em C
Uma variável
é uma posição nomeada de memoria usada
para guardar dados, cujo
valor contido nela pode ser modificado durante a execução do
programa a que elas pertencem, uma
variável para ser usada tem que primeiro ser declarada, as variáveis
podem ser locais ou globais, uma variável local só pode ser
acessada dentro do bloco onde ela foi declarada, já a variável
global pode ser acessada em qualquer lugar do programa, voltaremos a
falar desse assunto no momento oportuno.
Constantes em C
Uma constante em C é também uma
posição nomeada de memória que também é usada para armazenar
dados, mas ao contrário das variáveis, uma constante não pode ter
o seu conteúdo modificado durante a execução do programa, ou seja,
o valor contido nela é constante (fixo), durante a execução do
programa, como uma variável,
uma constante precisa primeiro ser declarada antes de poder ser
usada.
Identificadores
Os nomes das variáveis, das
funções, das estruturas de registro e de vários outros objetos
criados pelo programador, são chamados de identificadores na
linguagem C, quando nomeamos um espaço de memória, seja ela uma
constante ou uma variável, ou
ainda, quando nomeamos uma função criada por nós, estamos
identificando estes itens fazendo uso de identificadores, as regras
para criar identificadores são simples, deve
começar com uma letra, não ser igual a uma palavra reservada do C,
deve-se levar em consideração que o C difere maiúsculas e
minúsculas portando Idade
e idade
são identificadores diferentes, uma boa dica para usar na criação
de identificadores é relacionar o identificador com o que se deseja
representar, por exemplo, se uma variável vai armazenar a primeira
nota da prova de um aluno, um identificador natural para essa
variável seria nota1,
pois não podemos começar o identificador por um número, por isso
seria errado usar 1ªnota.
Declaração de variáveis e constantes
Declarando variáveis
Declarar uma variável basicamente é nomear um espaço de memória
com um identificador, essa variável deve ser declarada antes do seu
uso, ela pode ser inicializada ou não, inicializar uma variável é
lhe atribuir um valor inicial, uma variável pode ser global ou local
(falaremos disso mais a frente em nosso curso), para declarar uma
variável fazemos segundo o exemplo abaixo.
Declarando uma variável.
Tipo_de_dado identificador;
Vamos declarar como exemplo a variável idade do tipo inteiro.
int idade;
Podemos declarar quantas variáveis forem necessárias em nossos
programas, se elas forem do mesmo tipo, podemos separá-las com
vírgula, se forem de tipos diferentes, declaramos cada tipo
individualmente e separamos as variáveis com vírgulas, conforme o
exemplo abaixo.
Declarando mais de uma variável, vamos declarar as variáveis que
descrevam por exemplo, algumas pessoas.
char pessoa1=’Z’,
pessoa2=’M’, pessoa3=’P’, sexo_pessoa1=’m’,
sexo_pessoa2=’f’, sexo_pessoa3=’m’;
int idade_pessoa1=15,
idade_pessoa2=40, idade_pessoa3=8;
float altura_pessoa1=1,52,
altura_pessoa2=1,69, altura_pessoa3=1,04;
Declaramos e inicializamos três tipos de variáveis para armazenar
três tipos e tamanhos de dados, no primeiro caso, criamos variáveis
do tipo char para armazenar os nomes das pessoas e seus
respectivos sexos, no segundo criamos variáveis do tipo int para
armazenar as idades das pessoas e por fim, criamos variáveis do tipo
float para armazenar as alturas das pessoas.
Declarando constantes
Existem duas maneiras de se declarar uma constante, o primeiro método
é colocar antes do tipo de dado a palavra reservada do C const,
o segundo método é definir um determinado identificador como sendo
uma constante com a diretiva #define, nesse curso usaremos o
segundo método, em seguida utilizaremos os dois métodos para
definir a mesma constante para que fique evidenciada a diferença
entre os dois métodos.
Vamos declarar a constante de Boltzmann pelos dois métodos.
O valor da constante de Boltzmann é KB = 1,380650 x
10-23 J/K, portanto é um float, para declarar essa
constante pelo primeiro método faremos.
const float boltzmann = 1,380650e-23;
pelo segundo…
#define BOLTZMANN 1,380650e-23 (o identificador em
maiúsculas)
Vamos agora construir um programinha para ilustrar o que aprendemos
hoje, primeiro vamos construir a estrutura básica de nosso programa,
como eu falei na aula anterior, é importante que você digite o
código, pois com a prática você ganha fluência no código.
#include <stdlib.h>
#include <sdtio.h>
int main()
{
return(0);
}
Vamos agora declarar as nossas variáveis,
lembrando que para declarar uma variável primeiro definimos o tipo
de dado que essa variável vai guardar e por fim identificamos ela,
se for mais de uma variável do mesmo tipo, definimos o tipo e
separamos as varáveis com vírgula e terminamos a declaração com
ponto e vírgula como no exemplo abaixo.
Tipo_de_dado Identificador;
Tipo_de_dado Identificador_1,Identificador_1, …
, Identificador_n;
usaremos as variáveis que declaramos acima,
dentro do nosso código ficará assim:
#include
<stdlib.h>
#include
<sdtio.h>
int
main()
{
char
pessoa1= 'Z’,
pessoa2=’M’,
pessoa3=’P’,
sexo_pessoa1=’m’,
sexo_pessoa2=’f’,
sexo_pessoa3=’m’;
int
idade_pessoa1=15,
idade_pessoa2=40,
idade_pessoa3=8;
float
altura_pessoa1=1.52,
altura_pessoa2=1.69,
altura_pessoa3=1.04;
return(0);
}
Podemos agora imprimir em nossa tela os nomes
das pessoas e suas características com a função printf. Dentro do
nosso código escrevamos.
#include
<stdlib.h>
#include
<sdtio.h>
int
main()
{
char
pessoa1= 'Z’,
pessoa2=’M’,
pessoa3=’P’,
sexo_pessoa1=’m’,
sexo_pessoa2=’f’,
sexo_pessoa3=’m’;
int
idade_pessoa1=15,
idade_pessoa2=40,
idade_pessoa3=8;
float
altura_pessoa1=1.52,
altura_pessoa2=1.69,
altura_pessoa3=1.04;
printf("A
pessoa 1 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa1,sexo_pessoa1,idade_pessoa1,altura_pessoa1);
printf("A
pessoa 2 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa2,sexo_pessoa2,idade_pessoa2,altura_pessoa2);
printf("A
pessoa 3 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa3,sexo_pessoa3,idade_pessoa3,altura_pessoa3);
return(0);
}
Quando compilarmos o nosso código receberemos
uma saída como a da imagem abaixo.
Os códigos usados dentro do printf serão explicados em breve, vamos
agora declarar uma constante usando os dois métodos descritos acima,
usaremos também a constante de Boltzman. Sempre digitando, vamos
escrever dentro do nosso código.
float cont Boltzmann = 1,380650e-23;
E em seguida a função printf para imprimir na tela, ficará assim
no nosso código.
#include
<stdlib.h>
#include
<sdtio.h>
int
main()
{
char
pessoa1= 'Z’,
pessoa2=’M’,
pessoa3=’P’,
sexo_pessoa1=’m’,
sexo_pessoa2=’f’,
sexo_pessoa3=’m’;
int
idade_pessoa1=15,
idade_pessoa2=40,
idade_pessoa3=8;
float
altura_pessoa1=1.52,
altura_pessoa2=1.69,
altura_pessoa3=1.04;
float
const Boltzmann
= 1.380650e-23;
//Dentro do
código usamos pontos para separar as casas decimais
printf("A
pessoa 1 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa1,sexo_pessoa1,idade_pessoa1,altura_pessoa1);
printf("A
pessoa 2 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa2,sexo_pessoa2,idade_pessoa2,altura_pessoa2);
printf("A
pessoa 3 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa3,sexo_pessoa3,idade_pessoa3,altura_pessoa3);
printf("A
constante de boltzmann = %g\n",Boltzmann);
return(0);
}
Quando executarmos no código obtemos
A outra maneira é definir a constante com a palavra reservada
define, fazemos isso com
letras maiúsculas no começo do código.
#include
<stdlib.h>
#include
<sdtio.h>
#define
BOLTZMANNN 1.380650e-23
int
main()
{
char
pessoa1= 'Z’,
pessoa2=’M’,
pessoa3=’P’,
sexo_pessoa1=’m’,
sexo_pessoa2=’f’,
sexo_pessoa3=’m’;
int
idade_pessoa1=15,
idade_pessoa2=40,
idade_pessoa3=8;
float
altura_pessoa1=1.52,
altura_pessoa2=1.69,
altura_pessoa3=1.04;
float
const Boltzmann
= 1.380650e-23;
//Dentro do
código usamos pontos para separar as casas decimais
printf("A
pessoa 1 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa1,sexo_pessoa1,idade_pessoa1,altura_pessoa1);
printf("A
pessoa 2 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa2,sexo_pessoa2,idade_pessoa2,altura_pessoa2);
printf("A
pessoa 3 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa3,sexo_pessoa3,idade_pessoa3,altura_pessoa3);
printf("A
constante de boltzmann = %g\n",Boltzmann);
printf("A
constante de boltzmann = %g\n",BOLTZMANN);
return(0);
}
Ao compilar e executar o código obtemos…
Como podemos ver,foram impressas as duas constantes definidas das
duas formas, nesse curso usaremos a forma #define, vamos agora
dentro do nosso código mudar os valores anteriormente atribuídos às
constantes e variáveis para ver o que acontece onde mudar colocarei
em negrito.
#include
<stdlib.h>
#include
<sdtio.h>
#define
BOLTZMANNN 1.380650e-23
int
main()
{
char
pessoa1= 'Z’,
pessoa2=’M’,
pessoa3=’P’,
sexo_pessoa1=’m’,
sexo_pessoa2=’f’,
sexo_pessoa3=’m’;
int
idade_pessoa1=18,
idade_pessoa2=52,
idade_pessoa3=8;
float
altura_pessoa1=1.52,
altura_pessoa2=1.69,
altura_pessoa3=1.04;
float
const Boltzmann
= 1.380650e-23;
//Dentro do
código usamos pontos para separar as casas decimais
BOLTZMANN
= 3.654;
Boltzmann
= 3,654;
printf("A
pessoa 1 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa1,sexo_pessoa1,idade_pessoa1,altura_pessoa1);
printf("A
pessoa 2 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa2,sexo_pessoa2,idade_pessoa2,altura_pessoa2);
printf("A
pessoa 3 se chama %c, é do sexo %c, tem %d anos de idade e %.2f
metros de
altura\n",pessoa3,sexo_pessoa3,idade_pessoa3,altura_pessoa3);
printf("A
constante de boltzmann = %g\n",Boltzmann);
printf("A
constante de boltzmann = %g\n",BOLTZMANN);
return(0);
}
Quando tentarmos compilar o nosso código receberemos como resposta
do compilador uma mensagem de erro conforme nos mostra a figura.
O compilador nos avisa do erro e não compila o nosso código até
que tenhamos consertado o erro, ou seja, deixamos as constantes do
jeito que definimos elas, quanto as variáveis podemos mudá-las
quantas vezes quisermos, vejam na figura a saída depois que
consertei as constantes e compilei o código outra vez.
Espero que tenham gostado da nossa segunda aula de programação em
C, se gostaram, inscrevam-se em nosso blog e no nosso canal do
youtube e também compartilhem os nossos conteúdos, até a nossa
próxima aula.
Caso queira ver um exemplo em vídeo, eu fiz uma vídeo aula que se encontra no nosso canal no link: https://www.youtube.com/watch?v=6O16VrspaC8&feature=youtu.be
Caso queira ver um exemplo em vídeo, eu fiz uma vídeo aula que se encontra no nosso canal no link: https://www.youtube.com/watch?v=6O16VrspaC8&feature=youtu.be