Aula 3 Constantes e funções de E/S

Documentos relacionados
Linguagem C. André Tavares da Silva.

Linguagem de Programação C

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha

3.1 - Funções para manipular dados de entrada e saída padrão

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

Linguagem C Entrada/Saída (console)

Funções de Entrada e Saída

Disciplina de Algoritmos e Programação

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

A Linguagem C. A forma de um programa em C

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Introdução à Computação (IC) Linguagem C: Comandos de entrada e saída

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br

Programação Básica. Estrutura de um algoritmo

Aula 03: Introdução a C

Linguagem de Programação C. Expressões em C

Faculdade de Computação

Programação: Entrada e Saída de Dados

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Estrutura de Programas e Tipos de Dados Simples

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

Introdução à Programação

Capítulo 2 Operadores. A função scanf()

3. Linguagem de Programação C

Tratamento de Caracteres

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Ambiente de desenvolvimento

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Linguagem C Princípios Básicos (parte 1)

Linguagem C: Introdução

Introdução a Linguagem C. Prof. Me. Hélio Esperidião

Introdução à Linguagem C

Conhecendo a Linguagem de Programação C

Apêndice B. Cadeias de Caracteres (Strings)

Programação científica C++

CCO 016 / COM 110 Fundamentos de Programação

Aula 03 - Linguagem C

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Algoritmos e Programação

INTRODUÇÃO À LINGUAGEM C

Computação 2. Aula 3. Diego Addan Vetores de caracteres (strings)

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Elementos de programação em C

Variáveis, Tipos de Dados e Operadores

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2

3. Linguagem de Programação C

Introdução a Programação de Jogos

4. Estruturas Fundamentais de Programação em C

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010

Programação Estruturada

Introdução à Computação MAC0110

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Programação: Vetores

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

Introdução à Programação

Transcrição:

Programação I Aula 3 e funções de E/S Prof. Laura Silva de Assis e Prof. Luis Carlos Retondaro Engenharia de Computação 2o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca Campus Petrópolis 1o semestre - 2017

1 Sumário 1 2 3 4

2 Conceito em outras bases String caracter de barra invertida referem-se a valores fixos que o programa não pode alterar e podem ser de qualquer um dos tipos de dados básicos; Exemplos: a, A ; 8, 10, 352; Linguagem C.

3 Conceito em outras bases String caracter de barra invertida A maneira como cada constante é representada depende do seu tipo de dados: de caracter: São envolvidas por aspas simples ( ). Exemplo: a e % ; inteiras: São especificados como números sem componentes fracionários. Exemplo: 10 e -100; de ponto flutuante: Requerem o ponto decimal seguido pela parte fracionária do número. Exemplo: 11.123; Constante do tipo sting: É um conjunto de caracteres entre aspas duplas. Exemplo: Hello world!.

4 Conceito em outras bases String caracter de barra invertida Os modificadores de tipo também podem ser utilizados, na declaração de constantes, para criar variações nos tipos básicos; Por padrão o C encaixa uma constante numérica no menor tipo de dado compatível que pode contê-lo; Exemplo: 10 é um int por padrão, mas 60.000 é um unsigned int e 100.000 é um long; Muito embora o valor 10 possa caber em um tipo caracter o compilador não atravessa os limites de tipo; O programador pode especificar precisamente o tipo da constante numérica que deseja através da utilização de um sufixo.

5 Conceito em outras bases String caracter de barra invertida Para tipos de ponto flutuante, usando o sufixo F a constante será tratada como um float, e usando L será um long double. Para tipos inteiros, o sufixo U representa unsigned e o L um long. Tipo de dado Exemplo de constante int 1, 123, 21000, -234 long int 35000L, -34L short int 10, -12, 90 unsigned int 10000U, 987U, float 123.23F, 4.34F double 123.23, 123123.33 long double 1001.2L

6 Conceito em outras bases String caracter de barra invertida Existem 2 maneiras mais comuns de criar uma constante em C: 1 #define: Forma padrão para criação de constantes com define: #d e f i n e i d e n t i f i c a d o r v a l o r // Exemplo #d e f i n e PI 3.14159265 #d e f i n e ERRO E r r o!!! 2 const: Também é possível criar constantes usando a palavra reservada const: c o n s t t i p o d a v a r i a v e l n o m e d a v a r i a v e l = v a l o r ; // Exemplo const i n t TAMANHO = 100;

