Universidade Federal de São Carlos
Introdução à Linguagem C
Formato de um programa
< > indicam diretório padrão.
Se colocar “ “ indicará pasta
local
#include <stdio.h>
/*Declaração das bibliotecas*/
int main(void)
/* Programa principal */
{
// Comandos
return (0);
}
Não é preciso fechar um
comentário de linha
(aquele com duas barras).
/* Fim do arquivo */
Sempre fechar um
comentário com */ !
Declaração de variáveis Escopo
 A forma geral da declaração de variáveis é: tipo_da_variável lista_de_variáveis;
ex:
int x;
char letra;
float PI;
 Pode-se inicializar o valor de uma variável junto de sua declaração:
ex:
int x=y=10;
 As variáveis podem ser declaradas:
- fora de todas as funções do programa e podem ser usadas a partir de
qualquer lugar do programa;
- no início de um bloco de código de uma função e só podem ser usadas
dentro desse bloco;
- na lista de parâmetros de uma função, que, embora recebam valores
externos, só são reconhecidas dentro da função.
 Quanto a nomeação de variáveis:
- O nome de variáveis deve começar com uma letra ou sublinhado (_);
- Não podem ter os mesmos nomes de palavras reservadas ou de funções;
- O C é "case sensitive", ou seja, faz distinção entre letras maiúsculas e minúsculas.
Palavras Reservadas (c)
auto
break
case
char
const
continue default
do
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned void
volatile
while
Tipos em C
A seguir estão listados os tipos de dados permitidos e seu valores máximos e mínimos em um compilador
típico para um hardware de 16 bits.
Operadores Aritméticos
+
-
Adição
*
-
Multiplicação
/
-
%
Inteira
Divisão
Resto de Divisão
-
-
Subtração
--
-
Decremento
++
-
Incremento
E/S em C
Praticamente todas as formas de I/O do C têm os seus tipos e funções declarados no
arquivo de inclusão da biblioteca standard stdio.h.
• Streams: constituem uma forma portável de ler e escrever informação nos programas
escritos em C.
• Streams pré-definidos: no UNIX, e na maior parte de outros Sistemas Operacionais
definem-se à partir de pelo menos 3 streams, já abertos e prontos a utilizar:
 stdin (geralmente associado ao teclado);
 stdout (geralmente associado ao terminal);
 stderr (também geralmente associado ao terminal);
