quarta-feira, 10 de março de 2021

Entrada e Saída de Dados

  Entrada e Saída de dados        

O termo Input, significa inserir alguns dados em um programa. Uma entrada pode ser fornecida na forma de um arquivo ou da linha de comando. A programação C fornece um conjunto de funções integradas para ler a entrada fornecida e alimentá-la ao programa de acordo com o pretendido.

O termo Output, significa exibir alguns dados na tela, impressora ou em qualquer arquivo. A programação C fornece um conjunto de funções integradas para a saída de dados na tela do computador, bem como para salvá-los em arquivos de texto ou binários.

Para efectuar as operações de entrada e saída de dados pode-se recorrer as funções scanf () e printf () para exibir a saída de dados para o utilizador.

 Entrada e Saída de dados númericos      

          Inicialização de variáveis       

As variáveis devem ser sempre inicializadas com um valor antes do seu uso. Se isso não for feito, a variável fica com um valor indefinido. Na memória do computador uma variável com valor indefinido é sinónimo de lixo. Exemplo:

        #include <stdio.h>

        main()
        {
           int a;

           printf("O valor de a = %d\n", a); 
        }

Ao ser executado, o programa pode escrever uma coisa deste estilo:

        O valor de a = 1877;
Devem ter sempre o cuidado de inicializar as variáveis antes destas serem utilizadas. Se isso não for feito, o programa muito provavelmente não irá fazer aquilo que se está à espera.
No exemplo concreto que acabei de ilustrar, 1877 é lixo. Isto é, a variável a ficou com o valor 1877 mas ninguém deu instruções ao computador para ele ter lá esse valor.
Já agora, aposto que quase toda a gente vai cometer este tipo de erro quando estiverem a fazer exercícios nas aulas práticas. Eu próprio costumo fazer esse tipo de erros de vez em quando. Nunca desanimem quando têm erros nos vossos programas. É raro um programa funcionar à primeira. Aquilo que se faz é corrigir os erros e voltar a recompilar até que o programa funcione como deve ser.


          Saída de dados       

Na programação C, printf() é uma das principais funções de saída. A função permite exibir uma informação na tela.

Por exemplo

#include <stdio.h>    
int main()
{ 
    // Exibe a string dentro de aspas
    printf("Programação em C");
    return 0;
}


Como é que este programa funciona?

Todos os programas C válidos devem conter a função main (). A execução do código começa no início da função main ().

    printf() - A função imprime a string entre aspas. Para usar printf () é necessário incluir o arquivo de cabeçalho stdio.h usando a instrução #include <stdio.h>.


Exemplo 2: Exibindo um número inteiro

#include <stdio.h>
int main()
{
    int testInteger = 5;
    printf("Number = %d", testInteger);
    return 0;
}

Usou-se o especificador de formato %d para imprimir o tipo int. Aqui, a %d dentro das aspas será substituído pelo valor de testInteger.


Formatação de valores decimais

Em linguagem C, você pode formatar dados decimais (números de ponto flutuante) usando especificadores de formato na função `printf()` para controlar a precisão, largura do campo e outras opções de formatação. Aqui estão alguns exemplos:

**Controle de Precisão:**

Pode controlar a precisão (número de casas decimais exibidas) ao formatar valores decimais usando o especificador de formato %f na função printf(). Você pode especificar a precisão colocando um número após o ponto dentro do especificador de formato %f.

Exemplo 3:
#include <stdio.h>

int main() {
    float valor = 123.456789;
    printf("%.2f\n", valor); // Imprime com 2 casas decimais
    printf("%.4f\n", valor); // Imprime com 4 casas decimais
    printf("%.8f\n", valor); // Imprime com 8 casas decimais
    return 0;
  }


**Largura do Campo:**

Exemplo 4:
#include <stdio.h>
int main() {
    int numero = 42;
    printf("%5d\n", numero); // Largura do campo de 5 caracteres
    printf("%10d\n", numero); // Largura do campo de 10 caracteres
    printf("%-10d\n", numero); // Largura do campo de 10 caracteres, alinhado à esquerda
    return 0;
}


**Notação Científica:**
Exemplo 5:
#include <stdio.h>

int main() {
    double grande_numero = 1234567.89;
    printf("%.2e\n", grande_numero); // Notação científica com 2 casas decimais
    return 0;

}


**Sinal e Zeros à Esquerda:**

Exemplo 6:
#include <stdio.h>

int main() {
    int valor = -42;
    printf("%+d\n", valor); // Inclui sinal (+ ou -)
    printf("%010d\n", valor); // Preenche com zeros à esquerda
    return 0;

}

Lembre-se de que a função `printf()` oferece várias opções de formatação, e você pode combiná-las de acordo com suas necessidades para formatar números decimais da maneira desejada. Consulte a documentação da função `printf()` para obter mais detalhes sobre os especificadores de formato disponíveis.


 Entrada e Saída de dados Literais       

Em linguagem C, a entrada e saída de dados literais (ou seja, dados fixos e pré-definidos) geralmente envolvem o uso de funções de entrada/saída padrão (printf para saída e scanf para entrada). 
Os especificadores de formato %c e %s são usados na função printf() em C para formatar diferentes tipos de dados:

%c - Caractere: O especificador %c é usado para formatar um caractere. Ele é utilizado para imprimir um único caractere, como letras, dígitos ou símbolos. Por exemplo:

     char letra = 'A'; printf("A letra é: %c\n", letra); // Imprime: A