7 Conceito em outras bases String caracter de barra invertida Exemplo de utilização de constantes // d e f i n i n d o c o n s t a n t e s para o c á l c u l o de uma c i r c u n f e r ê n c i a #i n c l u d e <s t d i o. h> #d e f i n e PI 3.14159 #d e f i n e NEWLINE \n i n t main ( ) { f l o a t r a i o, c i r c ; } p r i n t f ( E n t r e com o v a l o r do r a i o \n ) ; s c a n f ( %f, &r a i o ) ; // r a i o c i r c = 2 PI r a i o ; // u t i l i z a n d o a c o n s t. Pi. p r i n t f ( c i r c u n f e r ê n c i a = %f \n, c i r c ) ; p r i n t f ( %s, NEWLINE ) ; r e t u r n ( 0 ) ;

8 Conceito em outras bases String caracter de barra invertida Resultado da execução E n t r e com o v a l o r do r a i o 5. 2 c i r c u n f e r ê n c i a = 32.672535

9 Hexadecimais e Octais Conceito em outras bases String caracter de barra invertida Para alguns problemas é mais fácil utilizar o sistema numérico na base 8 ou na base 16 em lugar do nosso sistema decimal padrão; O sistema numérico na base 8 é chamado de octal e utiliza números de 0 a 7; O sistema numérico na base 16 é o hexadecimal e utiliza números de 0 a 9 mais as letras de A a F que representam os números de 10 ao 15, respectivamente; Em virtude desses números serem frequentemente utilizados, o C permite especificar constantes inteiras em hexadecimal ou octal.

10 Hexadecimais e Octais Conceito em outras bases String caracter de barra invertida Uma constante hexadecimal deve consistir em um 0x seguido por uma constante na forma hexadecimal; Uma constante octal começa com zero seguido de um número na forma octal; Exemplos: i n t hex = 0 x80 ; // 128 em d e c i m a l i n t o c t = 0 1 2 ; // 10 em d e c i m a l

11 Hexadecimais e Octais Conceito em outras bases String caracter de barra invertida Exemplo: #i n c l u d e <s t d i o. h> v o i d main ( ) { i n t ex = 0 x80 ; i n t oc = 0 1 2 ; p r i n t f ( Exa : %d \ t O c t a l : %d\n, ex, oc ) ; } Resultado: Exa : 128 O c t a l : 10

12 Conceito em outras bases String caracter de barra invertida strings O C suporta outro tipo de constante: a string; A string é um conjunto de caracteres colocado entre aspas duplas ( ). Exemplo: Isso é uma string ; Embora o C permita que o programador defina constantes string, o C não possui formalmente um tipo de dado string; Não se deve confundir strings com caracteres. Uma constante de um único caracter é colocado entre aspas simples ( a ), porém a é uma string contendo apenas uma letra.

13 Conceito em outras bases String caracter de barra invertida Barra invertida Colocar entre aspas simples as constantes de tipo caracter funciona para a maioria dos caracteres imprimíveis; Alguns caracteres são impossíveis de inserir pelo teclado, por isso o C criou constantes especiais de caracter de barra invertida. Códigos de barra invertida Código Signnificado \b BackSpace \f Quebra de página \n Nova linha \r Retorno de carro \t Tabulação horizontal

14 Conceito em outras bases String caracter de barra invertida Barra invertida Códigos de barra invertida Código Signnificado \ Aspas duplas \ Aspas simples \0 Nulo \\ Barra invertida \v Tabulação vertical \a Emite sinal sonoro \N Constante octal (onde N é a constante) \xn Constante hexadecimal (onde N é a constante)

15 Funções de entrada e saída em C As funções de saída são utilizadas para interface com o usuário, ou seja, é utilizada para a comunicação entre a máquina e o usuário de alguma maneira, não importando que seja em uma folha impressa, que seja na tela, que seja colorido, que seja um desenho, etc; O programador deve se preocupar com toda comunicação entre a máquina e o usuário, de forma a induzir o usuário a praticar determinada ação ou mostrar claramente o resultado de um processamento.

