Beruflich Dokumente
Kultur Dokumente
A funo scanf opera, de forma similar printf, sobre um fluxo de caracteres, mas agora
trata-se de um fluxo de entrada. Os caracteres obtidos na entrada (em geral a scanf
opera sobre um fluxo de caracteres oriundo do teclado) devem ser tratados (ou
convertidos e atribuidos aos demais argumentos) de acordo com os caracteres do
primeiro argumento. No caso da printf os argumentos so expresses e estamos
interessados noright-value, mas no caso da scanf estamos interessados em atribuir os
valores obtidos do fluxo de entrada para variveis e a especificao e implementao da
scanf() espera que sejam fornecidos como parmetros o endereo das variveis onde
devem ser armazenados os valores obtidos no fluxo de entrada (devemos usar leftvalues). Este assunto est relacionado com ponteiros e ser detalhado em outra parte
da disciplina. A forma mais simples de especificar que queremos atribuir um certo valor
varivel X usar a expresso &X (E comercial X, ou no jargo da linguagem C:
endereo de X):
Um erro muito comum de programadores que usam a funo scanf esquecer de utilizar
o caractere E comercial (&) antes do nome da varivel que deve receber o valor
convertido a partir dos caracteres do fluxo de entrada!
O programa acima usa a funo scanf para obter um valor para a varivel i a partir dos
caracteres do teclado. Quando o programa acima executado invocada a funo scanf
(que fica aguardando os caracteres no fluxo de entrada , no caso o teclado). O programa
acima aguarda uma ao do usurio sem avis-lo... este tipo de programa no
considerado adequado e a boa disciplina de programao prescreve que os
desenvolvedores de programas devem planejar a interao do programa com o
usurio (em nossa disciplina vamos considerar que o usurio sempre o
prprio programador o que pode desculpar muitas coisas indevidas). O tema
interao tratado em outras disciplinas e aqui faremos uso da intuio, por
enquanto deve ser explicitado apenas que este no um tema simples e que existem
muitas diretrizes sobre como tratar a interao do programa com o usurio. Um
programa mais adequado aquele onde o desenvolvedor (programador) informa ao
usurio o que esperado dele:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int i;
printf(Entre com um valor do tipo int na base 10:);
scanf("%i", &i);
printf("%i\n", i);
system("PAUSE");
return 0;
}
A funo scanf l uma ou mais linhas para obter caracteres a serem usados nas
converses. Um possvel problema para entender o funcionamento da funo scanf()
Recebendo caracteres em C
atravs da funo getchar()
A funo scanf() bem poderosa e flexvel.
Com ela, podemos pegar uma infinidade de dados do usurio, e inclusive
escolher o que vai ser 'capturado', limitar o tanto de coisas que pode ser
escrito, e uma srie de outras funcionalidades na linguagem C.
Porm, h mais opes que facilitam nossa vida.
Existe uma funo que faz o mesmo papel da scanf e voltada para o uso
com caracteres, a getchar().
Ela mais simples, pois no precisar usar %c ou &, como fazemos na
scanf(), e foi feito especialmente para ser usado com caracteres.
get -> pegar
char -> caractere
A biblioteca math.h
Por: Eduardo Casavella
Fornece um conjunto de funes para operaes matemticas, tais como
funes trigonomtricas, hiperblicas, logaritmos, potncia e
arredondamentos.
Todas as funes da biblioteca math.h retornam um valor do tipo double.
Na tabela abaixo apresentamos algumas funes presentes na biblioteca
math.h
Funo
floor( )
ceil( )
sqrt( )
pow(varivel, expoente)
sin( )
cos( )
tan( )
log( )
log10( )
Descrio do comando
arredonda para baixo
arredonda para cima
Calcula raiz quadrada
potenciao
seno
cosseno
Tangente
logaritmo natural
logaritmo base 10
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
6
5
6
6
6
7
6
8
6
9
7
0
7
1
7
2
7
3
7
4
Tela de execuo
Referencias
http://homepages.dcc.ufmg.br/~rodolfo/aedsi-210/printf_scanf/printfscanf.html
www.cprogressivo.net/2012/12/Recebendo-letras-do-usuario--As-funcoesscanf-getchar-getc-e-fgetc.html
http://www.cprogressivo.net/2013/01/Modificadores-do-tipo-inteiro-int-emC--short-long-signed-unsigned.html
linguagemc.com.br/a-biblioteca-math-h