Linguagem C
174 pág.

Linguagem C


DisciplinaFundamentos de Programação405 materiais4.775 seguidores
Pré-visualização38 páginas
Ponteiros e Estruturas .......................................................................... 107 
7.4.1. Alocação Dinâmica de Memória................................................ 109 
7.4.2. Listas Encadeadas .................................................................... 112 
7.4.3. Tratamento Recursivo de Listas................................................ 115 
8.
8.8.
8. A
AA
ARQUIVOS
RQUIVOSRQUIVOS
RQUIVOS.................................................................................................... 119 
 
 
8.1. Ponteiros de Arquivo............................................................................. 119 
8.2. Arquivos-Padrão ................................................................................... 120 
8.2.1. Redirecionamento de E/S padrão ............................................. 121 
8.3. Operações Básicas............................................................................... 122 
8.3.1. Abertura de Arquivo................................................................... 122 
8.3.2. Fechamento de Arquivo ............................................................ 123 
8.3.3. Verificação de Final de Arquivo................................................. 124 
8.4. Modo Texto versus Modo Binário............................................................. 125 
8.4.1. E/S caracter............................................................................... 125 
8.4.2. E/S Formatada .......................................................................... 127 
8.4.3. E/S Binária................................................................................. 128 
T
TT
TABELA 
ABELA ABELA 
ABELA A
AA
ASCII
SCIISCII
SCII ..................................................................................................... 130 
B
BB
BIBLIOGRAFIA
IBLIOGRAFIAIBLIOGRAFIA
IBLIOGRAFIA ..................................................................................................... 131 
 
 
v
vv
v 
 
 
 
 
1
11
1 
 
 
1. 1. 1. 1. IIIINTRODUÇÃONTRODUÇÃONTRODUÇÃONTRODUÇÃO 
C é geralmente citada como uma linguagem que reúne características tais 
como expressividade, portabilidade e eficiência. Embora seja uma lingua-
gem de uso geral, C é especialmente indicada para o desenvolvimento de 
software básico. Nesse capítulo apresentamos a estrutura básica dos 
programas em C, funções de E/S, tipos de dados e operadores. 
1.1. A
1.1. A1.1. A
1.1. A 
 
 O
OO
ORIGEM DA 
RIGEM DA RIGEM DA 
RIGEM DA L
LL
LINGUAGEM 
INGUAGEM INGUAGEM 
INGUAGEM C
CC
C 
 
 
A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis 
Ritchie e implementada pela primeira vez num computador DEC PDP-11 que 
usava o sistema operacional UNIX. Ela é o resultado da evolução de uma lin-
guagem de programação mais antiga, denominada BCPL, desenvolvida por 
Martin Richards. Tendo sido desenvolvida por programadores, e para progra-
madores, C tornou-se rapidamente uma ferramenta de programação bastante 
difundida entre os profissionais da área. 
A popularidade da linguagem C deve-se, principalmente, ao fato dela ser uma 
linguagem flexível, portátil e eficiente. Sua flexibilidade lhe permite ser utilizada 
no desenvolvimento de diversos tipos de aplicação, desde simples jogos 
eletrônicos até poderosos controladores de satélites. Graças à sua portabi-
lidade, os programas codificados em C podem ser executados em diversas 
plataformas, praticamente, sem nenhuma alteração. E, finalmente, sua 
eficiência proporciona alta velocidade de execução e economia de memória. 
1.2. O
1.2. O1.2. O
1.2. O 
 
 A
AA
AMBIENTE 
MBIENTE MBIENTE 
MBIENTE T
TT
TURBO 
URBO URBO 
URBO C
CC
C 
 
 
 
1. INTRODUÇÃO 
2
22
2 
 
 
O Borland Turbo C
\uf8e9
 é o ambiente no qual desenvolveremos nossos progra-
mas. Ele é composto por um editor de textos, um compilador e um linkeditor 
que, juntos, nos permitem criar programas executáveis a partir de textos 
escritos em C. Os recursos oferecidos nesse ambiente poderão ser explorados 
à medida que estivermos mais familiarizados com a linguagem C. Para 
começar, é suficiente saber que: 
 
\u2022 F2 salva o código-fonte do programa num arquivo com extensão .c, 
\u2022 Ctrl+F9 compila, linkedita (gera arquivo .exe) e executa seu programa, 
\u2022 Alt+X finaliza a execução do Turbo C. 
 