16 Funções de entrada e saída em C A entrada de dados é algo muito importante para qualquer programa, que deve ser usado em conjunto com uma função de saída; A função de saída deve induzir o usuário a fazer uma ação, e a função de entrada é que vai armazenar esta ação do usuário; As funções de E/S em C são encontradas na biblioteca padrão de entrada e saída, stdio.h.

17 A função printf() A função printf() tem a seguinte forma geral: p r i n t f ( s t r i n g d e c o n t r o l e, l i s t a d e a r g u m e n t o s ) ; 1 A string de controle é uma descrição de tudo que a função vai imprimir na tela; 2 Para a impressão dos argumentos é preciso especificar códigos de controle (especificadores de formato).

18 Exemplo - função printf() // exemplo de u t i l i z a ç ão da fun ç ão p r i n t f ( ) #i n c l u d e <s t d i o. h> // b i b l i o t e c a padr ão I /O de C i n t main ( ) { p r i n t f ( Esta e uma mensagem sendo mostrada na t e l a ) ; r e t u r n 0 ; }

19 A função printf() Especificadores de formato

20 Exemplo de impressão de constantes #i n c l u d e <s t d i o. h> i n t main ( ) { p r i n t f ( O programa A imprime o número 2\n ) ; p r i n t f ( O programa %c imprime o número 2\n, A ) ; p r i n t f ( O programa A imprime o número %d\n, 2 ) ; p r i n t f ( O programa %c imprime o número %d\n, A, 2 ) ; p r i n t f ( O programa %c %s %d\n, A, imprime o n u m e r o, 2 ) ; r e t u r n ( 0 ) ; }

21 Resultado da execução O programa A imprime o número 2 O programa A imprime o número 2 O programa A imprime o número 2 O programa A imprime o número 2 O programa A imprime o número 2

22 A função printf() Formatando valores inteiros Formatando valores float p r i n t f ( O v a l o r é : %5.3 f, v a l o r ) ; Exibe valor com um mínimo de 5 caracteres e com 3 casas decimais.

23 A função printf() Exemplo // Programa que formata i n t e i r o s na i m p r e s s a o #i n c l u d e <s t d i o. h> i n t main ( ) { i n t v a l o r = 1 ; f l o a t num = 3. 1 5 8 9 ; } p r i n t f ( \ n J u s t i f i c a d o a d i r e i t a => %5d\n, v a l o r ) ; p r i n t f ( J u s t i f i c a d o a e s q u e r d a => % 5d\n, v a l o r ) ; p r i n t f ( Num com 2 c a s a s d e c i m a i s : %.2 f \n,num) ; p r i n t f ( Num com 6 c a s a s d e c i m a i s : %.6 f \n,num) ; p r i n t f ( Num com 10 c a r a c t e r e s e 3 c a s a s d e c i m a i s : %10.3 f \n,num) ; r e t u r n ( 0 ) ;

24 A função printf() Resultado de execução J u s t i f i c a d o a d i r e i t a => 1 J u s t i f i c a d o a e s q u e r d a => 1 Num com 2 casas decimais : 3. 16 Num com 6 casas decimais : 3.158900 Num com 10 c a r a c t e r e s e 3 c a s a s d e c i m a i s : 3. 1 5 9

25 A função scanf() A função scanf() é utilizada para realizar a entrada de dados para o programa através do teclado; O formato geral da função scanf() é: s c a n f ( s t r i n g d e c o n t r o l e, l i s t a d e a r g u m e n t o s ) ; O scanf() deve ter como primeiro argumento uma string, denominado string de formato, que descreve como deve ser a seqüência de caracteres da entrada.

26 A função scanf() Exemplo de uso da função scanf() // Exemplo da fun ção scanf ( ) #i n c l u d e <s t d i o. h> i n t main ( ) { i n t num ; p r i n t f ( D i g i t e um número : ) ; } s c a n f ( %d, &num) ; p r i n t f ( Numero d i g i t a d o : %d\n, num) ; r e t u r n ( 0 ) ;

27 A função scanf() Exemplo de uso da função scanf() com várias entradas na mesma linha // Exemplo da fun ç ão s c a n f ( ) com mú l t i p l a s e n t r a d a s na mesma l i n h a #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { i n t a, b, r ; p r i n t f ( D i g i t e d o i s numeros para serem somados : \ n ) ; s c a n f ( %d %d, &a, &b ) ; r=a+b ; p r i n t f ( \na soma de %d mais %d e i g u a l a %d, a, b, r ) ; r e t u r n 0 ; }

