Etapa 2 - Aprendendo a Programar

No tópico anterior, aprendemos conceitos importantes para desenvolvermos nossos programas, como o conceito de Programa, Linguagem de Programação e Compiladores (caso queira relembrar, clique aqui). Entretanto, como utilizar as instruções disponíveis na linguagem para resolver um problema real? Quais instruções estão ao nosso dispor para construir os programas?

 

Vamos abordar nesse tópico métodos e instruções que podemos utilizar para resolver problemas totalmente novos e desafiadores. Você vai aprender o seguinte:

  • resolver problemas por meio de programação;

  • modelar soluções sequenciais utilizando programação;

  • utilizar variáveis;

  • utilizar funções de entrada e saída de dados;

  • utilizar operadores matemáticos;

 

A seguir, vamos utilizar um problema de programação para explicar os principais conceitos e praticar um pouco.

Criando um Programa para Calcular a Velocidade Média

 

A professora de Física, sabendo das suas habilidades em programação, pediu que você criasse um programa para calcular a velocidade média de um automóvel em um trajeto. O programa deverá pedir que o usuário digite um valor para a variação do espaço Δs e um valor para a variação de tempo Δt. A partir desses valores, o programa deverá calcular a velocidade média fazendo a divisão Δs por Δt. Ao final, o programa deverá mostrar a velocidade média na tela do console

 

Modelando a Solução

 

Para resolver esse dilema, vamos inicialmente entender o que de fato a professora de Física pediu. Você deve sempre pensar na solução como uma conversa entre o computador e a pessoa que estiver usando o programa. Veja os quadrinhos abaixo.



 

 


 

Nesta conversa, o computador pede uma informação e o usuário responde. Daí o computador pede a próxima informação e o usuário responde novamente. Esse diálogo segue até que o computador tenha todos os dados na sua memória para fazer o cálculo. Ao final, o computador responde com o resultado: a velocidade média do trajeto para os valores informados.

 

Antes de cair dentro no código, vamos visualizar como ficaria a execução do programa através do console. Veja os passos abaixo.

 

1 - Computador imprime na tela uma mensagem solicitando o Δs e aguarda a digitação

 

2 - Usuário digita o Δs de 200 Quilômetros e pressiona ENTER

 

3 - Computador imprime outra mensagem solicitando o Δt e aguarda a digitação

 


4 - Usuário digita o Δt de 2 horas e pressiona ENTER

 

5 - Computador calcula e informa a velocidade média em uma mensagem no console

Resolver algoritmos de forma eficaz envolve algumas etapas e práticas que podem te ajudar a melhorar suas habilidades de resolução de problemas. Aqui estão algumas dicas:

  1. Entenda o problema: Antes de começar a codificar, é crucial que você entenda completamente o problema. Isso inclui compreender quais são as entradas, as saídas esperadas e quaisquer restrições ou condições associadas ao problema. Você pode entender essa etapa a partir das seguintes perguntas:

    1. Quais serão os dados que precisam ser informados para o programa funcionar?

    2. Qual será a saída ou resposta que o programa deve fornecer?

  2. Esboçar a solução: Após entender o problema, você deve esboçar uma solução. Isso pode ser feito mentalmente, no papel ou em um editor de texto. A ideia é dividir o problema em partes menores e mais gerenciáveis. Aqui a pertunta é:

    1. Quais processamentos o programa deve realizar sobre os dados de entrada para gerar a saída esperada?

  3. Codificação: Uma vez que você tenha um esboço da solução, você pode começar a codificar. Tente manter seu código limpo e compreensível, isso facilitará a manutenção e a revisão do código no futuro.

  4. Teste: Depois de ter a primeira versão do seu código, teste-o com diferentes casos. Comece com casos de teste simples e, em seguida, avance para casos de teste mais complexos. Certifique-se de testar limites e casos extremos.

  5. Depuração e otimização: Se o seu código não estiver funcionando como esperado, use ferramentas de depuração para encontrar e corrigir erros. Depois que seu código estiver funcionando corretamente, pense em como você pode otimizá-lo. Isso pode envolver a redução da complexidade do tempo de execução, a utilização de menos memória ou a simplificação do código.

  6. Prática: A resolução eficaz de algoritmos é uma habilidade que se desenvolve com a prática. Tente resolver uma variedade de problemas de diferentes níveis de dificuldade. Sites como HackerRank, LeetCode e CodeSignal oferecem muitos problemas de codificação que você pode usar para praticar.

  7. Aprendizado contínuo: O campo da ciência da computação está sempre evoluindo, e novos algoritmos e estruturas de dados estão sendo constantemente desenvolvidos. Mantenha-se atualizado com os últimos avanços e sempre esteja pronto para aprender algo novo.

  8. Estudar soluções existentes: Por fim, estudar soluções existentes para problemas de algoritmo pode ser uma maneira eficaz de aprender novas técnicas e abordagens. Muitos problemas têm várias soluções possíveis, cada uma com seus próprios prós e contras.

