Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagem C
Unesp-Campus de Guaratinguetá
4.1 - Variáveis
Como visto anteriormente, o computador possui uma
área de armazenamento conhecida como memória.
Algoritmos 2
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
4.1 – Variáveis
Aluno sexo
‘João’ Endereço lógico ‘M’
Informação
numero
12345
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
4.1 – Variáveis
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
Caso A B C
1 5 4 3
2 13 5 12
3 10 6 8
Algoritmos 8
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Deste modo esta fórmula pode ser usada para resolver uma
certa classe de problemas e não apenas um problema
específico.
Algoritmos 13
Unesp-Campus de Guaratinguetá
Algoritmos 14
Unesp-Campus de Guaratinguetá
Resumindo:
Ex:
– variáveis tipo int recebem apenas valores inteiros
– variáveis tipo float armazenam apenas valores reais
Algoritmos 15
Unesp-Campus de Guaratinguetá
Algoritmo C Descrição
Algoritmos 16
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Algoritmos 18
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Algoritmos 20
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Algoritmos 26
Unesp-Campus de Guaratinguetá
#include <stdio.h>
#include <stdlib.h
main()
{
int x;
int y;
y = 10;
x = 24;
int k = 20; /* Esta declaracao de variável não é válida, pois não está
sendo feita no início do bloco */
system( “pause” );
}
Algoritmos 27
Unesp-Campus de Guaratinguetá
Exercícios
1) Em quais dos seguintes pares é importante a ordem dos
comandos? Em outras palavras, quando se muda a ordem dos
comandos, os resultados finais se alteram? Suponha X=2 Y=3
Z=4
a) X Y Resultado X = 3
YZ Y=4
Se invertermos o comando
Algoritmos 28
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
4.2 - Constantes
4.2 - Constantes
Constantes são valores fixos que não podem ser modificados pelo
programa
Tipo Exemplos
char ‘a’ ‘\n’ ‘9’
int 123 1 1000 -23
long int 35000 -45
short int 10 -12 90
unsigned int 1000U 234U 4365U
float 123.45 3.1415e -10
double 123.45 -0.91254
Algoritmos 30
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Exemplo 9: Leia ( A, B, C )
Os próximos três valores encontrados na tela serão atribuídos as variáveis
A, B e C, sendo o primeiro a A, o segundo a B e o terceiro a C.
Exemplo 10: Deseja-se ler valores digitados, e estes valores são: -16, 3,
7, 21, 6, 0, 4, 8, 1. Suponha que temos os seguintes comandos Leia:
Leia ( A, B, C )
Leia ( D, E, F, G )
Leia ( X, Y )
NÃO ESQUECER O ponto e virgula (;) no final da linha de comando, nem o &
antes do nome da variável
Neste comando a tag “%” é para indicar o tipo de dado que vai ser lido.
%d ⇒ é usado para valores numéricos do tipo inteiro
%f ⇒ é usado para valores numéricos do tipo real
%c ⇒ é usado para valores do tipo caractere
%s ⇒ é usado para valores do tipo cadeia de caracteres (string)
Algoritmos 33
Unesp-Campus de Guaratinguetá
Algoritmos 34
Unesp-Campus de Guaratinguetá
Algoritmos 35
Unesp-Campus de Guaratinguetá
Aqui também a tag “%” serve para indicar o tipo de dado que vai ser
escrito.
%d ⇒ é usado para valores numéricos do tipo inteiro
%f ⇒ é usado para valores numéricos do tipo real
%c ⇒ é usado para valores do tipo caractere
%s ⇒ é usado para valores do tipo cadeia de caracteres (string)
Algoritmos 36
Unesp-Campus de Guaratinguetá
printf (“notas individuais =%f, %f, %f, %f\n“, nota1, nota2, nota3,nota4);
printf (“media final=%f”, media);
Unesp-Campus de Guaratinguetá
Observe que tem duas linhas impressas. Isto só ocorreu porque foi colocado
um \n, no primeiro printf, antes de fechar a aspa.
Se não tivesse sido colocado esse \n, a impressão iria acontecer tudo na
mesma linha, isto é:
notas individuais= 73.0, 65.5, 94.0, 87.0 media final=79.75
Algoritmos 38
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
4.4 - Expressões
Exemplo 13 conta ← 31
4+ 16
24 +38
Expressão
4.4 - Expressões
Definição: Uma expressão é uma combinação de variáveis,
constantes e operadores. O resultado de uma expressão é
atribuído à variável indicada.
#include<stdio.h>
#include<stdlib.h> conta
(1)
main()
conta←3+16+8
{
int conta;
conta = 3 + 16 +8;
printf(“ %d ”,conta); conta
system(“pause”);
(2)
} 27
Algoritmos 41
Unesp-Campus de Guaratinguetá
4.4 - Expressões
#include <stdio.h>
#include <stdlib.h>
main()
{
int celsius, fahrenheit;
printf("Digite a temperatura de hoje: ");
scanf("%d", &celsius);
fahrenheit = 9 * celsius / 5 + 32;
printf("Hoje esta fazendo %d graus Fahrenheit!\n", fahrenheit);
system ("pause");
} Algoritmos 42
Unesp-Campus de Guaratinguetá
4.4 - Expressões
Ao se executar esse programa para uma temperatura de 3 graus
Celsius, o resultado será:
Unesp-Campus de Guaratinguetá
4.4 - Expressões
#include <stdio.h>
#include <stdlib.h>
main()
{
float celsius, fahrenheit;
printf("Digite a temperatura de hoje: ");
scanf("%f", &celsius);
fahrenheit = 9.0 * celsius / 5 + 32;
printf("Hoje esta fazendo %.2f graus Fahrenheit!\n", fahrenheit);
system ("pause");
}
Algoritmos 44
Unesp-Campus de Guaratinguetá
4.4 - Expressões
Exercício 2: Fazer uma programa em C para calcular o volume da
esfera. Sabe-se que o volume da esfera é dado por: V = 4 π R 3
3
#include <stdio.h>
#include <stdlib.h>
main()
{
const float pi=3.1416;
float raio, volume;
printf("Digite o valor do raio: ");
scanf("%f", &raio);
volume = (4.0 * pi*raio*raio*raio)/3.0;
printf("O volume da espera de raio %f eh:%f\n",raio, volume);
system ("pause");
}
Algoritmos 45
Unesp-Campus de Guaratinguetá
4.4 - Expressões
resultado = 1.048951
Exemplo15 Termo1← 13.6 + 7.4
Resultado ← Termo1/ Termo2
Termo2 ← 0.7 ∗ 28.6
O exemplo 15 está errado pois na expressão
Resultado a variável Termo2 ainda não está definida.
Algoritmos 46
Unesp-Campus de Guaratinguetá
4.4 - Expressões
Algoritmo Exemplo 14
Código C Exemplo 14
Declaração de Variáveis
Termo1, Termo2, resultado: real
#include<stdio.h>
Inicio
#include<stdlib.h>
Termo1←13.6+7.4
main()
Termo2←0.7*28.6
{
resultado ←Termo1/Termo2
float Termo1, Termo2, resultado;
Escreva(“Resultado=“,resultado)
Termo1= 13.6+7.4;
Fim
Termo2= 0.7*28.6;
Em termos de memória resultado = Termo1/Termo2;
printf(“ Resultado = %f ”,resultado);
(1) 21.0
system(“pause”);
Termo1 Termo2 resultado
}
21.0 20.02
(2)
Termo1 Termo2 resultado
Unesp-Campus de Guaratinguetá
Algoritmo Exemplo 15
Em termos de memória
Variáveis
21.0
Termo1, Termo2, resultado: real (1)
Termo1 Termo2 resultado
Inicio
Termo1←13.6+7.4
21.0
Resultado ← Termo1 / Termo2 (2)
Termo1 Termo2 resultado
Termo2←0.7*28.6
21.0
Escreva(“Resultado=“,resultado) (3)
Termo1 Termo2 resultado
Fim
Algoritmos 4 3 49
Unesp-Campus de Guaratinguetá
#include<stdio.h> X
Algoritmo Exemplo 17 #include<stdlib.h> 0
Variáveis X, A: inteiro main() A seguir o computador pega
{ o valor de X que está na
Inicio
int X; caixinha, soma uma unidade e
X←0 X = 0; devolve o valor resultante a
X ←X+1 variável X
X = X+1;
Escreva(“Valor de X=“,X) printf(“Valor de X= %d”,X); X
Fim system(“pause”);
1
}
Observe que aqui foi feito um
incremento no valor da variável
X
Algoritmos 50
Unesp-Campus de Guaratinguetá
Algoritmos 51
Unesp-Campus de Guaratinguetá
x ← x + 1; x = x + 1; x++; ++x;
Cuidado: As operações são equivalentes quando aparecem
isoladas, mas produzem efeitos diversos quando presentes em
expressões.Veja os exemplos abaixo:
Caso 1 Caso 2
x ←(3 + 6)*13 x ←3 + (6*13)
78
9
117 81
Algoritmos 53
Unesp-Campus de Guaratinguetá
Algoritmos 54
Unesp-Campus de Guaratinguetá
8 + 21 + 20
3
29 + 20
4
49
Algoritmos 55
Unesp-Campus de Guaratinguetá
x ← (8 + 7) * (3 + 4) * 5
1 2
15 * 7 * 5
3
105 * 5
4
525 Algoritmos 56
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
x ←2 ↑3 ↑2 #include <stdio.h>
#include <stdlib.h>
#include <math.h>
2 ↑ 3 ↑ 2
1 main()
{
int X, Y;
2 ↑ 9 X = pow(3,2); printf(“ X = %d ”,X);
X = pow(2,X); printf(“ X = %d ”,X);
2 Y = pow(2,pow(3,2));
printf(“ Y = %d ”,Y);
system(“pause”);
512 = 232 }
Algoritmos 58
Unesp-Campus de Guaratinguetá
-21 + 8 / 4 -6 float X;
3 X = -3*7+pow(2,3)/4-6;
printf(“ X = %f ”,X);
-21 + 2 -6 system(“pause”);
4 5
}
-25 Algoritmos 59
Unesp-Campus de Guaratinguetá
12 − 2 −2 1
(12-2)/(4-3) * (-2/3)*(1/4)
4−3 3 4
Exercício 3: Calcular o valor final de x, com variáveis REAIS.
A) x ←3.0*6; Resultados:
C) X←4;
y ←2; A) x ←18.0;
B) x ←2.0;
y ←3.0; x ←x*y↑(x-y); B) x ←6.0;
x ←x ↑y-x; x ←x/y;
C) x ←8.0;
Algoritmos 61
Unesp-Campus de Guaratinguetá
Exercício 4 Programa em C
C) X ←4;
#include <stdio.h>
y ←2; #include <stdlib.h>
#include <math.h>
x ←x*y↑(x-y); main()
x ←x/y; {
float X, Y;
Observação: No programa X = 4;
ao lado valores inteiros são Y = 2;
atribuídos a X e Y, mas o
resultado obtido é do tipo X = X*pow(Y,X-Y);
real. Isto ocorre, pois ocorre X = X/Y;
uma conversão implícita por printf(“ X = %f ”,X);
conta de X e Y serem
declarados do tipo float system(“pause”);
(ou seja, real). }
Algoritmos 62
Unesp-Campus de Guaratinguetá
a a+b (A+B)/(C–D)
a) +1 A/B+1 b)
b c-d
c)
a
+ 1 A/B+1
b
b
a +
d) c (A + B / C) / ( D – E / F )
e
d -
f Algoritmos 63
Unesp-Campus de Guaratinguetá
b
e) a+ A+B/(C–D)
c-d
f) (a + b) c (A+B)*C/D
d
g) [(a + b) ] c d ((A+B) C) D
OBS: Não se esqueça que aqui está se usando linguagem algorítmica (PORTUGOL)
Algoritmos 64
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Arredondamento
ceil(): Retorna o primeiro float sem casas decimais acima. Recebe um float
como argumento. Exemplo: ceil (45.98561) resultaria em 46.
floor(): Retorna o primeiro float sem casas decimais abaixo. Recebe um
float como argumento. Exemplo: floor (45.98561) resultaria em 45.
Algoritmos 67
Unesp-Campus de Guaratinguetá
Logarítmicas
log (x): Retorna o valor do logaritmo de x na base 2. Sendo x do tipo
double.
log10(x): Retorna o valor do logaritmo de x na base 10. Com x do tipo
double.
Algoritmos 68
Unesp-Campus de Guaratinguetá
H= [ ( a + b ) ]d h= pow ( A + B, D);
J= sen a + cos a
J= ( sin (A) + cos (A) ) / tan (A);
tg a
K= - b + b 2 − 4 ac K= - B + sqrt ( pow(B,2) – 4 * A * C ) / 2 *A
2a
Algoritmos 69
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
No caso da constante 392.73, ela será convertida para inteiro mas o valor
armazenado será 392, que não é exatamente igual ao anterior.
// Programa Exemplo 27
#include <stdlib.h>
#include <stdio.h>
main()
Ao se executar o programa
anterior, teremos:
{
int vi, a = -17;
float vr, b = 392.73;
printf(“Atribuir inteiro para vi e real para vr \n”);
vi = a;
vr = b;
printf(“vi = %d \n”, vi);
printf(“vr = %f \n”, vr);
// Continuação Exemplo 14
printf(“Atribuir inteiro para vr e real para vi \n”);
vr = a;
vi = b;
printf(“vi = %d \n”,vi);
printf(“vr = %f \n”,vr);
system(“pause”);
Algoritmos 75
}
Unesp-Campus de Guaratinguetá
Unesp-Campus de Guaratinguetá
Algoritmos 78
Unesp-Campus de Guaratinguetá
Programa em C
Exemplo 16: Seja a atribuição
Abaixo, onde x e y são inteiros #include <stdio.h>
#include <stdlib.h>
x ← 5.0;
main()
y ←2.0; {
r ←float(x)/y; int X, Y;
float R;
X = 5.0;
Observação: O resultado Y = 2.0;
da divisão entre dois
R = float(X)/Y;
inteiros seria inteiro, mas o
resultado a ser fornecido printf(“ float(X)/Y = %f ”,R);
será real (float), devido ao system(“pause”);
uso do operador float(X).
}
Algoritmos 79
Unesp-Campus de Guaratinguetá
4.6 - Aplicações
(1) Leia(A,B);
x y x
(2) Mostre(A,B); (3)
(3) C ← A; A B C
(4) A ← B;
(5) B ← A; x y x
(6) Mostre(A,B);
(4)
A B C
y x x
(5)
A B C
Algoritmos 81
Unesp-Campus de Guaratinguetá
4.6 - Aplicações
Algoritmo Programa em C
// Incluir bibliotecas !
(1) Leia(A,B);
main()
(2) Mostre(A,B); {
(3) C ← A; int A, B, C;
printf(“Digite A e B: ”);
(4) A ← B;
scanf(“%d %d”,&A,&B);
(5) B ← A; printf(“A = %d e B = %d \n”,A,B);
(6) Mostre(A,B); C = A;
A = B;
B = A;
printf(“A = %d e B = %d \n”,A,B);
system(“pause”);
}
Algoritmos 82
Unesp-Campus de Guaratinguetá
4.6 - Aplicações
Programa em C
#include <stdio.h>
void main ()
{int Dias; // Declaracao de Variaveis
float Anos;
printf ("Entre com o número de dias: "); // Entrada de Dados
scanf ("%d",&Dias);
Anos=Dias/365.25; // Conversao DiasAnos
printf ("\n\n%d dias equivalem a %f anos.\n",Dias,Anos);
system("pause");
Algoritmos 83
}
Unesp-Campus de Guaratinguetá
4.6 - Aplicações
Problema 3: 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.
Programa em C
A P=A+A*i S T
// Incluir bibliotecas !
main()
{
0 1 2 3 float A, P, S, T, i;
Algoritmo printf(“Digite investimento e juros: ”);
scanf(“%f %f”,&A,&i);
Leia(A); P = A*(1+i);
i ← 0.01; S = P*(1+i);
P ← A + A*i; T = S*(1+i);
S ← P + P*i; printf(“Valor final = %f \n”, T);
system(“pause”);
T ← S*(1+i);
}
Escreva(T); Algoritmos 84
Unesp-Campus de Guaratinguetá
4.6 - Aplicações
Problema 4: Refazer o problema 3, mas considerar que (a) ao final
do mês o banco desconta R$ 10,00 e (b) imprimir o saldo em cada
mês.
Item (a) A F
Subtrair R$10,00
ao final de cada mês
0 1 2 3
Item (b) A
Ao final de cada mês
mostrar o valor
0 1 2 3
Algoritmos 85
Unesp-Campus de Guaratinguetá
4.6 - Aplicações
Algoritmo Programa em C
4.6 - Aplicações
Questão Adicional: Qual valor inicial A deve ser investido para que
o valor final F, apesar dos descontos mensais de R$ 10,00 seja igual
a A.
Fórmula geral
A F
no Mês: F = A*(1+i)n
C: F = A*pow(1+i,n); 0 1 ••• n 87
Algoritmos
Unesp-Campus de Guaratinguetá
4.6 - Aplicações
Autores
Prof. Dr. Aníbal Tavares
Profa. Dra. Cassilda Ribeiro
Algoritmos 89