tipo

Propaganda
CES-10 INTRODUÇÃO À
COMPUTAÇÃO
Capítulo III
Declarações e Comandos de
Atribuição
Capítulo III – Declarações e
Comandos de Atribuição
3.1 – Identificadores e palavras reservadas
3.2 – Elementos de comandos de atribuição
3.3 – Constantes
3.4 – Variáveis e suas declarações
3.5 – Declaração de tipos
3.6 – Operadores de expressões
3.7 – Funções e macros da biblioteca de C
3.8 – Expressões e atribuições especiais de C
3.1 – Identificadores e Palavras
Reservadas
3.1.1 – Níveis de complexidade de um programa

Nível de subprogramas: um programa é uma composição
de subprogramas e de declarações globais

Nível de comandos: um subprograma é uma composição de
declarações e de comandos
Este capítulo

Nível atômico: cada comando ou cada declaração é uma
composição de átomos do programa

Nível de caracteres: cada átomo é uma sequência de
caracteres
Átomos dos comandos de um programa já vistos:

Palavras reservadas: if, while, int, else, etc.

Nomes de variáveis (identificadores): i, n, fat, soma, etc.

Constantes: 12, 43.2, ‘#’, etc.

Cadeias de caracteres: “o fatorial de”, “media”, etc.

Operadores aritméticos e lógicos: +, -, *, <, <=, and, or,
etc.

Separadores: ;, {, }, etc.
Palavras reservadas:

Palavras que têm um papel especial dentro de certas
construções da linguagem

Não podem ser usadas em contextos fora dessas construções
Palavras reservadas da Linguagem C
Identificador:

É uma sequência de letras, dígitos e underscores (‘_’),
nunca iniciada por um dígito

Identificadores são usados para dar nome às variáveis,
constantes, funções e outras entidades de um programa

É boa prática escolher identificadores que sirvam de
mnemônicos para tais entidades

Exemplos: fat (para fatorial), soma, r (para razão), p (para
precisão)

O underscore é usado para substituir o espaço em branco
em nomes com mais de uma palavra

Exemplos: numero_de_eleitores, ler_matriz, etc.

Em muitas linguagens de programação, é proibido usar
palavras reservadas como identificadores

No padrão ANSI C, caso dois identificadores tenham os
mesmos 31 primeiros caracteres, eles representam a
mesma entidade
Capítulo III – Declarações e
Comandos de Atribuição
3.1 – Identificadores e palavras reservadas
3.2 – Elementos de comandos de atribuição
3.3 – Constantes
3.4 – Variáveis e suas declarações
3.5 – Declaração de tipos
3.6 – Operadores de expressões
3.7 – Funções e macros da biblioteca de C
3.8 – Expressões e atribuições especiais de C
3.2 – Elementos de comandos de
atribuição

Forma geral de um comando de atribuição em C:
Variável = Expressão;

Execução: calcula-se o valor de Expressão, atribuindo-o a
Variável

Possíveis elementos de uma expressão:


Constantes, variáveis, operadores, separadores e chamadas
de funções
O resultado de uma expressão deve ser um único valor, de
um determinado tipo:

Número inteiro, número real, caractere ou valor lógico
Capítulo III – Declarações e
Comandos de Atribuição
3.1 – Identificadores e palavras reservadas
3.2 – Elementos de comandos de atribuição
3.3 – Constantes
3.4 – Variáveis e suas declarações
3.5 – Declaração de tipos
3.6 – Operadores de expressões
3.7 – Funções e macros da biblioteca de C
3.8 – Expressões e atribuições especiais de C
3.3 – Constantes
Constantes que aparecem em expressões podem ser:





Inteiras
Reais
Caracteres
Simbólicas
Identificadores declarados como constantes
3.3.1 – Constantes inteiras


Constantes inteiras podem ser decimais, octais (ou
expressas na base 8) e hexadecimais (ou expressas na base
16)
Exemplos:
Obs.: em C, 0712 ≠ 712
• 0712 está em octal
• 712 está em decimal

Decimais: 5; 2314; -801

Octais: 011 ( (11)8 = (9)10 ); 0712 ( (712)8 = (458)10 )

Hexadecimais: 0x182 ou 0X182 ( (182)16 = (386)10) );
0xA27 ou 0xa27 ((A27)16 = (2599)10 )
3.3.2 – Constantes reais

Constantes reais podem ser expressas em notação decimal
ou exponencial

Exemplos:

Notação decimal: 13.47; 0.0072; .92; 47.

Notação exponencial: 5.2e20 (equivale a 5.2*1020);
0.03E-7 (equivale a 0.03*10-7)
3.3.3 – Constantes caracteres

Constante caractere: ocupa 1 byte; é expressa por um ou
dois caracteres entre apóstrofos (‘ ’)

Exemplos:


