Buscar

02 Tipos de Dados Variaveis e Entrada Saida

Prévia do material em texto

Tipos de Dados, Variáveis e 
comandos de entrada e saída
DCC 119 – Algoritmos
22
Pontos importantes da última aula
� Sistemas de Numeração: base, notação
posicional e conversão de base.
� Sistemas Computacionais: processador, 
memória, linguagens de programação e sistema 
operacional.
� Algoritmos: ação, estado, processo, padrão de 
comportamento, algoritmo, aspectos estático e 
dinâmico de um algoritmo e formas de 
representação de algoritmos.
33
Introdução
� Para cada comando serão apresentadas a sua:
� sintaxe: formato geral do comando que deve ser 
aceita e respeitada como padrão.
� semântica: o significado da ação realizada pelo 
comando, em tempo de execução.
� No texto (estático) de um programa (ou algoritmo), um 
valor pode ser representado na forma de constante 
ou de variável.
� A constante é representada em um programa 
diretamente pelo seu valor (que não se altera 
durante a execução do programa).
44
Variáveis
� A variável é representada no texto de um 
programa por um nome que corresponde a uma 
posição da memória que contém o seu valor.
� Em tempo de execução, o nome da variável 
permanece sempre o mesmo e seu valor pode 
ser modificado. 
� Nome de variável: é criado pelo programador e 
deve ser iniciado por uma letra que pode ser 
seguida por tantas letras, algarismos ou 
sublinha quanto se desejar e é aconselhável que 
seja significativo do valor que ela representa.
55
Variáveis
Exemplos de nomes de variáveis:
Certo:
nome, telefone, salario_func, x1
Errado:
1ano, sal/hora, _nome
66
Tipos de Dados
� Todo valor (constante ou variável) de um 
programa tem um tipo de dados associado.
� Um tipo de dados é constituído de dois conjuntos: 
um conjunto de objetos (domínio de dados) e de 
um conjunto de operações aplicáveis aos objetos 
do domínio.
� Toda linguagem de programação tem embutido um 
conjunto de tipos de dados, também chamados de 
implícitos, primitivos ou básicos.
� Tipos de dados básicos: inteiro, real, caracter e 
lógico.
� Em C, os tipos acima são, respectivamente, int, 
float/double e char. Não há o tipo lógico em C.
77
Tipos de Dados Básicos
inteiro:
Domínio: conjunto dos inteiros.
Operações: usam dois argumentos inteiros e, de 
acordo com o resultado são:
+, -, *, div, e mod: resultado inteiro
/: resultado real
<, ≤, =, >, ≥ e ≠: resultado lógico
real:
Domínio: conjunto dos reais.
Operações: usam dois argumentos reais e, de 
acordo com o resultado são:
+, -, * e /: resultado real
<, ≤, =, >, ≥ e ≠: resultado lógico
88
Tipos de Dados Básicos
caracter:
Domínio: conjunto de caracteres alfanuméricos.
Operações: usam dois argumentos do domínio e 
fornecem resultado lógico: <, ≤, =, >, ≥ e ≠
lógico:
Domínio: {verdadeiro, falso}.
Operações: usam dois argumentos do domínio e 
fornecem resultado lógico:
Conectivos lógicos: conjunção (e, ^), disjunção 
(ou, ∨), disjunção exclusiva (xou, ⊕), negação 
(não, ¬). A negação trabalha com somente um 
argumento.
Conectivos relacionais: = e ≠.
9
Operadores
===
!=≠
>=≥
<=≤
%Mod
CPseudolinguagem
A tabela abaixo apresenta os operadores que são
diferentes em C em relação a pseudolinguagem.
O símbolo “=“ em C é utilizado para atribuição, 
correspondendo ao “←” do português estruturado. 
Não há correspondente direto em C para o operador 
“div”.
1010
O tipo básico associado a uma constante fica 
determinado pela própria apresentação da 
constante.
Tipos de Constantes e de Variáveis
Exemplos:
7 → cte. inteiro
7.0 ou 7. → cte. real
‘7’ → cte. caracter
falso → cte. lógico
Para as variáveis, devem ser feitas no início do 
programa (ou de um bloco) as declarações (de 
tipo) de variáveis.
1111
Declaração de Variáveis
� Sintaxe: <tipo> nome (s);
Implicações da declaração de uma variável:
� Alocação de um espaço na memória que 
possa conter um valor do seu tipo.
� Associação do endereço dessa posição da 
memória ao nome da variável.
Declarada uma variável, toda vez 
que ela for referenciada em qualquer 
comando do programa, o 
computador vai trabalhar com o 
conteúdo de seu endereço, que é o 
valor da variável.
Exemplos:
caracter f, n; 
inteiro idade; 
real a, b, X1;
lógico vendido;
1212
Exercícios
1) Indique quais das constantes abaixo são do tipo inteiro:
( )1000 ( ) “0” ( )“-900” ( )verdadeiro ( )-456 ( )34 ( )-1.56
2) Indique quais das constantes abaixo são do tipo real:
( ) -678.0 ( ) “0.87” ( ) “-9.12” ( ) falso ( ) -456.0 ( ) “Cinco” ( ) -1.56
3) Indique quais das constantes abaixo são do tipo lógico:
( ) -678.0 ( ) “0.87” ( ) “-9.12” ( )falso ( )-456 ( )“Verdadeiro” ( )-1.56
1313
Exercícios
Indique com um X os nomes válidos para uma variável:
( ) endereco
( ) 21brasil
( ) nome_usuario
( ) nome*usuario
( ) cidade3
( ) #cabec
1414
Comandos Básicos
� Comando de atribuição
� Sintaxe: variável � expressão;
� Semântica: atribuir à variável o resultado da 
expressão.
� Expressões aritméticas: fornecem resultado 
numérico (inteiro ou real).
� Operações básicas: +, -, *, /
� Exponenciação: potencia( A + B , N)
� Funções matemáticas comuns: sen (X), cos (X), abs (X), 
raiz (X), arctan (X), exp (X), log (X), ln (X) etc.
� Operadores para inteiros:
� M mod I: resto da divisão inteira de M por I
� M div I: quociente da divisão inteira de M por I
15
Comandos Básicos
Comando de atribuição
Expressões lógicas: fornecem resultado lógico.
Conectivos relacionais: (<, ≤, =, >, ≥ e ≠)
Conectivos lógicos:
Conjunção: e, ⋀
Disjunção: ou, ∨∨∨∨
Disjunção Exclusiva: xou, ⊕
Negação: não, ¬
VFFFFF
VVVFVF
FVVFFV
FFVVVV
não AA xou BA ou BA e BBA
Tabela Verdade: Sejam A e B duas expressões lógicas.
1616
Comandos Básicos
� Comando de atribuição
Prioridade de execução das operações em uma 
expressão:
1º. Parênteses (dos mais internos para os mais externos)
2º. Expressões aritméticas, seguindo a ordem: funções, * e /, + e –
3º. Comparações: <, ≤, =, >, ≥ e ≠
4º. não
5º. e
6º. ou e xou
7º. Da esquerda para a direita quando houver indeterminações.
1717
Comandos Básicos
� Comentários
inteiro maior; //maior valor lido
//ler os valores das variáveis A, B, C
� Pseudocomando
“leia os valores das variáveis A, B, C”;
“Classifique os valores lidos em ordem crescente”;
� Comandos de entrada e saída
leia (a, x); //serão lidos os valores das variáveis a, x nesta ordem
imprima (“Valor de N =”, n, “Fatorial de N =”, fat);
1818
Comandos Básicos
� Bloco
(1) Conjunto de comandos entre { }
(2) Pode-se declarar variáveis em seu interior.
(3) Delimitar o escopo das variáveis.
{
<declaração de variáveis>;
<comandos>;
}
1919
Estruturas de Controle
1. Seqüência Simples
C1;
C2;
...
Cn;
Exemplo:
leia (X, Y);
A � X + Y;
B � X – Y;
imprima (A, B);
Semântica: o controle de fluxo de execução 
entra na estrutura, executa comando por 
comando, de cima para baixo e sai da estrutura. 
Sintaxe: Exemplo em C:
scanf(“%d %d”, &X, &Y);
a = x + y;
b = x - y;
printf (“%d %d”, a, b);
2020
Até agora, foram estudados os seguintes
recursos visando especificamente a 
construção de algoritmos:
• Conceito de Constante, Variável e Tipos de Dados.
• Tipos de Dados Básicos.
• Declaração de Variáveis.
• Construção de Expressões (Aritmética e Lógica).
• Sintáxe e Semântica dos Comandos de Atribuição
e de Entrada e Saída.
• Seqüência Simples (primeiro dos três tipos de 
estruturas de controle).
Já é possível criar alguns algoritmos simples, 
bastando adotar um método de desenvolvimento.
2121
Métodos de Criação de Programas
a) Método Direto1. Entender o problema (análise do enunciado).
2. Descrição de variáveis: lista contendo para 
cada variável, o seu nome, uma descrição de 
seu objetivo e o seu tipo. Iniciar a lista pelos 
dados de entrada e pelos resultados a 
produzir.
3. Estudo de métodos: estabelecer (pelo 
menos) um método para obtenção de cada 
resultado pedido e para cada controle de 
processamento. Caso o método escolhido 
necessite utilizar novas variáveis, incluí-las na 
lista de descrição de variáveis.
2222
Métodos de Criação de Programas
a) Método Direto 
1. Elaborar um algoritmo baseado no estudo de 
métodos, observando a seguinte seqüência:
principal
{
definição de novos tipos;
declaração de variáveis;
inicialização de variáveis;
corpo do algoritmo controlando:
leitura;
processamento;
saída;
}
2323
Métodos de Criação de Programas
a) Método Direto
1. Testar o algoritmo, considerando, se possível, 
todas as alternativas de entrada.
2. Programa: traduzir o algoritmo para uma 
linguagem de programação e testá-lo 
exaustivamente no computador.
3. Documentação: o conjunto de documentos 
produzidos ao longo do método direto constitui 
a primeira documentação técnica do programa.
2424
Métodos de Criação de Programas
b) Método dos Refinamentos Sucessivos 
Inicialmente, manter um nível mais alto de 
abstração (atenção em o que fazer e não em 
como fazer).
Dispensa-se o estudo de métodos e parte-se 
logo para a elaboração do algoritmo sendo que 
cada tarefa lógica distinta será representada por 
um pseudocomando.
2525
Métodos de Criação de Programas
b) Método dos Refinamentos Sucessivos 
A primeira versão do algoritmo é rapidamente 
obtida pela listagem de alguns poucos 
pseudocomandos que deverão ser detalhados em 
refinamentos posteriores (em função de outros 
pseudocomandos ou em função da própria 
pseudolinguagem).
Depois que todos os pseudocomandos já
estiverem detalhados em termos da 
pseudolinguagem, pode-se juntar as partes 
montando a versão final e completa do algoritmo. 
2626
Métodos de Criação de Programas
c) Método Misto
Controles de caráter geral e as ações mais 
simples são desenvolvidas diretamente e a 
técnica de refinamentos sucessivos fica somente 
para as ações lógicas consideradas mais 
complexas.
Observação: Em qualquer dos métodos, pode-se 
desenvolver as ações lógicas bem definidas na 
forma de procedimentos (ou funções). A 
utilização destes módulos funcionais constitui 
uma técnica (programação modular) que 
geralmente diminui o esforço do programador e 
aumenta a qualidade de seus programas. 
2727
Exercícios
1.Desenvolver os algoritmos a seguir, utilizando o 
método direto.
a)Ler uma temperatura em graus Celsius e 
apresentá-la convertida em graus Fahrenheit. A 
fórmula de conversão: F ← (9*C+160)/5
b)Calcular e apresentar o volume de uma lata de 
óleo cilindrica, a partir da leitura do raio da base 
e da altura.
c) Ler os valores do comprimento, da largura e da
altura de uma caixa, calcular e imprimir o seu
volume. 
2828
Exercícios
2. Construir um algoritmo para ler 5 valores 
inteiros, calcular e imprimir a soma desses 
valores.
3. Construir um algoritmo para ler 6 valores 
reais, calcular e imprimir a média aritmética 
desses valores.
4. Fazer um algoritmo para gerar e imprimir o 
resultado do número H, sendo H = 1 + 1/2 + 
1/3 + 1/4 + 1/5.
5. Construa em C os algoritmos acima.
Tipos de Dados, Variáveis 
e Entrada e Saída em C
DCC 120 – Laboratório de Programação
3030
Nesta Aula
� Variáveis, Tipos de dados
� Declaração de variáveis
� Impressão
� Formatação da impressão
� Operadores
� Entrada de dados
31
Variáveis
� Uma variável representa um espaço na 
memória do computador para armazenar um 
determinado tipo de dado.
� Em C, todas variáveis devem ser 
explicitamente declaradas, isto é, devemos 
especificar:
� Tipo de dado
� Nome (ou identificador)
31
32
Identificadores
� São nomes usados para se fazer referência a 
variáveis, funções, rótulos e vários outros 
objetos definidos pelo usuário. 
� Exemplos:
� a, b, peso, i, contaCorrente, saldo, x1, x2......
� Obs: A linguagem C é case sensitive, ou 
seja, as letras maiúsculas diferem das 
minúsculas.
32
3333
Nomes de Variáveis
O nome de uma variável (identificador) é formado por um ou mais 
caracteres, sendo que:
� o primeiro caractere é uma letra ou sublinha ( _ );
� os outros caracteres podem ser letras, algarismos ou sublinha ( _ ).
Exemplos:
� a) Nomes válidos: L a de op1 V9a Lista_Notas a_2 p56 A1 _2A
� b) Nomes Inválidos: x+ t.6 43x &ah $dolar Lista-Notas n! %p
Em C, letras maiúsculas e minúsculas são diferentes. Os seguintes 
nomes são distintos:
� PESO 
� Peso 
� peso
� peSo
Uma variável não pode ter o mesmo nome de uma palavra-chave de C, 
como por exemplo:
� main, cout, int, float, char, short, return, case, void
3434
Tipos de Dados
Quando você declara um identificador dá a ele um tipo. 
Um tipo de objeto de dados determina como valores de 
dados são representados, que valores pode expressar, 
e que tipo de operações você pode executar com estes 
valores.
Tipo Espaço que ocupa na memória Faixa
char 1 byte
-128 a 127
(incluindo letras e símbolos)
int 4 bytes -2147483648 a 2147483647
float 4 bytes
3.4E-38 a 3.4E+38
(6 casas de precisão)
double 8 bytes
1.7E-308 a 1.7E+308
(15 casas de precisão)
Obs.: Alguns sistemas trabalham com valores inteiros de 2 bytes,
com faixa de -32768 a 32 767.
35
Declaração de variáveis
� Para armazenar valores na memória é preciso 
reservar o espaço correspondente ao tipo de 
dado. 
� A declaração de uma variável reserva espaço 
para armazenar um dado do tipo da variável e 
associa o nome da variável a este espaço.
� Na linguagem C podemos inicializar as 
variáveis com valores na declaração.
35
3636
Declaração de Variáveis
� As variáveis só podem armazenar informações ou 
dados sempre de um mesmo tipo (inteiro, real, 
caractere ou char).
� Na linguagem C, a declaração de variáveis obedece a 
seguinte sintaxe:
<tipo> <nome_var>;
ou
<tipo> <nome_var1>, <nome_var2>, ..... ,<nome_varn>;
� Toda e qualquer variável deve ser declarada e sua 
declaração deve ser feita antes de sua utilização no 
programa.
3737
Declaração de variáveis - Exemplo
Exemplos:
int a, b, c;
char letra, d, e;
float f1;
float f2,f3;
Marque as declarações válidas:
( ) int a,
( ) char c;
( ) int a,b,a;
( ) float f1,f2,f3,4f;
( ) int meu_nro;
( ) float leitura_sensor;
38
Declaração de variáveis - Exemplo
38
int a; 
int b; 
float x;
char c;
a=25;
b=50;
x=3.14;
c=‘M’;
int n1,n2;
n1=0;
n2=0;
int val;
val=2.5; // armazena 2
int y=5, z=15;
float e=2.718;
char s=‘f’;
39
Declaração de variáveis - Exemplo
� Erro comum: uso de 
variáveis com valor não 
inicializado.
� Declarar variável sem 
explicitamente inicializar 
seu valor.
� Valor indefinido (“lixo”)
39
// Erro !!!
// Variável y não foi
// inicializada e
// contém “lixo” de
// memória
float x, y, z;
x = 1.0;
z = x + y;
4040
Impressão
A exibição dos resultados do processamento e de 
mensagens é feita através da função pré-definida printf(), 
cujo protótipo está contido também no arquivo stdio.h. Sua 
sintaxe é a seguinte:
printf("Expressão" , Lista de argumentos );
� Onde:
� Expressão: contém mensagens a serem exibidas, 
códigos de formatação que indicam como o conteúdo 
de uma variável deve ser exibido e códigos especiais 
para a exibição de alguns caracteres especiais. 
� Lista de argumentos: pode conteridentificadores de 
variáveis, expressões aritméticas ou lógicas e valores 
constantes.
4141
Estrutura de um Programa que 
utiliza a função printf()
#include <stdio.h>
int main( )
{
printf("Estou aprendendo a programar em C"); 
return 0;
}
4242
Impressão de Tipos de Dados
Código Tipo Elemento armazenado
%c char um único caractere
%d ou %i int um inteiro
%f float um número em ponto flutuante
%lf double ponto flutuante com dupla precisão
%e float ou double um número na notação científica
%s ......... uma cadeia de caracteres
#include <stdio.h>
int main( )
{
printf("Valor recebido foi %d" ,10);
return 0;
}
4343
Impressão de Tipos de Dados
#include <stdio.h>
int main()
{
printf("Caracter A: %c" , 'A');
return 0;
}
#include <stdio.h>
int main()
{
int x=10;
printf("Valor inteiro %d e um float %f" ,x ,1.10);
printf(“Outro valor float %f", 1.10+2.35);
return 0;
}
4444
Impressão de Tipos de Dados
#include <stdio.h>
int main()
{
printf("Minha string: %s", "Entendi tudo!!!! ");
return 0;
}
#include <stdio.h>
int main()
{
printf("Deveria imprimir um float, ");
printf("mas mandei imprimir um inteiro: %d" ,1.10);
return 0;
}
4545
Impressão de Códigos Especiais
#include <stdio.h>
int main()
{
printf("\t\tx\n");
printf("\tx\t\tx\n");
printf("\t\tx\n");
return 0;
}
Código Ação
\n leva o cursor para a próxima linha
\t executa uma tabulação
\b executa um retrocesso
\f leva o cursor para a próxima página
\a emite um sinal sonoro (beep)
\" exibe o caractere "
\\ exibe o caractere \
%% exibe o caractere %
4646
Fixando as Casas Decimais
#include <stdio.h>
int main()
{
printf("Default: %f \n",3.1415169265);
printf("Uma casa: %.1f \n",3.1415169265);
printf("Duas casas: %.2f \n",3.1415169265);
printf("Tres casas: %.3f \n",3.1415169265);
printf("Notacao Cientifica: %e \n",3.1415169265);
return 0;
}
� Por default, a maioria dos compiladores C exibem 
os números de ponto flutuante com seis casas 
decimais.
� Para alterar este número podemos acrescentar .n 
ao código de formatação da saída, sendo n o 
número de casas decimais pretendido. 
4747
Alinhamento de Saída 
#include <stdio.h>
int main()
{
printf("Valor: %d \n",25);
printf("Valor: %10d \n",25);
return 0;
}
� O programa pode fixar a coluna da tela a partir da qual o 
conteúdo de uma variável, ou o valor de uma constante 
será exibido. Isto é obtido acrescentado-se um inteiro m ao 
código de formatação. Neste caso, m indicará o número de 
colunas que serão utilizadas para exibição do conteúdo.
4848
Exercícios 
1. Fazer um programa que imprima o seu nome.
2. Modificar o programa anterior para imprimir na 
primeira linha o seu nome, na segunda linha a sua 
idade e na terceira sua altura.
3. Imprimir o valor 2.346728 com 1, 2, 3 e 5 casas 
decimais.
4949
Operador de Atribuição
O operador de atribuição em C é o sinal de igual =
Sintaxe:
<variavel> = <expressão>;
Exemplos:
ou
int a=5;
int c=7;
int b,d;
b = a;
d = a + b + c;
int a,b,c,d;
a = 5;
c = 7;
b = a;
d = a + b + c;
50
50
Operadores Aritméticos
Exemplos:
a = a + b;
a += 4; // similar a a = a + 4;
a = b / 2;
a = 4 * 2 + 3; // qual o valor final de a?
b = 2 * 3 – 2 * 2; // qual o valor final de b?
a++; // similar a a = a + 1;
b--; // similar a b = b – 1;
51
Conversão de tipo
51
� Conversões automáticas de valores na avaliação 
de uma expressão.
int a;
float b, c, d;
a = 4.5; // conversão implícita
b = a / 2.0; // conversão implícita
c = 1/2 + b; // conversão implícita
d = 1.0/2.0 + b;
// Saída: a=4, b=2.0, c=2.0, d=2.5
52
Conversão de tipo - Cast
52
� É possível explicitamente fazer a conversão de 
tipos usando o operador cast.
� Sintaxe:
(tipo) variável
int num1, num2, a;
float resdiv;
a = (int) 2.5;
resdiv = (float) num1 / num2;
5353
Leitura de dados - scanf() 
Ela é o complemento de printf() e nos permite ler dados formatados da 
entrada padrão (teclado). Sua sintaxe:
scanf("expressão de controle", argumentos); 
Entendendo o scanf:
......
int a;
.......
scanf (“%d”, &a);
Operador utilizado para 
obter o endereço de 
memória da variável.
5454
scanf() – Exemplo 1
#include <stdio.h>
int main() 
{
int num;
printf("Digite um valor: ");
scanf("%d",&num);
printf("\nO valor digitado foi %d.",num);
return 0;
}
5555
scanf() – Exemplo 2
#include <stdio.h>
int main() 
{
int n1,n2,soma;
printf("Digite dois valores: ");
scanf("%d",&n1);
scanf("%d",&n2);
soma = n1 + n2;
printf("\n%d + %d = %d.",n1,n2,soma);
return 0;
}
5656
Exercícios 
1. Ler uma temperatura em graus Celsius (C) e apresentá-
la convertida em graus Fahrenheit. A fórmula de 
conversão é F = (9*C+160)/5.
2. Calcular e apresentar o volume de uma lata de óleo, 
utilizando a fórmula: volume = 3.14159*raio*raio*altura.
3. Elaborar um programa que calcule e apresente o volume 
de uma caixa retangular, por meio da fórmula volume = 
comprimento*largura*altura.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes