Elementos de programação em C

Documentos relacionados
Elementos de programação em C

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Linguagem C: Introdução

Estrutura de Programas e Tipos de Dados Simples

Aula 3 Constantes e funções de E/S

Disciplina de Algoritmos e Programação

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

Programação científica C++

Objectivos. Observar os tipos fornecidos pelo C++ Explicar as regras sintácticas para nomes de identificadores Estudar variáveis e constantes

Faculdade de Computação

4. Estruturas Fundamentais de Programação em C

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha

Introdução à Programação

Programação: Vetores

Algoritmos e Programação

Linguagem C. André Tavares da Silva.

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Elementos de programação em C

A Linguagem C. A forma de um programa em C

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

3. Linguagem de Programação C

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação Estruturada

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Introdução à Computação MAC0110

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Introdução à Linguagem C Variáveis e Expressões

CCO 016 / COM 110 Fundamentos de Programação

Introdução à Programação

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C

Linguagem de Programação C. Expressões em C

Elementos Básicos. C# - Elementos básicos. Primeiro programa Tipos de dados Variáveis Constantes Expressões e operadores Controlo de fluxo Tabelas

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010

Métodos Computacionais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Programação Estruturada

Conhecendo a Linguagem de Programação C

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

CCO 016 / COM 110 Fundamentos de Programação

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Princípios de Desenvolvimento de Algoritmos MAC122

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

1/50. Conceitos Básicos. Programa Básico

3.1 - Funções para manipular dados de entrada e saída padrão

Elementos de programação em C Respostas dos exercícios selecionados

Introdução a Programação de Jogos

Linguagem de Programação C

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Variáveis, Tipos de Dados e Operadores

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Linguagem de Programação C

Métodos Computacionais. Tipos Estruturados

Operadores e separadores Identificadores Palavras chave Constantes

Introdução à Linguagem C

Linguagens de Programação I

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Linguagem C Princípios Básicos (parte 1)

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

ponteiros INF Programação I Prof. Roberto Azevedo

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Transcrição:

Elementos de programação em C Literais e constantes Francisco A. C. Pinheiro, Elementos de Programação em C, Bookman, 2012. Visite os sítios do livro para obter material adicional: www.bookman.com.br e www.facp.pro.br/livroc ( ) Elementos de programação em C 1 / 35

Sumário 1 Literais inteiros 2 Literais reais 3 Literais caracteres 4 Literais cadeia de caracteres 5 Literais compostos 6 Enumerações 7 Variáveis constantes 8 ( ) Elementos de programação em C 2 / 35

Literais inteiros Literais inteiros Os literais inteiros exprimem números inteiros como 1, 234 e 666. Sem prefixo valor decimal. Prefixo 0 valor octal. Prefixo 0x ou 0X valor hexadecimal. ( ) Elementos de programação em C 3 / 35

Literais inteiros Literais inteiros Os literais inteiros exprimem números inteiros como 1, 234 e 666. Sem prefixo valor decimal. Prefixo 0 valor octal. Prefixo 0x ou 0X valor hexadecimal. Literal inteiro Valor decimal -12 12 354 354-012 10 = (1 8 1 + 2 8 0 ) 0354 236 = 3 8 2 + 5 8 1 + 4 8 0-0x12 18 = (1 16 1 + 2 16 0 ) ( ) Elementos de programação em C 3 / 35

Literais inteiros Tipo dos literais inteiros Sufixos u ou U Literal do tipo unsigned int. l ou L Literal do tipo long int. ll ou LL Literal do tipo long long int. ( ) Elementos de programação em C 4 / 35

Literais inteiros Tipo dos literais inteiros Sufixos u ou U Literal do tipo unsigned int. l ou L Literal do tipo long int. ll ou LL Literal do tipo long long int. 12u Tipo unsigned int; representa o valor 12. 3Ul Tipo unsigned long int; representa o valor 3. 0x45LL Tipo long long int; representa o valor 69. 071ull Tipo unsigned long long int; representa o valor 57. ( ) Elementos de programação em C 4 / 35

Literais inteiros Tipo dos literais inteiros O uso do sufixo apenas orienta a determinação do tipo Sufixo Valor decimal Valor octal ou hexadecimal int long int long long int int unsigned int long int unsigned long int long long int unsigned long long int l ou L long int long int long long int unsigned long int long long int unsigned long long int ll ou LL long long int long long int unsigned long long int ( ) Elementos de programação em C 5 / 35

