Entrada e Saída de Dados

Página

Um programa de computador comumente requer o uso de dados para operar adequadamente. Por exemplo, considere o aplicativo de mensagens WhatsApp. Quando queremos enviar uma mensagem para um colega, nós escrevemos a mensagem na caixa de texto que aparece na tela do aplicativo. O texto neste caso é o dado que está sendo transmitido para o programa WhatsApp do nosso aparelho, que por sua vez transmitirá o mesmo para o dispositivo do colega..

A interação não está limitada ao uso do teclado. Por exemplo, quando queremos nos deslocar até um local da cidade, podemos utilizar um aplicativo de mapa como o Waze ou Google Maps. Nestes aplicativos, é comum tocarmos no mapa para marcar o destino. O toque permite que o programa possa obter a latitude e longitude do respectivo local e traçar a respectiva rota. A Figura 1 ilustra tais etapas.

Figura 1. Exemplo de uma etapa de entrada e saída de dados para o aplicativo Waze.

Perceba que, em ambos casos, os programas esperam a inserção de um dado para que se realize o processamento. O processo de inserção de dados é conhecido como entrada do sistema. Os dados de entrada são aqueles que são fornecidos para que o sistema opere adequadamente. Note que, após o recebimento do dado, o sistema processa o mesmo e produz um resultado. O produto do processamento é tipicamente uma informação, por exemplo, a rota que se deve seguir. Esse é um dos motivos para o nome Tecnologia da Informação, uma vez que em essência os computadores recebem dados de entradas, como a latitude e longitude, e produzem informações, como a melhor rota naquele horário.

Perceba que, em ambos casos, os programas esperam a inserção de um dado para que se realize o processamento. O processo de inserção de dados é conhecido como entrada do sistema. Os dados de entrada são aqueles que são fornecidos para que o sistema opera adequadamente. Como o programa deve operar para diferentes usuários, observe que

Programa C

#include <stdio.h>
int main() {
    int pa;
    int pd;
    int r;
    printf("PA: ");
    scanf("%i", &a); 
    printf("PD: ");
    scanf("%i", &d); 
    r = d - a;
    printf("Operação:"); 
    printf("%i", r);
}

Algoritmo em pseudocódigo

ALGORITMO
  DECLARE pa NUMÉRICO
  DECLARE pd NUMÉRICO
  DECLARE r NUMÉRICO
  ESCREVA "PA: "
  LEIA pa
  ESCREVA "PD: "
  LEIA pn
  r 🡨 d - a
  ESCREVA "Operação"
  ESCREVA r   
FIM_ALGORITMO
#include <stdio.h>
int main() {
    int a;
    int d;
    int r;

    printf("Digite a pressão atual do pneu: ");
    scanf("%i", &a); 

    printf("Escolha a pressão desejada: ");
    scanf("%i", &d); 

    r = d - a;
    printf("Vamos realizar a seguinte operação: %i", r); 

    return 0;
}
EntradaSaída
Digite a pressão atual do pneu: 12
Escolha a pressão desejada: 32
Vamos realizar a seguinte operação: 10
Digite a pressão atual do pneu: 37
Escolha a pressão desejada: 31
Vamos realizar a seguinte operação: -6
Digite a pressão atual do pneu: 28
Escolha a pressão desejada: 28
Vamos realizar a seguinte operação: 0

Leitura de dados

#include <stdio.h>
#include <string.h>
	
int main() {
    char s[20];
    scanf("%s", &s[0]);
	
    int t = strlen(s);
    printf("%i", t);
}
dfad

O comando scan() permite fazer a leitura de dados via teclado. O comando possui vários parâmetros, tais como:

  • nmax = número máximo de valores a serem lidos;
  • what = qual o tipo (domínio) dos valores a serem lidos;
  • file = permite especificar o nome do arquivo que será utilizado para a leitura. Por padrão, não se usa um arquivo, mas sim o teclado como fonte dos dados de entrada.

Considere o seguinte programa

library(tidyverse)
df <- mtcars %>% drop_na()
df <- df %>% select(mpg, wt, hp)

df[["mpg"]] %>% mean %>% print
print(df[["mpg"]] %>% mean %>% print)

library(genalg)
library(ggplot2)
dataset <- data.frame(item = c("pocketknife", "beans", "potatoes", "unions", 
                               "sleeping bag", "rope", "compass"), 
                      survivalpoints = c(10, 20, 15, 2, 30, 10, 30), 
                      weight = c(1, 5, 10, 1, 7, 5, 1))
weightlimit <- 20
v
EntradaSaída
423423432
3423432432423

Entrada

f <- scan(n = 1, what = double())
c <- (f - 32) / 1.8
print(c)

n <- scan(nmax = 1)
i <- 0
m <- 0
v <- 0

while (i < n) {
  i <- i + 1
  l <- scan(nmax = 1)
  if (l > m) {
    m <- l
    v <- i
  }
}

print(v)

Saída

32

Exemplo:

f <- scan(n = 1, what = double())
c <- (f - 32) / 1.8
print(c)

n <- scan(nmax = 1)
i <- 0
m <- 0
v <- 0

while (i < n) {
  i <- i + 1
  l <- scan(nmax = 1)
  if (l > m) {
    m <- l
    v <- i
  }
}

print(v)

Caso a entrada seja 40

Documentação: https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/scan