Ir ao conteúdo
  • Cadastre-se

C++ 3 Questoes que não consigo em meu trabalho em C++


iandl99

Posts recomendados

Caso alguem possa me ajudar fico agradecido

A primeira

Uma empresa deseja solucionar um problema na folha de pagamento de seus funcionários e para isso contratou você para desenvolver um programa para o calcular a folha de pagamento. Os descontos sobre o salário bruto são do Imposto de Renda, que varia de acordo o valor do salário bruto (conforme os valores abaixo), 3% para o Sindicato dos Trabalhadores e do FGTS que corresponde a 11% do Salário Bruto, o qual não é descontado, pois é a empresa que deposita. O Salário Líquido (valor final) corresponde o Salário Bruto menos os descontos. O programa deverá pedir ao usuário o valor da sua hora e a quantidade de horas trabalhadas no mês. Desconto do IR: o Salário Bruto até R$900 (inclusive) - isento o Salário Bruto até R$1500 (inclusive) - desconto de 5% o Salário Bruto até R$2500 (inclusive) - desconto de 10% o Salário Bruto acima de R$2500 - desconto de 20% Imprima na tela as informações.

 

A segunda

Utilizando seu conhecimento de Vetores, desenvolva um código para solucionar a seguinte situação problema: Um usuário tem em mãos duas jarras: uma com capacidade para quatro litros; e outra, com capacidade para três litros. As jarras não possuem marcações intermediárias, de forma que, se qualquer uma das jarras não estiver completamente cheia, não será possível saber quantos litros terá haverá dentro dela. Existe uma torneira disponível para encher as jarras e um ralo que permite que a água seja jogada fora. O objetivo é indicar como as jarras devem ser manipuladas, de modo que, ao final da manipulação, a jarra com capacidade para quatro litros de tenha exatamente dois litros de água. Instruções disponíveis: a. Encher completamente uma jarra, utilizando a torneira; b. Passar a água de uma jarra para outra; e c. Esvaziar completamente uma jarra, jogando a água que estiver dentro dela no ralo.

 

A terceira

Considerando a execução do algoritmo, converta para código executável, faça um teste de mesa e complete o quadro a seguir para os seguintes valores de entrada.

 

image.png.283e00c79bd1a894555ed9f16439374b.png

 

Link para o comentário
Compartilhar em outros sites

Se alguem poder ajudar na 3, estou rodando no notepad++ e ele encerra o codigo

 

 

#include <stdio.h>
main (){
int x = 0;
int y = 0;
int z = 0;
float resposta,A,B,C;

printf("digite x: ");
scanf("%d",&x);
printf("digite y: ");
scanf("%d",&y);

z = (x*y) + 5;

if(z <= 0)
{
    resposta = 'A'; 
}else if(z <= 100){
    resposta = 'B';
}else{
    resposta = 'C';
    
}
 printf("Resultado = %f", resposta);
   
}
 

Link para o comentário
Compartilhar em outros sites

Tem alguns problemas com o código que você postou:

  1. Estão faltando alguns ponto-e-vírgulas;
  2. Falta fechar uma chave no último else;
  3. O tipo float é utilizado para armazenar números decimais (exemplo: 3.1415, 1.41, 0.921546, etc.) e não é feito para guardar para guardar caracteres (como 'A', 'B' e 'C'). Para isso, você pode utilizar int ou char. É mais semântico (faz mais sentido) e eficiente (ocupa menos espaço na memória principal), se utilizar char, para caracteres;
  4. Você não está imprimindo o valor da variável resposta. Portanto, nada é mostrado depois da leitura de x e y.
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@mauro_b @Kyul não consegui ve qual deveria ser o valor da variavel resposta, seria A,B,C? e se sim como ficaria ? int resposta = ("A,B,C");? Obrigado pela paciencia Kyul, sou bem iniciante

 

