-
Contagem de Conteúdo
32 -
Ingressou
-
Última visita
-
Dias Ganhos
2
Tipo de Conteúdo
Perfis
Fóruns
Blogs
Calendário
Downloads
Tudo que foi postado por Tiago Neves
-
Fala, @Apollo17273738 (13)! import math def distancia(p1, p2): return math.sqrt((p2[0] - p1[0])**2 + (p2[1] - p1[1])**2) def aceleracaoResultante(Astros, posicao_nave): G = 6.67430e-11 # Constante gravitacional em m^3 kg^-1 s^-2 a_resultante = [0, 0] for astro in Astros: posicao_astro, massa_astro, _ = astro distancia_astro = distancia(posicao_nave, posicao_astro) if distancia_astro == 0: continue for i in range(2): a_resultante[i] += (G * massa_astro / distancia_astro**3) * (posicao_astro[i] - posicao_nave[i]) return a_resultante def atualizaNave(Nave, Astros, delta_t): [posicao_nave, velocidade_nave, raio_nave] = Nave a_resultante = aceleracaoResultante(Astros, posicao_nave) velocidade_nave[0] += a_resultante[0] * delta_t velocidade_nave[1] += a_resultante[1] * delta_t posicao_nave[0] += velocidade_nave[0] * delta_t posicao_nave[1] += velocidade_nave[1] * delta_t return [posicao_nave, velocidade_nave, raio_nave], Astros, delta_t # Teste print(atualizaNave([[300000, 300000], [8, 5], 10], [[[0, 0], 5.97e+24, 5]], 0.5)) veja se isso resolve o problema.
-
livro javascript para fazer site
Tiago Neves respondeu à FIRE RICARDO BATISTA no tópico em 🤔❓ Dúvidas de Desenvolvimento
Fala, @FIRE RICARDO BATISTA! Veja esse vídeo: -
Dúvida Python - Processamento de Imagem
Tiago Neves respondeu à Malfurion Tempesfuria no tópico em 🤔❓ Dúvidas de Desenvolvimento
Fala, @Malfurion Tempesfuria! Cara, acho que essa área de programação não está sendo muito sua praia, né? Parece que você ainda não teve tempo de procurar ou se dedicar para aprender. -
CADASTRO NO BANCO DE DADOS COM JAVASCRIPT
Tiago Neves respondeu à FIRE RICARDO BATISTA no tópico em 🤔❓ Dúvidas de Desenvolvimento
Fala, @FIRE RICARDO BATISTA! Dar uma olhadinha nesse tutorial Node.js + MySQL, mas o código ficaria assim: // Importando o módulo mysql const mysql = require('mysql'); // Configurando a conexão com o banco de dados const connection = mysql.createConnection({ host: 'localhost', // Host do banco de dados user: 'seu_usuario', // Nome de usuário do banco de dados password: 'sua_senha', // Senha do banco de dados database: 'nome_do_banco_de_dados' // Nome do banco de dados }); // Conectar ao banco de dados connection.connect((err) => { if (err) { console.error('Erro ao conectar: ' + err.stack); return; } console.log('Conectado como id ' + connection.threadId); }); // Função para cadastrar um novo usuário function cadastrarUsuario(id, nome, sobrenome, email, imagem) { const query = 'INSERT INTO usuarios (id, nome, sobrenome, email, imagem) VALUES (?, ?, ?, ?, ?)'; const values = [id, nome, sobrenome, email, imagem]; connection.query(query, values, (error, results, fields) => { if (error) throw error; console.log('Usuário cadastrado com sucesso!'); }); } // Exemplo de uso da função para cadastrar um usuário cadastrarUsuario(1, 'John', 'Doe', 'john@example.com', 'perfil.jpg'); // Fechar a conexão com o banco de dados quando terminar connection.end(); -
Muito bom, fiquei curioso 😃 Aguardando...
- 1 resposta
-
- 1
-
- python
- controle de acesso
-
(e 4 mais)
Todas as Tags
-
procedure AdicionarRegistro(origem, destino: TClientDataSet; valor: Currency); begin cdsReceberOrigem.Append; cdsReceberOrigemFILIAL.AsInteger := origem.FieldByName('FILIAL').AsInteger; cdsReceberOrigemCODIGO.AsInteger := origem.FieldByName('CODIGO').AsInteger; cdsReceberOrigemFILIALDEST.AsInteger := destino.FieldByName('FILIAL').AsInteger; cdsReceberOrigemCODIGODEST.AsInteger := destino.FieldByName('CODIGO').AsInteger; cdsReceberOrigemVALORTOTAL.AsCurrency := valor; cdsReceberOrigem.Post; end; procedure ProcessRecordsLoop(cdsOrigem, cdsDestino: TClientDataSet); var saldoOrigem, saldoDestino: Currency; begin cdsOrigem.First; cdsDestino.First; while not cdsOrigem.Eof do begin saldoOrigem := cdsOrigem.FieldByName('VALORTOTAL').AsCurrency; saldoDestino := cdsDestino.FieldByName('VALORTOTAL').AsCurrency; if saldoOrigem >= saldoDestino then begin AdicionarRegistro(cdsOrigem, cdsDestino, saldoDestino); cdsOrigem.Edit; cdsOrigem.FieldByName('VALORTOTAL').AsCurrency := saldoOrigem - saldoDestino; cdsOrigem.Post; cdsDestino.Next; end else begin AdicionarRegistro(cdsOrigem, cdsDestino, saldoOrigem); cdsDestino.Edit; cdsDestino.FieldByName('VALORTOTAL').AsCurrency := saldoDestino - saldoOrigem; cdsDestino.Post; cdsOrigem.Next; end; end; end; Fala, @rodrigopaiva! Achei vários códigos no github com algumas implementações: GITHUB. Veja se esse código funciona. Abraço!
-
Desfazer alteração clicando em Cancelar
Tiago Neves respondeu à Pedro Augusto no tópico em JavaScript
solicitei acesso- 11 respostas
-
- 1
-
- javascript
- duvida
-
(e 3 mais)
Todas as Tags
-
Gerar Arquivo .REPX com Report Designer DEVExpress 17.1
Tiago Neves respondeu à andre.rsys no tópico em 🤔❓ Dúvidas de Desenvolvimento
Fala, @andre.rsys! A DevExpress oferece documentação extensa e detalhada sobre seus produtos, incluindo a geração de arquivos .repx. Acesse o site da DevExpress (https://www.devexpress.com/) e procure por tutoriais e guias específicos para sua versão do software e tipo de relatório. E outra coisa a DevExpress possui uma comunidade online ativa onde você pode fazer perguntas e obter ajuda de outros usuários. Acesse o fórum da DevExpress (https://supportcenter.devexpress.com/ticket/details/t1050560/general-support-forum) e publique sua dúvida, incluindo as imagens das telas de desenvolvimento e as informações adicionais que mencionei acima. Faz essa pesquisa no Youtube: https://www.youtube.com/results?search_query="DevExpress"%2C+"Visual+Studio"%2C+"C%23"%2C+"relatórios"+e+".repx"+- 2 respostas
-
- 1
-
- repx
- devexpress
-
(e 1 mais)
Todas as Tags
-
Desfazer alteração clicando em Cancelar
Tiago Neves respondeu à Pedro Augusto no tópico em JavaScript
@Pedro Augusto, tenta esse aqui: var rangeEditada = null; var valoresOriginais = null; function onOpen() { adicionarTriggerVerificacaoSenha(); } function adicionarTriggerVerificacaoSenha() { var planilha = SpreadsheetApp.getActiveSpreadsheet(); ScriptApp.newTrigger("verificarSenha") .forSpreadsheet(planilha) .onEdit() .create(); } function verificarSenha(e) { var senhaCorreta = "123"; var usuario = Session.getActiveUser(); var sheet = e.range.getSheet(); if (!sheet.getName().match(/^\d{2}$/)) return; // Sai se a guia não estiver no formato "XX" var senhaDigitada; var tentativas = 0; while (true) { senhaDigitada = Browser.inputBox('INFORME A SENHA', 'Senha:', Browser.Buttons.OK_CANCEL); if (senhaDigitada === senhaCorreta) { break; // Sai do loop se a senha estiver correta } else if (senhaDigitada === null) { // Usuário clicou em "Cancelar" if (rangeEditada && valoresOriginais) { rangeEditada.setValues(valoresOriginais); rangeEditada = null; // Resetar a variável rangeEditada valoresOriginais = null; // Resetar a variável valoresOriginais } return; // Sai da função sem exibir o Browser.msgBox novamente } tentativas++; if (tentativas > 0) { Browser.msgBox("Senha incorreta!"); } } // Remove o trigger após a primeira execução ScriptApp.getProjectTriggers().forEach(function(trigger) { ScriptApp.deleteTrigger(trigger); }); // Salva a célula editada e seus valores originais rangeEditada = e.range; valoresOriginais = e.range.getValues(); }- 11 respostas
-
- 1
-
- javascript
- duvida
-
(e 3 mais)
Todas as Tags
-
Que bom que funcionou 😃 Então, para exibir todas as categorias, incluindo aquelas que não têm produtos cadastrados, você pode usar uma junção externa (outer join) entre as tabelas CATEGORIA e PRODUTO. Além disso, para ordenar do maior para o menor, você pode usar a cláusula ORDER BY com a função COUNT(*) e a palavra-chave DESC. Aqui está a consulta SQL modificada para atender a esses requisitos: SELECT c.NOME_CATEGORIA, COUNT(p.ID_PRODUTO) AS NUMERO_DE_PRODUTOS FROM CATEGORIA c LEFT JOIN PRODUTO p ON c.ID_CATEGORIA = p.ID_CATEGORIA_PRODUTO GROUP BY c.NOME_CATEGORIA ORDER BY COUNT(p.ID_PRODUTO) DESC; Usar o LEFT JOIN para garantir que todas as linhas da tabela CATEGORIA sejam incluídas, mesmo que não haja correspondência na tabela PRODUTO. Com isso, o COUNT(p.ID_PRODUTO) para contar o número de produtos em cada categoria, incluindo 0 para as categorias que não têm produtos. Utilizamos a cláusula GROUP BY para agrupar os resultados pelo nome da categoria. E por fim, usamos ORDER BY COUNT(p.ID_PRODUTO) DESC para ordenar os resultados do maior para o menor com base no número de produtos.
- 4 respostas
-
- 1
-
- sql
- instrução sql
-
(e 1 mais)
Todas as Tags
-
Fala, @silvaunix! Operador de seta (->) em C é usado para acessar membros de uma estrutura (struct) através de um ponteiro para essa estrutura. Isso é útil quando você tem um ponteiro para uma estrutura e deseja acessar seus membros sem ter que usar o operador de desreferência (*) para obter o valor do ponteiro e, em seguida, acessar o membro da estrutura. No seu código, há alguns problemas: Você está tentando atribuir um ponteiro para uma estrutura (&dd) a um ponteiro para inteiro (int *ptr). Isso não é correto, pois os tipos são incompatíveis. Ao usar malloc, você está alocando espaço para um ponteiro para inteiro, e não para a estrutura dados. Na leitura da idade, você está passando o endereço de idade para scanf, mas deveria passar o endereço de ptr->idade. #include <stdlib.h> #include <stdio.h> #include <string.h> struct dados{ char nome[50]; int idade; }; int main(void){ struct dados *ptr = (struct dados *) malloc(sizeof(struct dados)); if (ptr == NULL) { printf("Erro ao alocar memória\n"); return 1; } printf("Nome: "); fgets(ptr->nome, 50, stdin); // Remova o caractere de nova linha do nome ptr->nome[strcspn(ptr->nome, "\n")] = '\0'; printf("Idade: "); scanf("%d", &(ptr->idade)); printf("Seu nome é %s, e você tem %d anos!\n", ptr->nome, ptr->idade); free(ptr); // Não se esqueça de liberar a memória alocada return 0; }
- 1 resposta
-
- 1
-
- operador seta
- codigo
-
(e 2 mais)
Todas as Tags
-
Fala, @Luciano Guedes de Oliveira! O problema que você está enfrentando está relacionado ao uso do localStorage no React. Parece que há um pequeno erro de digitação no nome do item que você está salvando e recuperando do localStorage. No useEffect onde você salva os dados, você está usando @tarefa como chave para o item no localStorage, enquanto no useEffect onde você os recupera, você está usando @tarefas. Esses nomes de chave devem ser os mesmos para garantir que você esteja salvando e recuperando os dados corretamente. import { useState, useEffect } from "react"; function App() { const [input, setInput] = useState(""); const [tarefas, setTarefas] = useState([]); useEffect(() => { const tarefaStorage = localStorage.getItem('@tarefas'); if (tarefaStorage) { setTarefas(JSON.parse(tarefaStorage)); } }, []); useEffect(() => { localStorage.setItem('@tarefas', JSON.stringify(tarefas)); // Corrigido para '@tarefas' }, [tarefas]); function handleTask(e) { e.preventDefault(); setTarefas([...tarefas, input]); setInput(""); } return ( <div> <form onSubmit={handleTask}> <h1>Listar tarefas</h1> <label>Tarefa:</label> <br /> <input placeholder="insira o nome da task" value={input} onChange={(e) => setInput(e.target.value)} /> <br /> <button type="submit">ADD</button> </form> <div> <ul> {tarefas.map((tarefa, index) => ( // Adicionado index como key <li key={index}>{tarefa}</li> // Usando index como key ))} </ul> </div> </div> ); } export default App;
- 1 resposta
-
- 1
-
- javascript
- erro
-
(e 3 mais)
Todas as Tags
-
Olá, @elcandonga! Para obter o resultado desejado, você precisa usar uma junção entre as tabelas CATEGORIA e PRODUTO e então agrupar os resultados pela coluna NOME_CATEGORIA e contar o número de produtos em cada categoria. Aqui está a instrução SQL para isso: SELECT c.NOME_CATEGORIA, COUNT(p.ID_PRODUTO) AS NUMERO_DE_PRODUTOS FROM CATEGORIA c JOIN PRODUTO p ON c.ID_CATEGORIA = p.ID_CATEGORIA_PRODUTO GROUP BY c.NOME_CATEGORIA; Essa consulta vai retornar o nome de cada categoria juntamente com a contagem de produtos em cada uma delas. Certifique-se de substituir ID_CATEGORIA e ID_CATEGORIA_PRODUTO pelos nomes reais das colunas em suas tabelas, caso eles sejam diferentes.
- 4 respostas
-
- 1
-
- sql
- instrução sql
-
(e 1 mais)
Todas as Tags
-
Problema ao executar o Python 3.12 na IDE Spyder.
Tiago Neves respondeu à Fernando Saraiva no tópico em Python
Fala, @Fernando Saraiva. O erro que você está vendo indica que o ambiente Python ou a instalação em que o interpretador está localizado (neste caso, C:\Users\CYGX\AppData\Local\Programs\Spyder\Python\Python312\python.exe) não tem o módulo spyder-kernels instalado ou a versão correta está instalada (deve ser >= 2.4.0 e < 2.5.0). Sem esse módulo, o Spyder não pode criar um console para você. Você precisa instalar o módulo spyder-kernels na versão correta. Você pode fazer isso ativando o ambiente primeiro (se necessário) e executando o seguinte comando em um terminal do sistema: > conda install spyder-kernels=2.4 Jupyter kernels for the Spyder console- 1 resposta
-
- 1
-
- python
- ide spyder
-
(e 2 mais)
Todas as Tags
-
Olá, preciso de ajuda neste codigo Python. Sou grato por quem ajudar e explicar
Tiago Neves respondeu à rato no tópico em Python
O problema é que a atribuição do preço mais barato preco_mais_barato = preco é feita fora do bloco do loop que verifica se o preço atual é menor do que o preço mais barato já registrado. Isso faz com que preco_mais_barato sempre seja igual ao preço do último produto inserido. Para corrigir isso, você precisa mover a atribuição do preço mais barato para dentro do bloco de condição que verifica se o preço atual é menor do que o preço mais barato já registrado. Aqui está como você pode fazer isso: mais_de_1000 = 0 total_pagar = 0 produto_mais_barato = '' preco_mais_barato = 0 while True: print('---FORD ATACADISTA---') produto = str(input('Produto: ')) preco = int(input('Preço: ')) total_pagar += preco # Total a pagar # Quantos custam mais de R$1.000 if preco > 1000: mais_de_1000 += 1 # Qual o mais barato e qual o seu preço if preco_mais_barato == 0 or preco < preco_mais_barato: preco_mais_barato = preco produto_mais_barato = produto # Quer continuar? continuar = ' ' while continuar not in 'SN': continuar = str(input('Quer continuar? [S/N]')).upper()[0] if continuar != 'S' and 'N': print('Erro. Tente novamente') continue if continuar == 'S': continue else: break # Prints if preco_mais_barato != 0: print(f'Total a pagar: R${total_pagar}') if mais_de_1000 > 1: print(f'{mais_de_1000} produtos custam mais de R$1.000') elif mais_de_1000 == 0: print('Nenhum produto custa mais de R$1.000') else: print(f'{mais_de_1000} produto custa mais de R$1.000') print(f'O produto mais barato foi {produto_mais_barato} custando R${preco_mais_barato}') else: print('Nenhum produto foi inserido.') A atribuição do preço mais barato e do produto mais barato é feita dentro do bloco de condição if preco_mais_barato == 0 or preco < preco_mais_barato:, garantindo que só será atribuído um novo preço mais barato se ele for menor que o preço já registrado como o mais barato. Isso deve resolver o problema que você estava enfrentando. -
Erro do GCC na hora de compilar arquivo em C
Tiago Neves respondeu à josedcastro no tópico em 🤔❓ Dúvidas de Desenvolvimento
Olá, @josedcastro! A IDE já tá lhe avisando o erro, deve ser os (;) "dois-pontos" no final do include.- 2 respostas
-
- 1
-
Olá, @jerrivaldo. Segue o código. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <button onclick="getIP();">Endereço IP</button> <pre id="resposta"></pre> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <script> async function getIP() { let apiKey = "d9e53816d07345139c58d0ea733e3870"; try { const response = await fetch("https://api.bigdatacloud.net/data/ip-geolocation?key=" + apiKey); const data = await response.json(); const enderecoIP = data.ip; document.getElementById("resposta").innerText = JSON.stringify(data, null, 2); } catch (error) { console.error("Ocorreu um erro ao obter o endereço IP:", error); } } </script> </body> </html> Neste código, adicionei uma tag <pre> com o id "resposta" logo após o botão. Dentro da função getIP, após obter os dados da API, estou configurando o conteúdo dessa tag com o JSON formatado usando JSON.stringify. Dessa forma, a resposta da API será exibida na página HTML.
- 2 respostas
-
- 1
-
- javascript
- endereço ip
-
(e 1 mais)
Todas as Tags
-
Fala, @edenilson carmo. Infelizmente, essa funcionalidade foi descontinuada em 2021. Mas não se preocupe! Existem alternativas eficazes para você continuar aprendendo e praticando o DOM: Extensões para Depuração: Live Server: Uma das extensões mais populares para o Visual Studio Code, o Live Server permite iniciar um servidor HTTP local com apenas um clique. Isso facilita a visualização das alterações do DOM em um navegador real. Browser Preview: Outra ótima opção, a extensão Browser Preview oferece uma pré-visualização integrada do navegador dentro do próprio Visual Studio Code. Ideal para testes rápidos e ajustes no código. Ferramentas de Desenvolvedor do Navegador: Inspeção do Elemento: Utilize as ferramentas de desenvolvedor do seu navegador (F12 no Chrome, Firefox e Edge) para inspecionar o DOM e testar seus scripts. Essa ferramenta oferece informações detalhadas sobre os elementos da página e permite modificar o código HTML e CSS diretamente no navegador. Console do Navegador: O console do navegador (acessível pela guia "Console" nas ferramentas de desenvolvedor) é essencial para registrar mensagens de log, testar funções JavaScript e interagir com o DOM.
- 2 respostas
-
- 1
-
- dom
- visual studio code
-
(e 1 mais)
Todas as Tags
-
O problema no seu código reside na maneira como você está posicionando o div2 dentro do div1. A propriedade left: 25%; right: 25%; está posicionando o div2 em relação ao tamanho total do viewport, e não do div1. Para solucionar isso, você precisa utilizar o posicionamento relativo (position: relative) no div1 e o posicionamento absoluto (position: absolute) no div2, mas com referência ao div1. .div1 { position: relative; /* Posicionamento relativo para o div1 */ width: 550px; height: 150px; border: solid 1px; border-radius: 20px; margin-top: 15px; } .div2 { position: absolute; /* Posicionamento absoluto */ top: 50%; /* Centraliza verticalmente */ transform: translateY(-50%); /* Compensa o deslocamento do top: 50% */ left: 25%; /* 25% da largura do div1 */ right: 25%; /* 25% da largura do div1 */ border: solid 0px; border-radius: 0px 0px 20px 20px; text-align: center; color: white; font-family: Gill Sans Extrabold, sans-serif; } /* Apenas para melhorar a visualização do exemplo */ .div1 { background: white; } .div2 { background: #2ecc71; height: 20%; }
-
Como fazer um Chat GPT?
Tiago Neves respondeu à Kauandrey no tópico em 🤔❓ Dúvidas de Desenvolvimento
Como criar seu “próprio” ChatGPT; veja passo a passo E, boa sorte! -
Olá, @novodev! O problema no seu código JavaScript está na comparação feita dentro do if. O erro ocorre porque você está comparando o objeto txtn com a string "Brasil" usando o operador de igualdade (==). O objeto txtn representa o elemento de entrada com o ID txtpais. Quando você compara um objeto com uma string usando o operador ==, o JavaScript verifica apenas se as referências dos objetos são iguais. No seu caso, as referências nunca serão iguais, pois txtn sempre será uma nova referência para o elemento de entrada, enquanto "Brasil" é uma referência constante para a string. Para comparar o valor textual digitado no campo de entrada com "Brasil", você precisa usar o método trim() para remover espaços em branco e o método toLowerCase() para converter o texto para minúsculas antes da comparação. Além disso, é recomendável usar o operador de comparação estrita (===) para garantir que os tipos de dados também sejam iguais. Possível solução: <body> <h1>Teste de Nacionalidade</h1> Digite país de origem: <input type="text" name="txtpais" id="txtpais"> <input type="button" value="Verificar" onclick="Nacionalidade()"> <script> function Nacionalidade(){ var txtn = window.document.getElementById('txtpais').value.trim().toLowerCase(); if(txtn === 'brasil'){ txtn.innerHTML = 'Você é brasileiro'; } } </script> </body> </html>
- 1 resposta
-
- 1
-
- javascript
- codigo
-
(e 2 mais)
Todas as Tags
-
Eu acho que tá faltando o "/". Seja esse link aqui: CSS - url
- 5 respostas
-
- 1
-
- font-face
- css externo
-
(e 4 mais)
Todas as Tags