Ir ao conteúdo
  • Cadastre-se

isrnick

Membro Pleno
  • Posts

    1.543
  • Cadastrado em

  • Última visita

Tudo que isrnick postou

  1. isrnick

    programa em C

    Em C a exclamação "!" é um operador de inversão booleana, ou seja !(true) é igual a false. Portanto se "if(a)" é igual a "if(a!=0)", então temos que "if(!a)" será o mesmo que if(a==0). decimal += (n % 10) * d; // d *= 10; O operador de atribuição "+=" soma o que vier depois dele ao valor atual da variável (ou seja, a+=b é igual a a=a+b ), E o operador de atribuição "*=" multiplica o que vier depois dele ao valor atual da variável (ou seja, a*=b é igual a a=a*b ), (Aí fica lógico deduzir o que o operador "/=" faz.) Portanto, aí ele está fazendo com que o n % 10 (resto da divisão de n por 10) seja multiplicado por um multiplicador "d", e somado ao valor atual de "decimal" a cada execução do ciclo while. E esse multiplicador "d" é iniciado com valor 1 e vai sendo multiplicado por 10 a cada clclo, tal que no próximo ciclo o valor somado a "decimal" será deslocado em 1 casa para a esquerda. E no fim do ciclo tem um: n /= 10; Então, o que ele está fazendo a cada ciclo é obter o último digito do número (resto da divisão por 10), multiplica por um fator multiplicador de posicionamento (d), e soma aos decimais, e no fim do ciclo elimina o último digito do número n (divide por 10). Assim teremos que a cada ciclo o programa vai separando do valor original a parte decimal: Ex:-Inicialmenten=543210decimal=0-Então a cada ciclo o programa seguirá fazendo:n=54321decimal=0n=5432decimal=10n=543decimal=210etcAté quando? Depende do valor de e, que é o que diz onde a vírgula deve ficar, e por isso é o que define quando o ciclo acaba... O problema aparece quando o número não tem casas suficientes, por exemplo quando n=543210 e e=8, pois, neste exemplo, a partir do sexto ciclo n e decimal ficam fixos com valores n=0 e decimal=543210. A solução do oliver para isto foi usar um contador ("zeros"), para contar quantas vezes o ciclo permanece nessa condição, e assim contar quantos zeros deverão ser adicionados ao número quando for imprimi-lo. Ou seja, ele checa se o valor do resto da divisão de n por 10 é igual a zero ( "if(!(n % 10))" ), se sim ele inicia a contagem de zeros. Mas note que se o número original n tiver dígitos 0 no meio, como no nosso exemplo 543210, haverão ocorrências em que resto da divisão será zero, e a contagem do número de zeros será iniciada no momento indevido, para compensar isso ele faz o programa resetar o valor do contador de zeros para o valor inicial 0, se num dos próximos ciclos o resto da divisão (n%10) der algo diferente de zero ("else zeros = 0;"). Entretanto a contagem de zeros também é usada para verificar zeros consecutivos no meio do número, como por exemplo quando n=10000 e e=3, o resultado esperado seria "10,000", mas nesse caso teríamos n=10 e decimal=0 ao fim do ciclo, então sem a contagem de zeros o programa imprimiria "10,0". Mas com o contador, "zeros" nesse caso teria valor 3 ao fim do ciclo, e se o programa imprimisse 3 zeros extras o resultado seria "10,0000", para compensar isto ele decrementa em 1 o valor do contador se a variável "decimal" for igual a zero, para obter o resultado esperado "10,000"...
  2. isrnick

    programa em C

    Em C valores inteiros não nulos resultam em True/Verdadeiro, e zero é tido como False/Falso, quando avaliados como booleanos... Portanto "while(e--)" vai ficar rodando enquanto "e--" for diferente de 0 (pois é avaliado como True), e sai quando chegar a 0 (ou seja, se torna False). Logo isto seria o mesmo que: "for (e; e != 0; e--){" (Sabendo dessa propriedade observe que if(e != 0) é o mesmo que if(e), logo para expressão acima também poderíamos escrever "for (e; e; e--){".)
  3. Precisa do parâmetro "-strftime 1" pra dizer ao ffmpeg que o nome do arquivo conterá os caracteres de controle de data e hora (%Y %m %d %H %M %S)...
  4. Como sempre o fator limitante são as placas de vídeo, mas nesse caso acho que praticamente qualquer placa de vídeo atual em notebooks para gamers aguenta os seus requisitos, veja essa lista de desempenho das GPUs de notebooks em games (você pode selecionar os jogos Dota 2 e CS:GO na lista de jogos no topo da página e clicar em restrict para ver exatamente o que te interessa). Quanto a que notebook comprar eu sugiro dar uma olhada nos notebooks da Avell e da Powernote.
  5. isrnick

    programa em C

    Vamos analisar o problema: Vamos começar pelos casos básicos: Se número = 0 apenas imprime 0 independentemente do valor de e. Se o número for diferente de zero, por exemplo quando número = 543210, mas a potência e for igual a zero (e=0), apenas imprime o próprio número, nesse caso 543210. Mas senão forem iguais a zero precisamos considerar os outros casos... Quando e é diferente de 0, existem dois casos diferentes: 1 - A vírgula fica no meio do número - Exs: 543210*10^-3 = 543,210 e 543210*10^-1 = 54321,0 2 - A vírgula fica antes do número - Ex: 543210*10^-8 = 0,00543210 Primeiro precisamos detectar de qual dos 2 casos se trata, para isso podemos usar uma divisão, pois 543210*10^-e = 543210 / (10^e). Portanto teremos o primeiro caso quando fizermos a divisão inteira e o resultado for não nulo (diferente de zero), por exemplo 543210 dividido inteiramente por 10^3 dá 543 (com resto 210). E o segundo caso quando a divisão der resultado nulo (igual a zero), por exemplo 543210 dividido inteiramente por 10^8 dá 0 (com resto 543210). Se se tratar do primeiro caso, basta usar a divisão inteira e o resto da divisão por 10^e, pra calcular o que vem antes e o que vem depois da vírgula, por exemplo quando e = 1 o resultado destas duas operações serão 54321 e 0, respectivamente. Então apenas imprimimos os 2 resultados separados por uma vírgula. No entanto, se se tratar do segundo caso, fica um pouco mais complexo, pois precisamos determinar quantos zeros deverão ser impressos antes de imprimirmos o número... Neste caso como a divisão deu 0, já podemos assumir que o número começa com "0," e imediatamente imprimir isso na tela. Então precisamos ir fazendo testes consecutivos de divisões com potências menores (ir decrementando a potência em 1 unidade), e imprimir um novo zero no prompt toda vez que a divisão inteira der resultado zero. E quando a divisão for diferente de zero podemos imprimir o número. Para entender melhor veja este exemplo: Assumindo: número=543210 e e=8:543210 / (10^8) = 0-> logo imprimimos "0," | Prompt> 0,Agora precisamos testar com potências menores:543210 / (10^7) = 0-> imprime um novo "0" | Prompt> 0,0543210 / (10^6) = 0-> imprime um novo "0" | Prompt> 0,00543210 / (10^5) = 5-> como o resultado é não nulo já podemos imprimir o número "543210" | Prompt> 0,00543210 Obs: Como pode observar será necessário calcular várias potências de 10, portanto eu sugiro que implemente uma função que calcule estas potências, para usá-las nas operações do programa.
  6. O divisor de cada razão (=dividendo/divisor) da série, começa em 1 e vai sendo incrementado em 1 unidade, ou seja: divisor = 1, 2, 3, 4, 5, etc... E o dividendo é igual ao divisor atual mais o divisor anterior, ou seja: dividendo = divisor + (divisor-1) = 2*divisor -1 Então a lógica vai ser algo desse tipo: serie = 0para divisor indo de 1 até 50 dividendo = 2 * divisor - 1 serie = serie + dividendo / divisorfim do paraimprime serie
  7. isrnick

    programa em C

    Err... To só dizendo, você está ciente de que este é um fórum aberto, e que qualquer pessoa pode vir aqui e copiar o código que alguém postar do EP1 de MAC2166 (Introdução a Computação da Escola Politécnica da USP) e mandar como resposta do Exercício Programa... Certo? E aí todas as pessoas que mandarem o EP copiado (incluindo você) vão receber 0 por plágio... Então eu sugiro que ninguém poste código e apenas deem explicações e dicas de como chegar na solução.
  8. Ok, nós saímos do escopo de comandos batch (dos arquivos .bat), agora o que você está se referindo são as funções/parâmetros do ffmpeg (%03d, colocar tempos apropriados em cada segmento, etc...), que não é algo com o que eu conheça bem, visto que nunca usei... Aí a melhor ideia é consultar a documentação do programa... https://www.ffmpeg.org/documentation.html Dei uma lida rápida na documentação sobre o muxer segment, e acredito que o que você quer é algo deste tipo: C:\Marcello\ffmpeg\ffmpeg.exe -i %url% %ffmpeg_opt% -f segment -segment_time 600 -segment_format mp3 -strftime 1 '%%d-%%m-%nome%-%%H:%%M:%%S-%%03d.mp3'ouC:\Marcello\ffmpeg\ffmpeg.exe -i %url% %ffmpeg_opt% -f segment -segment_time 600 -segment_format mp3 -strftime 1 "%%d-%%m-%nome%-%%H:%%M:%%S-%%03d.mp3" Mas eu não testei isto, é claro, visto que nem se quer tenho o ffmpeg no computador.
  9. Avell e Powernote têm "os mesmos notebooks", com isso quero dizer que ambas usam barebones da empresa taiwanesa Clevo, ou seja, eles têm as mesmas características de construção, qualidade e durabilidade. (Existem várias empresas nos EUA e Europa que usam barebones Clevo, nos EUA a maior é a Sager.) Aliás se soubesse quais os modelos/códigos dos barebones Clevo correspondentes de cada modelo fornecido pelas 2 marcas, Avell e Powernote, seria possível achar modelos que tenham o mesmo barebone Clevo, o que na prática significa que eles são essencialmente o mesmo notebook com logotipos diferentes. E o que muda são só os componentes opcionais como memórias, discos de armazenamento, leitores ópticos, monitor, etc. Então a questão é apenas ver se alguma delas fornece serviços melhores (suporte, garantia, atendimento, etc), e os opcionais escolhidos de cada modelo, e ver se a diferença de preço vale mesmo a pena.
  10. Estranho... Teste esse script: set teste=testandoset teste2=123echo "%teste%-%teste2%.mp3"set teste3="%teste%-%teste2%.mp3"echo %teste3%pause Se isto funcionar como deveria, ou seja criando o texto "testando-123.mp3" corretamente, então isto deveria resolver o problema: set arquivo="%data%-%nome%.mp3"C:\Marcello\ffmpeg\ffmpeg.exe -i %url% %ffmpeg_opt% -f segment -segment_time 600 - segment_foirmat mp3 %arquivo%
  11. Acredito que você apenas esteja colocando aspas demais... Tente isto: C:\Marcello\ffmpeg\ffmpeg.exe -i %url% %ffmpeg_opt% -f segment -segment_time 600 - segment_foirmat mp3 "%data%-%nome%.mp3"
  12. Mas testando o "echo %CurrentDirName%" aparece o nome completo "Feitos Antigo" certo? Como você está usando o nome desse diretório? Se estiver passando como parâmetro pra outro programa um nome de arquivo (Ex: Feitos Antigo.zip), então você provavelmente precisa incluir aspas (") antes e depois do nome do arquivo (Ex: "Feitos Antigo.zip"), pra ele saber onde começa e termina o nome, do contrário ele tratará "Feitos" e "Antigo.zip" como 2 parâmetros diferentes, por estarem separados por 1 espaço...
  13. Tente isto: for /f "delims=\" %%a in ("%cd%") do set CurrentDirName=%%~nxaecho %CurrentDirName%
  14. Vamos usar seu exemplo: 11 % 2 = 1 11 / 2 = 5 5 % 2 = 1 5 / 2 = 2 2 % 2 = 0 2 / 2 = 1 1 % 2 = 1 1 / 2 = 0 Se você imprimir logo após calcular o resto, ele vai imprimir os dígitos no prompt primeiro 1, depois 1, depois 0 e por fim 1, ou seja sai o número binário ao contrário, que não é o que desejamos. O que precisamos é colocar os dígitos no casa/sequência certa... Mas como fazer isso? Uma possibilidade seria gerar uma número inteiro que represente o número binário desejado e imprimi-lo, neste exemplo o número seria 1011 (mil e onze), que é representação do número decimal 11 em binário. Então vamos ver as casas do número desejado neste exemplo: casas 4 3 2 1 | | | |número 1 0 1 1 Queremos que o primeiro dígito fique na casa 1, que é a casa das unidades. Que o segundo dígito fique na casa 2, ou seja na casa das dezenas. Que o terceiro fique na casa 3, a casa das centenas, e assim por diante... Então seja Dn o enésimo dígito binário, logo temos que: Número inteiro que representa um número binário (com 4 dígitos) = D4 * 1000 + D3 * 100 + D2 * 10 + D1 * 1 = D4 * 10 * 10 * 10 + D3 * 10 * 10 + D2 * 10 + D1 * 1 = D4 * 103 + D3 * 102 + D2 * 101 + D1 * 100 ( Generalizando: Representação = {SOMATÓRIA 1 n } [ Dn * 10 (n-1) ] ) Então apenas deslocamos cada novo dígito calculado para a esquerda em uma casa aumentando o multiplicador em uma ordem de magnitude (= x10) a cada execução do ciclo, e então somamos aos anteriores, para obter a representação do número binário.
  15. Você precisa armazenar em uma variável o número binário, e para posicionar o dígito na posição correta basta usar um multiplicador que comece com valor 1 e que seja aumentado em 1 ordem de grandeza a cada ciclo, ou seja, seja multiplicado por 10 a cada ciclo, para fazer o deslocamento correto do dígito binário. E aí imprime o binário após obter o número binário completo. Deste modo: #include <iostream>using namespace std;int main() { int NUM,REST,NUMBIN,MULTI; cout<<"\n Digite o numero:"; cin>>NUM; NUMBIN = 0; MULTI = 1; while (NUM>0) { REST = NUM%2; NUMBIN = NUMBIN + REST * MULTI; NUM = NUM/2; MULTI = MULTI*10; } cout<<NUMBIN; return 0;} Edit: Correção das variáveis com nomes diferentes (todos os MULT para MULTI)...
  16. A média é calculada dividindo o valor total pelo número de notas... Você não precisa armazenar os valores de cada nota numa matriz... Só precisa obter o valor total, para poder calcular a média, para isso basta uma única variável que armazenará o valor da nota atual, e então somar seu valor ao valor total (total <- total + nota), a cada execução do ciclo para. (Não esqueça de atribuir o valor zero (0) ao total antes de começar a contabilizar o valor das notas, ou seja, antes do ciclo para começar.) E aí você pode calcular a média no final, quando o valor total tiver sido contabilizado, ou seja, depois que sair do ciclo para.
  17. Acho que seria uma excelente opção.
  18. A diferença de desempenho entre as GPUs 840M e a 850M é significativa, mais de 70% de melhoria do primeiro pro segundo. Portanto eu não recomendaria comprar esses modelos com a 840M por esse preço... Tanto na Avell quanto na Powernote, acredito que se você comprar o Windows ele virá instalado, se você não comprar o Windows não virá sistema operacional algum, e você vai ter que obter o Windows separadamente pra instalá-lo no notebook. Ligue para as respectivas lojas para tirar dúvidas, e talvez até negociar preço. A principal diferença entre a Avell e a Powernote é que a Avell dá 3 anos de garantia, enquanto a Powernote dá 1 ano de garantia, entretanto é possível estender a garantia pra 3 anos mediante pagamento (se não me engano custa R$100 por ano a mais).
  19. Um Avell, sem dúvida alguma, a placa de vídeo de qualquer um desses Avells é muito melhor que essa AMD Radeon HD 8670M do notebook Dell... http://www.notebookcheck.net/Comparison-of-Laptop-Graphics-Cards.130.0.html http://www.notebookcheck.net/Computer-Games-on-Laptop-Graphic-Cards.13849.0.html http://www.notebookcheck.net/Mobile-Graphics-Cards-Benchmark-List.844.0.html Os únicos que se encaixariam no seu orçamento de R$3800,00 seriam o B155 MAX e o G1511 MAX, mas acho que o melhor custo benefício seria o B155 MAX, ele possui uma GTX 850M que tem desempenho pouco inferior (7-8%) ao GTX 860M da G1511 MAX, e portanto a diferença de preço entre os 2 notebooks não equivaleria a diferença de desempenho. E você poderia usar o dinheiro que sobra no orçamento pra incluir outras coisas na configuração. Também valeria dar uma olhada na Powernote, que também vende notebooks com barebone Clevo. Esse modelo aqui da Powernote seria o equivalente (mesmo barebone) do Avell B155 MAX: http://www.powernote.com.br/740_conf.htm
  20. Sim, quando se fala em notebooks com a possibilidade de fazer upgrades os notebooks Clevo (a Avell usa barebones Clevo) são um dos que tem maior versatilidade. Entretanto, upgrades em notebooks por natureza tem muitas limitações... Upgrades de memória e drive de armazenamento são os mais simples, e podem ser feitos em quase todo notebook, alguns já vem até com tampas específicas para os slots desses componentes pra facilitar o upgrade. Upgrade de processador, no entanto, depende da placa mãe, ou mais especificamente do socket e do chipset da placa mãe, a cada nova geração de processadores, recursos são adicionados ou modificados, e portanto uma nova placa mãe é necessária que seja compatível com a nova tecnologia. Como não é possível trocar a placa mãe do notebook, em geral mesmo em notebooks que permitem upgrade de processador, como os Clevos, os upgrades estarão limitados a uma geração de processadores (no caso atual seria a quarta geração dos processadores Intel), então só será possível fazer upgrades para processadores melhores dentro da mesma geração, e se você adquirir o melhor processador da geração não poderá mais fazer upgrades... E então temos a placa de vídeo, que é o realmente interessa para jogos, visto que é aqui que estará o gargalo do desempenho em jogos... Os notebooks para jogos de ponta da Clevo tem o slot MxM, onde a placa de vídeo é encaixada, e que possibilita a troca/upgrade da placa de vídeo, teoricamente. Entretanto, assim como os processadores muitos problemas de compatibilidade podem inviabilizar upgrades, a começar com a energia requerida pela placa de vídeo (colocar placas de vídeo de 100W (todo de linha) em um notebook projetado para 75W (intermediário) poderia não funcionar corretamente ou diminuir a vida útil do notebook), problemas de dissipação de calor, e compatibilidade da BIOS, e da vBIOS. Mas, se você comprar um notebook que já tem listado várias opções de upgrade de placa de vídeo como opção de compra, como o Avell G1540 MAX, obviamente fazer upgrades posteriores para estas placas de vídeo deverá ser simples e sem problemas de compatibilidade. Mas aqui o problema é disponibilidade e preço, a disponibilidade da placa de vídeo específica para a marca do notebook (já que placas feitas para outras marcas não serão compatíveis devido a diferente distribuição de calor que necessitaria de outra configuração de dissipação de calor) não é grande, normalmente só será disponível no eBay, ou contatando a empresa que vendeu o notebook (ou, nesse caso, outras empresas que vendam notebooks Clevo) para ver se ela vende a placa, e o preço normalmente é bem alto, tal que talvez seja mais negócio vender o notebook e comprar um novo com a placa de vídeo melhor. Existem outros upgrades que podem ser interessantes, como de placa Wireless, teclado, etc. E como esperado nos notebooks Clevo é possível trocar quase tudo (só precisa verificar a compatibilidade do componente que deseja instalar no notebook).
  21. http://www.powernote.com.br/740_conf.htm
  22. Er... Isso parece apenas complicar algo tão simples. O formato CSV (Comma-Separated Values) é um arquivo de texto que armazena informações tabulares (planilhas), com as informações de cada coluna da linha sendo separadas por ";" (ou ","), e cada linha do texto representa uma linha na tabela. Portanto, se renomear o arquivo para a extensão ".csv", usando o próprio Excel as informações desse arquivo já serão interpretadas como uma tabela, separando-as em duas colunas. Se a intenção é apenas remover os números depois do ponto-e-vírgula, bastaria então selecionar a coluna inteira no Excel e excluí-la...
  23. Acabei de adquirir meu primeiro smartphone com touchscreen, e como esperado já preciso de algo pra limpar a tela, e pesquisando na internet vi que o mais recomendado para limpar a tela do smartphone é simplesmente usar um pano seco de microfibra específico para isso. Então onde posso comprar isso? Eu encontro isso em qualquer supermercado? É vendido em lojas que vendem smartphones e tablets? Ou só vou conseguir comprando pela internet?
  24. Renomeia esse aquivo ".txt", mudando a extensão pra ".csv", aí é só abrir no Excel e a primeira coluna vai ter os e-mails e a segunda vai ter os números.

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