Ir ao conteúdo
  • Cadastre-se

Usuário 3301

Membro Júnior
  • Posts

    12
  • Cadastrado em

  • Última visita

Reputação

7
  1. Depois de muitas pesquisas e buscando várias funções, consegui descobrir uma maneira bem mais prática. Estarei repassando para a galera que também tem interesse e quase não encontrou na internet! Primeiramente faço a importação da biblioteca de tempo. from time import strftime as time depois crio uma definição para chamar todo o meu código do relógio (no qual denominei de tictac): def tictac(): dentro dessa definição, chamo uma label que contém o meu "relógio digital" e sua variável eu coloco o nome de "relog". relog = Label(root, text=time("%H:%M:%S")) relog.pack() criei uma variável que armazena também o horário atual tirando minha label, porque assim vou utilizada para "atualizar" a hora que estará dentro da label. now = time("%H:%M:%S") agora crio uma condição que fará toda a mágica: if relog['text'] != now: if relog['text'] = now relog.after(100, tictac) Pelo que entendi... (Posso estar errado, se alguém com mais experiência souber o porque disso acontece, me corrija) Ele diz que SE o texto que estiver dentro da variável relog for diferente do now, ele vai entrar no laço de repetição, onde já que a variável relog é igual ao now, basicamente ele substitui a variável relog pela que tem no now. Em relog.after basicamente mando ele ficar atualizando a janela a cada 100 milissegundos dentro da função tictac. Depois disso tudo, chamo a def tictac para que seja executado. tictac() root.mainloop() Quem tiver dúvida ou ver se errei na explicação, me corrija ou deixe sua dúvida ai. valeu!!
  2. Estou realizando estudos com Tkinter, dando umas olhadas nas partes gráficas, etc... Porém me deparei com uma situação. Estou criando um programa que tenha uma rotina de registrar a entrada de algo, bem como seu nome, horário de entrada e por ai vai. A questão principal aqui é a respeito de mostrar a data e hora dentro da janela do programa, usando o seguinte código: from tkinter import * from datetime import datetime, timedelta import os root = Tk() root.title('Teste') root.geometry("400x400") lbl = Label(root, text=f"{datetime.now(): %H:%M:%S}") lbl.pack() root.mainloop() Até ai tudo bem, mas como podemos ver, o horário continua fixo, sem mudar o horário atual. O gênio então pensou a seguinte forma... Vamos colocar um update para atualizar a label e mudar o horário, mas como quero que ele faça essa atualização sempre, vamos colocar dentro de um loop para que ele sempre venha a mostrar no programa o horário atual. Então fiz o código da seguinte forma: from tkinter import * from datetime import datetime, timedelta import os root = Tk() root.title('Teste') root.geometry("400x400") command = 1 while (command < 2): lbl = Label(root, text=f"{datetime.now(): %H:%M:%S}") lbl.update() lbl.place(x=0, y=0) root.mainloop() Obs.: Fiz a implementação do place no lugar do pack porque estava dando um erro na atualização do horário. Bom, o problema está aqui! Se eu continuar desenvolvendo, colocando Buttons no programa, nada vai rodar porque ele ainda vai está no laço de repetição que coloquei para o horário funcionar. Neste caso, quero que ele mostre no programa a hora passando dessa maneira mas sem tirar a funcionalidade do resto do programa. Quem tiver mais conhecimento com isso e souber outra forma de implementar a hora na janela do programa sem ser por esse método que usei ou tem alguma forma de reparar esse problema, já agradeço. Qualquer dúvida que tiverem em relação a isso que tentei explicar, pode deixar ai que tento ser o mais claro possível! Obrigado.
  3. @Lucca Rodrigues Realizei a criação do algoritmo que faz a conversão do valor binário da base 2 para a base 10, só não consegui fazer o contrário creio por já ter pensado muito. adicionado 24 minutos depois //declaração das diretivas //declaração das diretivas #include <stdio.h> #include <stdlib.h> #include <math.h> #include <locale.h> //declaração das variáveis int Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, Num10, Num11, Num12, opcao, nov, base; float res; int res1, res2, res3, res4, res5, res6, res7, res8, res9, res10, res11, res12, bin2, bin1; int resto, resvid; //inicio do algoritmo main(){ do{ setlocale(LC_ALL, "Portuguese"); system("cls"); printf("Qual operação você deseja realizar?\n"); printf("1 - Adição 2 - Subtração 3 - Multiplicação 4 - Divisão\n"); printf(" 5 - Raiz Quadrada 6 - Número Binário\n\n"); scanf("%d", &opcao); switch(opcao){ case 1:{ printf("Você está realizando uma adição.\n"); printf("Digite o primeiro número: "); scanf("%d", &Num1); printf("Digite o segundo número: "); scanf("%d", &Num2); res = Num1 + Num2; printf("A soma de %d e %d é: %.0f", Num1, Num2, res); break; } case 2:{ printf("Você está realizando uma subtração.\n"); printf("Digite o primeiro número: "); scanf("%d", &Num1); printf("Digite o segundo número: "); scanf("%d", &Num2); res = Num1 - Num2; printf("A subtração de %d e %d é: %.0f", Num1, Num2, res); break; } case 3:{ printf("Você está realizando uma multiplicação.\n"); printf("Digite o primeiro número: "); scanf("%d", &Num1); printf("Digite o segundo número: "); scanf("%d", &Num2); res = Num1 * Num2; printf("A multiplicação de %d e %d é: %.0f", Num1, Num2, res); break; } case 4:{ printf("Você está realizando uma divisão.\n"); printf("Digite o primeiro número: "); scanf("%d", &Num1); printf("Digite o segundo número: "); scanf("%d", &Num2); res = Num1 / Num2; printf("A divisão de %d e %d é: %.0f", Num1, Num2, res); break; } case 5:{ printf("Você está realizando uma raiz quadrada!\n"); printf("Digite o número que deseja saber a raiz: "); scanf("%d", &Num1); res = sqrt(Num1); printf("A raiz quadrada do número %d é: %.0f", Num1, res); break; } case 6:{ printf("Em qual base você deseja calcular? // Base 2 ou Base 10\n"); scanf("%d", &base); if (base == 2){ printf("Informe o primeiro número: "); scanf("%d", &Num1); res1 = Num1*pow(2, 0); printf("Informe o segundo número: "); scanf("%d", &Num2); res2 = Num2*pow(2, 1); printf("Informe o terceiro número: "); scanf("%d", &Num3); res3 = Num3*pow(2, 2); printf("Informe o quarto número: "); scanf("%d", &Num4); res4 = Num4*pow(2, 3); printf("Informe o quinto número: "); scanf("%d", &Num5); res5 = Num5*pow(2, 4); printf("Informe o sexto número: "); scanf("%d", &Num6); res6 = Num6*pow(2, 5); printf("Informe o sétimo número: "); scanf("%d", &Num7); res7 = Num7*pow(2, 6); printf("Informe o oitavo número: "); scanf("%d", &Num8); res8 = Num8*pow(2, 7); printf("Informe o nono número: "); scanf("%d", &Num9); res9 = Num9*pow(2, 8); printf("Informe o décimo número: "); scanf("%d", &Num10); res10 = Num10*pow(2, 9); printf("Informe o décimo-primeiro número: "); scanf("%d", &Num11); res11 = Num11*pow(2, 10); printf("Informe o décimo-segundo número: "); scanf("%d", &Num12); res12 = Num12*pow(2, 11); bin2 = res1+res2+res3+res4+res5+res6+res7+res8+res9+res10+res11+res12; printf("o código binário %d%d%d%d%d%d%d%d%d%d%d%d na base 2 para base 10 é: %d", Num12, Num11, Num10, Num9, Num8, Num7, Num6, Num5, Num4, Num3, Num2, Num1, bin2); } else if(base == 10){ printf("Informe o número que você deseja realizar a operação: "); scanf("%d", &Num1); do{ resvid = Num1/2; resto = Num1%2; printf("\n A divisão de %d por 2 é igual a %d\n", Num1, resvid); printf("\nO resto é: %d\n", resto); Num1 = resvid; printf("\nAgora a divisão é por %d", Num1); }while(resvid > 0); } break; } } printf("\n\nVocê deseja realizar outra operação? 1 - Sim // 2 - Não\n"); scanf("%d", &nov); if (nov == 2){ printf("\n\nFinalizando aplicação...\n"); system("pause"); return 0; } }while(nov == 1); return 0; } Quero agradecer a todos pela ajuda. Meu algoritmo completo ficou assim! Basicamente é uma calculadora que tem a função de calcular as operações de matemática comum e um acréscimo de número binário... Caso queiram testar, no meu está funcionando perfeitamente!
  4. Vou tentar explicar com um exemplo, creio que será mais fácil o entendimento. Recebo o Número 29. 29/2 = 14 resto 1. 14/2 = 7 resto 0. 7/2 = 3 resto 1. 3/2 = 1 resto 1. 1/2 = 0 resto 1. O resultado da primeira divisão é dividida novamente por 2 e assim por diante, até chegar a zero. E no final, deve ser mostrado o resto de cada divisão.
  5. Bem amigos, venho aqui novamente pedir ajuda com um assunto que não vi até o momento alguém comentando sobre. Estou fazendo um algoritmo de uma calculadora, onde ela faz operações de adição, subtração, divisão... Enfim, não irei dar muitos detalhes sobre e irei direto ao ponto! Quero que minha calculadora faça o seguinte: Receba um valor N, divida por 2 e logo depois pegue esse resultado e divida por 2 e assim sucessivamente, até que o resultado da operação seja igual a zero. No final, ele tem que dar o resto de cada divisão. Não irei colocar o meu algoritmo completo, até porque ele está muito grande, mas tentei utilizar o while e tive alguns problemas problemas. printf("Informe o valor binário que deseja realizar da base 10 para base 2: "); scanf("%d", &Num1); resvid = Num1/2; while(resvid = 0); resvid = resvid/2; printf("%d", resto); resvid é o resultado da divisão. Se alguém tiver algum algoritmo mais claro, compartilhe! Desde já agradeço. Obs.: Sim, arquitetura de computadores... Estou tentando fazer um algoritmo que calcule o valor binário da base 10 para a base 2.
  6. Imaginei que tivesse que trabalhar com bando de dados, darei uma estudada por estes links que você me passou e futuramente trarei o algoritmo 100% funcional! Sim, por enquanto estou trabalhando com este algoritmo completamente manual por não saber como devo automatizar tudo, mas entrarei com a mão na massa e deixarei tudo muito mais prático! Obrigado pela atenção e pela ajuda.
  7. Já fiz várias alterações no meu algoritmo, já que estava dando alguns erros que não deveriam existir. Neste exato momento estou utilizando o seguinte algoritmo: import os def menu(): print('''Escolha uma opção: (1) Registrar um novo veículo (2) Registrar uma saida de um veículo ''') opcao = input("Escolha uma opção: ") if opcao == "1": os.system("cls") print('''---------------------- REGISTROS ------------------------''') Placa = input("Informe a placa do veículo: ") Entrada = input(str("Informe a hora de entrada do veículo: ")) print(" ") print("Placa do veículo é: ", Placa) print("Sua entrada foi às: ", Entrada) print("------------------------ XXXXXXX ----------------------------") input("Aperte ENTER para continuar.") os.system('cls') menu() elif opcao == "2": print("-------------------------- SAIDA -----------------------------") Entrada = input(str("Informe a hora de entrada do veículo: ")) Saida = input(str("Informe a hora da saida do veículo: ")) HoraT = str(Saida - Entrada) if (HoraT <= 00.30): print("Entrada: ",Entrada) print("Saida: ", Saida) print("Tempo de estadia: ", HoraT) print("Valor a ser pago é: 2,00") print("------------------- XXXXXXXXXXXX ----------------------") menu() elif (HoraT >= 00.60): print("Entrada: ", Entrada) print("Saida: ", Saida) print("Tempo de estadia: ", HoraTotal) print("Valor a ser pago é: 4,00") menu() else: menu() else: print("Comando inválido!") menu() menu() Até o momento ficou assim. Como eu disse, por questão de não saber como armazenar ainda a placa e a hora que são dadas no momento da entrada do veículo, apenas coloquei para o programa ler a placa do carro, mas no momento da saída, você vai apenas colocar a hora e a saída do carro, ou seja, a entrada se torna basicamente "inútil". Ainda assim, ele apresenta um erro com o cálculo que coloquei para ele encontrar o tempo que o cliente passou dentro do estacionamento. Não sei o que fazer... adicionado 1 minuto depois Irei dar uma olhada futuramente, pode ser que pode esclarecer alguma coisa sobre o armazenamento de dados, mas meu sistema não precisará de identificação de placas através de imagens.
  8. Bom dia, pessoal. Me chamo Lucas e estou iniciando aulas de programação. Fiz meu cadastro no Clube do Hardware para ter uma comunicação direta com a comunidade, retirar minhas dúvidas e aprimorar meus conhecimentos com a ajuda de vocês. Vamos ao que interessa! Estive passando por um problema com uma situação que de certa forma é bem comum em nosso cotidiano e resolvi desenvolver um algoritmo de "Estacionamento Rotativo". O que meu programa (algoritmo) deve fazer é o seguinte: O programa deve receber a placa de um veículo, tal como o horário de entrada (horário do sistema do computador). Após registrar a entrada do veículo, deve armazenar as informações. (Placa, horário de entrada) Quando o cliente sair, o algoritmo deve receber a placa do cliente e capturar todas as informações que foram armazenadas no momento da entrada (horário de entrada) e capturar também o horário de saída, dessa forma fazendo o seguinte cálculo: De 0 a 30 minutos: O cliente pagará 2,00. De 31 minutos até 1 hora: O cliente pagará 4,00. Após 1 hora, a cada 10 minutos: O cliente pagará 0,10 centavos de acréscimo. (Ex.: Tempo de estadia: 1 hora e 10 minutos: O cliente pagará 4,10). Agora minhas dúvidas perante ao caso: Não sei como posso fazer para que o algoritmo "armazene" as informações que são dados no momento do registro. (Placa e Horário de Entrada) Não sei como posso fazer para que o algoritmo vá atrás das informações que foram "armazenadas". (Por exemplo: Quero que só pela placa, ele vá atrás do horário de entrada e faça o calculo do valor) Já tentei fazer em C++/C mas tive alguns problemas e acabei optando por Python por ser "mais fácil". Já fiz um algoritmo mas não está dando muito resultado, talvez com a ajuda de vocês, posso conseguir achar uma "luz". Deixem a opinião de vocês como posso está resolvendo este problema. Desde já, agradeço!
  9. Consegui resolver alguns problemas, por exemplo: retirei o "do" logo após o void menu() void menu(){ int opcao; printf("\n--------------------------------------- menu ----------------------------------------------\n"); printf("(1) Registrar Veiculo\n"); printf("(2) Saida de Veiculo\n"); printf("----------------------------------------- XXXXX ----------------------------------------------\n"); scanf("%d%*c", &opcao); switch(opcao){ case 1: registrar(); break case 2: saida(); break } } rodou perfeitamente, mas ainda estou passando por uns probleminhas. No momento de tentar aplicar o horário do sistema ao exato momento que o veículo está sendo registrado dar um erro, não sei se foi da maneira que inseri o código. E problema também no armazenamento, no momento de registrar a saída do veículo a hora também não sai, querendo calcular o tempo de estadia que o cliente passou. Queria que o algoritmo guardasse o tempo e a placa do cliente em uma espécie de "pasta" e depois no momento de saída, o algoritmo pegasse a placa e junto o tempo de saída, fizesse o cálculo e me desse o valor. Estou tentando ainda!
  10. Fiz usando algumas dicas que recebi aqui e dando umas pesquisadas para compreender melhor cada uma delas. Porém da alguns erros que não consigo identificar, por exemplo: Diz que da um erro na linha 26... Se vocês conseguirem identificar alguns erros, me diga o quais erros foram esse e o que devo fazer para ajeitar e porque deve ser feito isso. Obrigado! #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct{ float valor; char placa[10]; char hora[9]; }Cliente; Cliente cliente_1; void menu(); void registrar(); void saida(); main(){ menu(); return 0; } void menu(){ int opcao; do printf("\n--------------------------------------- menu ----------------------------------------------\n"); printf("(1) Registrar Veiculo\n"); printf("(2) Saida de Veiculo\n"); printf("----------------------------------------- XXXXX ----------------------------------------------\n"); scanf("%d%*c", &opcao); switch(opcao){ case 1: registrar(); break case 2: saida(); break } } void registrar(){ printf("--------------------------------------- REGISTROS ----------------------------------------\n"); printf("Informe a placa do carro que você deseja registrar: \n"); scanf("%s%s", cliente_1.placa, cliente_1.hora); printf("\nVeiculo de placa: %s", cliente_1.placa); printf("\nEntrada: %s", cliente_1.hora); printf("--------------------------------------- XXXXXXXX- ------------------------------------------\n"); } void saida(){ printf("\n ------------------------------------------- SAIDA ---------------------------------------- \n"); printf("Informe a placa do veiculo que deseja registrar a saida: \n"); scanf("%s", cliente_1.placa); printf("\nVeiculo de placa: %s", cliente_1.placa); printf("\nSaida: %s", cliente_1.hora); printf("") } adicionado 3 minutos depois
  11. Estou iniciando programação e gostaria de alguns esclarecimentos. Estou na iniciativa de fazer um algoritmo que tenha um objetivo de estacionamento rotativo, porém estou passando por uma série de problemas e gostaria de ajuda. O algoritmo deve seguir os seguintes passos: Armazenar a placa do veículo, tal como a data e horário de entrada. Quando o veículo sair, deverá realizar a seguinte operação: - Se o veículo permanecer: - 0 a 30 minutos: será cobrado o valor de 2,00. - 30 minutos e 01 segundo até 1 hora: será cobrado o valor de 4,00. - Após 1 hora, cada 10 minutos passados dentro do estabelecimento deverá ser cobrado 0,10 centavos a mais. Ex.:(1 hora de 10 minutos: 4,10.) Estou a dias batendo cabeça com este problema e não consigo chegar a um algoritmo que faça isso por completo. Tentei no Python e no VisualG por ser "mais fácil" e agora estou tentando no C++/C/C#, mas ainda estou passando por complicações. Segue o algoritmo abaixo: Ps.: Não conclui ainda o algoritmo justamente por causa das minhas dúvidas. Primeira dúvida: como faço para armazenar uma variável e depois fazer o algoritmo encontrar ele depois de um tempo? Segunda dúvida: como faço para o algoritmo contar o tempo de uma variável a partir do momento na qual ela foi registrada? Quem puder me ajudar respondendo essas minhas dúvidas, me sentirei muito grato! Estou inciando as aulas agora e já quero me sentir avançado para não ter muitas dificuldades futuramente. #include <stdio.h> #include <string.h> main(){ char EntrSai; char Placa; char opcao; float Valor; printf("Escolha uma opção: (1) Registrar novo veiculo // (2) Registrar saida do veiculo\n"); scanf("%c", &opcao); if (opcao == "1"){ printf("Informe a placa do veiculo: \n"); scanf("%s", &Placa); } } Aos que são gente boa, que Deus abençoe você e obrigado pelo auxílio!

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