Download - Linguagem C (Parte 5)
Introdução à Programação em
Linguagem C
Prof. Rodolfo Riyoei Goya
Modelo Abstrato de Programação
• Elementos Estruturais
• Dados de Tipo Simples
• Dados em Estruturas Homogêneas
• Dados em Estruturas Heterogêneas
• Elementos Algorítmicos
• Declaração
• Comandos de Entrada/Saída
• Comandos de Expressão
• Comandos de Decisão
• Comandos de Iteração
Comandos Básicos de Entrada/Saída
• Fazem a “comunicação” entre o programa e o
mundo exterior, através dos dispositivos de
entrada padrão (stdin) e saída padrão (stdout)
• Comandos básicos:
• Saída Formatada: printf()
• Entrada Formatada: scanf()
printf()
• Exibe uma saída formatada para o dispositivo de saída padrão (stdout)
• Biblioteca stdio.h
• Pode ser usado para imprimir textos e mensagens:
• Exemplo
#include <stdio.h>
.
printf( “Este programa eh bacana.” );
printf()
• Algumas sequências são necessárias para traduzir comandos de controle para formatação de impressão.
• No exemplo abaixo, o “\n” é usado para introduzir uma quebra de linha na impressão.
#include <stdio.h>
.
printf( “Linha 1\nLinha 2” );
Sequências de Controle
Sequência Significado Descrição
\n Quebra de linha Posiciona o cursor no início da próxima linha.
\b Backspace Posiciona o cursor uma posição antes da
atual (a menos que já esteja na coluna inicial)
\t Tabulação Avança o cursor para a próxima coluna
múltipla de 8 (as colunas vão de 0 a 79)
\a Alarme Toca um “beep”
\r Carriage Return Posiciona o cursor no início da mesma linha.
\\ Caractere \ Imprime o caractere ‘\’
\” Caractere “ Imprime o caractere “
\’ Caractere ‘ Imprime o caractere ‘
printf()
• Pode ser usado para imprimir o valor de variáveis.
• Exemplo
#include <stdio.h>
.
int i = 10;
printf( “O valor de i eh: %d”, i );
printf()
• Os marcadores iniciados com ‘%’ são substituídos por variáveis ou expressões listados em seguida no comando printf
• Exemplo:int i = 10;
printf( “O valor de i eh: %d”, i );
• A ordem que os marcadores aparecem define a ordem das variáveis/expressões usadas para substituí-los.
• O formato geral dos marcadores é:
• %[Flags][Largura].[Precisão][Tamanho]Tipo
printf() - Marcadores
• %[Flags][Largura].[Precisão][Tamanho]Tipo
• Flags (Opcional): Um ou mais dentre os caracteres -, +, # ou 0
especificando a justificação do número e o uso ou não de sinal e do ponto
decimal no valor impresso.
• Largura (Opcional): Um número que especifica quantos caracteres, no
mínimo, devem ser utilizados na impressão.
• Precisão (Opcional): Um número que especifica quantos caracteres, no
máximo, devem ser utilizados na impressão.
printf() - Marcadores
• %[Flags][Largura].[Precisão][Tamanho]Tipo• Tamanho (Opcional): Um caracter que modifica o campo Tipo que vem a
seguir.
• Se for um h antes de um tipo d, i, o, x, X ou u especifica que o argumento é de
tipo short.
• Se for um l antes de um tipo d, i, o, x, X ou u especifica que o argumento é de
tipo long.
• Se for um ll antes de um tipo d, i, o, x, X ou u especifica que o argumento é de
tipo long long (64 bits).
• Se for um l antes de um tipo e, E, f, g, G especifica que o argumento é de tipo
double.
• Se for um L antes de um tipo e, E, f, g, G especifica que o argumento é de tipo
long double.
• Tipo (Obrigatório): O ítem mais importante desta lista. Uma letra que especifica o tipo da variável a ser impressa.
printf() – Tipo
Tipo Tipo de Dado Descrição
%d int Inteiro
%u unsigned Inteiro (sem sinal)
%ld long Inteiro long
%lu unsigned long Inteiro long (sem sinal)
%hd short Inteiro short
%hu unsigned short Inteiro short (sem sinal)
%lld long long Inteiro long long
%llu unsigned long long Inteiro long long (sem sinal)
printf() – Tipo
Tipo Tipo de Dado Descrição
%% Caractere ‘%’
%c char Caractere
%o octal Octal (sem sinal)
%x hexadecimal Hexadecimal com letras minúsculas (sem sinal)
%X hexadecimal Hexadecimal com letras maiúsculas (sem sinal)
printf() – Tipo
Tipo Tipo de Dado Descrição
%e double ou float Ponto flutuante em notação científica
%E double ou float Ponto flutuante em notação científica (usando E)
%f double ou float Ponto flutuante na forma (sinal)(dígitos).(dígitos)
%g double ou float Escolhe dentre f ou e o que produz a saída mais compacta.
%G double ou float Idem ao g (usando F ou E).
%Le long double Ponto flutuante em notação científica
%Lf long double Ponto flutuante na forma (sinal)(dígitos).(dígitos)
%Lg long double Escolhe dentre f ou e o que produz a saída mais compacta.
%s char[] Imprime uma cadeia de caracteres até encontrar ‘\0’
printf() – Flag
Flag Significado Default
- Valor impresso justificado para a esquerda dentro
de um campo grande o bastante para contê-lo
Justificado para a direita
+ Se a impressão for de um número será impresso
‘+’ ou ‘-’ de acordo com o sinal do número
Um sinal ‘-’ é impresso para
valores negativos
0 Os números são preenchidos com zeros a
esquerda
Os números são preenchidos
com espaços em branco
printf() – Precisão
Tipo Significado de precisão Default
c Ignorada. Só um caracter é impresso.
d u i
l ll o
x X
Especifica o número mínimo de dígitos a ser impresso. Se o
número ocupar menos dígitos que o especificado é preenchido
com brancos ou zeros (depende do flag usado). Se o número
ocupar mais dígitos ele é impresso mesmo assim (nunca é
truncado).
Se não for especificada ou se for
zero ou apenas um ponto decimal
sem um número depois dele, o
valor default será 1.
e E
Le
LE
Número de dígitos a serem impressos depois do ponto
decimal. Se especificado 0, não imprime nem o ponto
decimal.
6 dígitos.
F
LF
Número de dígitos a serem impressos depois do ponto
decimal. Se especificado 0, não imprime nem o ponto
decimal.
6 dígitos.
g G
Lg
LG
Especifica o número de algarismos significativos a serem
impressos.
Todos os algarismos
significativos
s O número total de caracteres impresso. Preenche com brancos
se for menor e trunca se for maior.
Toda a string.
scanf()
• Recebe entrada formatada no dispositivo de entrada padrão (stdin)
• Biblioteca stdio.h
• Usa os mesmos marcadores que o printf()
• Admite múltiplas entradas por comando, inclusive com marcadores de conversão diferentes
• Exige o operador ‘&’ antes dos nomes das variáveis (exceto quando se tratam de variáveis de tipo strings)
scanf() - Exemplo
• Exemplo
#include <stdio.h>
.
int i, j;
float x;
char nome[20];
scanf( “%d”, &i );
scanf( “%d %f”, &j, &x );
scanf( “%s”, nome );
Conclusões
• A comunicação é parte essencial de qualquer programa.
• Os comandos de entrada/saída em linguagem C permitem a comunicação direta na forma de caracteres codificados em ASCII ou executando a conversão desses caracteres de/para números inteiros, em ponto flutuante, hexadecimal e octal
• O comando printf() permite um controle fino do formato em que a saída será impressa.
Introdução à Programação em Linguagem C Rodolfo Riyoei Goya
Copyright © 2015, Rodolfo Riyoei Goya