#include <stdio.h>
main (){
int x ;
int y ;
int z ;
int resposta;

 

printf("digite x: ");
scanf("%d",&x);
printf("digite y: ");
scanf("%d",&y);

z = (x*y) + 5;

if(z <= 0)
{
    resposta = 'A'; 
}else if(z <= 100){
    resposta = 'B';
}else{
    resposta = 'C';
}
 printf("Resultado = ,z,resposta);

}
 

Link para o comentário
Compartilhar em outros sites

@iandl99 Tranquilo. 😀

Então, a função "printf" imprime uma saída formatada. O que isso quer dizer?

Bem, quando você tem uma variável e precisa mostrar o valor dela, isto é, imprimir ela na tela (que é a saída padrão - standard output ou stdout), você precisa de que alguma coisa faça isso.

Em linguagens de programação existem funções prontas para lidar com este tipo de problema. Imagine você ter de escrever o código que faça isso? Na primeira vez que eu fui programar, eu imaginei a complexidade que seria pra fazer isso na mão, sem usar as funções que a linguagem oferece.

Pois bem, dito isso, a linguagem C tem funções para lidar com este tipo de problema. Essas funções se encontram... Ora, vejam... No header stdio.h - Standard Input/Ouput, que em PT-BR significa entrada e saída padrão. Por padrão, nos sistemas operacionais a entrada padrão é o teclado, e a saída, como dito acima, é o monitor do seu PC.

Vou descrever o que a printf faz:

Ela joga um texto (que é conhecida como string no mundo da programação) formatado na saída padrão. Mas o que é formatado?

Suponha que você queira imprimir o conteúdo de uma variável que guarda um caractere (letra), no seu caso, 'A', 'B' ou 'C', na tela.

Os caracteres são representados por um número nos sistemas operacionais (dê uma olhada em ASCII). Isso significa que o caractere 'A' é representado tanto quanto um símbolo (a letra 'A') como um número (65 em ASCII). Logo eu posso imprimir de duas formas para o usuário:

"Resposta = A" ou "Resposta = 65". A função printf me permite fazer isso, da seguinte maneira.

 

Imprimir como letra:

printf("Resposta = %c", resposta);

 

Imprimir como número:

printf("Resposta = %d", resposta);

 

Perceba que a mesma variável pode ser mostrada na tela de duas formas diferentes, e é isso que o printf faz. Ele pega esse texto (string) que você coloca ("Resposta = %d"), formata ela, utilizando o segundo argumento que você passou (a variável resposta), ficando: "Resposta = 65", e joga na tela para o usuário ver. Perceba, ainda, que dependendo de como nós queremos mostrar o conteúdo da variável resposta, seja como número (65) ou como letra ('A'), depende daquele comandinho ali (%d ou %c).

Existe uma lista de como você deseja apresentar o conteúdo de alguma variável na tela. Aqui vai algumas opções das mais utilizadas:

  • %d, é utilizada para apresentar como valores inteiros (geralmente utilizada para variáveis do tipo int)
  • %f é utilizada para apresentar os valores como números decimais (utilizada para variáveis do tipo float)
  • %c é utilizada para apresentar um único caractere (a letra 'A', 'B', 'c', '@', etc.), que são geralmente utilizadas para variáveis do tipo char
  • %s é utilizada para apresentar um texto ("Hello World!", "The black fox jumps above the lake"), que são utilizadas para vetores (arrays) do tipo char.

Esse último que eu citei, para textos, o tipo seria algo assim:

char frase[40] = "Essa eh uma string em C"; // String ou "texto" em C
/*
	Perceba que o 40 ali, indica a quantidade de letras, incluindo
    espaço e caracteres especiais (@, #, &, $) que a string vai ter
*/

 

AVISO: Eu descrevi um uso superficial da função printf, mas o uso vai mais além do que eu te expliquei.

 

Qualquer dúvida é só escrever.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@iandl99 É C++ ou C?

A pergunta estupida é porque disseste, anteriormente, precisar do pseudocódigo em Linguagem C++... MAS sua tentativa está em C.

 

21 horas atrás, mauro_b disse:

@iandl99Sua tentativa está em puro C, cara! As diferenças seriam poucas, mas existem.

Lembre-se do que disse agora a pouco.

 

 

22 horas atrás, iandl99 disse:

include <stdio.h>
main (){
int x = 0;
int y = 0;
int z = 0;
float resposta,A,B,C;

printf("digite x: ");
scanf("%d",&x);
printf("digite y: ");
scanf("%d",&y);

z = (x*y) + 5;

if(z <= 0)
{
    resposta = 'A'; 
}else if(z <= 100){
    resposta = 'B';
}else{
    resposta = 'C';
    
}
 printf("Resultado = %f", resposta);
   
}

21 horas atrás, iandl99 disse:

eu tenho que fazer o pseudocodigo virar C++

 

Essa passagem de pseudo >> C >>>> C++ não é necessário, pode está cortar caminho indo de pseudo >>>>> C++.

***MAS este exercício penso que é mesmo sobre C++, por razão do segundo enunciado... Jarras, Torneira e Água. Tipico "papo" de Programação Orientada a Objetos.

 

Então o Terceiro enunciado, não precisa codificar o pseudo... não antes de responder ao teste de mesa dele...

Execute o programa no seu cabeção (cérebro) assim igual requisita o enunciado.  Depois faça perguntas... relacionando o algoritmo com C++,

Por exemplo, como guardar um caractere em C++? Seguindo esse formato acaba montando seu programa e aprendendo no processo.

Penso que fica desse jeito mais fácil te ajudar.

Link para o comentário
Compartilhar em outros sites

Em 06/05/2021 às 01:32, iandl99 disse:

não consegui ve qual deveria ser o valor da variavel resposta, seria A,B,C? e se sim como ficaria ? int resposta = ("A,B,C");? Obrigado pela paciencia Kyul, sou bem iniciante

 

Isso não tem a ver com C ou C++. Qual a linguagem que vai usar afinal? São coisas bem distintas.

 

Sobre a questão 3

 

A resposta claro vai depender dos valores de x e y. Não se sabe  a resposta antes de saber os valores. Trata-se de uma função, não em C ou C++ ou java, uma função matemática
 

    z = f(x,y) 


onde
 

    z = x*y+5


e identificados esses valores você faz a conta. De cabeça, ou nesse tal "teste de mesa" ou em um programa. Matemática. Se x e y forem 10 z vai valer 105 e a resposta será C.
 

É só isso....

  • Se o resultado foi negativo a resposta é A
  • Se for <= 100 a resposta é B
  • Ou a resposta é C.

Esse é o "valor da variável resposta" , @iandl99 

 

Sobre a questão 2

 

Em 05/05/2021 às 22:50, iandl99 disse:

O objetivo é indicar como as jarras devem ser manipuladas, de modo que, ao final da manipulação, a jarra com capacidade para quatro litros de tenha exatamente dois litros de água. Instruções disponíveis: a. Encher completamente uma jarra, utilizando a torneira; b. Passar a água de uma jarra para outra; e c. Esvaziar completamente uma jarra, jogando a água que estiver dentro dela no ralo.


Não é pra resolver o problema com o computador. Apenas indicar como as jarras devem ser manipuladas. Então o programa pode ter apenas uma série de comandos para executar as instruções permitidas.

 

Escreva em torno dos dados. Sempre.

 

Sejam J3 a jarra de 3 litros e J4 a jarra de 4 litros. Pouco criativo, eu sei :) 


