Buscar

ALGORITMOS E PROGRAMAÇÃO

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

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

Outros materiais