Buscar

Aula - Funções básicas de C

Prévia do material em texto

Funções Básicas
Introdução a Programação
Pitágoras
• Funções
▫ Biblioteca STDIO (Standard Input/Output)
 printf
 scanf
▫ Biblioteca STDLIB (Standard Library)
 system
 rand
▫ Biblioteca MATH
 pow
Roteiro
Laboratório de Programação I - Glaudiney Mendonça
2
• Conjunto de funções úteis que vem com o C
• Para inserir uma biblioteca
▫ #include < nome >
• Exemplos
▫ #include <stdio.h>
▫ #include <stdlib.h>
▫ #include <math.h>
Bibliotecas
Laboratório de Programação I - Glaudiney Mendonça
3
• Escreve dados no dispositivo de saída padrão 
▫ Vídeo
• Biblioteca
▫ stdio.h
• Protótipo
printf
Laboratório de Programação I - Glaudiney Mendonça
4
int printf (const char* cadeia, ... );
Retorno Quantidade de caracteres impressos
cadeia
Cadeia de formatação
• Caracteres que serão impressos na tela
• Especificadores de formato
... Valores que substituirão os especificadores
• Especificadores de Formato
▫ Informam como os outros parâmetros (...) da função 
serão interpretados e apresentados
▫ Definidos pelo símbolo % seguido pelo código
▫ Deve existir igual quantidade de especificadores e de 
argumentos 
▫ São relacionados da esquerda para a direita
printf
Laboratório de Programação I - Glaudiney Mendonça
5
Exemplo
char ch = 'C';
printf("Gosto %s de %c", "muito", ch);
Saída Gosto muito de C
printf
Especificadores de Formato
6
Código Formato
c Caractere
s Cadeia de caracteres
d, i
Inteiro
decimalld, li longo
ll longo longo
u sem sinal
Laboratório de Programação I - Glaudiney Mendonça
printf
Especificadores de Formato
7
Código Formato
f
Ponto 
Flutuante
Lf longo (long double)
e, E
Notação Científica 
Le, LE Longo
g Usa e ou f (o mais curto)
% Escreve o símbolo %
Laboratório de Programação I - Glaudiney Mendonça
• Exemplos
printf
Notação Científica
Laboratório de Programação I - Glaudiney Mendonça
8
Número Base 10
Notação Científica
e E
1000 1 x 103 1e3 1E3
0,0345 3.45 x 10-2 3.45e-2 3.45E-2
x.ddd(E/e)(+/-)yy
x Parte inteira (1 dígito)
ddd Parte fracionária
(E/e) Símbolo e para %e e E para %E que substitui a base 10
(+/-) Sinal do expoente da base 10
yy Expoente
• Número colocado entre o % e o código
• Preenche a saída com espaços 
▫ Para preencher com 0s, colocar um zero antes da 
largura mínima
• Útil para se imprimir tabelas com colunas 
alinhadas
printf
Largura Mínima de Campo
Laboratório de Programação I - Glaudiney Mendonça
9
Exemplos Saída
printf("%f\n", 10.12304); 10.123040
printf("%12f\n", 10.12304); 10.123040
printf("%012f\n", 10.12304); 00010.123040
• Segue o especificador de largura (se houver), 
separados por um ponto (.)
• Seu efeito depende do tipo de dado
printf
Especificadores de Precisão
Laboratório de Programação I - Glaudiney Mendonça
10
f Número de casas decimais
g Dígitos significativos
s
Comprimento máximo
Corta o restante
d
Número mínimo de dígitos
Preenche com zeros
printf
Especificadores de Precisão
Laboratório de Programação I - Glaudiney Mendonça
11
Exemplos Saída
printf("%.4f\n", 123.1234567); 123.1235
printf("%3.8d\n", 1000); 00001000
printf("%10.15s\n", 
"Esse e um teste simples");
Esse e um teste
• Ler dados do dispositivo de entrada padrão 
▫ Teclado
• Biblioteca
▫ stdio.h
• Protótipo
scanf
Laboratório de Programação I - Glaudiney Mendonça
12
int scanf( const char* cadeia, ... );
Retorno
Quantidade de dados atribuídos às variáveis
Se erro, retorna EOF
cadeia
Define quantas e quais informações serão inseridas
• Especificadores de formato
• Caracteres
... Endereços das variáveis que receberão as informações lidas
scanf
Especificadores de Formato
13
Código Formato
c Caractere
s Cadeia de caracteres
d, i Inteiro decimal com sinal
u Inteiro decimal sem sinal
f, e, g Ponto flutuante decimal
Laboratório de Programação I - Glaudiney Mendonça
• Observação
▫ Espaços em branco podem ser lidos (%c) pelo 
scanf, não funcionando como separadores
scanf
Especificadores de Formato
Laboratório de Programação I - Glaudiney Mendonça
14
Exemplos
scanf("%d", &a);
scanf("%d%c", &b, &x);
scanf("%f%u",&preco,&quant);
• Espaços em branco na cadeia de controle saltam 
espaços em branco na entrada
▫ Espaço
▫ Tabulação
▫ Quebra de linha
scanf
Espaços em branco
Laboratório de Programação I - Glaudiney Mendonça
15
Exemplo Entrada
scanf("%d %c", &a, &b); 13 a
• Espaços não-brancos indicam caracteres que 
devem ser descartados na entrada
• Se o caractere não for encontrado, scanf
termina
scanf
Espaços não-branco
Laboratório de Programação I - Glaudiney Mendonça
16
Exemplos Entrada
scanf("%d,%d", &a, &b); 13,25
scanf("%d/%d/%d", 
&dia, &mes, &ano);
25/4/08
• Envia um comando para o SO
• Biblioteca
▫ stdlib.h
• Protótipo
system
Laboratório de Programação I - Glaudiney Mendonça
17
int system( const char* cadeia );
Retorno 0, se comando executado com sucesso
cadeia Comando válido do SO
Exemplos
system("pause");
system("cls");
system("dir");
• Gera um número pseudo-randômico 
• Biblioteca
▫ stdlib.h
• Protótipo
rand
Laboratório de Programação I - Glaudiney Mendonça
18
int rand();
Retorno Número aleatório
Exemplos Intervalo
int x = rand(); 0 RAND_MAX
x = rand() % (max+1); 0 max
x = (rand() % (max-min+1)) + min; min max
• Muda a semente que gera os números pseudo-
aleatórios de rand
• Biblioteca
▫ stdlib.h
• Protótipo
srand
Laboratório de Programação I - Glaudiney Mendonça
19
void srand(unsigned seed);
seed Ponto de partida (semente) para a seqüência de números 
Exemplos Semente
srand(0); 0
srand(time(0)); Hora do sistema
• Eleva um número a outro
• Biblioteca
▫ math.h
• Protótipo
pow
Laboratório de Programação I - Glaudiney Mendonça
20
double pow(double base, double exp);
Retorno Base elevada ao expoente
base Base
exp Expoente
Exemplos x
float x = pow(3,4); 81
x = pow(25,0.5); 5

Continue navegando