Programas Sequenciais em C
Nos tópicos anteriores, aprendemos alguns conceitos e comandos básicos para dominar a programação em C. Sabemos como escrever a estrutura básica de um programa, adicionando a biblioteca padrão stdio.h e a função principal (main). Além disso, vimos o conceito de variáveis e entrada e saída de dados no nosso programa com funções scanf() e printf(). Neste tópico, vamos aprender um pouco sobre como resolver problemas computacionais utilizando esses comandos.
Problema Resolvido: Programa para converter de quilômetro por hora para metros por segundo.
A professora de física solicitou mais uma tarefa. Agora ela precisa de um programa que converta um valor de velocidade, informado pelo usuário, de quilômetros por hora (km/h) para metros por segundo (m/s) e mostre o resultado na tela.
Resolução
Vamos imaginar como esse programa deve funcionar. Veja os quadrinhos abaixo:
Etapa 1: Montando o “Esqueleto” do Programa
Vamos colocar a mão na massa! Crie um novo programa C no Repl.it(http://replit.com/) (se não tiver acesso, você pode fazer no papel também) e siga os passos abaixo
Passo 1 - Inserindo a biblioteca padrão stdio.h
Como vimos nos tópicos anteriores, todo programa C possui a declaração da biblioteca padrão de entrada e saída stdio.h, que contém as funções scanf() e printf() que usaremos a seguir. Insira o código abaixo:
#include <stdio.h>
Passo 2 - Insira a função principal int main(void)
int main(void) {
return 0;
}
Etapa 2: Declarando as Variáveis
Como vimos no tópico anterior, todo programa opera sobre dados informados e armazenados em memória. Nesse caso, temos dois dados que precisamos armazenar, o primeiro é a velocidade em quilômetros por hora que será digitada (entrada de dados). O segundo dado é a velocidade convertida para metros por segundo, que será calculada pelo computador. Declare as variáveis na função principal:
int main(void) {
float kmh;
float ms;
return 0;
}
O código acima informa ao computador para reservar duas “gavetas” na memória, uma chamada kmh para a velocidade em Km/h e outra chamada ms para a velocidade convertida para m/s.
Essas duas variáveis estão inicialmente sem um valor válido preenchido, ou seja, “vazias”.
Prontinho! Agora vamos fazer a entrada de dados e solicitar a velocidade em quilômetros por hora ao usuário.
Etapa 3: Programando a Entrada de Dados
Como vimos no tópico anterior, o computador deve pedir ao usuário que informe um valor de velocidade em quilômetros por hora. Esse valor será do tipo float e será armazenado na variável kmh. Para isso, o computador deverá mostrar uma mensagem na tela e aguardar a digitação do valor.
Vamos programar agora. Siga os passos abaixo:
Passo 1 - Imprimir a solicitação da velocidade na tela com a função printf()
printf("Digite uma velocidade em quilômetros por hora: ");
Passo 2 - usar a função scanf() para fazer o computador aguardar a digitação de um valor.
scanf("%f", &kmh);
Veja o código completo para a Entrada de Dados:
#include <stdio.h>
int main(void) {
float kmh;
float ms;
printf("Digite uma velocidade em quilômetros por hora: ");
scanf("%f", &kmh);
return 0;
}
Etapa 4: Programando a Conversão das Velocidades
Após a execução do comando scanf("%f", &kmh), o computador terá armazenado uma velocidade digitada em quilômetros por hora. Precisamos então, instruir ao computador para fazer o cálculo da conversão dividindo o valor da variável kmh por 3,6. Insira o código abaixo do scanf("%f", &kmh):
ms = kmh/3.6;
Ao executar o código acima, o computador irá fazer o seguinte:
Etapa 5: Imprimindo o Resultado na Tela
Uma vez que o computador já calculou e guardou o resultado na variável ms, é hora de mostrá-lo ao usuário do programa. Para isso, usaremos novamente a função printf()
Insira o código abaixo de ms = kmh/3.6:
printf("A velocidade em metros por segundo é: %.1f m/s\n", ms);
O printf() acima imprime na tela o texto entre aspas e substitui a marcação %.1f pelo conteúdo da variável ms, que contém a velocidade convertida para metros por segundo. Veja a execução na tela do console:
Agora, execute o código várias vezes e teste com valores diferentes do apresentado e confira o resultado.
O código final completo fica desse jeito:
#include <stdio.h>
int main(void) {
float kmh;
float ms;
printf("Digite uma velocidade em quilômetros por hora: ");
scanf("%f", &kmh);
ms = kmh/3.6;
printf("A velocidade em metros por segundo é: %.1f m/s\n", ms);
return 0;
}
Empacotando
Nesta etapa aprendemos utilizamos um exercício resolvido que consiste em criar um programa obter uma velocidade em quilômetros por hora, converter e mostrar essa velocidade em metros por segundo. Para resolver esse problema, utilizamos variáveis do tipo float e funções de entrada e saída printf() e scanf() para imprimir mensagens na tela e aguardar a digitação de um valor de velocidade. Para isso fizemos os seguintes passos:
-
Escrevemos a estrutura geral do programa C adicionando a bilbioteca de entrada e saída stdio.h e a função principal int main(void);
-
Identificamos e declaramos as variáveis do tipo float kmh e ms que armazenam a velocidade em Km/h digitada e a velocidade em M/S convertida pelo computador;
-
Utilizamos o comando printf() para imprimir na tela uma mensagem solicitando a digitação da velocidade em Km/h;
-
Utilizamos o comando scanf(“%f”, &kmh) para fazer o computador aguardar a digitação da velocidade em km/h e guardar o valor digitado na variável kmh.
-
Convertemos a velocidade da variável kmh e atribuímos o valor convertido para metros por segundo na variável ms com o comando ms = kmh/3.6
-
Utilizamos a função printf() novamente para mostrar na tela a velocidade convertida para metros por segundo, com apenas uma casa decimal, utilizando a marcação %.1f.