A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

VARIÁVEIS EM C Dilvan Moreira.

Apresentações semelhantes


Apresentação em tema: "VARIÁVEIS EM C Dilvan Moreira."— Transcrição da apresentação:

1 VARIÁVEIS EM C Dilvan Moreira

2 Lembrando ... Variável: nome de um local na memória onde dados são armazenados Evita ter que lembrar um endereço numérico Como variáveis de um expressão matemática

3 Lembrando ... C requer que declaremos o tipo de dados que estamos trabalhando Para cada variável temos que declarar um tipo de dado

4 Lembrando … int main () { int a; //these int b; //are
int c; //variable declarations b = 3; c = 5; a = b + c; printf("The answer is %d”, a); return 0; }

5 Lembrando: Convenções para Nomes
nome deve iniciar com letras ou underscore (_); caracteres de um nome devem ser letras, números ou underscores; palavras chaves não podem ser usadas como nomes; letras maiúsculas e minúsculas são consideradas diferentes

6 Palavras Chaves do ANSI C
auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typeof union unsigned void volatile while

7 Tipos: Inteiro Vários tamanhos diferentes
int - 16 bits - valor máximo é (215-1) short (int) - 16 bits, com a mesma margem long (int) - 32 bits, valor máximo é (231-1) Palavra unsigned antes de cada tipo inteiro cria novos tipos, ex: unsigned int

8 Tipos: Reais Aumentam precisão as custas de mais espaço Variantes
float - 32 bits double - 64 bits long double bits Exemplos , E+9

9 Tipo: Texto (char) Caracteres individuais - char
letras, dígitos, marcas de pontuação, barra de espaço return, etc. Internamente estes valores são representados um código ASCII (American Standard Code for Information Interchange); Tradução é automática

10 Tipos: Não Definidos Explicitamente
Tipo String C num string é representado por um vetor de caracteres terminado com ‘\0’. Tipo Booleano utilizado para testar condições Valor numérico: falso (0) e verdadeiro (qualquer valor ≠0)

11 Todos os tipos do ANSI C Tipo Num de bits Intervalo char 8 -128 a 127
unsigned char a 255 signed char a 127 int a unsigned int a signed int a short int a unsigned short int a signed short int a long int a signed long int a unsigned long int a float ,4E-38 a 3.4E+38 double ,7E-308 a 1,7E+308 long double ,4E a 3,4E+4932

12 Escopo: Variáveis Locais
declaradas no inicial de uma função escopo é a função onde ela aparece outras funções não tem acesso a elas tempo de vida - enquanto a função estiver ativa chamada da função aloca espaço para as variáveis; termino da execução da função libera o espaço

13 Escopo: Variáveis Globais
Aparecem fora de qualquer definição de função Escopo é o resto do arquivo onde é declarada Tempo de vida é o tempo de execução do programa Funções podem interferir umas com as outras

14 Atribuição int main () { int a; int b; int c; b = 3; // Essas
c = 5; // são a = b + c; // atribuições printf("The answer is %d”, a); return 0; }

15 Atribuição Operador: = = não significa uma afirmação de igualdade
= é usado para mudar o valor de uma variável int luckyNumber = 13; luckyNumber = 12;

16 Atribuição C primeiro computa o lado direito
Depois atribui o valor computado ao lado esquerdo x = 4 + 7; // o que tem em x? E agora? x = 2 + 1; // e agora?

17 Atribuição C primeiro computa o lado direito
Depois atribui o valor computado ao lado esquerdo x = 4 + 7; // o que tem em x? x= 11 E agora? x = 2 + 1; // e agora? x= 3

18 Atribuição E agora? Esse é um exemplo de possível confusão:
a = 7; // what’s in a? b = a; // what’s in b? // what’s in a now???

19 Atribuição E agora? Esse é um exemplo de possível confusão:
Quando em dúvida: experimente! É fácil tentar qualquer coisa no compilador C a = 7; // what’s in a? b = a; // what’s in b? // what’s in a now??? printf(“a is %d, b is %d“, a, b);

20 Atribuição E agora? Esse é um exemplo de possível confusão:
Quando em dúvida: experimente! É fácil tentar qualquer coisa no compilador C b= 7 a = 7; // what’s in a? b = a; // what’s in b? // what’s in a now??? printf(“a is %d, b is %d“, a, b);

21 Atribuição E agora? Quais os valores de a e b? a = 7; // what’s in a?
b = a; // what’s in b? // what’s in a now??? printf(“a is %d, b is %d“, a, b); a = 8;

22 Lendo do Teclado: scanf
Orientação a objetos com Java Lendo do Teclado: scanf int a; scanf ("%d", &a); Tipo do valor lido: %d inteiro Função scanf Variável que recebe o valor Importante: & indica ponteiro e que o valor da variável vai ser mudado. © David J. Barnes e Michael Kölling

23 Lendo do Teclado: scanf
/* scanf example */ #include <stdio.h> int main () { int i; printf ("Enter your age: "); scanf ("%d", &i); printf (”Your age is: %d.\n",i); return 0; }

24 Scanf: Strings de Tipos de Valor
%d : Scan um inteiro  decimal c/ sinal. %u : Scan um inteiro  decimal s/ sinal. %f : Scan um real  em notação normal. %g, %G : Scan um real  em notação normal ou científica. %g usa letras minúsculas e %G maiúsculas. %s : Scan uma string. O scan termina em um caracter de espaço (espaço, tab, etc.). %c : Scan um character (char).

25 Expressões expressões são a combinação de 3 7 + 2 7 + 2 * 5
um ou mais operadores ou operandos exemplos de operadores: +, *, /, ... exemplos de operandos: números, variáveis, ... exemplos: 3 7 + 2 7 + 2 * 5 (7 + 2) * 5

26 Precedencia de Operadores
Qual o resultado dessa expressão? 7 + 2 * 5

27 Precedência de Operadores
Qual o resultado dessa expressão? 7 + 2 * 5 Multiplicação tem mais precedência que adição (como em matemática) precedence operator operation 1 higher unary plus and minus 2 * / % multiply, divide, remainder 3 lower add, subtract

28 Precedência de Operadores
Qual o resultado dessa expressão? 7 + 2 * 5 Multiplicação tem mais precedência que adição (como em matemática) Parenteses podem ser usados para mudar precedência: (7 + 2) * 5 ou para tornar mais claro (2 * 5) precedence operator operation 1 higher unary plus and minus 2 * / % multiply, divide, remainder 3 lower add, subtract

29 Operadores Aritméticos
Operador Ação + Soma (inteira e ponto flutuante) - Subtração ou Troca de sinal (inteira e ponto flutuante) * Multiplicação (inteira e ponto flutuante) / Divisão (inteira e ponto flutuante) % Resto de divisão (de inteiros) ++ Incremento (inteiro e ponto flutuante) -- Decremento (inteiro e ponto flutuante)

30 Operadores Aritméticos
x = x +1  ++x ou x e x = x -1  --x ou x-- Diferença entre x++ e ++x (x-- e --x): x = 10; y = ++x; // y = 11, incrementa e atribui y = x++; // y = 10, atribuir e incrementar

31 Operadores Relacionais
Operador Ação > Maior do que >= Maior ou igual a < Menor do que <= Menor ou igual a == Igual a != Diferente de Operadores relacionais retornam verdadeiro (1) ou falso (0).

32 Operadores Lógicos Operador Ação && AND (E) || OR (OU) ! NOT (NÃO)
Tabela-verdade: p q p&&q p||q !p

33 Operadores Lógicos O resultado da expressão lógica é verdadeiro?
int i = 5, j =7; if ((i > 3) && (j <= 7) && (i != j)) j++; V and V and V = V Usando operadores em comandos if <condição> { <comandos> } else { <comandos> }

34 Operadores Lógicos Bit a Bit
Operação Bit a Bit Uma variável int a com o valor 2 em binário: Podemos operar em cada um desses bits Se fizermos a negação ~a : Essas operações só podem ser usadas em: char, int e long Elas são úteis para programaçao em “baixo nível”

35 Operadores Lógicos Bit a Bit
Operador Ação & AND | OR ^ XOR (OR exclusivo) ~ NOT >> Deslocamento de bits a direita << Deslocamento de bits a esquerda Tabela Verdade: p q p&q p|q p^q ~p

36 Operadores Lógicos Bit a Bit
Operação de deslocamento A direita  divide por 2 A esquerda  multiplica por 2 unsigned char x cada execução da sentença valor de x x = 7; x = x <<1; x = x <<3; x = x <<2; x = x >>1; x = x >>1;

37 Checando 12 = 12 é uma expressão válida em C?
Como voce mudaria o valor da variável greeting para 10? int greeting = 300;

38 Exercício Escreva um programa que determine o valor máximo, o valor mínimo e o valor médio de uma seqüência de 4 inteiros.

39 Perguntas?


Carregar ppt "VARIÁVEIS EM C Dilvan Moreira."

Apresentações semelhantes


Anúncios Google