Baixe o app para aproveitar ainda mais
Prévia do material em texto
ECT1203 Linguagem de Programação 2012.2 Prof. Marconi Câmara Rodrigues Tipos básicos, variáveis, constantes, operadores e expressões 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 Memória do computador Endereço Conteúdo 00 13 01 22.5 02 Pedro Álvares Cabral 03 001001110 ... ... • Programa de computador: Manipula as informações que estão na memória para gerar novas informações. Processamento Entrada Saída Variáveis • Método utilizado pelo compilador para evitar que o programador trabalhe diretamente com endereços de memória. ▫ Mais fácil lembrar 000111101101 ou “idade”? • Compilador cria uma tabela com os endereços de memória e os nomes. Uma variável representa um espaço de memória através de um nome para guardar uma determinada informação. 00011110110111 idade 00001111001101 peso 00001110101010 altura • Endereço de memória: Compilador e sistema operacional decidem qual endereço da memória será utilizado (Linguagem de máquina). • Informação: Tipos básico de dados. O compilador precisa ser informado qual o tipo de informação que será armazenado na memória. • Nome: Identificador. Regras para os nomes das variáveis. 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 • Método de modificar a quantidade de memória utilizada ou a forma como a informação é representada. • Alteram o conjunto de valores que o tipo pode representar: 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 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 • Toda variável precisa ser declarada antes de ser usada. • Somente valores do tipo especificado podem ser armazenados na variável Como utilizar as variáveis em C++ double lucro; int i, j; char a, b, c; tipo lista_de_variáveis; A lista de variáveis evita que cada variável seja declarada em uma única linha, o que tornaria o programa grande. int i; int j; int z; int i,j,z; Dicas de programação • Primeiro passo na programação é identificar que tipo de informação será necessária para resolver o problema proposto. ▫ Que tipo de informação de entrada meu programa necessita? E a saída? • As declarações das variáveis devem ser as primeiras instruções dentro da função main(). • Os identificadores das variáveis devem ter relação com a informação representada (não é regra mas é extremamente recomendado). Code::Blocks Declare as variáveis para fazer um programa que calcule a força aplicada em um corpo. Code::Blocks Declare as variáveis para fazer um programa que calcule a força aplicada em um corpo. Processamento Massa Aceleração Força (Saída) (Entrada) Constantes • Constantes inteiras: são números sem ponto decimal, precedidos ou não por sinal. 1997 -3 234 32000 5001 • Constantes em ponto flutuante: requerem ponto decimal seguido pela parte fracionária do número. 123.23 4.34e-3 11.456 1001.2 Usadas em comandos 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” Atribuição • A declaração de variáveis somente reserva espaço na memória para ser utilizado pelo programa. • O comando de atribuição é responsável por armazenar uma informação em uma variável. variável = informação; idade = 35; peso = 98.54; letra = ‘d’; Atribuindo valores a variáveis • Após declarada, uma variável pode receber valores. int a; float b; a = 5; b = 4.3; int a = 5; float b = 4.3; Efeito Equivalente Atribuindo valores a variáveis O que acontece se fizermos a seguinte instrução? int a = 4.3; 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 int a = 10; const float gravidade = 9.8; 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, ...) para o usuário. Usado normalmente com o operador de inserção <<. cout << “Primeiro Programa”; cout << “O valor de X é:” << x; 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; Atribuição • Uma variável recebendo o valor de outra variável • O compilador busca na memória a informação de uma variável e passao valor para outra variável sem alterar o valor da primeira. • Ex: var2 = var1; Operadores • Operadores tem como finalidade transformar uma informação em uma nova informação ▫ Operadores matemáticos ▫ Operadores de incremento/decremento ▫ Operadores lógicos e relacionais ▫ Operadores bit a bit ▫ Operador sizeof Operadores aritméticos Operador Ação - Subtração, menos unário + Adição * Multiplicação / Divisão % Módulo da divisão Os operações são feitas na precisão dos operandos. Incremento e decremento Operador Ação ++ Soma 1 ao seu operando -- Subtrai 1 ao seu operando ++x; x = x + 1; é o mesmo que --x; x = x - 1; é o mesmo que X++; x--; Prefixado Pós-fixado Prefixado Pós-fixado Prefixado é executado imediatamente. Pós-fixado NÃO!!!!! Code::Blocks Faça um programa que peça para o usuário digitar um número e o armazene numa variável inteira x. Em seguida realize as operações a seguir: cout<<x++; cout<<++x; Pergunta: Se mais de um operador estiver presente, qual deve ser executado primeiro? Exemplo: 6/2*(1+2) Pergunta: Se mais de um operador estiver presente, qual deve ser executado primeiro? Precedência dos operadores aritméticos Mais alta ++ -- * / % Mais baixa + - • Operadores do mesmo nível de precedência, em uma mesma linha, são avaliados da esquerda para a direita. • Parânteses podem ser usados para forçar uma (ou mais) operação a ter precedência maior, assim como na matemática. Code::Blocks Faça um programa que peça para o usuário digitar três valores x,y,z (ex: 6,4,2) e em seguida mostre: ▫ O resultado de: x*(y/z) ▫ O resultado de : (x*y)/z ▫ O resultado de : x*y/z Operadores aritméticos de atribuição • Pode ser aplicado a todo operador binário. variável = variável operador expressão; variável operador = expressão; é o mesmo que i = i + 10; x = x * (y + 1); a = a – 120; i += 10; x *= y + 1; a -= 120; Operadores lógicos e relacionais • São baseados na idéia de verdadeiro e falso. ▫ VERDADEIRO = qualquer valor diferente de zero ▫ FALSO = zero • As expressões que usam operdores relacionais ou lógicos devolvem zero para falso e 1 para verdadeiro. Relacional refere-se às relações entre os valores. Lógico refere-se a como essas relações podem ser conectadas. Operadores lógicos e relacionais Operador Ação > Maior que >= Maior ou igual que < Menor que <= Menor ou igual que == Igual != Diferente Operador Ação && AND || OR ! NOT Relacionais Lógicos Operadores lógicos • AND = Será verdadeiro quando TODAS as condições forem verdadeiras. • OR = Será verdadeiro quando pelo menos UMA condição for verdadeira. • NOT = Inverte o resultado. Se o resultado for verdadeiro sem o NOT, com o NOT fica falso. Da mesma forma, o NOT pode ser usado para passar um resultado de falso para verdadeiro. Precedência dos operadores lógicos e relacionais • São menores em precedência que os operadores aritméticos. 10 > 1 + 12 10 > (1 + 12) é avaliado como Mais alta ! > >= < <= == != && Mais baixa || Operadores bit a bit • São aplicados aos bits individuais dos operandos. Operação bit a bit refere-se a testar, atribuir ou deslocar os bits de tipos de dados char e int. Operador Ação & AND | OR ^ XOR (OR exclusivo) ~ Complemento de um >> Deslocamento à esquerda << Deslocamento à direita Operador sizeof • Para calcular o tamanho de um tipo, deve-se usar parênteses. É um operador que retorna o tamanho (em bytes) de uma variável ou especificados de tipo. float f; cout << sizeof f << ‘\n’; cout << sizeof(int) << ‘\n’; Conversão de tipos em expressões Quando operandos de tipos diferentes são misturados em uma expressão, os valores são convertidos no tipo do maior operando. double float int char prioridade de conversão Conversão de tipos em expressões Cast (operador de molde) Cast é uma conversão explícita de tipo. (tipo) expressão int x = 13; float y = (float) x/2; Conversão de tipos em atribuições • Quando se converte de: ▫ inteiros para caracteres ▫ inteiros longos para inteiros ▫ inteiros para inteiros curtos perde-se a informação. • Quando se faz conversão envolvendo números em ponto flutuante, pode se perder precisão. Regra: O valor do lado direito de uma atribuição é convertido no tipo do lado esquerdo.
Compartilhar