Funções de Entrada e Saída
inicio
Escrita no ecrã
(Saída de dados)
Escrever(“introduza o valor do raio”)
Raio
S
Raio < 0
Escrever(“raio inválido”)
Leitura do valor do raio
N
O utilizador insere o valor do raio
(Entrada de dados do teclado)
Area ← π. Raio. Raio
Escrita no ecrã
(Saída de dados)
Escrever(Area)
Escrita no ecrã
(Saída de dados)
Fim
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
1
Funções de Entrada e Saída
inicio
inicio
Escrever(“introduza o valor do raio”)
Escrever(“introduza o valor do raio”)
Raio
S
Raio < 0
Escrever(“raio inválido”)
N
Area ← π. Raio. Raio
S
Raio < 0
Escrever(“raio inválido”)
N
Area ← π. Raio. Raio
Escrever(Area)
Escrever(Area)
Fim
Leitura do valor do raio
Ler(Raio)
Leitura do valor do raio
Fim
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
2
Funções de Entrada e Saída
Monitor - Ecrã – Écran (Francês)
(bits, caracteres que são apresentados no ecrã)
Teclado
(bits, caracteres, que entram no PC)
Saída de Dados
ficheiro stdout (standard output)
ficheiro stdin (standard input)
Entrada de Dados
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
3
Funções de Entrada e saída
• Funções de entrada de dados (entrada a partir do teclado )
– scanf - scan formatted. (lé um int, um char, um float, uma string,)
– gets - get string : lé uma string do teclado
– getchar - get character : lé um carácter do teclado
• Funções de saída de dados (saída para o ecrã)
– printf - print formatted. (escreve um int, um char, um float, uma string,)
– puts - put string : escreve uma string no ecrã.
– putchar - put character : escreve um carácter no ecrã.
•
•
•
•
Essas funções encontram-se declaradas no ficheiro stdio.h
Essas funções pertencem ao C standard.
Pertencem a compiladores do C standard.
Os compiladores do C standard são os compiladores do C para o
Linux.
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
4
Funções de Entrada e Saída
• Existem funções de entrada e saída que não fazem parte do C
standard.
– getche() – lê um caracter do teclado e escreve no ecrã.
– getch() - lê um caracter do teclado mas não escreve no ecrã
• Essas funções são usadas em alguns compiladores do C para o
Windows.
• Nessa cadeira vamos aprender C standard, portanto, vamos
esquecer as funções getche e getch.
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
5
Funções de Entrada e saída
• Funções de saída de dados
• Parâmetros de entrada means argumentos.
– printf( “ expressão de controlo ” , lista de argumentos);
– puts ( coloca-se a string à ser imprimida no ecrã);
– putchar( coloca o caracter à ser imprimido no ecrã);
• Funções de entrada de dados
– scanf( “ expressão de controlo ” , lista de argumentos);
– gets ( coloca-se a variável que irá guardar a string do teclado);
– Variável tipo char que irá guardar o caracter = getchar();
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
6
Funções de Entrada e Saída
Exemplos de funções de saída de dados:
• puts
– puts(“engenharia informatica”); escreve “engenharia informatica” no ecrã.
– puts(“banana”); escreve “banana” no ecrã.
• putchar
char c = ‘2’;
char z = ‘&’;
int m = 5;
putchar( c ); escreve no ecrã o conteúdo da variável c, ou seja escrever ‘2’;
putchar( z ); escreve no ecrã o conteúdo da variável z, ou seja escrever ‘&’;
putchar( m ); Imprime o caracter com o ASCII equivalente ao valor
da variavel m.
putchar(‘?’); escreve no ecrã o caracter ?.
putchar(‘b’);
putchar(‘B’);
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
7
Funções de Entrada e Saída
Exemplos de funções de entrada de dados:
• gets
– Suponha que str é uma variavel do tipo string
– gets( str ); a sequência de caracteres escrita pelo utilizador será guardada na
variável str.
• getchar
char c ;
char z ;
int m ;
c = getchar( ); o carácter que o utilizador escrever será guardado na variável c.
z= getchar( ); o carácter que o utilizador escrever será guardado na variável z.
m = getchar( ); A variável m é inicializada pelo ASCII em decimal do caracter
inserido pelo utilizador.
Ex: o utilizador escreve o ‘a’, o valor da variável m será 97. (ver tabela ASCII).
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
8
Funções de Entrada e Saída
• printf
– poderosa em relação o puts e o putchar
– Imprime int, float, double, char e strings (cadeia de caracteres)
– printf(“expressão de controlo”, lista de argumentos);
• Exemplos:
int a = 3;
float raio = 8.5;
double Area = 3.14159;
char c = ‘#’;
string str =“Olá Mundo!”;
– printf(“engenharia informatica”); imprime no ecrã “engenharia informatica”
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
9
%f
%c
string
char
%f
double
float
Inteiro decimal (base 10)
printf(“ %d
Funções de Entrada e Saída
%s ”, a , raio , Area, c , str) ;
Imprime no ecrã o valor da variável a, raio, Area, c e str,
ou seja, imprime:
3
8.5
3.14159
# Olá Mundo!
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
10
Funções de Entrada e Saída
Exemplos usando printf
printf( “ Valores Gustavo: %d
escreve no ecrã:
Valores Gustavo: 3 8.5
%f
%f
3.14159
%c
%s ”, a , raio , Area, c , str) ;
# Olá Mundo!
printf( “ a= %d raio= %f area= %f c= %c str= %s”, a , raio , Area, c , str) ;
escreve no ecrã:
a= 3 raio= 8.5 area= 3.14159 c= # str= Olá Mundo!
printf( “ a= %d\n raio= %f\n area= %f\n c= %c\n str= %s”, a , raio , Area, c , str) ;
escreve no ecrã:
a= 3
raio= 8.5
area= 3.14159
c= #
str= Olá Mundo!
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
11
Funções de Entrada e Saída
Caracteres especiais
\a
\n
\r
\t
\v
\\
\”
Formatos de Leitura e escrita
Tipo de dados
char
int
int
Int
Float
double
string
Sinal sonoro
New Line (mudança de Linha)
Carriage Return
Tabulação Horizontal
Tabulação Vertical
Carácter \
Carácter ”
Formato
%c
%d
%o
%x
%f
%f ou %e
%s
Observações
Um único carácter
Inteiro decimal
Inteiro octal
Inteiro Hexadecimal
real
Real com maior precisão
Cadeia de caracteres
Com as criações e inicializações das variáveis anteriores (a, raio, Area e str) e com os exemplos
que se seguem obtemos:
printf( “ %d ”, a );
printf( “ %f ”, Area );
escreve no ecrã:
printf( “ %f ”, raio );
escreve no ecrã:
3
8.500000
escreve no ecrã:
printf( “ %s ”, str );
escreve no ecrã:
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
3.141590
Olá Mundo!
12
Funções de Entrada e Saída
Continuação do slide anterior….
Pode-se controlar o número de casas decimais a serem imprimdas no ecrã
Fazer:
printf( “ %.2f ”, Area );
.2 imprime apenas duas casas decimais.
A instrução acima escreve no ecrã o seguinte: 3.14
(apenas duas casas decimais)
printf( “ %.3f ”, Area );
.3 imprime apenas duas casas decimais.
A instrução acima escreve no ecrã o seguinte: 3.142
(apenas três casas decimais)
Portanto
.4 para quatro casas decimais, .5 para cinco casas decimais e assim sucessivamente.
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
13
Funções de Entrada e Saída
Continuação do slide anterior….
Alem de se controlar o número de casas decimais a serem imprimdas, também
pode-se imprimir dados de forma formatada como se segue:
Impressão de dados em linhas diferentes (deve usar o caracter especial \n):
printf (“Angola \n é um Pais \nGrande” );
printf( “raio = %.1f \n area = %.3f”, raio, area );
Imprime no ecrã o seguinte: Angola
é um Pais
Grande
Imprime no ecrã o seguinte: raio = 8.5
area = 3.142
printf (“Angola é \n um Pais Grande” );
Imprime no ecrã o seguinte: Angola é
um Pais Grande
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
14
Funções de Entrada e Saída
• scanf
– poderosa em relação o gets e o getchar
– lê int, float, double, char e strings (cadeia de caracteres)
– scanf(“expressão de controlo”, lista de argumentos);
• Exemplos:
int a;
float raio;
double Area;
char c;
string str; não vou dar exemplo de leitura de strings por enquanto.
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
15
Funções de Entrada e Saída
scanf( “ %d ”, &a); Lê o valor que o ulitizador inserir e coloca na variável a;
scanf( “ %f ”, &raio); Lê o valor que o ulitizador inserir e coloca na variável raio;
scanf( “ %f ”, &Area); Lê o valor que o ulitizador inserir e coloca na variável Area;
scanf( “ %c ”, &c); Lê o valor que o ulitizador inserir e coloca na variável c;
scanf( “ %d %f”, &a, &raio ); Lê os dois valores que o ulitizador inserir e coloca-os
respectivamente nas variáveis a e raio;
Universidade Metodista de Angola, Departamento de Engenharias, Programação I,
Gustavo Sebastião
16
Download

Cap 5 - Funções de Entrada e Saída de dados