conceitos_basicos.tex 6.91 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
\documentclass[apostila.tex]{subfiles}



\begin{document}

\chapter{Conceitos básicos}

\section{Estrutura básica de um programa em C}

Apresentamos abaixo os elementos mais comuns em um programa em C, assim como a apresentação geral
de sua estrutura.

É importante observar que nem todos os elementos são obrigatórios e a ordem de cada declaração não é necessariamente a mesma.


\lstinputlisting{exemplos/estrutura.c}


OBS.: Um bloco de código é delimitado por abre e fecha chaves.

22
Os comentérios são colocados entre \verb|/* */| ou após duas barras \verb|//|.
23 24 25 26 27 28 29 30 31 32 33

Em um segundo exemplo, temos um programa em C completo. Observe como a estrutura desse
programa é parecida com a apresentada anteriormente.


\lstinputlisting{exemplos/estrutura2.c}



\section{Variáveis}

34 35
Uma variável é uma localização para armazenagem de dados na memória do computador.
Quando o nome de uma variável aparece em um programa ele
36 37 38 39 40 41 42 43 44 45 46 47 48 49
está se referindo, na verdade, aos dados armazenados
nessa localização.




\subsection{Nomes de Variáveis}


Para usar variáveis nos programas em C, devemos saber quais nomes podem ser utilizados. Para tanto,
devemos seguir as seguintes regras:


\begin{itemize}
50 51 52
	\item  O nome pode conter letras, algarismos e o caractere ` ';
	\item  O primeiro caractere do nome sempre deve ser uma letra ou o caractere ` ';
	\item  Letras maiúsculas são diferentes de minúsculas;
53 54 55 56 57 58 59
	\item  As palavras-chave da linguagem C não podem ser utilizadas como nomes das variáveis;
	\item  A escolha de nomes significativos para suas variáveis pode tornar o programa mais claro e fácil de entender.
\end{itemize}


Exemplos:

60 61 62 63 64 65
\begin{lstlisting}
percent 	// válido
y2x5_fg7h 	// válido
double 		// inválido: é uma palavra chave
9winter 	// inválido: inicia com algarismo numérico
\end{lstlisting}
66 67 68 69 70 71 72


\subsection{Tipos de Variáveis}

As variáveis da linguagem C enquadram-se em uma das seguintes categorias:


73 74 75
\begin{description}
	\item[Variáveis inteiras] que armazenam valores não-fracionais (ou seja, somente valores inteiros). Há dois tipos de variáveis inteiras:
	\begin{description}
76 77
		\item[com sinal] que podem conter valores positivos ou negativos;
		\item[sem sinal] que só podem assumir valores positivos.
78
	\end{description}
79

80
	Operações matemáticas entre variáveis inteiras são, normalmente, muito rápidas.
81 82

	\item[Variáveis de Ponto Flutuante] que contém valores com uma parte fracional (ou seja, números reais).
83 84

No geral, as operações matemáticas são mais lentas para este tipo de variável.
85
\end{description}
86

87
\begin{table}[h!]
88
\scriptsize
Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
89
\begin{tabular}{|p{4cm}|l|l|l|} \hline
90
	Tipo de Variável 	& Palavra Chave & Bytes 	& Valores Válidos \\ \hline
91 92

	Caracteres
93
						& char 			& 1 		& -128 a 127 \\ \hline
94
	Números inteiros curtos
95
						& short 		& 2  		& -32.768 a 32.767 \\ \hline
96
	Números inteiros
97
						& int			& 4			& -2.147.483.648 a 2.147.483.647 \\ \hline
98
	Caracteres não sinalizados
99
						& unsigned char & 1 		& 0 a 255 \\ \hline
100
	Números inteiros curtos sem sinal
101
						& unsigned short & 2 		& 0 a 65.535 \\ \hline
102
	Números inteiros sem sinal
103
						& unsigned long & 4 		& 0 a 4.294.967.295 \\ \hline
104
	Número de ponto flutuante com precisão simples
105
						& float 		& 4 		& 1,2E-38 a 3,4E38 \\ \hline
106
	Número de ponto flutuante com precisão dupla
107
						& double 		& 8 		& 2,2E-308 a 1,8E308\\ \hline
108 109 110 111 112 113
\end{tabular}
\caption{Tipos de dados numéricos em C.}
\end{table}

\subsection{Declaração/Inicialização}

