Linguagem C (Parte 2)

159 visualizações

Publicada em

Parte 2

Publicada em: Engenharia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
159
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Linguagem C (Parte 2)

  1. 1. Introdução à Programação em Linguagem C Rodolfo Riyoei Goya http://rgoya.sites.uol.com.br rgoya@uol.com.br
  2. 2. 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 16.02.14 Linguagem C Rodolfo Goya 2
  3. 3. 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 de Caracter: putchar(), putc(), putch() Entrada de Caracter: getchar(), getc(), getch(), getche() Saída Formatada: printf() Entrada Formatada: scanf() 16.02.14 Linguagem C Rodolfo Goya 3
  4. 4. putchar() Envia um caracter para o dispositivo de saída padrão (stdout) Biblioteca stdio.h Equivalente a putc( char, stdout ) Converte um valor de 8 bits segundo a tabela ASCII Pode enviar valores de constantes e variáveis: #include <stdio.h> . char c = ‘?’, d = 49; putchar( c ); putchar( d ); putchar( 65 ); putc( ‘A’, stdout );
  5. 5. putch() Envia um caracter para o dispositivo de saída padrão (stdout - console) Biblioteca conio.h Converte um valor de 8 bits segundo a tabela ASCII Pode enviar valores de constantes e variáveis: #include <conio.h> char c = ‘?’, d = 49; putch( c ); putch( d ); putch( 65 ); putc( ‘A’, stdout );
  6. 6. getchar() Recebe um caracter do dispositivo de entrada padrão (stdin - console) ecoando o caracter recebido. Aguarda “Enter” para finalizar. Biblioteca stdio.h Equivalente a getc( stdin ) Converte um valor de 8 bits segundo a tabela ASCII #include <stdio.h> . char c, d; c = getchar(); d = getc( stdin );
  7. 7. getche() Recebe um caracter do dispositivo de entrada padrão (stdin - console) ecoando o caracter recebido. Não aguarda “Enter” para finalizar. Biblioteca conio.h Converte um valor de 8 bits segundo a tabela ASCII #include <conio.h> . char c; c = getche();
  8. 8. getch() Recebe um caracter do dispositivo de entrada padrão (stdin - console) sem ecoar o caracter recebido. Não aguarda “Enter” para finalizar. Biblioteca conio.h Converte um valor de 8 bits segundo a tabela ASCII #include <conio.h> . char c, d; c = getch(); d = getch();
  9. 9. printf() Exibe uma saída formatada para o dispositivo de saída padrão (stdout) Biblioteca stdio.h Exemplo #include <stdio.h> . int i = 10; printf( “Este programa é bacana.” ); printf( “O valor de i é: %d”, i );
  10. 10. printf() Os marcadores iniciados com ‘%’ são substituídos por variáveis ou expressões listados em seguida no comando printf 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]
  11. 11. 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.
  12. 12. 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.
  13. 13. 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)
  14. 14. printf() – Tipo Tipo Tipo de Dado Descrição %% Caracter ‘%’ %c char Caracter %o octal Octal (sem sinal) %x hexadecimal Hexadecimal com letras minúsculas (sem sinal) %X hexadecimal Hexadecimal com letras maiúsculas (sem sinal)
  15. 15. 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’
  16. 16. 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
  17. 17. 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. Todo o string.
  18. 18. 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)
  19. 19. 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 );
  20. 20. Redirecionamento A entrada/saída pode ser redirecionada A entrada padrão (stdin) pode ser redirecionada pelo comando freopen() para vir de um arquivo. Por exemplo: freopen( "in.txt", "r", stdin ); Neste caso, toda entrada virá do arquivo in.txt A saida padrão (stdout) pode ser redirecionada pelo comando freopen() para ser enviada a um arquivo. Por exemplo: freopen( "out.txt", "w", stdout ); Neste caso, toda saída irá para o arquivo out.txt
  21. 21. Conclusões A comunicação é parte essencial de qualquer programa. Pode ser interativa (com o usuário) ou com entrada e saída através de arquivos (também denominada de “batch”) 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

×