Autor |
Mensagem |
-Toolbar- Veterano |
# mar/10
Postei no tópico e ninguém deu atenção.. =/
To fazendo uma lista de exercícios (60).
Tem um bem básico aqui mas...
Pqp. Agora fiquei mó confuso em fazer isso aqui.. =/
Foda é que é bem simples mas eu não consigo! ¬¬
"Dado o preço de um produto (valor inteiro), elaborar um programa para verificar qual a menor quantidade de notas necessárias para efetuar o pagamento da compra. Considerar os valores das notas atuais (1, 2, 5, 10, 20, 50 e 100). Utilizar os operadores % (resto) e / (divisão inteira) para a solução deste problema."
=l
quem estiver disposto em ajudar, valeu!
|
Eric Clapton Veterano |
# mar/10
· votar
-Toolbar-
Se fosse com laranjas eu saberia!!!
Mas passa um mais difícil aee!!
=)
|
Sam Keat Veterano |
# mar/10
· votar
vixxxx
|
Simonetti Veterano |
# mar/10
· votar
Cara, se é pra vc aprender, porque não parar para pensar um pouco?
Este aí, aliás, é velho e uma fuçada legal no Google te dá o programa pronto. Só que ao meu ver vale muito mais a pena vc quebrar a cabeça um pouco. Só assim se aprende.
Se vc quiser ser bom no que está pagando para aprender, tente sozinho. Senão, seja só mais um que no primeiro sinal de dificuldade recorre ao Google (isto é roubar!), ao inves de tentar por conta própria, aprender a pensar.
Vale a pena fazer, nem tanto pelo C++, mas pelo algoritmo.
|
Tripa-Seca Veterano |
# mar/10
· votar
Simonetti
ÇUMEMO!
|
guschard Veterano |
# mar/10
· votar
-Toolbar- bom... não manjo C++ mas a lógica eh +- assim
a = *int* Preço/100 "conta qtas notas d 100 precisa... o comando int eh do VB... no C++ eu nao sei como faz pra pegar soh a parte inteira da divisão... se vira ai pra achar... uahauhauhahuauhauh
Preço = Preço%100 "o novo preço passa o que falta pagar, descontada a parte paga com notas de 100
b = *int* Preço/50 "conta qtas notas d 50 precisa e assim vai até acabar
notas = a+b+c+...
|
guschard Veterano |
# mar/10
· votar
e essa lógica, aparentemente, eh bem tosca... devem ter jeitos bem melhores de fazer...
|
ZakkWyldeEMG Veterano |
# mar/10
· votar
#include <cstdlib> #include <iostream>
using namespace std;
int main() { unsigned long int GRANA, NOTAS, a, b, c, d, e, f, g; cout << "\nInforme a grana para o pagamento: "; cin >> GRANA; a = GRANA/100; GRANA = GRANA%100; b = GRANA/50; GRANA = GRANA%50; c = GRANA/20; GRANA = GRANA%20; d = GRANA/10; GRANA = GRANA%10; e = GRANA/5; GRANA = GRANA%5; f = GRANA/2; GRANA = GRANA%2; g = GRANA/1; GRANA = GRANA%1; NOTAS = a + b + c + d + e + f + g; cout << "\nNumero de notas: " << NOTAS << endl; system("PAUSE"); return EXIT_SUCCESS; }
guschard
testei aqui e funcionou
|
LeandroP Moderador |
# mar/10
· votar
Tirando a parte da linguagem, é um exercício até gostoso de fazer.
Lembro quando comecei aprender programação (Pascal, em 1989), nós fazíamos usando os comando com palavras em português. Ao invés de usar "If', usávamos o "Se" mesmo. O mesmo com "Then", "Else", "Go To", etc. O que importava era o desenvolvimento das fórmulas, depois a gente passava tudo pra linguagem de programação com os seus respectivos comandos (isso porque tinha um pouco de Basic também).
Como disse o Simonetti, pense mais um pouco.
|
ZakkWyldeEMG Veterano |
# mar/10
· votar
Agora o guras Toolbar tem que pensar numa fórmula esperta pra deixar a solução mais "elegante"
|
guschard Veterano |
# mar/10
· votar
Tirando a parte da linguagem, é um exercício até gostoso de fazer.
Lembro quando comecei aprender programação (Pascal, em 1989), nós fazíamos usando os comando com palavras em português. Ao invés de usar "If', usávamos o "Se" mesmo. O mesmo com "Then", "Else", "Go To", etc. O que importava era o desenvolvimento das fórmulas, depois a gente passava tudo pra linguagem de programação com os seus respectivos comandos (isso porque tinha um pouco de Basic também).
exatamente... tbm gosto de criar algoritmos, mesmo que seja apenas a parte lógica... já na parte de programação eu sou bem ruinzinho... uhauhauhauhauhahuahuuhaauhhua
ZakkWyldeEMG eh, entao... no C++ as variaveis inteiras pegam soh a parte inteira da divisao ou sao arredondadas?? por exemplo, c eu declaro uma variavel inteira, e ela tem o valor d 2.6, ela vai pra 2 ou pra 3???
de qq jeito, realmente o -Toolbar- tem q achar uma forma mais elegante de fazer isso... porque ta bem porco huahauhahuauhauhhuahuuhauhaua
|
-Toolbar- Veterano |
# mar/10
· votar
Simonetti Nem é por isso. É que eu fiquei quebrando a cabeça pra fazer. Quero aprender a fazer assim, no livro não explica. Talvez eu tendo um exemplo eu consiga entender e fazer outros.
O meu propósito é aprender. =/
|
-Toolbar- Veterano |
# mar/10
· votar
ZakkWyldeEMG Valeu cara. Mesmo olhando isso ae eu não consigo entender o algoritmo. Vo dar uma olhada com calma depois, e eu vou na monitoria pra ver se alguém me explica se eu não entender.
Mas valeu cara. Brigadão!
|
ZakkWyldeEMG Veterano |
# mar/10 · Editado por: ZakkWyldeEMG
· votar
guschard eh, entao... no C++ as variaveis inteiras pegam soh a parte inteira da divisao ou sao arredondadas?? por exemplo, c eu declaro uma variavel inteira, e ela tem o valor d 2.6, ela vai pra 2 ou pra 3???
só a parte inteira
-Toolbar-
A ideia pra entender o algoritmo é a seguinte: existem duas operações no mesmo - divisão e módulo
A divisão pega a parte inteira do resultado e acumula nas variáveis correspondentes a cada nota, ou seja, em "a", "b", "c", "d", "e", "f" e "g"
O módulo pega o resto da divisão de GRANA pela nota correspondente e atribui à própria variável GRANA seu valor para dar continuidade ao processamento das notas de valor mais baixo.
("processamento" é o que está sublinhado)
No final, a variável NOTAS acumula as notas computadas pela divisão e o cout mostra esse resultado.
=)
|
Black Fire Gato OT 2011 |
# mar/10
· votar
O algoritmo diz que você vai tentar dividir pela maior nota possível, vai arredondar o valor e depois vai dividir o resto pela segunda maior nota e assim sucessivamente.
Tipo, o valor é 5060.
Ele vai dividir por 100, o valor vai ser 50 e vai sobrar 60(50 * 100 = 5000 + 60 = 5060), em seguida o programa vai tentar a próxima nota da sequencia, que é 50, 60/50 = 1 e sobra 10, e assim por diante.
|
ZakkWyldeEMG Veterano |
# mar/10
· votar
Mesmo jeito, porém com vetores:
---------------------------------------------------------------------- --------------
#include <cstdlib> #include <iostream>
using namespace std;
int main() { unsigned int GRANA, NOTAS; unsigned int N[7] = {100,50,20,10,5,2,1}; unsigned int M[7] = {0}; unsigned int i; cout << "\nInforme a grana para o pagamento: "; cin >> GRANA; NOTAS = 0; for (i = 0; i <= 6; i++) { M[i] = GRANA/(N[i]); GRANA = GRANA%(N[i]); NOTAS = NOTAS + M[i]; } cout << "\nNumero de notas: " << NOTAS << "\n" << endl; system("PAUSE"); return EXIT_SUCCESS; }
|
russobass Veterano |
# mar/10
· votar
ZakkWyldeEMG
Faz em matriz esparsa ???
|
Palermo Veterano |
# mar/10
· votar
-Toolbar- Cara, se você não conseguir resolver este algoritimo sozinho desista da sua faculdade. Isso ai é básico. Alias, foi 1 dos exercícios usados na prova de seleção aqui da empresa (foi o mais fácil).
Concordo com tudo que o Simonetti falou. Você tem que quebrar a cabeça, não vai adiantar em nada pegar pronto. Se você não aprender isso agora, desista da faculdade. Tenho vários colegas que não aprenderam e agora tão se lascando na faculdade rodando em tudo.
Acredito que você deve sim pedir ajuda quando precisar, porém peça apenas "O que devo fazer?" e não "Como devo fazer?".
|
Gan Veterano |
# mar/10
· votar
se for um exercício de análise de algoritmos, deduz o algoritmo por indução forte nas notas disponíveis
|
_FrEd_ Veterano |
# mar/10
· votar
-Toolbar-
int main() { unsigned long int GRANA, NOTAS, a, b, c, d, e, f, g; cout << "\nInforme a grana para o pagamento: "; cin >> GRANA; a = GRANA/100; GRANA = GRANA%100; b = GRANA/50; GRANA = GRANA%50; c = GRANA/20; GRANA = GRANA%20; d = GRANA/10; GRANA = GRANA%10; e = GRANA/5; GRANA = GRANA%5; f = GRANA/2; GRANA = GRANA%2; g = GRANA/1; GRANA = GRANA%1; NOTAS = a + b + c + d + e + f + g; cout << "\nNumero de notas: " << NOTAS << endl; system("PAUSE"); return EXIT_SUCCESS; }
A lógica é começar com as notas de maior valor até as de menor valor pra conseguir o menor numero de notas possiveis.
Vamos supor que o valor seja 1251 reais.
Começando com as notas de 100, fazemos 1251/100, mas trabalhando com valores inteiros.
Teremos 12x100 = 1200, e passamaos o valor original para o resto da divisao, que sera 51. O valor 12 é armazenado como a, sendo o numero de notas de 100.
Agora com 51 fazemos o mesmo passo para a proxima nota, a de 50 reais. Vamos ter 50x1 = 50 e o resto é 1 real. Armazenamos o 1 como b, sendo o numero de notas de 50 necessarias.
Agora como sobrou 1 real, para as notas de 20, 10 e 5 a divisao dará 0, ou seja, não serão usadas essas notas ate vc chegar na de 1 real.
Depois eh soh retornar a soma de a+b+c... que será a quantidade total de notas que vc vai precisar.
|
LeD_HaleN Veterano |
# mar/10
· votar
nossa, nesse fórum só tem programador ._.
|
cao fofo Veterano |
# mar/10
· votar
c++ é coisa de frango basic e pascal é muito mais true
|
Simonetti Veterano |
# mar/10
· votar
cao fofo basic e pascal é muito mais true
Tem coisas muito, mas muito mais true que Basic e Pascal:
Logo e Lisp.
Diz a lenda que Chuck Norris criou um sistema operacional compativel com Windows x64 e capaz de fazer o SQL Server 2008 64-bits rodar com excelente performance.... em um 386! Só que ele fez tudo isto usando LOGO!
|
izzystradlin Veterano |
# mar/10
· votar
qnota100 := (pvalor - (pvalor % 100))/100; qnota50 := ((pvalor % 100) - (pvalor % 50)) /50; qnota10 := ((pvalor % 50) - (pvalor % 10)) /10; qnota5 := ((pvalor % 10) - (pvalor % 5)) /5; qnota1 := ((pvalor % 5) - (pvalor % 1)) /1;
|
Palermo Veterano |
# mar/10
· votar
cao fofo c++ é coisa de frango basic e pascal é muito mais true
Volta pra casinha.
|
izzystradlin Veterano |
# mar/10
· votar
Palermo ele foi irônico..
os cães nao sabem nem programar..
|
Palermo Veterano |
# mar/10
· votar
izzystradlin os cães nao sabem nem programar..
Poisé... Acho que ele só disfarça...
|
izzystradlin Veterano |
# mar/10
· votar
Palermo
deve tá programando access - mala direta do word...uhaehuae
|
Koisa Veterano |
# mar/10
· votar
-Toolbar-
Você faz sistemas?? Em que ano você esta?? Qual faculdade??
Abrass..
|
Koisa Veterano |
# mar/10
· votar
upa
|