todos eles usam texto como modo de I/O.
E/S em C
Biblioteca Padrão
Para termos acesso à biblioteca que contém as funções e variáveis que facilitam a entrada e saída de
dados deve haver a seguinte declaração no inicío do programa:
#include <stdio.h>
A diretiva (#) include instrui o compilador a ler outro arquivo, adicionando-o àquele que contém a
diretiva.
Saída - A Função printf
A função printf permite que dados sejam escritos na tela do computador. A forma geral é:
printf (controle, arg1, arg2, ...);
onde os argumentos (opcionais) são impressos de acordo com a maneira indicada pelo controle.
Exemplo:
#include /* Biblioteca de entrada e saída */
main()
/* Aqui começa o programa principal */
{
int ano = 2004; /* Declarei ano como inteiro e já defini seu valor */
printf("Estamos no ano de %d", ano); /* Imprime o valor do ano */
}
Na tela do computador será impresso: Estamos no ano de 2004
E/S em C - continuação
O controle, que sempre aparece entre " ", define como serão impressos os argumentos.
Neste controle podem existir dois tipos de informações: caracteres comuns e códigos de formatação.
Os códigos de formatação são precedidos por um % e aplicados aos argumentos na ordem em que aparecem.
Deve haver um código de formatação para cada argumento.
Códigos de Conversão (mais utilizados)
Código
Comentário
%c
Caractere simples
%d
Inteiro
%f
Real em ponto flutuante
%s
Cadeia Caracteres (String)
%%
Imprime o caractere “%”
E/S em C - continuação
Entrada - A Função scanf
A função scanf pode ser utilizada para entrada de dados a partir do teclado. A forma geral é:
scanf(controle, arg1, arg2, ...);
onde os argumentos são os endereços (&) das variáveis que irão receber os valores lidos.
Exemplo:
#include <stdio.h>
main() {
int a;
int b;
scanf("%d %d", &a, &b);
}
Espera-se que dois valores inteiros sejam digitados no teclado. O primeiro é armazenado na
variável a e o segundo em b.
E/S em C - continuação
Lendo e Imprimindo Caracteres - Funções getchar e putchar :
#include <stdio.h>
void main ()
{
char c;
printf("Entre com um caracter entre a e z.\n");
c = getchar();
printf("O caracter lido foi o ");
putchar(c);
}
Funções getch e getche
Na definição original da função getchar a entrada é armazenada até que a tecla ENTER seja
pressionada. Em ambientes onde é necessário tratar o caractere imediatamente esta função pode não
ser útil. Muitos compiladores incluem funções para permitir entrada interativa de dados. As duas
funções mais comuns são getch e getche, que podem ser encontrados em conio.h.
A função getch (void) espera até que uma tecla seja apertada e retorna este valor imediatamente.
O caracter lido não é ecoado na tela.
A função getche (void) opera da mesma maneira, mas ecoa o caracter lido.
E/S em C - continuação
Lendo e Imprimindo Strings
Um string em C é um vetor de caracteres. Para usar strings é preciso primeiro definir um espaço para
armazená-los. Para isto é preciso declarar o tamanho e o tipo do vetor.
Por exemplo: char nome[40]; /* reserva um espaço para armazenar caracteres.*/
Toda string em C termina com o caracter null ('\0'), que é automaticamente inserido pelo compilador.
Portanto o vetor nome pode armazenar no máximo 39 caracteres.
“Problema” de ler e imprimir Strings com scanf e printf
...
char nome[40];
scanf("%s", nome);
printf(“Bem-vindo %s", nome);
...
Caso o nome digitado tenha sido Antonio da Silva, o programa imprimiria somente o seguinte:
Bem-vindo Antonio
Observar que o comando scanf não lê o nome todo, encerra a leitura quando encontra um caracter
branco. Mas como ler para um vetor um nome inteiro ou uma string que contenha brancos? Para isto
deve-se usar a função gets.
E/S em C - continuação
Lendo e Imprimindo Strings com gets e puts
A função gets, que pertence à biblioteca stdio.h, lê toda a string até que a tecla ENTER seja
pressionada, “capturando” os espaços (brancos) inclusive. Caso a função scanf do exemplo
anterior fosse substituída pela gets o programa imprimiria: Bem-vindo Antonio da Silva
O comando que substitui o scanf é gets(nome);
A função puts tem a seguinte forma: puts(char *str);, ela imprime o string apontado por str.
Exemplo similar ao anterior com as funções printf substituídas por puts:
...
char nome[40];
puts("Entre com o seu nome:");
gets( nome);
puts(“Olá ");
puts(nome);
puts(“ ,seja bem-vindo!");
...
Saída:
Olá, Antônio da Silva, seja bem-vindo!
Especificador de
formato
Tipo
Resultado
c
char
um único caractere
i ou d
int
número inteiro
o
int
número em octal
x ou X
int
número em hexadecimal
(com letras minúsculas ou maiúsculas)
u
unsigned int
número inteiro sem sinal
s
char *
escreve o string terminado com \0
f
double ou float
número real com parte decimal
e ou E
double ou float
número real escrito em notação científica
g ou G
double ou float
equivalente a e ou f
(é escolhido o que ocupar menos espaço)
hi ou hd
short
número inteiro curto
li ou ld
long
número inteiro longo
Lf
long double
número real com parte decimal
%
-
escreve o caractere %
Entre o caractere % e o caractere especificador de formato podemos colocar
ainda os seguintes indicadores:
- - (sinal menos): faz uma justificação à esquerda;
- + (sinal mais): o valor a escrever contém sempre um sinal (- ou +);
- valor inteiro: tamanho em caracteres do valor a escrever (se o valor
para ser escrito ocupar mais caracteres do que o especificado, não é
truncado);
- indicador na forma num1.num2:
num1: tamanho total em caracteres do valor a escrever
num2: precisão (número de algarismos decimais).
Alguns exemplos:
printf("%-2.3f\n", 17.23478);
produz no terminal a saída:
printf("VAT = 17.5%%\n");
que escreve: VAT = 17.5%
17.234
Mais Exemplos
As funções mais básicas que permitem efetuar operações de entrada/saída nos streams
pré-definidos stdin e stdout são:
 int getchar(void);
Essa função lê apenas um caractere de stdin (codificado como inteiro).
 int putchar(char ch);
Essa função coloca o caractere ch em stdout .
Estas funções, bem como todas as outras que dizem respeito a operações de
entrada/saída suportadas pela biblioteca standard do C, estão declaradas no arquivo de
inclusão stdio.h.
Exemplo:
#include <stdio.h>
...
int ch;
...
ch = getchar();
putchar((char) ch);
...
Download

Introdução Básica ao C - Universidade Federal de São Carlos