Literais inteiros Tipo dos literais inteiros Considerando a representação de negativos em complemento-2, os tamanhos de 32 bits para os tipos int e long int e de 64 bits para o tipo long long int, determine o tipo dos seguintes literais: Literal inteiro 67 2147483648 2147483648uL 040000000000 0x8000000000000000 Tipo ( ) Elementos de programação em C 6 / 35

Literais inteiros Tipo dos literais inteiros Considerando a representação de negativos em complemento-2, os tamanhos de 32 bits para os tipos int e long int e de 64 bits para o tipo long long int, determine o tipo dos seguintes literais: Literal inteiro Tipo 67 int 2147483648 2147483648uL 040000000000 0x8000000000000000 ( ) Elementos de programação em C 6 / 35

Literais inteiros Tipo dos literais inteiros Considerando a representação de negativos em complemento-2, os tamanhos de 32 bits para os tipos int e long int e de 64 bits para o tipo long long int, determine o tipo dos seguintes literais: Literal inteiro Tipo 67 int 2147483648 long long int 2147483648uL 040000000000 0x8000000000000000 ( ) Elementos de programação em C 6 / 35

Literais inteiros Tipo dos literais inteiros Considerando a representação de negativos em complemento-2, os tamanhos de 32 bits para os tipos int e long int e de 64 bits para o tipo long long int, determine o tipo dos seguintes literais: Literal inteiro Tipo 67 int 2147483648 long long int 2147483648uL unsigned long int 040000000000 0x8000000000000000 ( ) Elementos de programação em C 6 / 35

Literais inteiros Tipo dos literais inteiros Considerando a representação de negativos em complemento-2, os tamanhos de 32 bits para os tipos int e long int e de 64 bits para o tipo long long int, determine o tipo dos seguintes literais: Literal inteiro Tipo 67 int 2147483648 long long int 2147483648uL unsigned long int 040000000000 long long int 0x8000000000000000 ( ) Elementos de programação em C 6 / 35

Literais inteiros Tipo dos literais inteiros Considerando a representação de negativos em complemento-2, os tamanhos de 32 bits para os tipos int e long int e de 64 bits para o tipo long long int, determine o tipo dos seguintes literais: Literal inteiro Tipo 67 int 2147483648 long long int 2147483648uL unsigned long int 040000000000 long long int 0x8000000000000000 unsigned long long int ( ) Elementos de programação em C 6 / 35

Literais reais Literais reais Os literais reais são identificados Pelo uso do ponto decimal: 23., 0.34, 12.6 Pela notação científica: 2.3E1, 34e-2,.126E2 ( ) Elementos de programação em C 7 / 35

Literais reais Notação científica decimal Notação científica decimal Exprime o número como uma potência de 10, com o termo E ou e introduzindo o expoente: O valor decimal é dado por Significando E Expoente Significando 10 Expoente ( ) Elementos de programação em C 8 / 35

Literais reais Notação científica decimal Notação científica decimal Exprime o número como uma potência de 10, com o termo E ou e introduzindo o expoente: O valor decimal é dado por Significando E Expoente Significando 10 Expoente 2.3E1 = 2, 3 10 1 = 23, 0 34e-2 = 34 10 2 = 0, 34.126E2 = 0, 126 10 2 = 12, 6 ( ) Elementos de programação em C 8 / 35

Literais reais Notação científica hexadecimal Notação científica hexadecimal Exprime o número como uma potência de 2, na base hexadecimal, com o termo P ou p introduzindo o expoente: O valor decimal é dado por Prefixo-hex Significando-hex P Expoente (Valor decimal do significando) 2 Expoente ( ) Elementos de programação em C 9 / 35

Literais reais Notação científica hexadecimal Notação científica hexadecimal Literais reais hexadecimais Valor representado 0x1Ap2 104, 0 = (1 16 1 + 10 16 0 ) 2 2 0Xd0P-1 104, 0 = (13 16 1 + 0 16 0 ) 2 1 0x5.2p-2 1, 28125 = (5 16 1 + 2 16 1 ) 2 2 0X0.29P3 1, 28125 = (0 16 0 + 2 16 1 + 9 16 2 ) 2 3 ( ) Elementos de programação em C 10 / 35