%s - String (Sequência de Caracteres): O especificador %s é usado para formatar uma string (sequência de caracteres). Ele é utilizado para imprimir uma sequência de caracteres terminada por um caractere nulo ('\0'). Por exemplo:

char nome[] = "João"; printf("Olá, %s!\n", nome); // Imprime: Olá, João!



Portanto, a principal diferença entre %c e %s é que %c é usado para formatar caracteres individuais, enquanto %s é usado para formatar strings completas.

Lembre-se de que, ao usar %s, o argumento deve ser um ponteiro para a primeira posição da string (um array de caracteres). Enquanto que, ao usar %c, o argumento deve ser um caractere simples (uma variável do tipo char).

Aqui estão exemplos de como você pode trabalhar com dados literais:

Exemplo 7:
#include <stdio.h>
int main() {
    int idade;
    float altura;
    printf("Digite a sua idade: ");
    scanf("%d", &idade); // Lê o valor da idade
    printf("Digite a sua altura: ");
    scanf("%f", &altura); // Lê o valor da altura
    printf("Idade: %d, Altura: %.2f\n", idade, altura);
    return 0;
}


A entrada de dados literais é possível ao solicitar ao usuário que insira valores específicos usando a função scanf.

A combinação de formatação e entrada/saída permite manipular tanto dados literais quanto dados dinâmicos (fornecidos pelo usuário ou calculados) em um programa C.


Exemplo 8: Exibindo caracteres 

#include <stdio.h>
int main()
{
    char chr = 'a';    
    printf("character = %c", chr);  
    return 0;
} 

Para imprimir char, usa-se o especificador de formato %c.


          Entrada de dados            

Na programação C, scanf () é uma das funções comumente usadas para obter informações do usuário. A função scanf () permite ler os caracteres inseridos via teclado.

Exemplo 9: Entrada de números inteiros e double

Para imprimir valores do tipo float, usamos o especificador de formato %f. Da mesma forma, usamos %lf para imprimir valores double.

#include <stdio.h>
int main()
{
    float num1;
    double num2;

    printf("Digite um número: ");
    scanf("%f", &num1);
    printf("Digite o outro número: ");
scanf("%lf", &num2); printf("num1 = %f\n", num1); printf("num2 = %lf", num2); return 0; }

Aqui, usamos o especificador de formato% d dentro da função scanf() para obter a entrada interna do utilizador. Quando o utilizador insere um número inteiro, ele é armazenado na variável num1.

Observe que usou-se &num1 dentro de scanf(). É porque o &num1 obtém o endereço de num1, e o valor inserido pelo utilizador é armazenado nesse endereço.


          Entrada de strings            

Podemos aceitar a entrada de string em C usando scanf (“% s”, str) . Mas, ele aceita string apenas até encontrar o primeiro espaço. A expressão `scanf("%[^\n]s", nome);` é usada em linguagem C para ler uma linha inteira de entrada, incluindo espaços em branco, até encontrar o caractere de nova linha (`\n`). O `%[^\n]` é um especificador de formato que diz ao `scanf` para ler todos os caracteres até encontrar uma nova linha, e o `s` no final indica que é esperada uma sequência de caracteres (string).

Aqui está um exemplo de uso dessa expressão:

Exemplo 10

#include <stdio.h>
int main() {
    char nome[100]; // Assume que o nome tem no máximo 100 caracteres
    printf("Digite o seu nome: ");
    scanf("%[^\n]s", nome);
    printf("O nome digitado é: %s\n", nome);

    return 0;

}

Neste exemplo, a função `scanf` vai ler uma linha inteira de entrada (até o caractere de nova linha) e armazenar essa linha na variável `nome`. Isso permite que o programa capture um nome completo, incluindo espaços, e o imprima usando o `printf`.


          Comandos de entrada e saída: getchar() e putchar()            

Vamos discutir algumas funções de entrada de dados (diferente do scanf()). A entrada de texto é considerada como um fluxo de caratecteres. Um fluxo texto é uma sequência de caracteres dividida em linhas; cada linha consiste de zero ou mais caracteres seguido do caractere de nova linha (\n). Como programador, você não quer se preocupar em como as linhas são representadas fora do programa. Quem faz isso por você são funções de uma biblioteca padrão.

Suponha que você queira ler um único caractere, mas não quer usar o scanf(). Isso pode ser feito usando a função getchar(). A função putchar() aceita um argumento de entrada, cujo valor será impresso como caracter:

Exemplo 11:

#include <stdio.h>
int main(){
   char ch;
   printf("Digite algum caracter: ");
   ch = getchar();
   printf("\n A tecla pressionada eh %c.\n", ch);
}

O Resultado deste programa na tela é:

   Digite algum caracter: A
    A tecla pressionada eh A.

Outro exemplo:

Exemplo 12:

#include <stdio.h>

int main(){
   char ch;
   printf("Digite outro caracter: ");
   ch = getchar();
   putchar(ch);

}

O Resultado deste programa na tela é:

   Digite outro caracter: B
   B
Share:

1 comentário:

  1. Hard Rock Hotel & Casino Baltimore – DRMCD
    › gaming › entertainment › 대구광역 출장안마 h › gaming › entertainment › h Hard Rock Hotel 순천 출장샵 & 강릉 출장샵 Casino Baltimore, MD · Visit Website. Hard Rock Hotel & Casino Baltimore · Visit Website. Hard Rock Hotel & Casino 통영 출장안마 Baltimore · 상주 출장샵 Visit Website. Hard Rock Hotel & Casino Baltimore.

    ResponderEliminar

Seguidores

Visitantes do blog

Pesquisar neste blogue

posts recentes