Buscar

ECT1203 - Aula03 - Tipos básicos e Ponteiros

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 32 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 32 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 32 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

ECT1203 Linguagem de Programação 
2013.1 
Prof. Luiz Eduardo Cunha Leite 
 
Aula 03 – Tipos básicos, variáveis, 
constantes e ponteiros 
Universidade Federal do Rio Grande do Norte 
Escola de Ciências e Tecnologia 
Hora de silenciar o celular 
• Manter o celular sempre desligado/silencioso quando 
estiver em sala de aula 
• Nunca atender o celular em sala de aula 
Objetivos da aula 
Apresentar os seguintes conceitos: 
• Organização da Memória do Computador 
• Declaração de Variáveis de Tipos básicos e representação 
da informação em memória 
• Modificadores de Tipos 
• Introdução a Ponteiros 
• Comandos para entrada e saída de dados 
 
Organização da Memória do Computador 
Endereço Conteúdo 
00 11001100 
01 01001100 
02 11001100 
03 01001100 
... ... 
• A memória do computador é organizada em posições de memória 
• Cada posição pode ser acessada através de um endereço único 
• Cada posição só pode armazenar informação no formato binário 
 
 
Como números Inteiros são armazenados em memória? 
Como números Inteiros negativos são armazenados em memória? 
Como números Reais são armazenados em memória? 
Como caracteres são armazenados em memória? 
Organização da Memória do Computador 
Endereço Conteúdo 
00 11001100 
01 01001100 
02 11001100 
03 01001100 
... ... 
 
• Manipular diretamente a memória do computador, atribuindo bits 
às mesmas pode ser uma tarefa complicada. 
 
• O conceito de variável surge então para facilitar o processo de 
armazenamento e recuperação da informação na memória. 
Variáveis 
• Dispensa a necessidade de o programador manipular 
diretamente os endereços de memória. Endereços podem ser 
acessados através dos nomes (identificadores) das variáveis. 
• Toda variável precisa ser declarada antes de ser usada 
• Somente valores do tipo especificado podem ser armazenados 
na variável 
Uma variável representa um espaço de memória para 
guardar um determinado tipo de dado. 
 double lucro; 
 int i, j; 
 char a, b, c; 
tipo lista_de_identificadores; 
Identificadores 
• Pode ser composto por letras, números ou sublinhados 
• Deve começar com uma letra ou um sublinhado 
• Não pode ser uma palavra reservada da linguagem C++ 
Nomes de variáveis, funções e outros objetos definidos 
pelo usuário. 
1) soma 
2) 5altura 
3) peso_bruto 
4) SOMA 
5) desvio-padrão 
6) p2p 
Palavras Reservadas 
asm else namespace template 
auto enum new this 
bool explicit operator throw 
break export private true 
case extern protected try 
catch false public typedef 
char float register typeid 
class for reinterpreted_cast typename 
const friend return union 
const_cast goto short unsigned 
continue if signed using 
default inline sizeof virtual 
delete init static void 
do long static_cast volatile 
doubel main struct wchar_t 
dynamic_cast mutable switch while 
Operador & 
O operador & pode ser utilizado para recuperar o 
endereço físico de memória representado por uma 
determinada variável. 
 int X; 
 X = 10; 
 cout << &X; 
