Usuário 3301
Membro Júnior-
Posts
12 -
Cadastrado em
-
Última visita
Reputação
7-
Outro Data e Hora no Tkinter
Usuário 3301 respondeu ao tópico de Usuário 3301 em Programação - iniciantes
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!! -
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.
-
C Dividir resultado até ser igual a zero
Usuário 3301 respondeu ao tópico de Usuário 3301 em C/C#/C++
@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! -
C Dividir resultado até ser igual a zero
Usuário 3301 respondeu ao tópico de Usuário 3301 em C/C#/C++
@Lucca Rodrigues Perfeito! -
C Dividir resultado até ser igual a zero
Usuário 3301 respondeu ao tópico de Usuário 3301 em C/C#/C++
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. -
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.
-
Python Problemas com algoritmo em Python (iniciantes)
Usuário 3301 respondeu ao tópico de Usuário 3301 em Programação - outros
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. -
Python Problemas com algoritmo em Python (iniciantes)
Usuário 3301 respondeu ao tópico de Usuário 3301 em Programação - outros
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. -
Python Problemas com algoritmo em Python (iniciantes)
Usuário 3301 postou um tópico em Programação - outros
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! -
C algoritmo para estacionamento rotativo
Usuário 3301 respondeu ao tópico de Usuário 3301 em C/C#/C++
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! -
C algoritmo para estacionamento rotativo
Usuário 3301 respondeu ao tópico de Usuário 3301 em C/C#/C++
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 -
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