28 As funções As funções, assim com a scanf() lêem da entrada padrão, porém elas não suportam formatação; A função gets(), vem de get string, e lê uma string até o final da linha ou até que não se tenha mais dados para ler. Ao final adiciona o terminador de string \0 ; A função getchar() lê apenas um caracter; Não se usa o & quando ao ler uma string dado que ela é um vetor de caracteres e o seu nome é o endereço de memória do primeiro elemento do vetor. // Exemplos char nome [ 2 0 ], c ; g e t s ( nome ) ; c = g e t c h a r ( ) ;

As funções A função scanf() lê tudo até aparecer um espaço em branco e pára antes dele, já a função gets() lê tudo até aparecer um new line, inclusive um nada. #i n c l u d e <s t d i o. h> i n t main ( ) { char b u f f e r [ 1 0 ], s e x o ; i n t i d a d e ; } p r i n t f ( E n t r e com o seu nome : \n ) ; g e t s ( b u f f e r ) ; p r i n t f ( E n t r e com o s e x o ( F ou M) : \n ) ; s e x o = g e t c h a r ( ) ; p r i n t f ( E n t r e com a i d a d e : \ n ) ; s c a n f ( %d,& i d a d e ) ; p r i n t f ( \n Dados \n ) ; p r i n t f ( Nome : %s \n, b u f f e r ) ; p r i n t f ( Sexo : %c \n, s e x o ) ; p r i n t f ( I d a d e : %d\n, i d a d e ) ; p r i n t f ( \n\n ) ; r e t u r n 0 ; 29

30 As funções Resultado de execução Entre com o seu nome : Laura A s s i s E n t r e com o s e x o (F ou M) : F Entre com a idade : 31 Dados Nome : Laura A s s i s Sexo : F Idade : 31

31 As funções São as funções mais simples do cabeçalho stdio.h. Ambas enviam (ou imprimem ) à saída padrão os caracteres fornecidos a elas; A função puts(), vem de put string e é utilizada para colocar uma string na saída de dados; A função putchar() significa put char e é utilizada para colocar um caracter na saída de dados. // Exemplos char nome [ 2 0 ] ; g e t s ( nome ) ; p u t s ( nome ) ; p u t s ( Aula de C ) ; p u t c h a r ( A ) ; p u t c h a r ( \n ) ;

32 As funções Note que junto com a função puts() devemos usar literais de string (com aspas duplas), e com putchar() devemos usar literais de caractere (com aspas simples); Se o programador tentar compilar algo como putchar( T ), o compilador enviaria uma mensagem de erro, pois T é diferente de T.

33 As funções Pode-se usar caracteres especiais como tabulação e quebra de linha; // Exemplos p u t s ( P r i m e i r a l i n h a \n Segunda l i n h a \ t e um grande espa ç o ( tab ) ) ; p u t c h a r ( \n ) ; // apenas e n v i a uma quebra de l i n h a p u t s ( Fim ) ; A função puts() sempre coloca uma quebra de linha após imprimir a string, o que não ocorre com o putschar() e printf().

34 Include A instrução #include < stdio.h > que precede o main() é necessária pois: Para definir uma função é necessário dizer o tipo de retorno, identificador da função e lista de parâmetros (protótipo da função); Para que a função main() ative uma outra função, definida pelo usuário ou contida na biblioteca, seu protótipo deve ser definido antes de sua chamada; Os protótipos de funções do sistema estão reunidos (de acordo com objetivos semelhantes) em arquivos cabeçalhos (header files).

35 Include A instrução #include < stdio.h > que precede o main() é necessária pois: A instrução #include < stdio.h >, anexa ao main() os protótipos das funções de biblioteca que executam ações padrões de E/S; stdio vem de standard input output, entrada e saída padrão e h é a extensão padrão dos arquivos de cabeçalhos.

36 1 C Completo e Total, Herbert Schidt; Pearson Makron Books; 3a. Ed., 1997. 2 Linguagem C. DAMAS, Luis. 10a. Edição. LTC, 2014.