Constantes, Variáveis e Tipos
de Dados
FARRER, H. et. alli.
Algoritmos Estruturados. 3a.
edição. Rio de Janeiro. LTC –
1999. Capítulo 1
Constantes
Uma constante é um determinado valor fixo
que não se modifica ao longo do tempo,
durante a execução de um programa.
Uma constante pode ser um número, um
valor lógico ou uma seqüência de
caracteres.
Conforme o seu tipo, a constante é
classificada como sendo numérica, lógica
ou literal.
Constantes
Constante Numérica
A representação de uma constante numérica nos
programas é feita no sistema decimal, podendo ser um
número com ou sem parte fracionária.
A constante numérica pode ser positiva ou negativa, de
acordo com o sinal que precede os algarismos
formadores do número. Caso não exista um sinal, a
constante é considerada positiva.
Exemplos:
15
23.5
-10
Constantes
Constante Lógica
É um valor lógico, isto é, que só pode ser
falso ou verdadeiro, usado em
proposições lógicas.
Só existem duas constantes deste tipo,
sendo representadas pelas palavras falso
e verdadeiro.
Dependendo da linguagem não existe a
Constantes
Constante Literal
Uma constante deste tipo pode ser qualquer seqüência de
caracteres (letras, dígitos ou símbolos especiais) que
forme um literal com algum significado para o problema
em estudo.
As constantes literais devem aparecer no programa entre
aspas para que não sejam confundidas com outro item
qualquer.
Exemplos:
“Introdução a Computação”
“12345”
“XYZ”
“08/03/2005”
“FALSO”
Tipos de Dados
•
Conforme visto anteriormente as constantes
podem ser numéricas, literais ou lógicas,
porém, nas linguagens de programação
devemos definí-las com o tipo de dados que
representam.
•
Em C existem uma série de tipos de dados que
podem ser levados em consideração.
•
O tipo de dado informa a quantidade de
memória que ela ocupará e o modo como um
valor deverá ser armazenado e interpretado.
Tipos de Dados
Tipos de Dados
Tipo
Bits
Bytes
Escala
char
8
1
-128 a 127
int
32
4
-2.147.483.648 a 2.147.483.647
short
16
2
-32.765 a 32.767
long
32
4
-2.147.483.648 a 2.147.483.647
unsigned
char
8
1
0 a 255
unsigned
32
4
0 a 4.294.967.295
unsigned
long
32
4
0 a 4.294.967.295
unsigned
short
16
2
0 a 65.535
float
32
4
3,4 x (10^-38) a 3,4 x (10^38)
double
64
8
1,7 x (10^-308) a 1,7 x (10^308)
Variáveis
Na matemática, uma variável é a representação
simbólica dos elementos de um certo conjunto.
Nos programas, uma variável corresponde a uma
posição de memória, cujo conteúdo pode variar ao
longo do tempo durante a execução de um
programa.
Embora uma variável possa assumir diferentes
valores, ela só pode armazenar um valor a cada
instante.
Uma variável possui valor inicial indefinido
(chamado lixo), a menos que algum comando o
especifique.
Variáveis
Formação dos identificadores
Um identificador é formado por um ou mais caracteres,
sendo que o primeiro caractere deve, obrigatoriamente,
ser uma letra ou sublinhado (underscore) e os caracteres
seguintes, letras, dígitos ou sublinhado, não sendo
permitido o uso de outros símbolos especiais.
Exemplos:
A
Aluno
XYZ123
_CADE
OI235
Variáveis
•
Formação dos Identificadores
–
Letras maiúsculas e minúsculas são
tratados diferentemente pela
linguagem C
–
Um identificador não pode ser igual a
uma palavra chave e não deve ser
igual a nome de função em um
Variáveis
Declaração de variáveis
As variáveis só podem armazenar valores de
um mesmo tipo, de maneira que também são
classificadas de acordo com um dos tipos
fornecido pela linguagem.
Para indicar o tipo de uma ou mais variáveis é
usada a declaração de variáveis.
Uma vez declarada a variável, qualquer
referência que se faça ao seu identificador
implica a referência ao conteúdo do local da
memória representado pelo mesmo.
Variáveis – Declaração de
Variáveis
•
Forma Geral
tipo lista_de_variáveis;
•
Exemplos:
int n1, n2, i, j;
Variáveis - Observações
Os nomes, em um determinado contexto,
são únicos, não podendo ser usados
repetidamente, mesmo com tipos
diferentes.
É conveniente manter-se o uso de
maiúsculas, ou minúsculas, de acordo
com a definição, evitando o uso
indistinto.
Variáveis
•
As variáveis são de 3 tipos
dependendo do local em que foram
declaradas:
–
variável local;
–
variável formal – função (não será
apresentado agora);
Variáveis Locais
•
É uma variável que só existe dentro do
bloco no qual ela foi criada.
•
Um bloco (comando composto) em C
começa com { (abre chave) e termina
com } (fecha chave).
Variáveis Locais
/
* ProgC002.cpp - Apresenta a declaração de variáveis locais */ # include <iostream># include <cstdlib> int main ( ){
int valor, i; valor = i = 0;
std::cout<<"Valor da variavel valor: "<<valor<<"\nValor da variavel i:"<<i<<"\n\n"; std::cout << "Forneca um novo valor inteiro para a variavel valor: ";
std::cin >> valor;
std::cout << "Forneca um novo valor inteiro para a variavel i: "; std::cin >> i;
std::cout<<"\n\nValor da variavel valor: "<<valor<<"\nValor da variavel i: "<<i<<"\n\n";
system("PAUSE"); return 0;
Variável local declarada. Só reconhecida dentro de main.
Variáveis Globais
•
São as variáveis que estão disponíveis ao programa
inteiro, qualquer bloco do programa pode acessá-las
sem erro.
•
Estas variáveis devem ser declaradas fora de todas
as funções e no começo do programa principal.
•
O uso de variáveis globais deve ser evitado porque
estas ocupam espaço na memória durante toda a
execução do programa.
•
Deve ser explorado o uso de funções
parametrizadas para melhorar a organização e a
estruturação de programas em C.
Variáveis Globais
/* ProgC003.cpp
Apresenta declaração de variáveis globais */
# include <iostream>
# include <cstdlib>
using namespace std;
char Caractere;
int main ( ){
Caractere = 'a';
cout << "Valor: " << Caractere;
system("PAUSE > null");
return 0;
}
Declaração da Variável Global Atribuição de valor a uma variávelInicialização de Variáveis
•
Para inicializar uma variável em C,
deve-se simplesmente atribuir um valor
a ela.
•
Forma Geral
Inicialização de Variáveis
/* ProgC004.cpp
Apresenta formas de inicialização de variveis */
# include <iostream>
# include <cstdlib>
using namespace std;
int main ( ){
char Caractere = 'a';
int Primeiro = 0;
float Salario = 120.96;
cout << "Valor de Caractere: " << Caractere;
cout << "\nValor de Primeiro: " << Primeiro;
cout << "\nValor de Salario: " << Salario;
system("PAUSE > null");
return 0;
Declaração e inicialização de variável
Inicialização de variável
//ProgC005.cpp Cria duas variáveis do tipo int #include <iostream> #include <cstdlib> using namespace std; int main() { int num1; num1 = 44; int num2; num2 = num1 + 20;
cout << "\no primeiro numero e " << num1;
cout << "\no segundo numero e \"num1 + 20 \" = "<< num2 << endl; system("PAUSE");
Declaração de variável
Declaração de constantes
•
A palavra-chave const é utilizada para
declarar constantes no programa em
linguagem C/C++.
•
Ela assegura que a variável associada
não deve ser alterada em todo o
programa.
Declaração de constante
// ProgC006.cpp - Declaracao de Constantes #include<iostream>
using namespace std; int main() {
const float pi=3.141592; float raio, area, comp;
cout << "Calculo da area de um circulo e do perimetro de sua circunferencia." << endl; cout << "Por favor, entre com o raio: ";
cin >> raio;
area = pi * raio * raio; comp = 2 * pi * raio;
cout << "A area do circulo e: " << area << endl;
cout << "O comprimento de sua circunferencia e: " << comp << endl; Declaração de constante
Uso de constante
Finaliza a saída de dados, mudando de linha
Exercícios
Identificar o tipo de cada uma das
constantes:
21
“BOLA”
“VERDADEIRO”
Exercícios
Informe se os nomes de identificadores são válidos
ou inválidos:
VALOR
X2
3 X 4
“NOTA”
AH!
B248
KM/H
Criar as declarações para as variáveis NOM,
PROF, ID e SALÁRIO que serão utilizadas para
armazenar o nome, profissão, idade e salário de
uma pessoa.
Tópicos para Discussão
Constantes
Variáveis
Formação de identificadores
Operadores
FARRER, H. et. alli.
Algoritmos Estruturados. 3a.
edição. Rio de Janeiro. LTC –
1999. Capítulo 1
Operadores
Possibilitam que operações sejam realizadas.
Descrições de transformações de valores de
mesmo tipo, ou de tipos diferentes.
Operadores da linguagem C
Atribuição
Aritméticos
Relacionais
Lógicas
Operação de Atribuição
A linguagem C usa o sinal de igual (=)
como operador de atribuição. O
formato geral de uma atribuição em C
é o seguinte:
nome_da_variável = expressão;
A novidade em C é que o operador de
atribuição pode entrar em qualquer
Operação de Atribuição
Outra particularidade é a conversão
automática de tipos. O valor do lado direito
da atribuição é convertido no tipo do lado
esquerdo.
Se o tamanho em bytes do tipo do lado
esquerdo for menor do que o valor
atribuído, alguma informação será perdida
(os bits mais significativos do valor serão
desprezados).
Operação de Atribuição
/* ProgC007.cpp
Programa que demonstra atribuições simples em C */
# include <iostream>
int main ( ){
int X = 10;
char Ch = 'a';
float F = 12.5;
Ch = X; // Os bit + significativos de X sao ignorados
X = F;
F = Ch;
F = X;
}
Declaração de variáveis e atribuição de valores iniciais.
Atribuição de variáveis de tipos diferentes. As conversões ocorrem de forma automática, podendo ocorrer alguns problemas.
Expressões Aritméticas
Denomina-se expressão aritmética aquela cujos operadores são
aritméticos e cujos operandos são constantes e/ou variáveis do tipo
numérico.
As operações básicas adotadas são as da Matemática, a saber:
Adição Subtração Multiplicação Divisão Potenciação Radiciação
Exemplos:
X + Y X – 10 2 * Nota TOTAL / N SOMA ** 2Expressões Aritméticas
A notação utilizada para expressões aritméticas nos programas
C++ é, basicamente, a mesma da Matemática, a menos das
seguintes restrições:
Não é permitido omitir o operador de multiplicação, o que é
comum nas expressões matemáticas.
Nas expressões aritméticas, as operações guardam entre si
uma relação de prioridade, tal como na matemática:
Potenciação, radiciação
Multiplicação, divisão
Adição, subtração
Para se obter uma sequência de cálculo diferente, vários
níveis de parênteses podem ser usados para quebrar as
prioridades definidas.
Não é permitido o uso de colchetes e chaves, uma vez que
Operadores Aritméticos
Os operadores de Incremento (++) e Decremento (--), têm
algumas particularidades:
As instruções x = x + 1 e ++x, são instruções equivalentes em C,
assim como, x = x - 1 e -- x.
Os operadores de incremento e decremento podem preceder (+
+x) ou suceder (x++) o operando.
Na instrução ++x ou --x, a operação de incremento ou decremento é
realizada antes de usar o valor do operando.
Na instrução x++ ou x--, a operação de incremento ou decremento é
Incremento e decremento
•
O operador de incremento (++) opera sobre o nome de
uma variável e adiciona 1 ao valor da variável operando
•
A instrução
x = x + 1; //adiciona 1 a x
•
Equivale a
++x; //adiciona 1 a x
•
A sintaxe e o modo de uso do operador decremento (--) é
idêntica à do operador de incremento, exceto porque a
variável é decrementada de 1
•
A instrução
x = x – 1; //decrementa 1 de x•
Equivale a
--x; //decrementa 1 de x•
x++ e ++x são diferentes
•
n=x++ //sendo x=1, n será 1 e x será 2
Operadores Aritméticos – Exemplo de
Incremento e Decremento
/* ProgC008.cpp
Demonstra o uso do Operador de Incremento */
#include<iostream>
#include<cstdlib>
using namespace std;
int main ( ){
int Numero1, Numero2;
Numero1 = 10; Numero2 = ++Numero1;
cout << "Numero1= " << Numero1 << " Numero2= " << Numero2 <<
endl;
Numero1 = 10; Numero2 = Numero1++;
cout << "Numero1= " << Numero1 << " Numero2= " << Numero2 <<
endl;
system("PAUSE > null");
return 0;
}
Atribuição de valores.
Apresentação dos resultados. As duas variáveis ficam com o valor 11.
Atribuição de valores.
Operadores Aritméticos –
Precedência de Operadores
A precedência dos operadores é:
++ -- (incremento, decremento)
* / % (multiplicação, divisão, resto)
+ - (adição, subtração)
Para alterarmos a ordem de
precedência em uma expressão,
devemos usar o agrupamento, que é
representado pelos parênteses.
Expressões Lógicas
É comum nos programas surgirem
situações em que a execução de uma ação
está sujeita a uma certa condição.
Esta condição é representada no texto do
programa por meio de uma expressão
lógica.
Denomina-se expressão lógica a
expressão cujos operadores são lógicos e
cujos operandos são relações, constantes
e/ou variáveis do tipo lógico.
Operadores Relacionais e
Lógicos
Operadores relacionais tratam das
relações entre valores e os
operadores lógicos fazem a
composição de expressões
relacionais.
Em C um valor é VERDADEIRO se for
diferente de zero, e é FALSO se for
Operadores Relacionais e
Lógicos
Expressões Lógicas –
Conjunção - p && q
Duas proposições quaisquer podem ser
combinadas por meio do && para formar
uma proposição composta, chamada de
conjunção das proposições originais.
A conjunção de duas proposições p e q é
representada simbolicamente por p && q
Expressões Lógicas –
Conjunção - p && q
Exemplo:
Seja p “Está chovendo” e seja
q “O Sol está brilhando”.
Assim, p && q corresponde à
proposição “Está chovendo e
o Sol está brilhando”.
Se p é verdadeiro e se q é
verdadeiro, então p && q será
verdadeiro; caso contrário p
&& q será falso.
A B A&&B
0
0
0
0
1
0
1
0
0
1
1
1
Expressões Lógicas –
Disjunção - p || q
Duas proposições quaisquer podem
ser combinadas pela palavra ou para
formar uma proposição composta,
chamada de disjunção das
proposições originais.
A disjunção de duas proposições p e q
é representada simbolicamente por p ||
Expressões Lógicas –
Disjunção - p || q
Exemplo:
Seja p “Pedro estudou inglês
na universidade” e seja q
“Pedro morou nos Estados
Unidos”.
p || q corresponde à
proposição “Pedro estudou
inglês na universidade ou
morou nos Estados Unidos”.
Se p é verdadeiro ou se q é
verdadeiro, ou ambos são
verdadeiros, então p || q será
verdadeiro; caso contrário p ||
q será falso.
A
B
A||B
0
0
0
0
1
1
1
0
1
1
1
1
Expressões Lógicas –
Negação - !p
Dada uma proposição p qualquer, uma
outra proposição, chamada negação
de p, pode ser formada escrevendo-se
o contrário de p.
Simbolicamente, a negação de p é
designada por !p
Expressões Lógicas –
Negação - !p
Exemplo:
Seja p “Paris está na França”
então !p pode ser escrita
como: “É falso que Paris
esteja na França” ou “Paris
não está na França”.
Se p é verdadeiro, então !p é
falso, caso contrário !p é
verdadeiro.
A
!A
0
1
1
0
Operadores Relacionais e
Lógicos
Operadores Lógicos
&& é o AND (e lógico)
|| é o OR (ou lógico)
! é o NOT (negação)
Precedência dos operadores
! (negação)
Artiméticos
>, >=, <, <=, ==, != (maior, maior ou igual, menor, menor
ou igual, igual, diferente).
&& (e lógico)
|| (ou lógico)
Todo resultado de uma expressão lógica e/ou
Operadores Relacionais e
Lógicos - Exemplo
/* ProgC009.cpp
Programa que demonstra o uso dos operadores logicos */
#include<iostream>
#include<cstdlib>
int main ( ){
int N1 = 1, N2 = 0, N3;
N3 = N1 && !N2 || !N1 && N2;
if (N3)
std::cout << "1";
else
std::cout << "0";
system("PAUSE > null");
return 0;
Declaração de variáveis e atribuição de valores iniciais. Pela prioridade e valores atribuídos a expressão terá valor final 1. Observe: N3 = 1 && 1 || 0 && 0
N3 = 1 || 0 N3 = 1
Expressão if (N3) está perguntando se o valor de N3 é verdadeiro. Como ele é diferente de 0, ele é verdadeiro e dessa forma a condição é satisfeita. Caso contrário, escreveria o valor 0.
Operadores Relacionais e
Lógicos - Exemplo
/* ProgC010.cpp - Programa que apresenta resultado de
uma operacao relacional */
#include<iostream>
#include<cstdlib>
int main ( ){
int X = 1;
int Y;
Y = X > 10;
std::cout << Y;
system("PAUSE > null");
return 0;
Declaração de variável e atribuição de valor inicial.
Verifica se valor de X > 0 e apresenta o valor 0 ou 1, de acordo com a condição.
Expressões
Uma expressão é a composição de
operadores lógicos, aritméticos e
relacionais, variáveis e constantes.
Podemos forçar para que o resultado
de uma expressão seja de um tipo
específico através do uso de um
molde (CASTS) de tipo. Assim:
(float) Numero / 2;
Expressões
Espaços e parênteses podem ser
usados a vontade em expressões.
O uso de parênteses e espaço é
aconselhado no sentido de aumentar a
legibilidade do programa.
Os parênteses podem mudar a ordem
de precedência dos operadores.
Expressões
Outra particularidade de linguagem C
refere-se ao uso de abreviações.
A linguagem C admite que algumas
atribuições sejam abreviadas. Assim:
X = X + 10; equivale a X += 10;
De uma forma geral:
variável = variável operador expressão
equivale a
Algumas Funções
Matemáticas
A linguagem C/C++ possui várias funções
matemáticas disponíveis na biblioteca
Entrada de dados
As unidades de entrada e saída são
dispositivos que possibilitam a comunicação
entre o usuário e o computador.
Os comandos de entrada e saída são as
ferramentas para determinar o momento da
entrada dos dados para o programa e a
Entrada e Saída
O objeto cin aguarda para que o
usuário escreva alguma coisa
utilizando o teclado e pressione enter,
em seguida, por meio do operador de
extração >>, que coloca a entrada de
dados na variável que a conterá.
As definições necessárias ao uso do
cin e >> estão no arquivo iostream
Comando cin
//ProgC011.cpp - Calcula a sua idade em dias
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
cout << "\nDigite a sua idade em anos: ";
int anos;
cin >> anos;
cout << "\nA sua idade em dias e: " << (anos*365) << endl;
system("PAUSE");
Comando cin
//Prog012 - Mostra o uso de cin com várias entradas //Calcula a média de 4 notas
#include <iostream> #include <cstdlib> using namespace std; int main(){
cout << "\nDigite as notas das 4 provas: "; float p1, p2, p3, p4;
cin >> p1 >> p2 >> p3 >> p4; float media = (p1+p2+p3+p4)/4.0;
cout << "\nMEDIA: " << media << endl; system("PAUSE");
return 0;
Teste de mesa
//ProgC013 - Soma de 2 números
#include <iostream>; // Biblioteca para entrada e saída de dados
using namespace std; // Métodos default para entrada e saída de dados int main (){
int num1, num2, soma;
cout << "Soma de dois numeros" << endl; cout << "Entre com o primeiro numero: "; cin >> num1;
cout << "Entre com o segundo numero: "; cin >> num2;
soma = num1 + num2;
Teste de Mesa
•
Utilizado para verificar erros de
código.
•
A partir de dados conhecidos faz-se a
simulação do código.
•
Saber escolher os dados de teste é
muito importante.
Tópicos para Discussão
Expressões
Expressões Aritméticas
Expressões Lógicas
Relações
Álgebra de Proposições
Teste de Mesa
Exercícios
Utilizando R1, R2, ..., RN como resultados
de operações, represente a prioridade das
operações:
a * (c * b + (c - d) ** 2)
(c - d) * 1 **(k / (x + y) ** 4)
(-c + (d ** 2 – 5 / a + c) ** 0.5) / (6 * k)
a * (c * b + (c - d) ** 2) > c + 4 * d
(c - d) * 1 **(k / (x + y) ** 4) > 0 && c * k – (x + y)<4
(-c + d) > 6 && (a + c) < -5 || a == 0
Exercícios
Faça um programa que deverá
calcular e escrever a área da figura
mostrada abaixo. Os valores de A, B
e C serão fornecidos pelo usuário.
A
Exercícios
Modifique o programa anterior para
que ele agora calcule o valor da área
hachurada da casa sabendo que as
janelas são quadradas e têm lados
iguais a um terço de C.
A
Exercícios
Crie um programa que imprima a hipotenusa de
um triangulo retângulo de acordo com a leitura de
seus catetos.