Um caractere: ‘a’, ‘B’, ‘+’, ‘;’

Dois caracteres: ‘\n’, ‘\t’, ‘\0’, ‘\\’

Observação: ‘\x’ = ‘x’ mas ‘\n’ ≠ ‘n’
Cada constante caractere tem sua representação interna, de
acordo com a tabela ASCII
Tabela ASCII básica:
0
0
nul
10
nl
1
2
3
4
5
6
7
8
9
bel
bs
ht
Em C, constantes
caracteres são encaradas
como inteiros de 8 bits
cr
20
esc
30
sp
!
“
#
$
%
&
‘
40
(
)
*
+
,
-
.
/
0
1
50
2
3
4
5
6
7
8
9
:
;
60
<
=
>
?
@
A
B
C
D
E
70
F
G
H
I
J
K
L
M
N
O
80
P
Q
R
S
T
U
V
W
X
Y
90
Z
[
\
]
^
_
`
a
b
c
100
d
e
f
g
h
i
j
k
l
m
110
n
o
p
q
r
s
t
u
v
w
120
x
y
z
{
|
}
~
del
São permitidas
expressões do tipo
‘a’ + ‘;’ + ‘5’ – 37
Esta expressão equivale
a
97 + 59 + 53 - 37 = 172
Em muitas linguagens,
isso não é permitido
Tabela de caracteres especiais e de controle:
Exemplo: escrita de caracteres de controle:

Seja a execução do seguinte trecho de programa:
#include <stdio.h>
#include <stdlib.h>
int main () {
printf
("abcde\nabcde\rxxx\nabcde");
- - - - }
Vídeo
abcde_
_
abcde
abcde
a
_
xxxde
bcde_
_
abcde_
_
Exemplo: Acionamento da campainha:

O seguinte programa emite alguns toques de campainha:
int main () {
int i;
i = 1;
while (i <= 15) {
printf ("\a");
i = i+1;
}
printf ("\n\n"); system ("pause"); return;
}
Exercício 3.3.3:
1. Dado o trecho de programa a seguir, dizer o que será
mostrado no vídeo, quando ele for executado, sem usar
ambiente de programação
int i = 1;
while (i <= 5) { printf ("i=%d;", i); i = i + 1; }
printf ("\n\n");
i = 11;
while (i <= 15) { printf ("i=%d;\r", i); i = i + 1; }
printf ("\n\n");
i = 21;
while (i <= 25) { printf ("i=%d;\n", i); i = i + 1; }
3.3.4 – Constantes cadeias de caracteres

Constante cadeia de caracteres: sequência de caracteres
comuns, especiais e/ou de controle, tudo entre aspas (“ ”)

Os caracteres ocupam bytes consecutivos na memória

Encerando a sequência, aparece um caractere ‘\0’

Exemplo: a cadeia de caracteres
“abc + xyz”
é composta dos caracteres:
‘a’, ‘b’, ‘c’, ‘ ’, ‘+’, ‘ ’, ‘x’, ‘y’, ‘z’, ‘\0’

Constantes e variáveis do tipo cadeia de caracteres não
figuram em expressões

Não comportam apenas um valor, mas vários valores do tipo
caractere

Serão abordadas no capítulo de variáveis indexadas
3.3.5 – Constantes simbólicas

São constantes criadas por diretivas define

Exemplo: as diretivas
#define pi 3.14159
#define raio 6
Podem ser usadas nas expressões dos comandos:
perimetro = 2 * pi * raio;
area = pi * raio * raio;

Como foi visto, o pré-processador substitui pi e raio por
3.14159 e 6, respectivamente
3.3.6 – Identificadores de constantes

A palavra const precedendo qualquer declaração de variáveis
torna constantes essas variáveis

O compilador não admite que elas sejam alteradas por
nenhum comando do programa

Exemplo:
c4 e c10 são constantes
Proibidos:
const int c4 = 4, c10 = 10;
printf ("c4 = %d; c10 = %d;", c4, c10);
scanf (“%d”, &c4);
c10 = c10 + 3;
Capítulo III – Declarações e
Comandos de Atribuição
3.1 – Identificadores e palavras reservadas
3.2 – Elementos de comandos de atribuição
3.3 – Constantes
3.4 – Variáveis e suas declarações
3.5 – Declaração de tipos
3.6 – Operadores de expressões
3.7 – Funções e macros da biblioteca de C
3.8 – Expressões e atribuições especiais de C
3.4 – Variáveis e suas Declarações
3.4.1 – Obrigatoriedade de declarações

Variável: identificador ao qual está associado um local de
memória, cujo valor pode ser alterado durante a execução

Declarações de variáveis: construções não-executáveis da
linguagem; servem para:



Dar nomes às variáveis
Reservar-lhes espaço na memória
Especificar o tipo de valores que elas devem guardar

Na grande maioria das linguagens de programação, toda
variável de um programa deve ser declarada antes de ser
referenciada por seus comandos

Fortran: linguagem que não exige declarações

Variáveis de nomes iniciados por I, J, K, L, M ou N: por
default seu tipo é inteiro

Variáveis de nomes iniciados por qualquer outra letra:
por default, seu tipo é real

Tipos primitivos de uma linguagem: tipos padronizados
para suas variáveis

Tipos primitivos da Linguagem C: vários tipos para
inteiros, reais e caracteres

C também possui artifícios para que o programador crie
novos tipos, conforme seus intentos

Forma geral das declarações de variáveis de tipo primitivo
em C:
Tipo Variável, Variável, ... , Variável;
3.4.2 – Variáveis inteiras

Tipos primitivos para inteiros:

Quando C foi projetada:
int – 2 bytes
short – 1 byte
long – 4 bytes
3.4.3 – Variáveis reais

Tipos primitivos para reais:

Sistemas de ponto-flutuante são imprecisos; exemplo:
float x = 3426171.8390176294015;
Comandos
double y = 3426171.8390176294015;
printf ("x = %24.19e;\ny = %24.19e;", x, y);
x = 3.4261717500000000000e+06;
y = 3.4261718390176296200e+06;
Resultado
Valor impresso de x: correto até o 7º
dígito significativo
Valor impresso de y: correto até o 16º
3.4.4 – Variáveis caracteres

Tipos primitivos para caracteres:

Variáveis desses tipos equivalem a inteiros de 1 byte

Podem fazer parte de expressões contendo inteiros e reais
Exemplo: escrita de expressões com variáveis caracteres
Programa
Resultado no vídeo
Formato %c: escreve o
caractere
Formato %d: escreve a
representação interna do
caractere
3.4.5 – Variáveis lógicas

Diferentemente de outras linguagens, C não disponibiliza
um tipo de variável específico para armazenar valores lógicos
(true e false)

No entanto, o programador pode utilizar, dessa linguagem, a
capacidade de criar novos tipos, para trabalhar com
variáveis e valores lógicos

Isso será ilustrado no Tópico 3.5 deste capítulo
3.4.6 – Declarações com inicialização

A Linguagem C possibilita que variáveis sejam inicializadas
em suas declarações
Programa

Exemplo:
Resultado no vídeo
3.4.7 – Outras classificações de variáveis

Variáveis escalares:

Destinadas a guardar apenas um valor, num dado
momento da execução
x


Todas as variáveis vistas até agora são escalares
Variáveis estruturadas:

Destinadas a guardar vários valores, num dado momento
da execução
A
Classificação das variáveis estruturadas

Variáveis indexadas:

São variáveis estruturadas homogêneas, ou seja, seus
valores são todos do mesmo tipo (vetores e matrizes)
B

Estruturas:

São variáveis estruturadas heterogêneas, ou seja, seus
valores podem ser de tipos diferentes
E

Até agora foram mencionadas e estudadas variáveis
destinadas a guardar valores (inteiros, reais, caracteres,
lógicos)
x

Ponteiros: variáveis escalares destinadas a guardar endereços
de outras variáveis
p

48.2
48.2
x
Há também variáveis indexadas de ponteiros e estruturas
em que alguns valores são ponteiros
B
E
Variáveis indexadas,
estruturas e ponteiros
serão estudados em
capítulos específicos
Capítulo III – Declarações e
Comandos de Atribuição
3.1 – Identificadores e palavras reservadas
3.2 – Elementos de comandos de atribuição
3.3 – Constantes
3.4 – Variáveis e suas declarações
3.5 – Declaração de tipos
3.6 – Operadores de expressões
3.7 – Funções e macros da biblioteca de C
3.8 – Expressões e atribuições especiais de C
3.5 – Declaração de Tipos

Declaração de tipos: possibilita ao programador criar seus
próprios tipos de variáveis

Exemplo: as declarações
typedef char letra, digito;
typedef int comprimento;
typedef float preco;
Permitem a declaração de
variáveis de tipos letra, dígito,
comprimento e preco, tais
como:
letra l1, l2, l3;
digito d1, d2;
comprimento c1, c2, c3;
preco p1, p2;

O uso de typedef para tipos escalares tem apenas a
vantagem de se ter nomes de tipos que reflitam melhor a
natureza das variáveis

Para variáveis indexadas e estruturas, uma boa vantagem é
a abreviação de longas declarações, como será visto em
capítulos específicos
Exemplo: simulação de variáveis e valores lógicos
Foi criado o tipo ‘logic’ e as
constantes ‘False’ e ‘True’
O tipo ‘char’ foi escolhido
como equivalente, pois é o
que ocupa menos memória
&& e ||: versões em C dos
operadores ‘and’ e ‘or’
Programa
Resultado
Download