Apostila C UFU
85 pág.

Apostila C UFU


DisciplinaIntrodução à Tecnologia da Computação26 materiais156 seguidores
Pré-visualização19 páginas
permitindo, então, que seu programa seja modular. Após uma função ter sido 
criada, você pode contar com que ela trabalhe adequadamente em várias situações, sem 
criar efeitos inesperados em outras partes do programa. O fato de você poder criar 
funções isoladas é extremamente importante em projetos maiores onde um código de 
um programador não deve afetar acidentalmente o de outro. 
 Outra maneira de estruturar e compartimentalizar o código em C é através do 
uso de blocos de código. Um bloco de código é um grupo de comandos de programa 
conectado logicamente que é tratado como uma unidade. Em C, um bloco de código é 
criado colocando-se uma seqüência de comandos entre chaves. Nesse exemplo 
 
 
 
 
 
 
 
os dois comandos após o if e entre chaves são executados se x for igual a 4. Esses dois 
comandos, junto com as chaves, representam um bloco de código, o que permite que 
muitos algoritmos sejam implementados com clareza, elegância e eficiência. 
 Todo compilador C vem com uma biblioteca (que é um arquivo contendo as 
funções padrão que seu programa pode usar) C padrão de funções que realizam as 
tarefas necessárias mais comuns. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if (x == 4) { 
 printf(\u201cParabens, voce acertou, x é 4\u201d); 
 _getch(); 
} 
 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 4
Capítulo 2 - Expressões 
 
Tipos Básicos de Dados 
 
 Todas as linguagens de programação de alto nível suportam o conceito de tipos 
de dados, onde um tipo de dado define um conjunto de valores que uma variável pode 
armazenar e o conjunto de operações que pode ser executado com essa variável. No C, 
existem 5 tipos básicos de dados, que são: caractere (char), inteiro (int), ponto flutuante 
(float), ponto flutuante de precisão dupla (double) e sem valor (void). 
 
O tipo char é utilizado para especificar valores definidos pelo conjunto de 
caracteres ASCII, este conjunto contém letras, símbolos e até mesmo algarismos, porém 
os algarismos não poderão ser manipulados matematicamente. 
 
O tipo int é utilizado para especificar algarismos inteiros, sendo que estes sim 
poderão ser manipulados matematicamente. 
 
Os tipos float e double são utilizados para especificar algarismos contínuos 
(fracionários), sendo que o double aborda uma faixa de números maior do que o float e 
com maior precisão. O padrão ANSI especifica que a faixa mínima de um valor em 
ponto flutuante é de 1e-37 a 1e+37. 
 
O tipo void declara explicitamente uma função que não retorna valor algum ou 
cria ponteiros genéricos, ou seja, utiliza-se void sempre em que não há necessidade de 
retornar algum valor. 
 
Tipo Tamanho Intervalo 
unsigned char 8 bits 0 até 255 
char 8 bits -128 até 127 
short int 16 bits -32,768 até 32,767 
unsigned int 32 bits 0 até 4,294,967,295 
int 32 bits -2,147,483,648 até 2,147,483,647 
unsigned long 32 bits 0 até 4,294,967,295 
enum 16 bits -2,147,483,648 até 2,147,483,647 
long 32 bits -2,147,483,648 até 2,147,483,647 
float 32 bits 3.4 x 10-38 até 3.4 x 10+38 
double 64 bits 1.7 x 10-308 até 1.7 x 10+308 
long double 80 bits 3.4 x 10-4932 até 1.1 x 10+4932 
 
Obs.: O tipo float possui 6 dígitos de precisão, enquanto que os tipos double e long 
double possuem 10 dígitos de precisão. 
 
 
 
 
 
 
 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 5
Nomes de Identificadores 
 
São considerados identificadores: os nomes de variáveis, funções, rótulos e 
vários outros objetos definidos pelo usuário. Esses identificadores podem variar de um a 
diversos caracteres. O primeiro caractere deve ser uma letra ou um sublinhado e os 
caracteres subseqüentes devem ser letras, números ou sublinhados. Abaixo se 
encontram alguns exemplos: 
 
Correto Incorreto 
valor 1valor 
Teste1 Ola&todos 
calculo_fatorial calculo...fatorial 
 
