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 1nLinha 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

Linguagem C (Parte 5)

  • 1.
    Introdução à Programaçãoem Linguagem C Prof. Rodolfo Riyoei Goya
  • 2.
    Modelo Abstrato deProgramaçã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
  • 3.
    Comandos Básicos deEntrada/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()
  • 4.
    printf() • Exibe umasaí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.” );
  • 5.
    printf() • Algumas sequênciassã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 1nLinha 2” );
  • 6.
    Sequências de Controle SequênciaSignificado 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 ‘
  • 7.
    printf() • Pode serusado para imprimir o valor de variáveis. • Exemplo #include <stdio.h> . int i = 10; printf( “O valor de i eh: %d”, i );
  • 8.
    printf() • Os marcadoresiniciados 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
  • 9.
    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.
  • 10.
    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.
  • 11.
    printf() – Tipo TipoTipo 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)
  • 12.
    printf() – Tipo TipoTipo 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)
  • 13.
    printf() – Tipo TipoTipo 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’
  • 14.
    printf() – Flag FlagSignificado 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
  • 15.
    printf() – Precisão TipoSignificado 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.
  • 16.
    scanf() • Recebe entradaformatada 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)
  • 17.
    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 );
  • 18.
    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.
  • 19.
    Introdução à Programaçãoem Linguagem C Rodolfo Riyoei Goya
  • 20.
    Copyright © 2015,Rodolfo Riyoei Goya