Ir para conteúdo
Fórum Script Brasil

Fabin

Membros
  • Total de itens

    135
  • Registro em

  • Última visita

Tudo que Fabin postou

  1. Galera é o seguinte estou com uma duvida no meu programa... na faculdade professor ediu para fazer o seguinte Um programa para gerenciar os saques de um caixa eletrônico deve possuir algum mecanismo para decidir o número de notas de cada valor que deve ser disponibilizado para o cliente que realizou o saque. • O critério será o da "distribuição ótima" no sentido de que as notas de menor valor fossem distribuídas em número mínimo possível. – Por exemplo, se a quantia solicitada fosse R$ 87,00, o programa deveria indicar uma nota de R$ 50,00, três notas de R$ 10,00, uma nota de R$ 5,00 e uma nota de R$ 2,00. • Escreva um programa que: • Possua a opção de saque que recebe o valor da quantia solicitada e retorne a distribuição das notas de acordo com o critério da distribuição ótima. • O programa deverá ter uma opção de recarregar o caixa eletrônico, onde o usuário deverá informar uma senha e depois colocar a quantidade de cada nota que esta sendo colocada no caixa eletrônico. • O caixa eletrônico utiliza notas de R$ 100,00, R$ 50,00, R$ 20,00, R$ 10,00, R$ 5,00 e R$ 2,00. meu programa #include <stdlib.h> #include <stdio.h> //No esquecer de identificarquestoes acima int main() { int Quantia,QNotas100,QNotas50,QNotas20,QNotas10,QNotas5,QNotas2, Notas100,Notas50,Notas20,Notas10,Notas5,Notas2,Notas100Caixa, Notas50Caixa,Notas20Caixa,Notas10Caixa,Notas5Caixa,Notas2Caixa,NNotas50,NNotas20,NNotas10,NNotas5,NNotas2, Senha,SenhaCaixa,Recarga100,Recarga50,Recarga20,Recarga10,Recarga5,Recarga2; Notas100Caixa=100; Notas50Caixa=100; Notas20Caixa=100; Notas10Caixa=100; Notas5Caixa=100; Notas2Caixa=100; SenhaCaixa = 1234; printf("Caixa Eletronico.\n\nNotas Disponiveis 100,50,20,10,5,2.\n"); do{ printf("Digite a Quantidade a ser Sacada.\n"); scanf("%d",&Quantia); /*do { printf("Valor de Quantia incorreto. Verifique as Notas Disponiveis.\n"); }while(((Quantia % 100 != 3)||(Quantia % 50 != 3)||(Quantia % 20 != 3) ||(Quantia % 10 != 3)||(Quantia % 100 != 1)||(Quantia % 50 != 1)||(Quantia % 20 != 1)||(Quantia % 10 != 1)));*/ QNotas100 = (Quantia / 100); //printf("%d\n",Notas100); Notas100 = Notas100Caixa; if (QNotas100 > 0){ Notas100Caixa = (Notas100 - QNotas100); printf("Notas de 100 a serem Sacadas: %d.\n",QNotas100); printf("Notas de 100 no Caixa: %d.\n",Notas100Caixa); } else { printf("Notas de 100 a serem Sacadas: não se Aplica.\n"); } //printf("%d",Notas100); if (Notas100 <= 0) { do { printf("Notas de 100 Indisponiveis no Momento.Favor Recarregar.\n"); printf("Digite a Senha pra fazer recarga de Notas.\n"); scanf("%d",&Senha); if(Senha == SenhaCaixa) { printf("Digite o Valor para Recarga para Notas de 100. (OBS: No maximo 100.)\n"); scanf("%d",&Recarga100); if (Recarga100 > 100) { printf("Erro\nValor de recarga invalido.Verifique.\n"); } else { printf("Recarga realizada com sucesso.\n"); Notas100Caixa = Recarga100; } //printf("%d\n",Notas100); } else { printf("Senha Invalida.\n"); } }while(Notas100 = 0); } QNotas50 = (Quantia % 100); if (QNotas50 >= 50) { NNotas50 = (QNotas50 / 50); Notas50=Notas50Caixa; if (NNotas50 > 0) { Notas50Caixa = (Notas50 - NNotas50); printf("Notas de 50 a serem Sacadas: %d.\n",NNotas50); printf("Notas de 50 no Caixa: %d.\n",Notas50Caixa); } else { printf("Notas de 50 a serem Sacadas: não se Aplica.\n"); } } else { printf("Notas de 50 a serem Sacadas: não se Aplica.\n"); } //Notas50=Notas50Caixa; if (Notas50 <= 0) { do { printf("Notas de 50 Indisponiveis no Momento.Favor Recarregar.\n"); printf("Digite a Senha pra fazer recarga de Notas.\n"); scanf("%d",&Senha); if(Senha == SenhaCaixa) { printf("Digite o Valor para Recarga para Notas de 50. (OBS: No maximo 100.)\n"); scanf("%d",&Recarga50); if (Recarga50 > 100) { printf("Erro\nValor de recarga invalido.Verifique.\n"); } else { printf("recarga Com notas de 50 realizada com sucesso.\n"); Notas50Caixa = Recarga50; } } else { printf("Senha Invalida.\n"); } }while(Notas50 = 0); } QNotas20 = (QNotas50 % 50); if ((QNotas20 >= 20) || (QNotas20 >=40)) { NNotas20 = (QNotas20 / 20); Notas20=Notas20Caixa; if (NNotas20 > 0) { Notas20Caixa = (Notas20 - NNotas20); printf("Notas de 20 a serem Sacadas: %d.\n",NNotas20); printf("Notas de 20 no Caixa: %d.\n",Notas20Caixa); } else { printf("Notas de 20 a serem Sacadas: não se Aplica.\n"); } } else { printf("Notas de 20 a serem Sacadas: não se Aplica.\n"); } if (Notas20 <= 0) { do { printf("Notas de 20 Indisponiveis no Momento.Favor Recarregar.\n"); printf("Digite a Senha pra fazer recarga de Notas.\n"); scanf("%d",&Senha); if(Senha == SenhaCaixa) { printf("Digite o Valor para Recarga para Notas de 20. (OBS: No maximo 100.)\n"); scanf("%d",&Recarga20); if (Recarga20 > 100) { printf("Erro\nValor de recarga invalido.Verifique.\n"); } else { printf("recarga Com notas de 20 realizada com sucesso.\n"); Notas20Caixa = Recarga20; } } else { printf("Senha Invalida.\n"); } }while(Notas20 = 0); } QNotas10 = (QNotas20 % 20); if (QNotas10 >= 10) { NNotas10 = (QNotas10 / 10); Notas10=Notas10Caixa; if (NNotas10 > 0) { Notas10Caixa = (Notas10 - NNotas10); printf("Notas de 10 a serem Sacadas: %d.\n",NNotas10); printf("Notas de 10 no Caixa: %d.\n",Notas10Caixa); } else { printf("Notas de 10 a serem Sacadas: não se Aplica.\n"); } } else { printf("Notas de 10 a serem Sacadas: não se Aplica.\n"); } if (Notas10 <= 0) { do { printf("Notas de 10 Indisponiveis no Momento.Favor Recarregar.\n"); printf("Digite a Senha pra fazer recarga de Notas.\n"); scanf("%d",&Senha); if(Senha == SenhaCaixa) { printf("Digite o Valor para Recarga para Notas de 10. (OBS: No maximo 100.)\n"); scanf("%d",&Recarga10); if (Recarga10 > 100) { printf("Erro\nValor de recarga invalido.Verifique.\n"); } else { printf("recarga Com notas de 10 realizada com sucesso.\n"); Notas10Caixa = Recarga10; } } else { printf("Senha Invalida.\n"); } }while(Notas10 = 0); } QNotas5 = (QNotas10 % 10); Notas5=Notas5Caixa; if ((QNotas5 >= 5)||(QNotas5 >= 7)) { NNotas5 = (QNotas5 / 5); Notas5=Notas5Caixa; if (NNotas5 > 0) { Notas5Caixa = (Notas5 - NNotas5); printf("Notas de 5 a serem Sacadas: %d.\n",NNotas5); printf("Notas de 5 no Caixa: %d.\n",Notas5Caixa); } else { printf("Notas de 5 a serem Sacadas: não se Aplica.\n"); } } else { printf("Notas de 5 a serem Sacadas: não se Aplica.\n"); } if (Notas5 <= 0) { do { printf("Notas de 5 Indisponiveis no Momento.Favor Recarregar.\n"); printf("Digite a Senha pra fazer recarga de Notas.\n"); scanf("%d",&Senha); if(Senha == SenhaCaixa) { printf("Digite o Valor para Recarga para Notas de 5. (OBS: No maximo 100.)\n"); scanf("%d",&Recarga5); if (Recarga5 > 100) { printf("Erro\nValor de recarga invalido.Verifique.\n"); } else { printf("recarga Com notas de 5 realizada com sucesso.\n"); Notas5Caixa = Recarga5; } } else { printf("Senha Invalida.\n"); } }while(Notas5 = 0); } QNotas2 = (Quantia % 100); if (QNotas2 >= 2) { NNotas2 = (QNotas2 / 2); Notas2=Notas2Caixa; if (NNotas2 > 0) { Notas2Caixa = (Notas2 - NNotas2); printf("Notas de 2 a serem Sacadas: %d.\n",NNotas2); printf("Notas de 2 no Caixa: %d.\n",Notas2Caixa); } else { printf("Notas de 2 a serem Sacadas: não se Aplica.\n"); } } }while(Quantia > 0); system("PAUSE"); return(0); } ele esta um pouco grande devido eu ser inicante ainda.... meu problema esta na nota de dois em questao... se o usuario digitar 106 é uma nota de 100 e 3 de 2 certo a restriçaoo para valores que tenha resto 1 e 3 vou fazer ainda... caso o usuario digitar 116 ou 118 104 ... meu programa esta rodando perfeitamente ate esta nota de 2 se der testem aew e me auxiliem o que devo fazer em relaçao a esta nota de 2... para sair do loop é so digitar 0 obrigado t+
  2. durub esta variavel maracdor de erro vai servir para que?? quero que quando não for numero emite uma mensagem de erro entendeu? na parate while string != "\n" diferente de \n não entendi?? não tem como você colocar este modos implementado no que coloquei ai em cima para eu entender?? obrigado t+
  3. troquei a linha por (((str[0]>='0')&&(str[0]<='9'))||((str[1]>='0')&&(str[1]<='9'))||((str[2]>='0')&&(str[2]<='9'))||((str[3]>='0')&&(str[3]<='9'))||((str[4]>='0')&&(str[4]<='9'))) e deu certo por enquanto não é? hehehe... mas agora me deparei com o seguinte problema... ao invés de transformar ele em inteiro vou transformalo para float pois o usuario também podera digitar um numero 3.5... agora como faço para ele identificar que é um numero é do tipo float pois do modo que fiz acim se ele digitar 3.5 ele não vairetornar 3.5 o que eu faço? valews
  4. jonatahn fiz aqui deste modo char str[5];int c; printf("Digite um numero.\n"); gets(str); if (((str[0]>='0')&&(str[0]<='9'))&&((str[1]>='0')&&(str[1]<='9'))&&((str[2]>='0')&&(str[2]<='9'))&&((str[3]>='0')&&(str[3]<='9'))&&((str[4]>='0')&&(str[4]<='9'))) { printf("e um numero %s",str); } else printf("erro"); c=atoi(str); printf("%i",c); deu certim porem quando eu digito um numero que não tenha 5 posiçoes da erro... como posso consertar isso? valews
  5. jonantah nno caso então declaro ela como int mesmo ou como char string[xx]?? por exemplo o usuario digitou 5835 eu teria que fazer um if para cada posiçao? não conheço o atoi como funciona e qual a biblioteca?? e como implementaria com o do while caso digite uma letra so um esboço ficaria mais ou menos assim? char str[5]; do{ printf(Digite um numero?) gets(str) if str[1] != [red]aqui não sei o que fazer[/red] ..... fazendo com as cinco posiçoes da stringo }whie(aqui também não sei como fazer) atoi(str) .... seria mais ou menos assim??? valews
  6. Boa Noite Galera... é o seguinte estou fazendo uma calculadora simples em c... porem estu com duvida em como fazer a restriçao ao que o usuario digitar pois quando ele digitar letras o progrma deve emitir uma mensagem de erro.. posso usar o getch() porem é para char não é isso? e tambem caso o usuario digite um numro maior daria problema não?? como faço isso valews
  7. galera como posso fazer este algoritmo... Ler um número inteiro (assuma até três dígitos) e imprimir de forma separada, o digito equivalente à centena, o digito equivalente à dezena e o digito equivalente á unidade. Exemplo: 345 => centena: 3, dezena: 4 e unidade: 5. Valews abraços t+
  8. Fabin

    VB Caps Lock

    brother se eu entendi direito faz assim na general declarations voce coloca isso aqui Option Explicit Private Type KeyboardBytes kbByte(0 To 255) As Byte End Type Private kbArray As KeyboardBytes Private Declare Function GetKeyboardState Lib "User32" (kbArray As KeyboardBytes) As Long Private Declare Function SetKeyboardState Lib "User32" (kbArray As KeyboardBytes) As Long e cria uma procedure deste modo Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Call GetKeyboardState(kbArray) If kbArray.kbByte(&H14) = 1 Then MsgBox "CapsLock Ativada" Else MsgBox "CapsLock desativada" End If Call SetKeyboardState(kbArray) End Sub ai vai emitir a msg q caps lock ta ativado lembre-se apenas do seguinte coloquei o exmplo no key up do form, apenas para teste, poi se você pressionar qualquer tecla ira aparecer a mensagem, então por exemplo Então coloque a mesa no gotfocus do text box em questão abraço t+
  9. Fabin

    Comando em Botão

    brother eu não sei sobre vb.net não você teria melhores resposta no forum vb. net ok abraço t+
  10. pelol que eu vi aqui tua conexao ta blza brother, não sei porque ele não esta fazendo a inclusao vamo ver se alguém sabe o porque não é? abraço t+
  11. brother qual a versao do seu access? voce esta fazendo sua conexao por qual metodo?? posta aew como esta fazendo a conexao abraço t+
  12. ah é esqci era activeconnection hehe mas não gravo?? o banco fica em branco?? da uam revisada aew porque com o seu metodo e o meu era para ter gravado abraço t+
  13. tenta assim brother e posta o que deu Private Sub IncluirDados() dim cnnComando as new adodb.command Dim vConfMsg As Integer Dim vErro As Boolean 'inicializa as variaveis auxiliares vConfMsg = vbExclamation + vbOKOnly + vbSystemModal vErro = False 'verifica os dados digitados If TxtNomeCliente.Text = Empty Then MsgBox "O campo Nome não foi preenchido.", vConfMsg, "Erro" vErro = True End If If TxtTel.Text = Empty Then MsgBox "O campo Telefone não foi preenchido.", vConfMsg, "Erro" vErro = True End If If TxtCidade.Text = Empty Then MsgBox "O campo Cidade não foi preenchido.", vConfMsg, "Erro" vErro = True End If If TxtDataInicioServico.Text = Empty Then MsgBox "O campo Data Entrada não foi preenchido.", vConfMsg, "Erro" vErro = True End If If TxtHoraInicioServico.Text = Empty Then MsgBox "O campo Hora Entrada não foi preenchido.", vConfMsg, "Erro" vErro = True End If If TxtProduto.Text = Empty Then MsgBox "O campo Produto não foi preenchido.", vConfMsg, "Erro" vErro = True End If If TxtMotivo.Text = Empty Then MsgBox "O campo Motivo da Chamada não foi preenchido.", vConfMsg, "Erro" vErro = True End If If TxtObs.Text = Empty Then MsgBox "O campo Observação não foi preenchido.", vConfMsg, "Erro" vErro = True End If 'Se acontece um erro sai da sub sem gravar If vInclusao = True Then With cnnComando .connectionstring = nome do banco .commandtype = acmdtext .commandtext = "INSERT INTO tabela " & _ "(Cidade, Data_Inicio_Serviço, Hora_InicioServiço, Produto, Motivo_Chamada, Obs) VALUES ('" & txtCidade.text & "', '" & TxtDataInicioServico.Text & "', '" & TxtHoraInicioServico.Text & "', '" & TxtProduto.Text "', '" & TxtMotivo.Text & "', "' & TxtObs.Text & "');" Lembrando que se no bd for campo numerico colocar somente "& &" End With End If MsgBox "Inclusão ok", vbInformation + vbOKOnly + vbApplicationModal, "OK" LimparTela errGravacao: With Err If .Number <> 0 Then MsgBox "Houve erro na inclusão dos dados na tabela.", vbExclamation + vbOKOnly + vbApplicationModal, "Erro" .Number = 0 End If End With End Sub abraço t+
  14. brother não sei se seria isso que voce queria mas voce pode fazer seu formulario principal como MDI e os outros como MDI CHILD, ou seja, o mdi vai ficar sempre aberto o que vai alternar sa os mdi childs abraço t+
  15. Fabin

    (Resolvido) MsgBox

    gabriel, eu faço deste modo não to entendo porque o sue esta dando errado o que acontece quando clica em cancelar abraço t+
  16. galera to com um problemao(pelo menos para eu rsrsrs) tenho um form mas preciso carregar dados de duas tabelas nele nos dois campos do text box preciso carregar dados da tabela estagiarios e no restante dados da table Ctr Documentos como eu faria isso valews pela ajuda abraço t+
  17. Fabin

    (Resolvido) MsgBox

    com exit sub ele saiu do programa??? com este comando ele era so para sair da sub e deixar tudo como esta sem alterar nada posta ai o codigo junto com esta alteração q te passei abraço t+
  18. Fabin

    (Resolvido) MsgBox

    gabriel tenta colocar assim exit sub posta ai o que deu abraço t+
  19. Fabin

    (Resolvido) MsgBox

    gabriel normalmente o unload me é usado no botao cancelar mas no seu caso por que está colocando o não e cancelar não seria melhor colocar somente salvar e cancelar ou voce pode colocar quando o usuario cancelar carregar os dados do primeiro registro, limpar os campos,ou deixar a tela como ta e emitir uma mensagem que nada foi salvo qualquer coisa poste ai abraço t+
  20. brother tenta deste jeito If KeyAscii = 46 Then KeyAscii = 44 If KeyAscii = 44 And InStr(textbox aqui, ",") <> 0 Then KeyAscii = 0 Exit Sub End If If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 And KeyAscii <> 44 Then KeyAscii = 0 End If abraço t+
  21. galera é o seguinte tenho um form aqui de controle de documentos criei uma label aki para receber a data da ultima modificaçao feita nas opçoes e a data atual e queria ajuda no segunte tem documentos que tem prazo de entrega como faço para ele emitir uam mensagem como no exemplo aqui: o rapaz marcou que já entregou a ficha de dados na data x, e quando entrega a fiicha tem um prazo de uma semana para entrega a autorizaçao queria que o sistema contabilizasse os dias e quando ultrapassar os dias ele emitisse uam emnsagem entenderam?? valews pela atençao galera abraço t+
  22. faça deste jeito que o kuroi explicopu ou faça assim, como eu faço eu sempre fecho ele quando vou usar exemplo rs.close rs.open....... abraço t+
  23. eu tentei mais dá erro e aponta pra essa linha no botão salvar rs.Open "select * from clientes", Conex, adOpenDynamic, adLockOptimistic gabriel na generals declarations ou em no module(caso você tiver) declara a variavel recordset e apague a rs em todas as rotinas e funçoes que voce declarou ela, voce declarando ela na generals não vai precisar ficar abrindo toda hora entendeu qualquer coisa posta ai abraço t+
  24. Fabin

    Consultas em VB6

    brother não sei se está certo mas tenta assim voce na sua tabela deve ter campos para nota1 e nota2 certo, seria bom colocar um campo no bd para receber a nota final eu tentaria deste mode select notafinal from tabela where notafinal = "nota1+nota2" tenta colocar mais ou menos deste modo e posta ai o que deu abraço t+
×
×
  • Criar Novo...