114
Antes de poder ser usada por um programa, uma variável deve ser declarada.
115 116 117 118 119 120 121
A declaração de uma variável informa ao compilador o nome e o tipo de uma variável e,
opcionalmente, inicializa a variável com um determinado valor.

A declaração deve ter o seguinte formato:

\begin{lstlisting}
tipo NomeVariavel;
122 123
\end{lstlisting}

124 125
Exemplo:

126
\begin{lstlisting}
127
// tres variaveis inteiras
128 129
int count, number, start;

130
// variavel de ponto flutuante inicializada com um valor
131 132 133 134
float percent=15.3;
\end{lstlisting}

De acordo com o local no programa onde as variáveis são declaradas, elas se classificam em variáveis
135 136
globais, se declaradas fora de qualquer função, e variáveis locais, se declaradas dentro de uma função.
As variáveis globais são válidas em qualquer parte do programa e as
137 138 139 140 141
variáveis locais apenas dentro do bloco em que foram declaradas.


\section{Constantes}

142 143 144
Uma constante, da mesma forma que uma variável,
é uma localização usada pelo programa para armazenar dados.
Ao contrário da variável, porém,
145
o valor armazenado em uma constante não pode ser
146
alterado durante a execução do programa.
147 148 149 150 151 152
A linguagem C possui dois tipos de constantes: literais e simbólicas.



\subsection{Literais}

153
Constantes literais são os valores digitados diretamente no código-fonte do programa.
154 155 156 157 158 159 160 161 162 163 164 165 166 167
Segue alguns exemplos de constantes literais:

\begin{lstlisting}
int count = 20;
float tax_rate = 0.28;
char letter = 'c';
\end{lstlisting}

OBS.: Neste caso, os valores 20, 0.28 e `c' são as constantes literais. Note que para especificar
constantes que são caracteres, deve-se delimitar o valor com aspas simples.

\subsection{Simbólicas}


168
Constantes simbólicas são constantes representadas por um nome (símbolo) no programa.
169

170
Para utilizar o valor da constante no programa, podemos usar seu nome, exatamente como usaríamos
171 172 173 174 175
o nome de uma variável. O nome da constante simbólica deve ser especificado somente uma vez, quando
ela é definida. Por exemplo:

\lstinputlisting{exemplos/constantes.c}

176
A saída será:
177 178 179 180 181

\begin{verbatim}
O perimetro da circunferencia de raio 5 é 31.4159.
\end{verbatim}

182 183 184

\subsection{Incluindo bibliotecas}

185
Uma biblioteca é uma coleção de declarações de funções e constantes,
186 187
que pode ser incluída em um programa e que provê uma série de "comandos" novos.

188
Para incluir uma biblioteca é utilizado a diretiva
189 190
\footnote{Diretivas de pré-processamento serão melhor detalhadas no capítulo ??.}
include.
191 192 193

As sintaxes possíveis são:

194 195
\begin{itemize}
	\item Inclusão de uma biblioteca residente em um diretório padrão:
196 197 198 199 200

\begin{lstlisting}
#include <nomearq.h>
\end{lstlisting}

201
	\item Inclusão de uma biblioteca residente no diretório local:
202 203 204 205 206


\begin{lstlisting}
#include "nomearq.h"
\end{lstlisting}
207
\end{itemize}
208 209


210 211 212
As diretivas acima incluem
\footnote{Na realidade, normalmente é realizada a inclusão de um
header(cabeçalho) de uma biblioteca.
213
Posteriormente este tópico será esclarecido.}
214 215 216 217
a biblioteca nomearq no programa.



218
\section*{Exercícios}
219

Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
220 221 222 223




224 225 226 227 228 229 230 231 232 233 234 235 236 237
1. Para cada variável abaixo, determine a forma equivalente para declarar a mesma variável em C.

a) $p \in N$

b) $q \in Q$

c) $r \in R$

d) $s \in Z$

e) sexo ([M]asc/[F]em)

f) tamanho camisa (P/M/G)

238
2. Qual tipo deveria ser utilizado para uma variável booleana
239 240 241 242
\footnote{Variável que assume Verdadeiro ou Falso.}?

3. Qual a diferença de uma constante declarada através de DEFINE e uma constante declarada utilizando a palavra-chave const?

243
4. Faça um programa completo em C que declara todas as variáveis do exercício 1.
244

245
\end{document}