Академический Документы
Профессиональный Документы
Культура Документы
Aula 4 - Subtema 03
/* variveis globais */
main()
/* funo principal */
{
char parada; /* varivel local */
clrscr();
printf ("Qual a densidade?");
scanf ("%f", &dens);
printf ("Qual a viscosidade?");
scanf ("%f", &visc);
printf ("Qual a velocidade?");
scanf ("%f", &vel);
rey=(dens*vel*DIMENSAO)/visc;
printf ("Numero de Reynolds: %10.2f\n", rey);
parada = getche();
}
A funo gets pode ler e confirmar entradas numricas. Ele armazena o valor em uma varivel string.
Depois temos que converter o valor da string em nmero. Para essa converso usamos as funes atof
e atoi.
atof( ) e atoi ( )
Convertem strings em nmeros.
atof converte uma string de dgitos em um valor numrico de tipo double.
atoi converte em um valor numrico de tipo int.
Sintaxe:
atof(string);
atoi(string);
"ascii to float"
"ascii to integer"
/* funo principal *
char *s1 = "3.45";
/* atribuies */
Resultados:
3.450000
1234
3.000000
Exemplo: funo definida pelo usurio infloat() para receber valores numricos pelo teclado.
float infloat (char prompt[ ])
{
char instrval[STRLENGTH]; /* entrada em formato string */
float inval;
/* entrada em formato numrico */
do
{
printf (prompt);
gets (instrval); /* a funo atof devolve um valor zero */
/* se instrval no pde ser convertido */
inval = atof(instrval);
}
while (inval < = 0.0);
return (inval);
}
/* final de infloat */
Observao:
O argumento prompt (printf (prompt)) faz com que aparea na tela o sinal de interrogao.
getchar( ) ( < stdio.h > ), getche( ) e getch( ) ( < conio.h > ).
getchar( ) l um caracter do teclado. A funo retorna o caracter lido, aps convert-lo para int.
Quando digitado o dado, ele armazenado em um buffer, at que seja digitado o retorno.
getche( ) e getch( ) retornan um caracter assim que o mesmo seja digitado, ou seja no aguardado
at que seja digitado o retorno.
getche( ) l um caracter do teclado, apresenta-o na tela e o devolve para a funo chamadora.
getch( ) parece com getche( ), exceto por no apresentar o caracter na tela.
Exemplo:
/* ex40.c utilizao de getche() e getch() */
#include < stdio.h >
/* diretiva */
#include < conio.h >
main ()
/* funo principal */
{
char dado;
printf ("Digite um caracter"); scanf ("%c", &dado);
printf ("Caracter lido = %c\n", dado);
printf ("Digite um caracter"); dado = getch ();
printf ("Caracter lido = %c\n", dado);
}
Exemplo:
/* ex55.c exemplo de getchar */
#include < stdio.h >
main()
{
char c;
int x, y;
clrscr();
printf ("Deslocamento? (a,b,c,d,):");
c = getchar();
switch (c)
{
case 'a' :
y ++;
break;
case 'b' :
y --;
break;
case 'c' :
x --;
break;
case 'd' :
x ++;
break;
default:
printf ("n\resp. incorreta|n");
}
printf ("Posio: %d %d \n",x,y);
exit(0);
Para um tipo de dado numrico, pode incluir largura da imagem e instrues de ponto decimal no
especificador. Essas instrues opcionais aparecem entre o sinal de porcentagem e o cdigo de tipo.
Exemplo:
%4d - valor de nmero inteiro correspondente deve ser um campo de sada de 4 espaos.
%4.2f - valor de nmero de ponto flutuante num campo de 4 espaos e com duas decimais.
mudana de linha.
tabulao.
produz linha em branco.
sinal de audio.
Exemplo:
/*ex08.c exemplo do uso de printf()*/
#include < stdio.h >
/* diretiva */
#define calc "Numero de Reynolds" /* diretivas */
#define dimen 0.450
#define veloc 1.7
#define dens 1200
#define visc 0.78
main()
/* funo principal */
{
char parada;
/* varivel local */
float rey = (dens*veloc*dimen)/visc ;
clrscr();
printf
printf
printf
printf
printf
parada
("Caracteristicas reologicas\n");
("densidade: %4.2f\n ",dens);
("viscosidade: %2.3f\n", visc);
("Dimensoes caracteristicas do sistema: %2.4f\n",dimen);
("O valor do %s e: %6.2", calc,rey);
= getchar();
A funo gotoxy posiciona o cursor em localizao determinada da tela, para que o comando
subseqente de sada possa a mostrar informao. Cuidado para no confundir GOTOXY com
GOTO. O segundo altamente censurvel ao ser usado em uma linguagem estruturada como C.
Sintaxe:
gotoxy (horizontal, vertical);
Observao:
- horizontal varia de 1 at 80,
- vertical varia 1 at 24.
Os argumentos de gotoxy podem ser expressos como nmeros inteiros literais ou como expresses
aritmticas que calculam endereos de tela.
Exemplo:
/*ex15.c mostra cdigo ASCII extendido*/
#include < stdio.h >
/* diretivas */
#include < conio.h >
main()
/* funo principal */
{
char parada;
/* varivel local */
int i= 0, x = 1, y = 1; /* inicializao de variveis locais */
clrscr();
/* chamada a funo que limpa tela */
do {
/*lao de repetio */
gotoxy(x, y);
printf ("%3d %c",i,i);
i++;
y++;
if (y > = 24) {x += 6, y = 1};
}
while ( i < = 255);
gotoxy (60,24);
printf ("Cdigo ASCII");
parada = getchar();
}
Exemplo:
/* EX03: tabela de converso */
#include < stdio.h >
/* diretivas */
main ()
/
b@