Será impresso na tela não o valor 
armazenado na variável X, mas o 
endereço de memória associado a X. 
Quando atribuímos um valor a X, 
esse valor será armazenado nesse 
endereço de memória física. 
Tipos básicos de dados 
• char - caractere 
▫ Representa um número inteiro referente ao código ASCII de um 
determinado caractere. 
• int – inteiro 
▫ Representa um número inteiro 
• float - ponto flutuante 
▫ Representa um número real de simples precisão 
• double - ponto flutuante de dupla precisão 
▫ Representa um número real de maior precisão 
• void - sem valor 
▫ Usado em funções sem valor de retorno ou ponteiros genéricos 
Pergunta: Qual a necessidade de 
informar ao compilador o tipo de 
informação que será armazenada na 
memória? 
Tipo Tamanho 
em bytes 
Faixa mínima 
char 1 -127 a 127 
int 4 -2.147.483.648 a 2.147.483.647 * 
float 4 ± 3,4 x 10 -38 a 3,4 x 10 38 
double 8 ± 1,7 x 10 -308 a 1,7 x 10 308 
Resposta: Informações diferentes necessitam de espaço 
de memória diferentes, além de serem organizados de 
forma diferente na memória. 
Modificadores dos tipos básicos 
 
 
• Alteram o conjunto de valores que o tipo pode 
representar: 
signed, short, long e unsigned 
• Por exemplo: 
▫ um modificador permite armazenar números inteiros 
maiores (long int ) 
▫ outro modificador determina que só números sem sinal 
possam ser armazenados (unsigned int) 
Tipo Tamanho 
em bytes 
Faixa mínima 
char 1 -127 a 127 
unsigned char 1 0 a 255 
signed char 1 -127 a 127 
int 4* -2.147.483.648 a 2.147.483.647 * 
unsigned int 4 0 a 4.294.967.295 * 
signed int 4 -2.147.483.648 a 2.147.483.647 
short int 2 -32.768 a 32.767 
unsigned short int 2 0 a 65.535 
long int 4 -2.147.483.648 a 2.147.483.647 
unsigned long int 4 0 a 4.294.967.295 
float 4 ± 3,4 x 10 -38 a 3,4 x 10 38 
double 8 ± 1,7 x 10 -308 a 1,7 x 10 308 
long double 10 ± 3,4 x 10 -4932 a 3,4 x 10 4932 
* depende do ambiente, valores para ambientes de 32 bits 
Constantes 
 
 
• Constantes inteiras: são números sem ponto decimal, 
precedidos ou não por sinal. 
1997 -3 234L 3200000L 5001U 
 
• Constantes em ponto flutuante: requerem ponto 
decimal seguido pela parte fracionária do número. 
123.23 4.34e-3 11.456F 1001.2L 
Usadas em expressões para representar valores fixos 
de um dado tipo. 
Constantes 
 
 
• Constantes caracteres: único caractere envolvido por 
aspas simples, podendo participar de expressões 
aritméticas. 
‘a’ caractere a 
‘A’ caractere A 
‘\n’ nova linha 
‘\r’ retorno de carro 
‘\t’ tabulação horizontal 
‘\a’ alerta sonoro 
‘\0’ nulo, termina um conj. de caracteres em C 
‘\\’ \ - Barra invertida 
‘\xdd’ Caractere de código ASCII dd (em hexadecimal) 
Constantes 
 
 
• Constantes string: conjunto de caracteres colocado entre 
aspas duplas. 
‘’isso é um teste’’ “mais um teste” 
 
• A linguagem C++ insere automaticamente o caractere 
‘\0’ ao final de uma string. 
 
 
Não confundir strings com caracteres: 
‘A’ não é igual a “A” 
A Variável PonteiroDouble 
armazenará não um número 
real, mas o endereço de outra 
variável do tipo double. 
Ponteiros 
Ponteiro é uma variável capaz de armazenar o endereço 
de memória de outra variável (variável apontada). 
Na declaração do ponteiro, deve-se especificar o tipo da 
variável para a qual este aponta. 
 double * ponteiroDouble; 
 int * ponteiroParaInteiro; 
 char * PonteiroParaChar; 
tipo * identificador; 
Atribuindo Valores a Ponteiros 
Pode-se atribuir a um ponteiro o endereço de memória de outra 
variável. 
Nesse caso, diz-se que o ponteiro aponta para a variável cujo endereço 
lhe foi atribuído. 
O operador & pode ser utilizado para recuperar o endereço da variável 
apontada; 
int x = 0; 
int * pt; 
pt = &x; 
cout << pt; 
Será impresso na tela o valor 
da variável pt, que é o endereço 
de memória associado a x. 
O modificador const 
• Variáveis do tipo const não podem ser modificadas! 
 
 
 
 
 
 
• É muito usado para garantir que o valor do 
parâmetro não é modificado dentro da função. 
 
const float a = 10.5; 
 