A linguagem C diferencia as letras maiúsculas e minúsculas, portanto: valor, 
Valor e VALOR são três identificadores distintos. 
Um identificador não pode ser igual a uma palavra-chave de C e não deve ter o 
mesmo nome que as funções que você escrever ou as que estão na biblioteca C. 
 
Variáveis 
 
 Uma variável é uma posição de memória com um nome, que é usada para 
guardar um valor que pode ser modificado pelo programa. Todas as variáveis em C 
devem ser declaradas antes de serem usadas. A forma geral de uma declaração é: 
 
tipo nome_da_variável; 
 
 Onde, tipo deve ser um ser um tipo válido em C, como aqueles vistos 
anteriormente; e nome_da_variável deve obedecer às regras vistas na seção nome 
de identificadores, podendo consistir em um ou mais nomes de identificadores 
separados por vírgulas. Abaixo estão alguns exemplos: 
 
 int i, j, l; 
 char letra; 
 double valor; 
 float peso, altura; 
 
 Todas as variáveis são constituídas de dois valores, o primeiro é a posição de 
memória, este é um valor hexadecimal. O segundo é o valor contido nele, este pode ser 
manipulado. Exemplo: 
 
 
#include <conio.h> 
#include <stdio.h> 
 
void main() 
{ 
 int y = 25; /*y assume o valor 25*/ 
 
 /* imprime o valor da posição de memoria em hexadecimal */ 
 printf(&quot;A posicao de memoria (hexadecimal) e: %X&quot;, &y); 
 
 /* imprime o valor da posição de memoria em decimal */ 
 printf(&quot;\n\nA posicao de memoria (decimal) e: %d&quot;, &y); 
 
 /* imprime o valor de definido pelo programador */ 
 printf(&quot;\n\nO valor contido em x e: %d&quot;, y); 
 _getch(); 
} 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 6
 
 
As variáveis serão declaradas em três lugares básicos: dentro de funções 
(chamadas de variáveis locais), na definição de parâmetros das funções (chamadas de 
parâmetros formais) e fora de todas as funções (chamadas de variáveis globais). 
 
\u2022 Variáveis locais são aquelas declaradas dentro de um determinado bloco, 
portanto elas não são reconhecidas fora de seu próprio bloco de código. Lembrando que 
um bloco de código começa com um abre-chave e termina com uma fecha-chave. 
Estas variáveis existem apenas dentro deste bloco onde foram declaradas, 
portanto ela é criada na entrada do seu bloco e destruída na saída. 
 
Exemplo: 
 
 
 
 
A variável x foi declarada duas vezes, uma vez em funcao1( ) e outra em 
funcao2( ). O x na primeira função não tem nenhuma relação com a segunda, isso 
ocorre porque ela é uma variável local, e funciona somente dentro do bloco em que foi 
declarada. Quando sai da primeira função esta variável é destruída, acontecendo o 
mesmo na saída da segunda. 
 
A maioria dos programadores declara todas as variáveis usadas por uma função 
imediatamente após o abre-chaves da função e antes de qualquer outro comando. 
Porém, as variáveis locais podem ser declaradas dentro de qualquer bloco de código. 
Exemplo: 
 
 
 
 
 
 
 
void funcao1() 
{ 
int x; 
x = 15; 
} 
 
void funcao2() 
{ 
int x; 
x = -33; 
} 
void funcao() 
{ 
 int x; 
 scanf(\u201c%d\u201d, &x); 
 
 if( x = = 1) /*não há espaço entre os sinais de igual*/ 
 { 
 int y = 5; /*esta variável só é criada na entrada 
deste bloco*/ 
 printf(\u201cO resultado é: %d\u201d, (x+y)); 
 } 
} 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 7
Nesta função, a variável y é criada na entrada do bloco de código if e destruída 
na saída. Além disso, y é reconhecida apenas dentro do bloco if e não pode ser 
diferenciada em qualquer outro lugar. 
 
\u2022 Parâmetros formais: Se uma função usa argumentos, ela deve declarar 
variáveis que receberão os valores dos argumentos, estas variáveis são chamadas de 
parâmetros formais. Elas se comportam como qualquer outra variável local dentro da 
função. Exemplo: 
 
 
 
 
 
 
 
 
Nos próximos capítulos