Uso da instrução scanf - Entrada de dados

Pertencente a biblioteca stdio.h (Standard Input/Output- entradas e saídas padrões), comando scanf é usado para entrada de dados à partir do teclado.


Sintaxe:

scanf("expressão de controle",argumentos);

onde expressão de controle indica o tipo do dado que será lido pelo computador. A tabela 1 abaixo mostra as expressões de controle usadas no scanf e o tipo de dado que cada expressão representa.

Tabela 1. Expressão de controle e os dados que a expressão representa.
nos argumentos o programador deve indicar o identificador da variável que receberá o valor digitado pelo usuário. Na figura 1, temos um exemplo de entrada de dados para dois tipos de dados de dados diferentes.
Figura 1. Declaração de variáveis e seus respectivos comandos de entrada de dados.

Note que no argumento é usado o símbolo & antes do identificador da variável (Não lembra o que é o identificador da variável? clique aqui e relembre). O uso desse símbolo é obrigatório e serve para avisar o compilador o endereço de memória onde a informação lida no teclado será guardada. Na figura 2 temos uma seta que indica o simbolo referido no texto.
Figura 2. Simbolo usado no argumento do scanf indicando o endereço de memorial que receberá o valor digitado.
Normalmente quando temos uma entrada de dados, um comando de saída de dados (printf) é associado ao scanf e servirá para instruir o usuário sobre o que ele deve fazer. Para entender melhor essa história de associar um printf com o scanf,  observe o código apresentado na figura 3.
Figura 3. Exemplo de programa usando 2 entrada de dados do tipo inteiro.
Conhecendo o código fonte do exemplo apresentado na figura 3 é fácil saber que o programa que irá receber 2 números inteiros, somar esses dois números e exibir o resultado da soma para o usuário que digitou os números. No entanto, quando não temos acesso ao código fonte não é tão fácil deduzir o que o programa vai fazer. Na figura 4 temos a tela do programa exibido na figura 3 após a compilação e execução do código.
Figura 4. Execução do programa apresentado na figura 3.
Notem que ao executar o programa é difícil saber o que deve ser feito, pois o usuário irá se deparar com uma tela preta com um cursor piscando. Neste caso o que deve ser feito? Devemos digitar uma palavra, um numero, esse numero deve ser inteiro, real? É impossível saber ao certo o que devemos fazer. Para ajudar o usuário, o programador deve criar mecanismos para  instruir o usuário sobre o que deve ser feito em cada parte do programa. Na figura 5 temos o código da figura 3 reescrito.

Figura 5. Código associando printf com a entrada de dados.
No código apresentado na figura 5 acrescentamos 3 printf's. O primeiro printf apresenta uma mensagem explicando o que o programa irá fazer, no segundo e terceiro printf o programador irá instruir o usuário sobre como ele deve interagir com o programa. Na figura 6 temos uma tela da execução do programa após as modificações. 
Figura 6. Execução do programa associando printf e scanf orientando o usuário.

Na figura 6 vemos o resultado com as alterações realizadas no código conforme apresentado na figura 5. Na tela de maior destaque temos a primeira parte do programa onde uma mensagem explicando a função do programa será exibida assim como a primeira instrução para o usuário indicando que ele deve digitar o primeiro numero. No quadrado vermelho em destaque, temos o programa após a exibição da soma entre os números. 
Notem que nessa nova versão é muito mais simples para o usuário entender o que deve ser feito ao longo da execução do programa.

Variação do comando:

Conforme o código apresentado na figura 7, um único comando scanf pode ser usado para receber mais de uma variável, no entanto, a pratica não é aconselhada, pois o usuário terá que digitar os dois números na sequencia o que pode gerar duvidas no momento da execução. Na figura 8 temos a execução do programa exibido na figura 7.
Figura 7. Comando scanf recebendo duas variáveis. 
Figura 8.  Execução do código exibido na figura 7.

  
Ainda ta com duvida, curta nossa pagina no facebook e poste sua duvida lá....

Nenhum comentário:

Postar um comentário