Ir ao conteúdo
  • Cadastre-se

Evandro Candido

Membro Júnior
  • Posts

    9
  • Cadastrado em

  • Última visita

Reputação

5
  1. Se eu entendi certo, inicialmente eu estava sendo acredito que redundante em colocar (salario>=1693.73 && salario<=2822.90) porque se o salário não é <= 1693.72 obviamente ele será maior, logo posso deixar de forma mais simples, como feito. Sem contar a quantidade de chaves utilizada. Quanto ao encapsulamento e a utilização do <cstdio> e ou 'cin' e até mesmo o 'cout'. Nada disso foi mencionado no semestre, porém com com a menção de vocês fui buscar saber. Dai vem a questão, como e quando usar o encapsulamento. Entendi que ele é uma forma de deixar o codigo mais isolado, como o caso do IR, que foi feito fiz um teste com cout e cin pelo que explicou e veio outra duvida: #include <iostream> #include <cstdio> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main() { float salario; std::cout << "informe seu salario bruto:"; std::cin >> salario; if ( not std::cin.good() ) return -1; return 0; } voce quis dizer que eles ja passaram para algo "complexo" scanf ou invés de simples como mencionado : std::cin ? Quando utilizar 'cout' e 'cin' quando utilizar da forma que fez printf e cin Quando usar printf e scanf em uma pesquisa rápida, encontrei: "A única diferença visível é que scanf() precisa declarar explicitamente o tipo de entrada, enquanto cin tem a operação de redirecionamento sobrecarregada usando modelos. Isso não parece ser um motivo bom o suficiente para um impacto de desempenho de 5x." deixando essa pesquisa de lado essa pesquisa e sugando um pouco mais do seu conhecimento, que por sinal esta abrindo e muito minha mente.
  2. então, por ignorância da minha parte, eu não compreendi como testar, estava aqui lendo os livros com vergonha de perguntar, porém como mencionou outra vez, tomei coragem agora. Seria essa linha aqui? if (1 != scanf("%f", &salario)) return -1; printf("\n Salario: %8.2f\n", salario); Você ja esta depositando um tempo valioso em me explicar e dar exemplos, sou grato por isso! Pode ter certeza que estou relendo tudo e tentando assimilar da melhor forma.
  3. @arfneto Se trata de faculdade EAD, estou lendo o livro "recomendado" deles. Mais uma vez refiz com base no que eles passaram até agora e com as modificações de dicas sua e ficou desta forma: #include <stdio.h> int main(){ float salario, inss, ir, sal_liquido; printf("Informe seu salario bruto: R$"); scanf("%f", &salario); //INSS inss=621.04; if (salario<=1693.72) inss=salario*0.08; else if (salario<=2822.90) inss=salario*0.09; else if (salario<=5646.80) inss=salario*0.11; //IR if (salario>=1903.99) ir=salario*0.075; else if (salario>=2826.65) ir=salario*0.15; else if (salario>=3751.05) ir=salario*0.225; else if (salario>=4664.69) ir=salario*0.275; sal_liquido=(salario-inss)-ir; printf("\ Desconto INSS: R$%8.2f\n\ Desconto IR: R$%8.2f\n\ voce vai receber: R$%8.2f", inss, ir,sal_liquido); return 0; } Ainda estou assimilando seus exemplos para não confundir muito a cabeça. print da saída apresentada em um exemplo qualquer, mas ressalto que testei diversos valores. Informe seu salario bruto: R$5900 Desconto INSS: R$ 621.04 Desconto IR: R$ 442.50 voce vai receber: R$ 4836.46 -------------------------------- Process exited after 5.987 seconds with return value 0 Pressione qualquer tecla para continuar. . . Meu medo é atropelar as informações, adiantar muito e na hora que precisar de algo "básico" eu talvez não lembrar como fazer, pois não pratiquei e ou vi todas as opções possíveis. Como eu disse depois disso eles ja pularam para condições (do-while) e (matriz), achei que o "básico" ficou muito vago, tanto que na elaboração completa deste exemplo ficaram muitas duvidas, que somente agora vocês estão me ajudando.
  4. @arfneto Desculpe tomar seu tempo por mais uma vez, estou estudando aqui as dicas passadas e dado um exemplo aleatório usando varios printf #include <stdio.h> int main(){ float altura[3] = {1, 1.5, 1.7}; printf("\n Vetor altura[0] = %f",altura[0]); printf("\n Vetor altura[1] = %f",altura[1]); printf("\n Vetor altura[2] = %f",altura[2]); return 0; } Utilizei a dica e reduzi para: #include <stdio.h> int main(){ float altura[3] = {1, 1.5, 1.7}; printf("\ Vetor altura[0] = %f\n\ Vetor altura[1] = %f\n\ Vetor altura[2] = %f", altura[0], altura[1], altura[2]); return 0; } Estou fazendo um mega intensivo de retrospectiva do semestre, o que complica é que como vocês ja observaram eles não aprofundaram tanto e nem sei se irão, então estou tentando coletar o máximo de informações e dicas em sites e ajuda de vocês.
  5. @arfneto e @ZTM Sem duvidas em poucos topicos, vocês ja ensinaram mais que o 1 semestre. Os inúmeros erros ou trabalhos que tive foi justamente por seguir a linha de ensinamento da faculdade, que de fato não estão se preocupados em ensinar coisas mais complexas. INclusive essa questão de calcularem INSS e IR eles pararam no momento de calcular os 9% e pasmem, a professora quando rodou apresentou erro, desconversou e ja pulou para uso das condições (do- while). Enfim foi imensamente grato ao esclarecimento não só desta questão, como as dicas apresentadas, irem refazer utilizando as dicas até mesmo para economizar trabalho, uma vez que o código pode ficar muito mais simples. Obrigado de coração.
  6. Sem palavras para agradecer o tempo disponibilizado @ZTM. Muito obrigado, de verdade!
  7. @ZTMObrigado por disponibilizar seu tempo. Então, a intenção não é fazer (5800-5178,96)-1595=−973.96 a intenção é que se eu colocar qualquer valor acima de 5646,81 ele desconte 621,04 e dai no exemplo mencionado deveria aparecer: salario 5800 Desconto INSS: 621,04 Desconto IR: 1595 Você vai receber: 3.583,96 Como descrever essa parte em codigo, pois o meu no caso esta fazendo exatamente como você discorreu no papel @Midori Perfeito, sabia que era algo simples. Funcionou da forma desejada. Agradeço demais seu tempo em me ajudar,
  8. Exatamente @Midori, no caso do INSS qualquer valor declarado de salario acima de 5646.81 ele terá desconto fixo de 621.04 e foi nesta parte na hora de testar que me deparei com esse bug.
  9. Boa tarde, Estou no 1 semestre de analise e desenvolvimento de sistemas, não consegui tirar a duvida antes das férias, gostaria que alguém pudesse me ajudar. o codigo esta rodando bem em todos os descontos, com exceção do desconto acima do teto que seria de 621.04 para quem ganha acima de 5646.81. o valor sempre apresenta negativo, como corrigir? Segue o código abaixo e o print do "erro". tentar explicar de outra forma, na hora de aparecer o valor do desconto INSS para quem ganha acima de 5646.81 o mesmo ja esta aparecendo o salario-o desconto. quando deveria aparecer somente o desconto de #include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char** argv) { float salario, inss, ir, sal_liquido; printf("Informe seu salario bruto:"); scanf("%f", &salario); if (salario<=1693.72){ inss=salario*0.08; } else if (salario>=1693.73 && salario<=2822.90){ inss=salario*0.09; } else if (salario>=2822.91 && salario<=5646.80){ inss=salario*0.11; } else if (salario>=5646.81){ inss=salario-621.04; } if (salario>=1903.99 && salario<=2826.65){ ir=salario*0.075; } else if (salario>=2826.66 && salario<=3751.05){ ir=salario*0.15; } else if (salario>=3751.06 && salario<=4664.68){ ir=salario*0.225; } else if (salario>=4664.69){ ir=salario*0.275; } sal_liquido=(salario-inss)-ir; printf("\nDesconto INSS: %8.2f",inss); printf("\nDesconto IR: %8.2f",ir); printf("\nVoce vai receber: %8.2f",sal_liquido); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!