Codecamp - explicação sobre o desafio: Armazenamento de dados é vida
Olá, dev,
Esta publicação explica o básico para você resolver o desafio de código abaixo. Eu não vou dar aqui o código, mas apenas desenvolver um algoritmo adequado para a solução do problema, dar dicas de como o código pode ser completado a partir do algoritmo criado e do código já dado pala plataforma e resumir o conhecimento técnico básico da linguagem C para ajudar na codificação.
Desafio: Armazenamento de dados é vida
(o enunciado foi omitido, para economizar espaço na publicação.)
Entrada: Dois valores inteiros positivos, representando a capacidade atual total em teraflops e o aumento percentual, separados por espaço.
Saída: A nova capacidade total em teraflops.
Exemplos: A tabela abaixo apresenta exemplos com alguns dados de entrada e suas respectivas saídas esperadas. Certifique-se de testar seu programa com esses exemplos e com outros casos possíveis.
Entrada | Saída
100 20 | 120
50 10 | 55
200 50 | 300
Algoritmo para a solução
Este é um caso simples de acréscimo de um percentual sobre um determinado valor inicial. São 2 valores inteiros, o inicial e o percentual.
Portanto, os passos do algoritmo são:
1. Ler os 2 valores de entrada
2. Calcular quanto representa o percentual sobre o valor inicial
3. Somar o valor inicial ao valor calculado do percentual
4. Imprimir o valor inicial atualizado
Código já oferecido
No código oferecido pela plataforma, a entrada de dados é feita pela função scanf(), que lê os 2 valores inteiros e os atribui a duas variáveis (capacidadeAtual e aumentoPercentual), automaticamente.
Código a ser completado pelo usuário
O usuário só precisa calcular o valor do percentual aplicado ao valor inicial e somá-lo ao valor inicial.
O percentual é igual ao aumentoPercentual dividido por 100, para transformar o aumento (inteiro) em uma percentagem (decimal);
percentagem = aumentoPercentual/100;
Depois, é preciso calcular quanto este percentual representa do valor inicial:
valorAumento = valorAtual * percentagem
Finalmente, basta adicionar este valor ao valor inicial:
ValorNovaCapacidade = valorAtual + valorAumento.
Para finalizar o programa, basta imprimir a nova capacidade.
Explicação da Linguagem C
Na linguagem C, os cálculos de uma operação aritmética são realizados da esquerda para a direita, respeitando-se as precedências de operações, logo, todos estes cálculos mostrados anteriormente podem ser realizados em apenas uma linha de cálculo, sem a necessidade de se criar cada variável dos cálculos intermediários.
A divisão de 2 valores inteiros usando o operador (/) resulta em um valor inteiro, truncado. Para garantir que ele isso não ocorra, é preciso realizar uma divisão real, ou seja, com um dos 2 números sendo real, assim, é bom usar 100.0 ao invés de 100, no denominador.
Na linguagem C, uma saída é feita pelo comando printf, que consiste no texto a ser impresso, do valor da variável e do nome da variável.
Por exemplo, para imprimir uma variável (idade) com valor 25:
Printf(“%d\n”, idade); // imprime 25
Printf(“sua idade é: %d anos\n“, idade); // imprime sua idade é: 25 anos
O comando printf pode ter formatação para indicar o tipo de dado que será impresso, com um caractere específico, segundo a tabela a seguir, para os tipos de variáveis mais usados (embora haja outros):
Tipo da variável | Caractere de formatação
Caractere | %c
String | %s
Decimal | %d
Float | %f
Double | %d
Neste caso, a variável é inteira, portanto, o caractere de formatação é %d.
Ao final da string de impressão, há um comando de quebra de linha (\n), que resulta no início da próxima impressão em uma nova linha. Caso ele não haja esse caractere, uma nova impressão começará na mesma linha, em seguida ao último caractere impresso pelo comando print anterior.