Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem da Programação I 3º Aula Tipos de dados Objetivos de aprendizagem Ao término desta aula, vocês serão capazes de: • compreender o conceito de variáveis; • criar suas próprias variáveis mutáveis e não mutáveis. Prezados(as) alunos(as): Como podemos observar na primeira aula, a linguagem de programação muitas vezes necessita guardar valores, na programação de alto nível não manipulamos dados diretamente na memória. Pois, os compiladores existentes hoje realizam esta função para nós. Quando há a necessidade de guardar algo o compilador nos possibilita esse armazenamento através de variáveis. Portanto, nesta aula trataremos dos tipos de variáveis e como utilizá-las. Boa aula! Bons estudos! 19 Seções de estudo 1 - Variáveis 1 - Variáveis 2 - Constantes 1.1 - O que é uma variável? Os programas precisam de uma maneira para armazenar os dados. As variáveis e constantes oferecem uma variedade de formas para se trabalhar com números e outros valores. Do ponto de vista de um programador, uma variável é um local na memória do computador no qual você pode armazenar um valor, e a partir do qual você posteriormente pode recuperá-lo. Para entender esse conceito, necessitamos de uma noção básica da maneira de como a memória do computador funciona. A memória do computador pode ser entendida como uma série de cubículos, todos eles alocados lado a lado em uma longa fileira. Cada cubículo - ou localização da memória - é numerado sequencialmente. Esses números são chamados de endereços de memória. As variáveis têm, além de endereços, nomes. Por exemplo, você pode criar uma variável chamada “minhaIdade”. Sua variável é um rótulo aplicado a um desses cubículos, cuja finalidade é permitir que sejam localizados facilmente, sem saber o seu real endereço de memória. Reservando memória Quando definimos uma variável em C++, devemos informar ao compilador não apenas o seu nome, mas também o tipo de informação que ela contém: inteiro, caractere, entre outros. Nós chamamos isso de tipo da variável. O tipo da variável informa ao compilador o espaço que a memória dispõe para armazenar o valor da variável. Cada cubículo tem 1 byte. Se o tipo de variável que você quer criar tiver 2 bytes, ela precisará de 2 bytes de memória, ou dois cubículos. O tipo da variável (por exemplo, INT) informa ao compilador o espaço em memória (quantos cubículos) reservado para a variável (MACIEL, 2017). Como os computadores utilizam bits e bytes para representar valores, e como a memória é medida em bytes, é importante que você entenda e se sinta familiarizado com esses conceitos. 1.2 - Tipos básicos Para criar variáveis em um programa C deve-se indicar para o compilador qual o tipo desta variável. Uma variável pode ter um tipo básico, intrínseco à linguagem C ou tipo estruturado, montado pelo programador. Nesta seção, serão vistos os tipos básicos já existentes na linguagem e como usá-los. A linguagem C define os seguintes tipos básicos de variáveis: o int – Variável tipo inteira. Deve ser utilizada para se armazenar valor inteiro, com ou sem sinal. o char – Variável do tipo caracteres. Servirá para se armazenar um único caractere. o float – Para valores com casas decimais (reais) deve-se utilizar este tipo. Ele pode armazenar números reais com até 6 dígitos significativos. o double – É o mesmo que o anterior, só que pode armazenar mais dígitos, dando uma precisão maior nos cálculos com casas decimais. O tipo void deve ser utilizado não para variáveis, mas sim para indicar que uma função não tem nenhum valor retornado ou não possui nenhum parâmetro de entrada. 1.3 - Tamanho dos inteiros Uma variável char (usada para armazenar caracteres) costuma ter 1 byte. Um short int tem 2 bytes na maioria dos computadores, um long int geralmente tem 4 bytes e um int (sem a palavra short ou long) pode ser de 2 ou 4 bytes. Se você estiver executando qualquer versão acima do Windows 95, pode levar em consideração que sua int tem 4 bytes desde que esteja usando um compilador moderno (CARVALHO, 2008). Signed e unsigned Além disso, a maioria desses tipos vem em duas variedades: signed e unsigned. A ideia aqui é que algumas vezes você precisa de números negativos e algumas vezes não. Os inteiros (short e long) sem a palavra unsigned são tidos como signed. Os inteiros signed são negativos ou positivos. Os inteiros unsigned são sempre positivos (MACIEL, 2017). DICA: Use int em variáveis numéricas. Na maioria dos programas, na maioria das vezes, basta que você afirme que as variáveis numéricas são int - que são inteiros signed. Tipos de variáveis fundamentais Diversos outros tipos de variáveis são construídos na linguagem C/C++. Eles podem ser divididos em variáveis de inteiro (o tipo discutido até agora), variáveis de ponto flutuante e variáveis de caractere. Variáveis de ponto flutuante e de caractere - As variáveis de ponto flutuante têm valores que podem ser expressos como frações, ou seja, que são números reais. As variáveis de caractere armazenam um byte e são usadas para armazenar 256 caracteres e símbolos dos conjuntos de caracteres ASCII e ASCII estendidos. O conjunto de caracteres ASCII - O conjunto de caracteres padrão usado em computadores. ASCII é o acrônimo de American Standard Code for Information Interchange. Quase todos os sistemas operacionais suportam ASCII, embora muitos também sejam compatíveis com outros conjuntos de caracteres como, por exemplo, o EBCDIC. Os tipos de variáveis usadas em programas C++, são descritos na Tabela abaixo, Essa tabela mostra o tipo de variável, o espaço que ele ocupa na memória e os tipos de valores que podem ser armazenados nessas variáveis. Os valores que podem ser armazenados são determinados pelo tamanho dos tipos de variáveis, e consequentemente pelo tipo de computador que está sendo utilizada a aplicação. Lembrando que estes são alguns dos tipos padrões do C++ ANSI. 20Linguagem da Programação I Tipo Tamanho Valores unsigned short int 2 bytes 0 a 65.535 short int 2 bytes - 32.768 a 32.767 unsigned short int 4 bytes 0 a 4.294.967.295 long int 4 bytes -2.147.483.648 a 2.147.483.647 char 1 byte 256 valores de caractere bool 1 byte Verdadeiro ou falso fl oat 4 bytes 1,2e-38 a 3,4e38 double 8 bytes 2,2e-308 a 1,8e308 A intenção é que short e long devam prover tamanhos diferentes de inteiros onde isso for possível; int normalmente será o tamanho natural para uma determinada máquina. Short ocupa normalmente 16 bits, long 32 bits, e int, 16 ou 32 bits (de acordo com a máquina). Cada compilador é livre para escolher tamanhos adequados para o seu próprio hardware, com a única restrição de que short e int devem ocupar pelo menos 16 bits, long pelo menos 32 bits, e short não pode ser maior que int, que não é maior do que long (CARVALHO, 2008). Existem também os qualificadores signed e unsigned, que podem ser aplicados a char ou a qualquer inteiro. Números unsigned são sempre positivos ou 0. DICA: Utilize apenas int. Se você estiver criando um int, não se preocupe com short versus long; use apenas int. Com um compilador moderno, isso criará um long int que será satisfatório em 99% das situações. 1.4 - Definindo uma variável Você cria, ou define, uma variável instruindo o seu tipo, seguido por um ou mais espaços, pelo nome da variável e um ponto-e-vírgula. O nome da variável pode ser virtualmente qualquer combinação de letras, mas não pode conter espaços. Bons nomes de variáveis mostram a você a finalidade delas; o uso de bons nomes facilita a compreensão do fluxo do seu programa. Distinção entre maiúsculas e minúsculas O C/C++ faz distinção entre letras maiúsculas e minúsculas. Em outras palavras, letras minúsculas e maiúsculas são consideradas diferentes. Uma variável cujo nome é idade é diferente de Idade que é diferente de IDADE. Programadores normalmente não escolhem os nomes de variáveis, funções e constantes ao mero acaso. Normalmente elegem nomes que signifiqueme indiquem o motivo da existência daquela variável ou função dentro do programa. O problema é que determinada palavra ou sigla pode significar muito para uma determinada pessoa e nada para outra. Por este motivo é muito interessante que exista uma convenção quanto a nomenclatura para esses identificadores (CARVALHO, 2008). 1.5 - Palavras chave Algumas palavras são reservadas pela linguagem C/C++ e você não pode usá-las como nomes de variável. Essas são as palavras-chave usadas pelo compilador para controlar o seu programa. As palavras chaves incluem if, while, for e main. A lista abaixo relaciona as palavras reservadas da linguagem C++: asm auto bool break case catch char class const const_cast Continue default delete do double Dynamic_cast else enum explicit export extern false fl oat for friend goto if inline int long mutable namespace new operator private protected public register reinter- pret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void Volatile wchar_t while 1.6 - Definição de Variáveis As variáveis devem ser declaradas, ou seja, devem ser definidos nome, tipo e algumas vezes seu valor inicial. As variáveis são classificadas em variáveis locais e globais. Variáveis globais são aquelas declaradas fora do escopo das funções. Variáveis locais são aquelas declaradas no início de um bloco e seus escopos estão restritos aos blocos em que foram declaradas. A declaração de variáveis locais deve obrigatoriamente ser a primeira parte de um bloco, ou seja, deve vir logo após um caractere de “abre chaves”, ‘{‘; e não deve ser intercalada com instruções ou comandos (TREVELIN, 2007). Para declarar uma variável somente é obrigatório declarar seu tipo e nome: <tipo> <nome>; Por exemplo: int exemplo; Além disso, caso seja necessário, podemos declarar um valor a esta variável no momento de sua declaração, e também adicionar um prefixo a ela, da seguinte forma: <prefixo> <tipo> <nome> = <valor>; Por exemplo: unsigned int exemplo = 12; Na declaração da variável é criado um tipo inteiro exemplo que não aceita números negativos pela declaração do prefixo unsigned que recebe inicialmente o valor 12. 1.7 - Atribuição de Valores Às vezes, ao se definir uma variável, é desejável que a mesma já tenha um valor predefinido. A linguagem C permite que quando se defina uma variável se indique também o valor inicial da mesma. Deve-se colocar após a definição da variável o caractere “=” seguido de um valor compatível com o tipo da variável (JAMSA, 2009). 21 Exemplos: float fValorSalário = 15000; /* Sonhar não paga imposto */ char cSexo = ‘M’; int i,k,j; 2 - Constantes O conceito de constantes em linguagens de programação é atribuir um certo valor constante a um nome, e quando este nome for referenciado dentro do código do programa, será utilizado nas operações o valor atribuído a este nome. Ou seja, se for definida a constante PI com o valor “3,1415926536”, quando for encontrado no código o nome PI, será utilizado em seu lugar o valor “3,1415926536” (JAMSA, 2009). Em C++, utilizamos o prefixo const associado a um tipo, um nome e um valor para definir uma constante. Assim: const <tipo> <nome> = <valor>; Por exemplo: const int eterna = 256; No exemplo acima, definimos uma constante inteira de nome “eterna” que possui o valor numérico 256. É importante notar que devemos declarar a constante e lhe atribuir um valor na mesma linha de comando. Não podemos criar uma constante e lhe atribuir um valor posteriormente, ou seja, as seguintes linhas de comando são inválidas: const int eterna; eterna = 256; A partir da primeira linha, “eterna” passa a ser uma constante e seu valor não pode ser mais mudado durante a execução do programa. Como seu valor não foi declarado, esta constante pode ter qualquer valor que esteja na memória do computador naquele momento da declaração da variável. Uma outra maneira de criar uma constante é através da declaração do #define, O comando #define é utilizado para fazer substituições ao longo do ficheiro em que está localizado. Ou seja, #define faz com que o compilador percorra o ficheiro, substituindo cada ocorrência de nome-da-macro por cadeia- correspondente. A cadeia colocada termina no final da linha. Em C++, utilizamos o #define um nome e um valor. Assim: #define nome-da-macro cadeia-correspondente Abaixo temos um exemplo onde definimos uma constante de nome TRUE que terá o valor 1 e uma constante FALSE que recebe o valor 0. #define TRUE 1 #define FALSE 0 O define é um diretiva de preprocessador de código. É apenas um texto sendo substituído por outro sem nenhum tipo de verificação. Pode dar todo tipo de bobagem. É um truque realizado antes da compilação que nem sempre traz os resultados esperados por um programador mais ingênuo ou descuidado. Ela vive desde sua inclusão até o fim do arquivo que estiver sendo compilado. Em geral deve ser evitado sempre que possível. Mas há casos úteis (JAMSA, 2009). A declaração com prefixo const é uma declaração de identificador presente no código com escopo e tempo de vida no código. É verificado pelo compilador e tem um tipo. Pode ser usado em todas as circunstâncias onde seria usado uma variável (de fato não é totalmente uma constante). Otimizações do compilador pode fazer o acesso ao valor de forma direta e evitar consumo de tempo e espaço. Obviamente isso só ocorre quando for viável. 2.1 - Cartão de Referência da Linguagem ANSI C Cartões de Referência são clássicos entre programadores de praticamente todas as linguagens. Nestes cartões, apesar de seu tamanho reduzido (uma folha impressa nos dois lados e dobrada em forma de folder), normalmente é possível consultar todos os tipos de dados da linguagem, formas e exemplos de declaração, tipos de estruturas de decisão e repetição, as sintaxes para cada uma destas definições etc. São cartões de referência completos e muito úteis no dia-a-dia (CARVALHO, 2008). Um cartão de referência da ANSI C muito bom, criado por Joseph Silverman, da Brown University e liberado para cópias gratuitas pode ser encontrado para download. Disponível em: <http://fit.faccat.br/~fpereira/C_reference_Card_ANSI. pdf>. Acesso em: 23 de nov. 2017. Observação: Não esqueça que este cartão pode (deve) ser impresso frente-e-verso para ficar prático! Retomando a aula Parece que estamos indo bem. Então, para encerrar essa aula, vamos recordar: Em nossa terceira aula, podemos estudar que toda linguagem de programação necessita armazenar dados em memória, pois sem esse recurso era impossível o computador efetuar cálculos e também não teríamos sistemas de lojas ou sites na internet. Esse armazenamento somente é possível através de variáveis. Portanto, vimos que na linguagem C quanto na C++ existe tipos definidos para cada tipo de dados. Também foi apresentado um tipo de variável (constante) que seu valor é definido pelo programador e esse valor nunca será alterado. Stephen R Davis; Começando A Programar Em C++ Para Leigos; Alta Books; Edição: 1; 2012. MIZRAHI, Viviane Victorine Mizrahi; Treinamento em Linguagem C++ - Modulo 2; Pearson; Edição: 2; 2005. Vale a pena Vale a pena ler 22Linguagem da Programação I Variáveis C++. Disponível em: <http:// www. l inhadecodig o.com.br/ar t ig o/346/ser ie - %E2%80%9Ciniciando-em-c%E2%80%9D-variaveis. aspx>. Acesso em: 24 de nov. 2017. Vale a pena acessar C++ - Utilizando as Variáveis #6. Disponível em: <https://www.youtube.com/watch?v=wY7RsP7_Gr0>. Acesso em: 24 de nov. 2017. Vale a pena assistir Minhas anotações
Compartilhar