Literais reais Tipo dos literais reais Tipo dos literais reais Todo literal real é do tipo double, exceto se possuir o sufixo F ou f, indicando o tipo float L ou l, indicando o tipo long double. Literal Tipo 98E-1 double 98E-1F float 0.2L long double ( ) Elementos de programação em C 11 / 35

Literais caracteres Literais caracteres Escritos entre aspas simples, representam caracteres. a letra a espaço 2 dígito dois ( ) Elementos de programação em C 12 / 35

Literais caracteres Literais caracteres Quando o literal é interpretado como um inteiro, obtém-se o código numérico do caractere como um valor do tipo int. O que é impresso pelo programa ao lado? # include <stdio.h> int main ( void ) { char c = a ; printf ("% c % hhd \n", c, c); return 0; } ( ) Elementos de programação em C 13 / 35

Literais caracteres Literais caracteres Quando o literal é interpretado como um inteiro, obtém-se o código numérico do caractere como um valor do tipo int. O que é impresso pelo programa ao lado? Resposta: a 97 # include <stdio.h> int main ( void ) { char c = a ; printf ("% c % hhd \n", c, c); return 0; } ( ) Elementos de programação em C 13 / 35

Literais caracteres Caracteres especiais \b recuo de posição \a alarme \t avanço tabulação horizontal \" aspa dupla \v avanço tabulação vertical \ aspa simples \n nova linha \\ barra invertida \r retorno de carro \? interrogação \f avanço de formulário ( ) Elementos de programação em C 14 / 35

Literais caracteres Representações alternativas Literais caracteres - representação octal Os caracteres podem ser expressos como \ddd, onde ddd são dígitos octais representando um valor do tipo unsigned char. \153 corresponde ao caractere k \046 corresponde ao caractere & \12 corresponde ao caractere LF (nova linha) ( ) Elementos de programação em C 15 / 35

Literais caracteres Representações alternativas Literais caracteres - representação hexadecimal Os caracteres podem ser expressos como \xdd, onde dd são dígitos hexadecimais representando um valor do tipo unsigned char. \x6b \x26 \xa corresponde ao caractere k corresponde ao caractere & corresponde ao caractere LF (nova linha) ( ) Elementos de programação em C 16 / 35

Literais caracteres Representações alternativas Literais caracteres - representação Unicode Os caracteres podem ser expressos como \udddd, onde dddd são dígitos hexadecimais representando o código Unicode do caractere. Os literais Unicode não podem conter código na faixa de \ud800 a \udfff. Os literais Unicode não podem conter código menores que \u00a0, exceto os códigos \u0024, \u0040 e \u0060. \u0024 corresponde ao caractere $ \u0040 corresponde ao caractere @ \u0060 corresponde ao caractere ( ) Elementos de programação em C 17 / 35

Literais caracteres Representações alternativas Literais caracteres multibytes Se um literal caractere contém um caractere que não faz parte do conjunto básico dos caracteres de execução ou quando contém dois ou mais caracteres, ele é interpretado como um caractere multibyte. olas é interpretado como um caractere multibyte. Os caracteres multibytes não devem ser usados como se fossem caracteres básicos. ( ) Elementos de programação em C 18 / 35

Literais caracteres Representações alternativas Literais caracteres estendidos Os literais que representam caracteres estendidos devem ter prefixo L, u, quando é adotada a codificação Unicode UTF-16, ou U, quando é adotada a codificação Unicode UTF-32. O literal L \x456 representa corretamente o caractere estendido cujo código decimal é 1.110. A representação gráfica desse caractere depende da localização em vigor no ambiente de execução. ( ) Elementos de programação em C 19 / 35

Literais caracteres Tipo dos literais caracteres Tipo dos literais caracteres O tipo de um literal caractere é int O tipo de um literal caractere estendido é wchar_t char16_t, para codificação Unicode UTF-16 char32_t, para codificação Unicode UTF-32 O tipo wchar_t é declarado no cabeçalho stddef.h. Os tipos char16_t e char32_t, declarados no cabeçalho uchar.h, foram incluídos na versão 2011 do padrão da linguagem. ( ) Elementos de programação em C 20 / 35

Literais caracteres Tipo dos literais caracteres Tipo dos literais caracteres O tipo de um literal caractere é int O tipo de um literal caractere estendido é wchar_t char16_t, para codificação Unicode UTF-16 char32_t, para codificação Unicode UTF-32 O tipo wchar_t é declarado no cabeçalho stddef.h. Os tipos char16_t e char32_t, declarados no cabeçalho uchar.h, foram incluídos na versão 2011 do padrão da linguagem. Os literais que representam caracteres estendidos devem ser armazenados em variáveis do tipo apropriado: wchar_t para literais com prefixo L char16_t para literais com prefixo u char32_t para literais com prefixo U ( ) Elementos de programação em C 20 / 35

