VARIÁVEIS EM C Dilvan Moreira.

Slides:



Advertisements
Apresentações semelhantes
Versão – Prof.: Mauro César Lopes
Advertisements

Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Introdução à Computação - Jorge Macêdo
LINGUAGEM ESTRUTURADA TURBO C
Versão – Prof.: Mauro César Lopes
Linguagem C.
Versão – Prof.: Mauro César Lopes
Ling. C - Variáveis Uma variável não é mais do que o nome que nós damos a uma determinada posição de memória para conter um valor de um determinado tipo.
Introdução a Computação e Cálculo Numérico
Introdução a Computação e Cálculo Numérico
Introdução a Linguagem de Programação C
Seminário 1: Revisão de C
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Algumas notas sobre a linguagem de programação C
MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Linguagem C.
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
DSC/CCT/UFCG Carga Horária: 60 h Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria Ulrich Schiel José Eustáquio Rangel.
Algoritmo e Programação
PROGRAMAÇÃO II – PARTE 3 Profa. Maria Augusta Constante Puget.
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Profa. Maria Augusta Constante Puget
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Prof. Tertuliano Operadores Variáveis em C++.
IF E ITERAÇÃO WHILE Dilvan Moreira (baseado no livro Big Java e T. Munzner)
VARIÁVEIS EM C Dilvan Moreira. Lembrando...  Variável: nome de um local na memória onde dados são armazenados  Evita ter que lembrar um endereço numérico.
PROGRAMANDO EM JAVA Dilvan Moreira (baseado no livro Big Java)
Projeto Integrador Número Binários Professor: Charles Leite.
Estrutura Sequencial COUT CIN
Algoritmos e Programação utilizando Visualg
Introdução à Computação para Engenharia MAC2166
Estruturas de Dados Aula 2: Estruturas Estáticas
Estrutura Sequencial COUT CIN
Programação em C++ Compiladores
Estruturas de Decisão.
Introdução a Programação
PCI- Estruturas de Controle
Programação em C Aula 2.
Linguagem C Para programadores Python
Prof. Wellington Franco
FUNDAMENTO DE PROGRAMAÇÃO
Fundamentos de Programação 1
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
ARRAYS Dilvan Moreira (baseado no livro Big Java e T. Munzner)
Algoritmos e Estruturas de Dados I
DESENVOLVIMENTO DE PROGRAMAS
Estrutura Sequencial COUT CIN
Programação de Computadores I – Arquivos
Algoritmos e Técnicas CEFET/RN.
Dilvan Moreira (baseado no livro Big Java e T. Munzner)
PROGRAMAÇÃO I UNIDADE 3.
Programação de Computadores I – Ponteiros
Tecnologia para Internet - II
Fundamentos de Programação 1
Profa. Maria Augusta Constante Puget
Programação de Computadores I – Arquivos
Programação Funcional
DHD – Desenvolvimento em Hardware
Professora Roberta Bonamichi Guidi Garcia
Programação de Computadores I – Ponteiros
Linguagem de Programação I
Estruturas de Dados em C
Prof: Luciano Barbosa (Slides adaptados do Prof. Hansenclever Bassani)
Tipos Primitivos de Dados
Programação de Computadores LINGUAGEM C – AULA 03 – PROF. WELLINGTON TELLES.
JAVA - BÁSICO COL. ESTADUAL MARIA AGUIAR TEIXEIRA
Aula 2 Professores: Conteúdo: Dante Corbucci Filho
Transcrição da apresentação:

VARIÁVEIS EM C Dilvan Moreira

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

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

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; }

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

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

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

Tipos: Reais Aumentam precisão as custas de mais espaço Variantes float - 32 bits double - 64 bits long double - 128 bits Exemplos 4.0, 2.34E+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

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)

Todos os tipos do ANSI C Tipo Num de bits Intervalo char 8 -128 a 127 unsigned char 8 0 a 255 signed char 8 -128 a 127 int 16 -32.768 a 32.767 unsigned int 16 0 a 65.535 signed int 16 -32.768 a 32.767 short int 16 -32.768 a 32.767 unsigned short int 16 0 a 65.535 signed short int 16 -32.768 a 32.767 long int 32 -2.147.483.648 a 2.147.483.647 signed long int 32 -2.147.483.648 a 2.147.483.647 unsigned long int 32 0 a 4.294.967.295 float 32 3,4E-38 a 3.4E+38 double 64 1,7E-308 a 1,7E+308 long double 80 3,4E-4932 a 3,4E+4932

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

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

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; }

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;

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?

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

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

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);

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);

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;

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

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; }

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).

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

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

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

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 7 + (2 * 5) precedence operator operation 1 higher + - unary plus and minus 2 * / % multiply, divide, remainder 3 lower + - add, subtract

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)

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

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).

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

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

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

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 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0

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; 00000111 7 x = x <<1; 00001110 14 x = x <<3; 01110000 112 x = x <<2; 11000000 192 x = x >>1; 01100000 96 x = x >>1; 00011000 24

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

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.

Perguntas?