int soma(const int a, const int b); 
Bloco de código 
Qualquer trecho de código delimitado por { ... } 
int main(void) 
{ 
 float pi = 3.14; 
 return 0; 
} 
i = 10; 
{ 
 int j = 20; 
 printf(“%d”, j); 
} 
if(t == 1) 
{ 
 char s[80]; 
 gets(s); 
} 
Escopo de variáveis 
• Variáveis declaradas dentro de um bloco de códigonão são visíveis fora dele. 
▫ O espaço de memória usado pela variável é liberado 
na saída do bloco de código. 
 
• Se duas variáveis de mesmo nome são visíveis em 
um bloco de código, prevalece aquela declarada no 
bloco mais interno. 
 
Entrada e saída em C 
E/S pelo console: 
▫ Entrada pelo teclado 
▫ Saída pela tela 
É necessário incluir o protótipo 
das funções no código e utilizar 
o namespace std. 
#include <iostream> 
using namespace std; 
 
E/S são efetuadas por objetos da biblioteca padrão. 
Objeto cout (pronuncia-se C out) 
Possibilita a saída de valores (constantes, variáveis ou 
resultados de expressões) para o usuário. Usado 
normalmente com o operador de inserção <<. 
cout << “Primeiro Programa”; 
cout << “O valor de X é:” << x; 
O objeto cout e o operador << 
• A instrução: 
▫ cout << “mensagem”; 
• Utiliza o objeto cout para exibir o texto mensagem 
na tela do computador 
• Um entendimento detalhado do cout requer 
conhecimentos de classes e objetos, que não fazem 
parte do escopo deste curso. 
• O operador << (chamado de operador de inserção) 
é utilizado para enviar a mensagem a ser impressa 
para cout. 
Namespace e diretiva Using 
• Um namespace é uma região que agrega um 
identificador a todos os nomes declarados dentro dela. 
Análogo a um sobrenome. 
▫ Ex.: o objeto cout foi declarado dentro no namespace std. 
▫ Para usar o cout, precisaríamos usar o identificador std: 
 std::cout << “mensagem”; 
• A diretiva using permite que nomes de um namespace 
possam ser usados sem o identificador do namespace. 
▫ using namespace std; 
 
Compiladores antigos e namespaces 
• Os compiladores antigos não utilizam o conceito de 
namespace. 
• Portanto, os arquivos de inclusão com extensão .h, 
desenvolvidos para compiladores antigos não usam 
namespace. 
 
• Resumindo: se você incluir um arquivo com 
extensão .h, não utilize os namespaces previstos 
para o referido arquivo. 
 
Modificando o formato de saída do 
cout 
 
Como configurar o cout para imprimir um valor real na 
notação de ponto decimal ou científica? 
 
Como configurar a quantidade de casas decimais a serem 
impressas utilizando-se o cout? 
Modificando o formato de saída do 
cout 
#include <iostream> 
#include <iomanip> 
 
using namespace std; 
 
int main() 
{ 
 double x = 1.333333333333333333; 
 
 cout << "x = " << x << endl; 
 
 cout << setprecision(10); 
 
 cout << "x = " << x << endl; 
 
 cout << setiosflags(ios::scientific); 
 
 cout << "x = " << x << endl; 
 
 cout << setiosflags(ios::fixed); 
 cout << setiosflags(ios::showpoint); 
 
 cout << "x = " << x << endl; 
 
} 
Apenas para quem tem curiosidade 
 
 
 
• Como fazer a impressão de texto colorido no 
windows? E no Linux ? É o mesmo procedimento 
nos dois sistemas operacionais? Por que? 
Apenas para quem tem curiosidade 
#include <iostream> 
#include <windows.h> 
 
using namespace std; 
 
int main() 
{ 
 HANDLE hConsole; 
 hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 
 int color=1; 
 
 
 for(int i=0; i<14; i++) 
 { 
 
 SetConsoleTextAttribute(hConsole, color); 
 cout << "Color Text" << endl; 
 
 color = color + 1; 
 } 
 
 SetConsoleTextAttribute(hConsole, 15); 
 
 return 0; 
} 
Objeto cin (pronuncia-se C in) 
Permite ler valores via teclado e armazená-los em 
variáveis do programa. Usado normalmente com o 
operador de extração >>. 
cin >> x; 
cin >> a >> b >> c; 
Ao contrário da função scanf da linguagem C, o cin com 
operador de extração não requer variáveis com o 
operador de endereços &;

Outros materiais