Leitura e escrita
Como vimos nas aulas anteriores, para imprimir na tela do MS-DOS, basta chamar a função printf que depende da biblioteca que tem como arquivo de cabeçalho "stdio.h".
Assim como a função printf que é utilizada para escrita na tela do MS-DOS, existe, também, a função scanf que permite a leitura de dados digitados na tela do MS-DOS através do teclado.
A função scanf assim como a printf recebe um parâmetro string (texto entre aspas duplas) e uma ou mais variáveis. Atenção ao tipo da variável. Se o desejado é ler um valor inteiro, o primeiro parâmetro da função scanf deve ser "%d". Do mesmo modo, para leitura de valores, float, char ou string, o primeiro parâmetro da função scanf deve ser, respectivamente, "%f" para leitura de floats "%c" para leitura de caracteres.
Observe o exemplo abaixo:
No exemplo acima é utilizada a função scanf para ler uma variável do tipo inteiro. Preste atenção a compatibilidade entre os tipos. O primeiro parâmetro especifica que tipo de dado deve ser lido (Nesse caso inteiro) e o segundo parâmetro é uma variável do tipo inteiro. Preste atenção que a variável inteira é precedida de &. Mais adiante será mostrada a razão para a necessidade desse & precedendo a variável a ser lida através do comando scanf.
Outro exemplo
#include <stdio.h>
int main() {
int n1, n2, soma;
printf("Informe um numero: ");
scanf("%d",&n1);
printf("Informe outro numero: ");
scanf("%d",&n2);
soma=n1+n2;
printf("\nSoma = %d", n1+n2);
printf("\nSoma = %d", soma);
return 0;
}
Observe o programa acima. São declaradas três variáveis inteiras. Logo após, é mostrada uma mensagem na tela do MS-DOS que solicita ao usuário do programa que informe um número e depois outro número. Preste atenção a os parâmetros da função scanf. Dois números são lidos e armazenados, respectivamente, nas variáveis n1 e n2. Depois disso, a soma dos valores lidos é armazenada na variável soma e o resultado da soma é mostrada de dois modos direrentes. Nos dois casos o valor da soma é o mesmo.
Agora, vejamos outro exemplo de formatação e escrita na tela de um número de ponto flutuante:
#include <stdio.h>
int main() {
float num = 2.567103;
printf("\nDuas casas decimais....: %.2f",num);
printf("\nQuatro casas decimais..: %.4f",num);
printf("\nSeis casas decimais....: %.6f",num);
printf("\n\nDeslocamento de 10.....: %10.2f",num);
printf("\nDeslocamento de 10.....: %10.4f",num);
printf("\nDeslocamento de 10.....: %10.6f",num);
return 0;
}
No exemplo acima, primeiro, o número é impresso 3 vezes, sendo que, na primeira impressão, o numero armazenado na variável num é impresso com 2 casas decimais. Na segunda impressão, o numero é impresso com 4 casas decimais e na terceira, com 6 casas decimais. Depois, é o número é impresso mais 3 vezes, sendo que, com um deslocamento de 10 espaços. Compile e rode esse programa acima para observar o resultado.
Abaixo um exemplo de programa que solicita que o usuário informe dois valores, armazene os valores em duas variáveis, mostre os valores e, após, inverte os valores fazendo a variável(1) ter o valor da variável(2) e a variável(2) ter o valor da variável(1). Para tanto é utilizada uma variável auxiliar, veja a seguir:
#include <stdio.h>
int main() {
int a, b, aux;
printf( "Informe o primeiro numero: " );
scanf("%d",&a);
printf( "Informe o segundo numero: " );
scanf("%d",&b);
printf( "\nNumeros informados: %d %d", a, b );
aux = a;
a = b;
b = aux;
printf( "\nNumeros invertidos: %d %d", a, b );
return 0;
}
Exercícios
1) Faça um programa que leia um número e imprima o número sucessor e o número antecessor. Ex: Se o número informado for 10, o sucessor é 11 e o antecessor é 9.
2) Faça um programa que leia os o raio de um círculo e mostre, com base no raio, a área do círculo. Dica: Use a constante M_PI da biblioteca "math.h" ou defina uma constante PI com o valor 3.14159.
Fórmula da área do círculo: A = PI * R^2, onde * é o sinal de multiplicação e ^ é o sinal de potênciação.
3) Faça um programa que leia três números e imprima a média aritmética entre eles.
4) Faça um programa que leia um número real e um valor de desconto. Depois, o programa deve calcular e mostrar o valor informado com desconto. Abaixo exemplo de saída:
Informe um número (R$): 50.5 Informe o desconto (%): 10.0 O número com desconto (R$): 45.45
5) Faça um programa que leia três números inteiros e informe quantos deles são pares.
6) Observe o programa abaixo:
#include <stdio.h>
int main() {
float n, parte_decimal, parte_fracionaria;
printf( "Informe um numero real: " );
scanf( "%f", &n );
parte_decimal = (int)n;
parte_fracionaria = n - parte_decimal;
printf( "\nParte decimal: %.2f", parte_decimal );
printf( "\nParte fracionaria: %.2f", parte_fracionaria );
return 0;
}
Compile e execute o programa acima no Dev-C++ e informe como número, por exemplo, 2.34 e, então, observe o resultado e tente entender o que o programa faz.
Chegamos ao final de mais uma aula, passe para a próxima...