Lembre-se, tornar-se eficaz na resolução de algoritmos leva tempo e prática, então não desanime se você encontrar dificuldades no início. Continue praticando e aprendendo, e você melhorará com o tempo.

Exemplo 1: Faça um programa que leia dois números e calcule a média entre eles.

Passos para resolver o problema:

  1. Entenda o problema:

    1. Qual é a entrada e saída do programa? 

      Resposta: Aqui, o problema está claro. A entrada será dois números e a saída será a média desses números.
  2. Esboçar a solução:

    1. Qual será o processamento sobre os dados de entrada para gerar a saída?

      Resposa: Para calcular a média de dois números, você soma os dois números e divide o resultado por 2.
  3. Codificação: Aqui está a solução para esse problema em Visualg:

algoritmo "CalcularMedia"
var
   num1, num2, media: real
inicio
   escreval("Digite o primeiro número:")
   leia(num1)
   escreval("Digite o segundo número:")
   leia(num2)
   media <- (num1 + num2) / 2
   escreval("A média entre ", num1, " e ", num2, " é ", media)
fimalgoritmo

Teste: Para testar esse algoritmo no Visualg, você inseriria dois números quando solicitado e verificaria se a média calculada está correta.

  1. Depuração e otimização: Nesse caso, o algoritmo é bastante simples e provavelmente não precisaria de depuração ou otimização. Mas para algoritmos mais complexos, você pode precisar revisar e aprimorar seu código.

Modelando o problema de calcular a velocidade média

- Entendendo o problema:

Quais são os dados de entrada e a saída esperada? Resposta: para calcular a velocidade média, é necessário que o usuário do programa informe o Delta S e o Delta T.

- Esboçar a solução: Quais processamentos devem ser realizados sobre a entrada para gerar a saída? Resposta: dividir o DELTA S pelo DELTA T.

- Codificação em Visualg

algoritmo "VelocidadeMedia"
var
   deltaS, deltaT, velocidadeMedia: real
inicio
   escreval("Digite a variação do espaço (Delta S) em metros:")
   leia(deltaS)
   escreval("Digite a variação do tempo (Delta T) em segundos:")
   leia(deltaT)
   velocidadeMedia <- deltaS / deltaT
   escreval("A velocidade média é ", velocidadeMedia, " m/s.")
fimalgoritmo

Agora teste e depure o algoritmo. Siga adiante para programarmos em linguagem C.

 

Mão na Massa

Caso você tenha acesso ao computador, acesse o link abaixo, execute o programa e faça os passos acima digitando diferentes valores para o Delta S e o Delta T

 

Codificando a Solução em C - Passo 1

 

Agora que você já compreendeu o funcionamento do programa pelo console e a interação em modo texto, por meio do teclado, vamos codificar essa solução e compreender cada parte.

Inicialmente, devemos escrever a estrutura básica, comum a todos os programas em C. Digite o código abaixo e execute.

#include <stdio.h>
 
int main(void) {
      printf("-----FÍSICA NA VEIA--------\n");

  	  return 0;
}

Assim, incluímos a biblioteca de funções de entrada e saída stdio.h para podermos usar comandos como o printf() e o scanf() e montamos a função principal main, que irá conter as instruções do nosso programa. Todos os comandos da solução devem ser escritos entre o “int main(void) {“  e o “return 0”.

 

Nesse momento vamos definir as variáveis do nosso programa. Siga adiante!

 

 


Questões

Comentários...

Não há comentários ainda... Seja o primeiro!