Figura 1.1
Figura 1.1Figura 1.1
Figura 1.1 \u2212 A tela do ambiente integrado Turbo C 
1.3. A E
1.3. A E1.3. A E
1.3. A ESTRUTURA 
STRUTURA STRUTURA 
STRUTURA B
BB
BÁSICA DOS 
ÁSICA DOS ÁSICA DOS 
ÁSICA DOS P
PP
PROGRAMAS
ROGRAMASROGRAMAS
ROGRAMAS 
 
 
Um programa C consiste de funções sendo que, necessariamente, uma delas 
deve ser denominada main. Essa é a função principal, por onde inicia-se a 
execução do programa, e sem ela o programa não pode ser executado. 
Exemplo
ExemploExemplo
Exemplo 
 
 1.1.
1.1.1.1.
1.1. Uma pessoa é obesa se seu índice de massa corpórea é superior 
a 30, tal índice é a razão entre seu peso e o quadrado da sua altura. 
/* OBESO.C \u2013 informa se uma pessoa está ou não obesa */ 
#include <stdio.h> 
 
1. INTRODUÇÃO 
3
33
3 
 
 
#include <conio.h> 
#include <math.h> 
#define LIMITE 30 
main() { 
 float peso, altura, imc; 
 clrscr(); 
 printf(\u201c\n Qual o seu peso e altura? \u201d); 
 scanf(\u201c%f %f\u201d, &peso, &altura); 
 imc = peso/pow(altura,2); 
 printf(\u201c\n Seu i.m.c. é %.1f\u201d, imc); 
 if( imc <= LIMITE ) printf(\u201c\n Você não está obeso!\u201d); 
 else printf(\u201c\n Você está obeso!\u201d); 
 getch(); 
} 
Como esse programa é muito simples, ele consiste de uma única função: main. 
Essa função solicita os dados da pessoa, calcula o seu índice de massa 
corpórea e informa se ela está obesa ou não. \ufffd 
Alguns pontos desse primeiro exemplo devem ser ressaltados: 
\u2022 Todo texto delimitado por /* e */ é considerado como comentário, isto é, 
serve apenas para esclarecer algum ponto específico do programa. 
\u2022 A diretiva #include causa a inclusão de arquivos de cabeçalho contendo 
declarações necessárias à compilação. Os arquivos stdio.h, conio.h e 
math.h declaram, respectivamente, comandos de E/S padrão, E/S console 
e funções matemáticas. A diretiva #define declara constantes simbólicas. 
\u2022 Os parênteses após o nome de uma função, como em main(), são obrigató-
rios. Além disso, o compilador distingue maiúsculas e minúsculas e, 
portanto, o nome main é reservado, mas Main não o é. 
\u2022 As chaves { e } servem para delimitar um bloco de instruções. As variáveis 
devem ser declaradas antes de serem usadas, logo no início do bloco. 
 
1. INTRODUÇÃO 
4
44
4 
 
 
\u2022 A função clrscr() serve para limpar a tela e as funções scanf() e printf() 
realizam entrada e saída de dados padrão. 
\u2022 Cálculos e comparações são efetuados com os operadores aritméticos, 
funções matemáticas e operadores relacionais convencionais. A atribuição 
de valores às variáveis é realizada pelo operador =. 
\u2022 A função getch() aguarda que uma tecla seja pressionada para que a 
execução do programa seja concluída. Isso permite que o usuário veja a 
saída do programa, antes de voltar à tela do ambiente integrado. 
Exercício 1.1.
Exercício 1.1.Exercício 1.1.
Exercício 1.1. Execute o programa obeso.c usando o Borland Turbo C. 
Exercício 1.2.
Exercício 1.2.Exercício 1.2.
Exercício 1.2. Descubra os erros no programa a seguir: 
/* PERIM.C - informa o perímetro de uma circunferência /* 
#include <studio.h> 
#define PI = 3.1415 
Main() { 
 float raio; 
 clrscr; 
 printf(&quot;\n Qual a medida do raio? &quot;); /* solicita o raio 
 scanf(&quot;%f&quot;, &raio); da circunferência */ 
 float perim; /* calcula o seu 
 perim := 2*PI*raio; perímetro */ 
 printf(&quot;\n O perímetro é %f&quot;, perim); 
 getch; 
}