{"id":1269,"date":"2022-02-01T09:53:34","date_gmt":"2022-02-01T12:53:34","guid":{"rendered":"https:\/\/www.galirows.com.br\/meublog\/programacao\/?p=1269"},"modified":"2022-03-04T15:41:57","modified_gmt":"2022-03-04T18:41:57","slug":"solicitacao-de-algoritmo11","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/programacao\/solicitacao-de-algoritmo11\/","title":{"rendered":"Solicita\u00e7\u00e3o de algoritmo 11 &#8211; pre\u00e7o do combust\u00edvel"},"content":{"rendered":"\n<p>A solicita\u00e7\u00e3o foi realizada por Heleno Rodrigues Da Silva. Eu alterei um pouco o enunciado original para focar realmente na parte importante.<\/p>\n\n\n\n<p><strong>Enunciado:<\/strong> Implemente um programa que receba como entrada os percentuais de impostos de combust\u00edvel atuais do seu estado (cada estado pode implementar sua pr\u00f3pria al\u00edquota e isso altera o percentual de cada componente do pre\u00e7o final do combust\u00edvel). O programa dever\u00e1 imprimir o valor do combust\u00edvel no seu estado. Abaixo segue uma imagem ilustrativa com a distribui\u00e7\u00e3o dos pre\u00e7os.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.galirows.com.br\/meublog\/programacao\/wp-content\/uploads\/sites\/2\/2022\/02\/distribuicao-combustivel-2021.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"701\" src=\"https:\/\/www.galirows.com.br\/meublog\/programacao\/wp-content\/uploads\/sites\/2\/2022\/02\/distribuicao-combustivel-2021.png\" alt=\"\" class=\"wp-image-1270\" srcset=\"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-content\/uploads\/sites\/2\/2022\/02\/distribuicao-combustivel-2021.png 1024w, http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-content\/uploads\/sites\/2\/2022\/02\/distribuicao-combustivel-2021-300x205.png 300w, http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-content\/uploads\/sites\/2\/2022\/02\/distribuicao-combustivel-2021-768x526.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Fonte da imagem: https:\/\/www.webposto.com.br\/blog\/economia\/icms-como-ele-afeta-o-preco-dos-combustiveis\/<\/figcaption><\/figure>\n\n\n\n<p>Assim como alterei o enunciado, tamb\u00e9m fiz uma altera\u00e7\u00e3o no c\u00f3digo do Heleno, apagando algumas linhas de c\u00f3digo, para focar realmente no problema. O c\u00f3digo resultante \u00e9 mostrado abaixo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c line-numbers\">#include &lt;iostream&gt;\n\nint main(int argc, char** argv) {\n\tint a, b, c, d, e, soma;\n\t\n\tprintf(\"Digite o valor do ICMS: \");\n\tscanf(\"%d\", &amp;a);\n\t  \n\tprintf(\"Digite o valor da Distribui\u00e7\u00e3o e Revenda: \");\n\tscanf(\"%d\", &amp;b); \/\/recebe um inteiro e armazena na vari\u00e1vel a\n     \n\tprintf(\"Digite o valor De custo Etanol Anidro: \");\n\tscanf(\"%d\", &amp;c); \/\/recebe um inteiro e armazena na vari\u00e1vel b\n\n\tprintf(\"Digite o valor De CideePIS\/PASEPeCOFINS: \");\n\tscanf(\"%d\", &amp;d); \n\t \n\tprintf(\"Digite o valor De Realiza\u00e7\u00e3o Petrobras: \");\n\tscanf(\"%d\", &amp;e);\n\t \n\tsoma = a + b + c + d + e;  \n\tprintf(\"O valor da Gasolina = %d\\n\", soma); \n     \n\tsystem (\"pause\");\n\treturn(0);\n}<\/code><\/pre>\n\n\n\n<p>Na linha 10 \u00e9 poss\u00edvel verificar a exist\u00eancia de um coment\u00e1rio. Embora coment\u00e1rios sejam importantes no c\u00f3digo, coment\u00e1rios pouco significativos (como o realizado) s\u00e3o dispens\u00e1veis. Mas \u00e9 uma op\u00e7\u00e3o do gosto do programador. <\/p>\n\n\n\n<p>Falando sobre op\u00e7\u00e3o do gosto do programador, codificar \u00e9 uma forma de arte e com isso quem codifica costuma colocar preferenciais pessoais no c\u00f3digo. Tamb\u00e9m t\u00eam algumas coisas que s\u00e3o da IDE utilizada para codifica\u00e7\u00e3o.  Na minha corre\u00e7\u00e3o inicial (mostrada abaixo), observe que mudei a biblioteca da primeira linha (como o Heleno apenas utilizou <em>scanf <\/em>e <em>printf <\/em>para entrada e sa\u00edda, preferi fazer a codifica\u00e7\u00e3o em C, ou inv\u00e9s de C++). A defini\u00e7\u00e3o dos par\u00e2metros da fun\u00e7\u00e3o <em>main()<\/em> na linha 3 s\u00e3o muitas vezes inclu\u00eddas pela IDE. Eu prefiro uma vers\u00e3o mais limpa e n\u00e3o utilizo os par\u00e2metros quando eles n\u00e3o s\u00e3o necess\u00e1rios. At\u00e9 mesmo o <em>return <\/em>eu prefiro n\u00e3o utilizar os par\u00eanteses para ter uma vers\u00e3o mais limpa. Algumas IDEs adicionam a instru\u00e7\u00e3o <em>system (&#8220;pause&#8221;)<\/em>, mas como eu uso o Codeblocks que j\u00e1 faz uma pausa no terminal, essa instru\u00e7\u00e3o eu dispenso. Veja que todas essas considera\u00e7\u00f5es s\u00e3o pequenas coisas que n\u00e3o alteram em nada o algoritmo em quest\u00e3o.<\/p>\n\n\n\n<p>Algo que realmente impacta no c\u00f3digo \u00e9 a defini\u00e7\u00e3o das vari\u00e1veis. Veja que a distribui\u00e7\u00e3o \u00e9 realizada em valores <em>float <\/em>e por isso \u00e9 preciso utilizar esse tipo de dado para ler os valores. O Heleno definiu as vari\u00e1veis como <em>int<\/em> e isso n\u00e3o est\u00e1 correto para o problema. Vale dizer que eu prefiro utilizar nomes mais significativos para o nome das vari\u00e1veis, mas mantive a nomenclatura adotada pelo Heleno. <\/p>\n\n\n\n<p>Veja tamb\u00e9m que nessa primeira vers\u00e3o do c\u00f3digo n\u00e3o est\u00e1 sendo calculado o valor da gasolina, apenas aproveitei o c\u00f3digo para garantir que na vari\u00e1vel soma se obt\u00e9m o valor de 100 para o 100% da composi\u00e7\u00e3o do pre\u00e7o. Daria para utilizar essa soma para verificar se os valores inseridos n\u00e3o est\u00e3o corretos (a soma tem que dar 100). Como o problema n\u00e3o pede nada disso, mais adiante eu vou retirar essa soma do algoritmo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c line-numbers\">#include &lt;stdio.h&gt;\n\nint main() {\n\tfloat a, b, c, d, e, soma;\n      \n\tprintf(\"Digite o valor do ICMS: \");\n\tscanf(\"%f\", &amp;a);\n\n\tprintf(\"Digite o valor da Distribui\u00e7\u00e3o e Revenda: \");\n\tscanf(\"%f\", &amp;b); \n\n\tprintf(\"Digite o valor De custo Etanol Anidro: \");\n\tscanf(\"%f\", &amp;c); \n\n\tprintf(\"Digite o valor De CideePIS\/PASEPeCOFINS: \");\n\tscanf(\"%f\", &amp;d); \n\n\tprintf(\"Digite o valor De Realiza\u00e7\u00e3o Petrobras: \");\n\tscanf(\"%f\", &amp;e);\n\n\tsoma = a + b + c + d + e;\n   \n\tprintf(\"O valor da Gasolina = %f\\n\", soma); \n\n\treturn 0;\n}<\/code><\/pre>\n\n\n\n<p>Para calcular o pre\u00e7o do combust\u00edvel, devo confessar que o enunciado \u00e9 confuso, ou pelo menos aberto demais para as possibilidades. Vou considerar que o programa dever\u00e1 receber o pre\u00e7o cobrado pela Petrobras (item &#8220;Realiza\u00e7\u00e3o Petrobras&#8221;) para calcular o custo total.<\/p>\n\n\n\n<p>Para o c\u00e1lculo eu utilizei uma &#8220;regra de 3&#8221;, na qual o valor cobrado pela Petrobras representa o percentual lido para a &#8220;Realiza\u00e7\u00e3o Petrobras&#8221; e o valor total do pre\u00e7o \u00e9, logicamente, 100%. \u00c9 baseado na tabela abaixo que gero o c\u00e1lculo mostrado na linha 24 do c\u00f3digo abaixo.<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter\"><table><tbody><tr><td>petro &#8212;&#8212;- 33,5% (armazenado na vari\u00e1vel &#8220;e&#8221;)<\/td><\/tr><tr><td>preco &#8212;&#8212;- 100%<\/td><\/tr><\/tbody><\/table><figcaption>Regra de tr\u00eas para a c\u00e1lculo do pre\u00e7o total do combust\u00edvel<\/figcaption><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"c\" class=\"language-c line-numbers\">#include &lt;stdio.h&gt;\n\nint main() {\n\tfloat a, b, c, d, e, petro, preco;\n      \n\tprintf(\"Digite o valor do ICMS: \");\n\tscanf(\"%f\", &amp;a);\n\n\tprintf(\"Digite o valor da Distribui\u00e7\u00e3o e Revenda: \");\n\tscanf(\"%f\", &amp;b); \n\n\tprintf(\"Digite o valor De custo Etanol Anidro: \");\n\tscanf(\"%f\", &amp;c); \n\n\tprintf(\"Digite o valor De CideePIS\/PASEPeCOFINS: \");\n\tscanf(\"%f\", &amp;d); \n\n\tprintf(\"Digite o valor De Realiza\u00e7\u00e3o Petrobras: \");\n\tscanf(\"%f\", &amp;e);\n\n\tprintf(\"Valor cobrado pela Petrobras: \");\n\tscanf(\"%f\", &amp;petro);\n\t\n\tpreco = petro*100 \/ e;\n   \n\tprintf(\"O valor da Gasolina = %f\\n\", preco); \n\n\treturn(0);\n}<\/code><\/pre>\n\n\n\n<p>Veja que nessa minha solu\u00e7\u00e3o eu somente utilizo a &#8220;Realiza\u00e7\u00e3o Petrobras&#8221; e o valor cobrado pelo combust\u00edvel vindo dessa distribuidora. As demais distribui\u00e7\u00f5es de combust\u00edvel n\u00e3o s\u00e3o relevantes para calcular o pre\u00e7o total e poderiam ser retiradas do algoritmo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A solicita\u00e7\u00e3o foi realizada por Heleno Rodrigues Da Silva. Eu alterei um pouco o enunciado original para focar realmente na parte importante. Enunciado: Implemente um programa que receba como entrada os percentuais de impostos de combust\u00edvel atuais do seu estado (cada estado pode implementar sua pr\u00f3pria al\u00edquota e isso altera o percentual de cada componente [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[3,58],"tags":[52],"class_list":["post-1269","post","type-post","status-publish","format-standard","hentry","category-c","category-codigo-com-analise","tag-solicitacao-de-algoritmo"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/1269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/comments?post=1269"}],"version-history":[{"count":3,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/1269\/revisions"}],"predecessor-version":[{"id":1296,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/1269\/revisions\/1296"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/media?parent=1269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/categories?post=1269"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/tags?post=1269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}