Baixe o app para aproveitar ainda mais
Prévia do material em texto
20/03/2013 1 AULA 3 VARIÁVEIS, TIPOS DE VARIÁVEIS E EXPRESSÕES Autor: Anibal Tavares de Azevedo ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES 1101001000 5505005000 Valem 5 unidades Valem 1 unidade VARIÁVEIS, TIPOS E EXPRESSÕES 5505005000 1101001000 2*10 + 1*5 + 2*1 = 27 MEMÓRIA 20/03/2013 2 VARIÁVEIS, TIPOS E EXPRESSÕES PENTE DE MEMÓRIA CAPACITOR 0 OU 1 - BIT VARIÁVEIS, TIPOS E EXPRESSÕES 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 8 BITs = 1 BYTE 28 = 256 1 BYTE pode representar 256 caracteres possíveis TABELA ASCII 20/03/2013 3 VARIÁVEIS, TIPOS E EXPRESSÕES 1 0 1 1 Exemplo 1: O número (1011)2 na base 2 corresponde a que valor inteiro na base 10? VARIÁVEIS, TIPOS E EXPRESSÕES 1 0 1 1 11 = 23 22 21 20 ×××× ×××× ×××× ×××× Exemplo 1: O número (1011)2 na base 2 corresponde a que valor inteiro na base 10? 20/03/2013 4 VARIÁVEIS, TIPOS E EXPRESSÕES 1 0 1 1 11 = 23 22 21 20 ×××× ×××× ×××× ×××× 8 + 0 + 2 + 1 = 11 = Exemplo 1: O número (1011)2 na base 2 corresponde a que valor inteiro na base 10? VARIÁVEIS, TIPOS E EXPRESSÕES Exercício 1: O número (101)2 na base 2 corresponde a que valor inteiro na base 10? 20/03/2013 5 VARIÁVEIS, TIPOS E EXPRESSÕES Exercício 1: O número (101)2 na base 2 corresponde a que valor inteiro na base 10? 1 0 1 22 21 20 ×××× ×××× ×××× 4 + 0 + 1 = 5 = VARIÁVEIS, TIPOS E EXPRESSÕES Exercício 1: O número (101)2 na base 2 corresponde a que valor inteiro na base 10? 1 0 1 22 21 20 ×××× ×××× ×××× 4 + 0 + 1 = 5 = 20/03/2013 6 -28 s -1, ..., -1, 0, 1, ..., 28s-1 VARIÁVEIS, TIPOS E EXPRESSÕES short int i; 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 2 bytes Exemplo 2: Qual o intervalo de valores que pode ser representado com o tipo short int? VARIÁVEIS, TIPOS E EXPRESSÕES short int i; 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 2 bytes -216-1, ..., -1, 0, 1, ..., 216-1 Exemplo 2: Qual o intervalo de valores que pode ser representado com o tipo short int? 20/03/2013 7 VARIÁVEIS, TIPOS E EXPRESSÕES short int i; 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 2 bytes -32768, ..., 0, ..., 32768 Exemplo 2: Qual o intervalo de valores que pode ser representado com o tipo short int? VARIÁVEIS, TIPOS E EXPRESSÕES long int i; 4 bytes Exercício 2: Qual o intervalo de valores que pode ser representado com o tipo long int? 20/03/2013 8 -28 s -1, ..., -1, 0, 1, ..., 28s-1 VARIÁVEIS, TIPOS E EXPRESSÕES long int i; 4 bytes Exercício 2: Qual o intervalo de valores que pode ser representado com o tipo long int? -232 -1, ..., -1, 0, 1, ..., 232-1 VARIÁVEIS, TIPOS E EXPRESSÕES long int i; 4 bytes Exercício 2: Qual o intervalo de valores que pode ser representado com o tipo long int? 20/03/2013 9 −2147483648, ..., 2147483647 VARIÁVEIS, TIPOS E EXPRESSÕES long int i; 4 bytes Exercício 2: Qual o intervalo de valores que pode ser representado com o tipo long int? O armazenamento de informações ocupa espaço. No caso do computador, é útil representar o espaço disponível por meio de uma grade. Cada bloco da grade pode armazenar 1 byte. Com 1 byte é possível armazenar uma informação do tipo caractere (char). Variáveis de outros tipos ocupam mais espaço (int – 4 bytes, float – 4 bytes e float – 8 bytes). Definição - Armazenamento Exemplo 3 Uma variável tipo char é armazenada na memória. Espaço de Memória char ch = ‘a’; ‘a’ VARIÁVEIS, TIPOS E EXPRESSÕES 20/03/2013 10 Para manipular mais de uma informação é necessário um sistema que organize as informações a partir de uma identificação unívoca. Na linguagem C, cada vez que é declarada uma variável (por exemplo, char ch1) é associado um número hexadecimal (por exemplo, 0022FF77) que é denominado de endereço (para manter a clareza, mas sem perda de generalidade, serão utilizados números na base 10 em todos os exemplos descritos a seguir). Esse número realiza a associação entre o nome de uma variável em um programa em C com o espaço físico que ela ocupa na memória do computador. Sem o uso de endereços não seria possível distinguir ou recuperar informações armazenadas na memória do computador. Organizando as informações com variáveis VARIÁVEIS, TIPOS E EXPRESSÕES Exemplo 4 ch1 = ‘a’; ‘a’ 5000 ch1 5001 5002 5003 5004 char ch1; 5000 ch1 5001 5002 5003 5004 O exemplo a seguir mostra a associação entre nome e endereço de uma variável. Reserva espaço de memória Armazena ‘a’ no endereço Associa ch1 a um endereço VARIÁVEIS, TIPOS E EXPRESSÕES 20/03/2013 11 char ch2; ‘a’ ch1 ch2 ch2 = ‘b’; ‘a’ ch1 ‘b’ ch2 printf(“%c”,ch2); ‘b’ch2 0022FF7A Busca associação do nome ch2 com endereço de memória. Busca conteúdo na memória 5000 5001 5002 5003 5004 5000 5001 5002 5003 5004 VARIÁVEIS, TIPOS E EXPRESSÕES Na linguagem C é possível saber o endereço de uma variável através do operador &. O endereço de uma variável pode ser impresso ou lido com printf ou scanf a partir das tags %x ou %X. Definição – Operador de Endereço (&) Exemplo 5 Obtendo informação de endereço da variável ch através do operador de endereço &. main() { char ch = ‘a’; printf(“Conteudo de ch = %c”, ch ); printf(“Endereco de ch = %x”, &ch ); } a 5000 ch 5001 5002 Em termos de memória VARIÁVEIS, TIPOS E EXPRESSÕES 20/03/2013 12 • A Linguagem C exige que no momento em que se for utilizar variáveis, seja indicado o tipo de informação que a (caixinha) variávelvariável vai conter, isto é, se numa dada posição de memória será armazenado um número ou uma letra etc. • Para isto, a linguagem C já tem definido alguns tipos de dados que deverão ser usados quando da utilização de variáveis. • As características de cada um destes tipos será mostrada gradativamente a medida em que ser for trabalhando com eles. VARIÁVEIS, TIPOS E EXPRESSÕES Resumindo: • O tipo de uma variávelvariável define os valoresdefine os valores que ela pode assumir e as operações que podem ser realizadas com ela • Ex: – variáveis tipo int recebem apenas valores inteiros – variáveis tipo float armazenam apenas valores reais A seguir são mostrados alguns dos tipos de variáveis mais utilizados. VARIÁVEIS, TIPOS E EXPRESSÕES 20/03/2013 13 Algoritmo C Inteiro int Real float Real double Caractere char Cadeia char [ ] Lógica int float Descrição Representa números entre -2147483647 e +2147483647. Ocupa 4 bytes de memória. Representa números entre ±3.4x10-38 e ±3.4x10+38. Ocupa 4 bytes de memória. Representa números entre ±1.7x10-308 e ±1.7x10+308. Ocupa 8 bytes de memória. Representa um dos caracteres da Tabela ASCII. Ocupa 1 byte de memória. Vetor de caracteres. Cada elemento do vetor ocupa 1 byte de memória. Qualquer valor diferente de zero é associado ao valor lógico verdadeiro. Senão é falso. VARIÁVEIS, TIPOS E EXPRESSÕES // Programa Exemplo1// Programa Exemplo1 # include <stdio.h># include <stdio.h> # include <stdlib.h># include <stdlib.h> main()main() {{ floatfloat lado1;lado1; lado1 = 1.1;lado1 = 1.1; printf(printf(“L1 = %f“L1 = %f ””,lado1);,lado1); system(system(“pause”“pause”);); }} Declaração da variável lado1 do tipo REAL Atribuição de valor Impressão do valor do tipo REAL (f ⇔⇔⇔⇔ float) VARIÁVEIS, TIPOS E EXPRESSÕES 20/03/2013 14 // Programa Exemplo2 #include <stdio.h> #include <stdlib.h> #include <math.h> main() { float lado1,lado2,hipo; lado1 = 1.1; lado2 = 2.2; hipo = sqrt(lado1*lado1 +lado2*lado2); printf(“L3= %f ”,hipo); system(“pause”); } ALGORITMO Exemplo2ALGORITMO Exemplo2 VARIÁVEIS VARIÁVEIS lado1, lado2, hipo: REAL;lado1, lado2, hipo: REAL; INICIO INICIO lado1 ←←←←←←←← 1.1 lado2 ←←←←←←←← 2.2 hipo←←←←←←←←sqrt(lado1*lado1+lado2*lado2) Escreva(“L3 =”,hipo) FIMFIM Cálculo da hipotenusa: 22 bac += Biblioteca matemática: fornece seno, cosseno, exponencial, raiz quadrada (sqrt), etc. VARIÁVEIS, TIPOS E EXPRESSÕES Algoritmos 28 Ler scanf(“ % ”,&); // Programa Exemplo3// Programa Exemplo3 // Colocar aqui as Bibliotecas do Exemplo 2 ! main()main() {{ float lado1;float lado1; printf(printf(“Digite L1:”“Digite L1:”);); scanf(scanf(“ %f“ %f ””,&lado1); ,&lado1); lado1 = sqrt(lado1);lado1 = sqrt(lado1); printf(printf(“sqrt(L1) = %f“sqrt(L1) = %f ””,lado1);,lado1); system(system(“pause”“pause”);); }} Realiza a leitura de um valor do tipo float ALGORITMO Exemplo3ALGORITMO Exemplo3 VARIÁVEIS VARIÁVEIS LADO1: REALLADO1: REAL INICIOINICIO Escreva ((“Digite L1:”“Digite L1:”);); Leia (LADO1) Leia (LADO1) LADO1 ←←←←←←←← sqrt(LADO1) Escreva(“raiz de L1 =”,lado1) FIMFIM VARIÁVEIS, TIPOS E EXPRESSÕES 20/03/2013 15 Algoritmos 29 ALGORITMO Exemplo4ALGORITMO Exemplo4 VARIÁVEIS VARIÁVEIS A,B,C: INTEIRO;A,B,C: INTEIRO; INICIOINICIO Escreva(“Digite a e b:”) Leia (A,B); Leia (A,B); C C ←←←←←←←← A + B;A + B; Escreva(Escreva( A,A,”+””+”,B,,B,”=“”=“,, C);C); FIMFIM // Programa Exemplo4// Programa Exemplo4 <include stdio.h><include stdio.h> <include stdlib.h><include stdlib.h> main()main() {{ int a, b, c;int a, b, c; printf(printf(“Digite a e b:”“Digite a e b:”);); scanf(scanf(““ %d%d %d”%d”,&a,&b); ,&a,&b); c = a + b;c = a + b; printf(printf(“%d + %d = %d “%d + %d = %d \\n”n”,a, b, c);,a, b, c); system(system(“pause”“pause”);); }} Leitura de a e b com apenas um scanf. Impressão dos valores de a, b e c com um printf VARIÁVEIS, TIPOS E EXPRESSÕES // Programa Exemplo5 #include <stdlib.h> #include <stdio.h> main() { int a = 16; printf(“a = %d”,a); a = -13; printf(“a = %d”,a); printf(“Digite o valor de a”); scanf(“ %d ”,&a); printf(“a = %d”,a); system(“pause”); } Definição+Atribuição Atribuição Leitura ALGORITMO Exemplo5 VARIÁVEIS A: INTEIRO INICIO A ←←←← 16 Escreva (“a=“,a) A ←←←← -13 Escreva (“a=“,a) Escreva(“Digite o valor de a”) Leia(A) Escreva (“a=“,a) FIM VARIÁVEIS, TIPOS E EXPRESSÕES 20/03/2013 16 Problema 1: Determinar o saldo ao final do 3º mês de uma aplicação financeira com investimento inicial de R$300,00 e juros de 1% ao mês. Algoritmo Leia(A); i ← 0.01; P ← A + A*i; S ← P + P*i; T ← S*(1+i); Mostre(T); 0 A 1 P=A+A*i 2 S 3 T VARIÁVEIS, TIPOS E EXPRESSÕES Problema 1: Determinar o saldo ao final do 3º mês de uma aplicação financeira com investimento inicial de R$300,00 e juros de 1% ao mês. Algoritmo Leia(A); i ← 0.01; P ← A + A*i; S ← P + P*i; T ← S*(1+i); Mostre(T); 0 A 1 P=A+A*i 2 S 3 T Programa em C // Incluir bibliotecas ! main() { float A, P, S, T, i; printf(“Digite invest. e juros: ”); scanf(“%f %f”,&A,&i); P = A*(1+i); S = P*(1+i); T = S*(1+i); printf(“Valor final = %f \n”, T); system(“pause”); } VARIÁVEIS, TIPOS E EXPRESSÕES 20/03/2013 17 Item (a) 0 A 1 2 3 F Subtrair R$10,00 ao final de cada mês VARIÁVEIS, TIPOS E EXPRESSÕES Problema 2: Refazer o problema 1, mas considerar que (a) ao final do mês o banco desconta R$ 10,00 e (b) imprimir o saldo em cada mês. Algoritmo Leia(A); i ← 0.01; P ← (A + A*i-10); Mostre(P); S ← (P + P*i-10); Mostre(S); T ← (S*(1+i)-10); Mostre(T); Algoritmo Leia(A); i ← 0.01; P ← (A + A*i-10); Mostre(P); S ← (P + P*i-10); Mostre(S); T ← (S*(1+i)-10); Mostre(T); Programa em C // Incluir bibliotecas ! main() { float A, P, S, T, i; printf(“Digite invest. e juros: ”); scanf(“%f %f”,&A,&i); P = A*(1+i)-10; printf(“Final Mes 1 = %f \n”, P); S = P*(1+i)-10; printf(“Final Mes 2 = %f \n”, S); T = S*(1+i)-10; printf(“Valor final = %f \n”, T); system(“pause”); } Observação: Para A = R$ 300, i = 1%, 3 meses e desconto de R$10, ao final do terceiro mês o saldo será de R$ 278,78 ! VARIÁVEIS, TIPOS E EXPRESSÕES 20/03/2013 18 FIM !!! AULA 3
Compartilhar