Literais cadeia de caracteres Literais cadeia de caracteres Os literais cadeia de caracteres são escritos entre aspas duplas. 456.3 Cadeia com 5 caracteres 53 Cadeia com 2 caracteres x Cadeia com 1 caractere ( ) Elementos de programação em C 21 / 35

Literais cadeia de caracteres Literais cadeia de caracteres Os caracteres em uma cadeia de caracteres podem ser expressos das formas já vistas. O que é impresso pelo programa abaixo? # include < stdio.h> int main ( void ){ printf ("V\ x61lor \ x20 \075 R\ u0024 23.7\ b\b,88\ b0."); return 0; } ( ) Elementos de programação em C 22 / 35

Literais cadeia de caracteres Literais cadeia de caracteres Os caracteres em uma cadeia de caracteres podem ser expressos das formas já vistas. O que é impresso pelo programa abaixo? # include < stdio.h> int main ( void ){ printf ("V\ x61lor \ x20 \075 R\ u0024 23.7\ b\b,88\ b0."); return 0; } Resposta: Valor = R$ 23,80. ( ) Elementos de programação em C 22 / 35

Literais cadeia de caracteres Cadeias estendidas de caracteres Quando um caractere da cadeia não faz parte do conjunto básico dos caracteres de execução a cadeia é considerada estendida. Os literais cadeias estendidas de caracteres devem ser expressos com os prefixos L, se a cadeia possui caracteres estendidos, u8, se os caracteres da cadeia são UTF-8, u, se os caracteres da cadeia são UTF-16, ou U, se os caracteres da cadeia são UTF-32. s: L ação e L ósculo. Existem funções próprias para lidar com cadeias de caracteres estendidas. Os prefixos u8, u e U foram incluídos na versão 2011 do padrão da linguagem. ( ) Elementos de programação em C 23 / 35

Literais cadeia de caracteres Tipo dos literais cadeias de caracteres O tipo de um literal cadeia de caracteres é char *, se a cadeia não tem prefixo ou tem prefixo u8. O tipo de um literal cadeia estendida de caracteres é wchar_t *, se a cadeia tem prefixo L, char16_t *, se a cadeia tem prefixo u, ou char32_t *, se a cadeia tem prefixo U. ( ) Elementos de programação em C 24 / 35

Literais compostos Literais compostos Os literais compostos são expressões usadas para atribuir valor a variáveis do tipo por eles especificado. LiteralComposto ::= ( NomeTipo ) { ListaIniciação } Um literal composto cria em memória um objeto não nomeado do tipo especificado, iniciando-o com os valores da lista de iniciação. O tipo de um literal composto é o especificado em sua expressão ou o derivado da sua lista de iniciação, se ele for especificado como um vetor de tamanho indefinido. ( ) Elementos de programação em C 25 / 35

Literais compostos Literais compostos (struct r_aluno) {"Josefa, linda e bela", f, 453} Cria uma estrutura do tipo struct r_aluno atribuindo ao seu primeiro componente a cadeia Josefa, linda e bela ; ao segundo, o caractere f ; e ao terceiro, o inteiro 453. (int){5712} Cria um objeto do tipo int e o inicia com o valor 5.712. (char []) {"E o anjo torna: - A Morte sou!"} Cria um vetor de caracteres iniciando-o com os caracteres da cadeia E o anjo torna: A Morte sou!. ( ) Elementos de programação em C 26 / 35

Enumerações Enumerações As enumerações são listas de constantes declaradas por meio da palavra-chave enum. Enumeração ::= enum [ Etiqueta ] { ListaEnum [,] } ListaEnum ::= CteEnumerada ListaEnum, CteEnumerada CteEnumerada ::= Identificador Identificador = ExprCte ( ) Elementos de programação em C 27 / 35

Enumerações Enumerações Cada constante enumerada é um identificador associado a um valor fixo: O primeiro assume o valor de sua expressão de atribuição ou o valor zero, se ela não existir. Os demais assumem o valor de sua expressão de atribuição ou o valor do identificador anterior incrementado de 1, se ela não existir. ( ) Elementos de programação em C 28 / 35