Veja o que diz o enunciado

  • Comandos
    • encher J3
    • encher J4
    • esvaziar J3
    • esvaziar J4
    • transferir tudo de J3 para J4
    • transferir tudo de J4 para J3
    • mostrar o estado do "sistema"

cada jarra pode estar cheia ou vazia ou com uma quantidade conhecida  de agua

 

É só isso que tem que programar. Não a solução. Apenas a indicação.

  • As jarras começam vazias. Ou cheias. Tanto faz. 

Agora fora do ambiente computacional:

 

  • Para ter certeza, antes de tudo esvazie as duas jarras. Não confie em ninguém. Podem ter deixado uns litros lá só pra f.
  • tudo vazio, encha J3
  • como acha que vai estar o sistema se você tinha esvaziado as duas e acabou de encher a de 3 litros? Pois é: uma vazia, a J4, e a outra cheia, a J3
  • passa o que tem na J3 para a J4. Como está agora? :) J4 tem 3l J3 ficou vazia
  • enche a J3 de novo
  • e agora? cada jarra tem 3 litros
  • enche a jarra com a partir da J3. Vai caber um litro, imagino... Afinal ja tinha 3 lá dentro
  • e agora? J4 ficou cheia. A J3 perdeu um litro. Só tem dois então.
  • esvazia a J4.
  • passa a agua da j3 para a j4
  • e então a j3 ficou vazia mas a j4 tem 2 litros. hora da 🍺

Só precisa programar a indicação das coisas. Os comandinhos. E são só 4: enche, esvazia, transfere, e o óbvio status que nem precisa ser um comando....

 

Sobre a questão 1

 

Não sei qual a dúvida. É só uma planilha. E uma tabela para o IR. Somas e subtrações. Uma multiplicação.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...