Enumerações Enumerações Cada constante enumerada é um identificador associado a um valor fixo: O primeiro assume o valor de sua expressão de atribuição ou o valor zero, se ela não existir. Os demais assumem o valor de sua expressão de atribuição ou o valor do identificador anterior incrementado de 1, se ela não existir. As seguintes enumerações são válidas: enum {zero, um, dois, tres, quatro, cinco} enum {pre, nor = 4, reg = 4, sup, exc} enum naipe {ouros = 1, copas, paus, espadas} ( ) Elementos de programação em C 28 / 35

Enumerações Tipo das enumerações 1 O tipo de cada constante enumerada é int. 2 Cada enumeração define um tipo próprio diferente dos demais. 3 O tipo de uma enumeração pode ser referido por meio da sua etiqueta. ( ) Elementos de programação em C 29 / 35

Enumerações Tipo das enumerações 1 O tipo de cada constante enumerada é int. 2 Cada enumeração define um tipo próprio diferente dos demais. 3 O tipo de uma enumeração pode ser referido por meio da sua etiqueta. O uso de etiqueta permite declarar variáveis do tipo enumerado especificado pela etiqueta. Em princípio, as variáveis declaradas dessa forma deveriam assumir apenas os valores da enumeração. A declaração enum naipe carta; declara a variável carta como do tipo enumerado enum naipe. ( ) Elementos de programação em C 29 / 35

Variáveis constantes Variáveis constantes O uso do qualificador const faz com que o valor da variável não possa ser modificado. const int per ; float const sal, taxa = 3.2 F; Na ilustração acima, as constantes per e sal não possuem valor de iniciação. Assumem um valor indefinido ou o zero dependendo do contexto em que são declaradas. ( ) Elementos de programação em C 30 / 35

Variáveis constantes Variáveis constantes O uso do qualificador const faz com que o valor da variável não possa ser modificado. const int per ; float const sal, taxa = 3.2 F; Na ilustração acima, as constantes per e sal não possuem valor de iniciação. Assumem um valor indefinido ou o zero dependendo do contexto em que são declaradas. Observação! As variáveis qualificadas como const não são expressões constantes. ( ) Elementos de programação em C 30 / 35

Macros Macros As macros são nomes associados a uma expressão por meio da construção #define. # define g 9.8 # define taxa 2.3 # define pi (3.1415) ( ) Elementos de programação em C 31 / 35

Macros Macros As macros são substituídas por suas expressões durante o pré-processamento. ( ) Elementos de programação em C 32 / 35

Macros Macros As macros são substituídas por suas expressões durante o pré-processamento. Programa original # include <stdio.h> # define PI (3.1415) # define Sigla " br" int main ( void ) { # define G (9.89) printf (" pi = %f ", 2 * PI ); printf ("g = %f\n", G); printf ("% s\n", Sigla ); return 0; } ( ) Elementos de programação em C 32 / 35

Macros Macros As macros são substituídas por suas expressões durante o pré-processamento. Programa após o pré-processamento # include <stdio.h> int main ( void ) { printf (" pi = %f ", 2 * (3.1415)); printf ("g = %f\n", (9.89)); printf ("% s\n", "br "); return 0; } ( ) Elementos de programação em C 32 / 35

Literais boolianos Literais boolianos Os nomes true e false são definidos como macros no arquivo-cabeçalho stdbool.h: # define true 1 # define false 0 ( ) Elementos de programação em C 33 / 35

Rótulos Rótulos Os rótulos são identificadores seguidos imediatamente de dois pontos. São colocados antes de um comando, e rotulam o comando que os segue. # include <stdio.h> int main ( void ) { int a, b = 2; rot1 : printf (" Digite um inteiro : "); scanf ("% d", &a); rot2 : rot3 : if (a > b) { printf ("% d > ", a); rot4 : printf ("% d\n", b); } return 0; } ( ) Elementos de programação em C 34 / 35

Bibliografia Bibliografia ISO/IEC C Programming Language Standard ISO/IEC 9899:2011, International Organization for Standardization; International Electrotechnical Commission, 3rd edition, WG14/N1570 Committee final draft, abril de 2011. Francisco A. C. Pinheiro Elementos de programação em C Bookman, Porto Alegre, 2012. www.bookman.com.br, www.facp.pro.br/livroc ( ) Elementos de programação em C 35 / 35