Ir ao conteúdo

isrnick

Membro Pleno
  • Posts

    1.558
  • Cadastrado em

  • Última visita

  1. Existe "else if" na linguagem C sim, e o @Heitor.Bruns usou corretamente. Usar "else" e o "if" aninhados em vários níveis como você fez é muito mais confuso, e fica praticamente ilegível se adicionar mais alguns níveis de "else"s e "if"s quando há várias condições que devem ser verificadas.
  2. Seu código foi escrito em C não em C++, ou seja você indicou a linguagem errada na tag do título do tópico. E tem vários problemas no seu código, sendo que o mais óbvio é que fica abrindo o arquivo, escreve uma frase, fecha o arquivo, abre o arquivo novamente, escreve outra frase, fecha o arquivo novamente, etc etc... Seria melhor abrir o arquivo 1 vez, escrever no arquivo tudo que precisa, e então fechar o arquivo.
  3. A condição do desvio condicional deve estar entre parênteses. Então mude: se distancia1 > distancia2 e distancia1 > distancia3 Para: se (distancia1 > distancia2 e distancia1 > distancia3) Em todos os desvio condicionais 'se'. E a indentação do código pode ser melhorada para facilitar a leitura do código.
  4. A faculdade americana Harvard oferece cursos de programação introdutórios online gratuitos, chamados de CS50, dá até pra obter certificação pelos cursos (mas isso pode ter um custo). Aqui está o site dos cursos CS50 online: https://www.edx.org/cs50 E aparentemente já existe uma versão desse curso em português também: https://materiais.napratica.org.br/cc50
  5. Você entende inglês? Se souber inglês fica muito mais fácil aprender a programar, eu recomendo aprender. Tem muito mais recursos online em inglês para aprender a programar, e as próprias linguagens de programação são em inglês, e as documentações das linguagens e de suas bibliotecas sempre são escritas em inglês (mas raramente em português), e pesquisar e tirar dúvidas online em inglês é muito mais fácil pois tem gente do mundo inteiro postando online em inglês. O site do Curso em Vídeo diz que os cursos de Python são grátis, então poderia fazer lá. Sim, não tem motivo por que não poderia usá-lo. Você assiste ou lê em um computador, e programa no outro computador pra exercitar o que aprendeu.
  6. Você tentou executar o comando python3 matriz.py na pasta errada. Pelas suas imagens o arquivo matriz.py está dentro da subpasta lembrar, logo o Python não encontrou o arquivo na pasta onde o terminal está. Entre na pasta lembrar, onde o arquivo está, e depois use o comando: cd lembrar python3 matriz.py
  7. O seu VSCode provavelmente está usando outra instalação do Python do seu computador... Talvez um Python em um ambiente virtual. Dentro do próprio VSCode você pode acessar um terminal, ou seja você pode acessar o Powershell dentro do VSCode. Se deseja saber qual o caminho da pasta do Python que o seu VSCode está usando você pode digitar no terminal: py -c "import os, sys; print(os.path.dirname(sys.executable))" E no terminal do VSCode você também pode instalar o numpy nesse outro Python usando aquele comando. pip install numpy
  8. Ok, agora cheque a variável de ambiente PATH e verifique se existem 2 pastas do Python a lista de pastas. Uma é a pasta do executável do Python (acabando em "\Python313\") e a outra é a pasta dos Scripts do Python (acabando em "\Python313\Scripts\") Para ver as pastas do PATH no Powershell você pode usar: $env:Path -split ';' Ou no Command Prompt digite: echo off for %A in ("%path:;=";"%") do echo %~A echo on
  9. O aviso está falando que esse caminho da pasta dos scripts f2py.exe e numpy-config.exe não está incluso no PATH (essa é a pasta dos scripts do seu Python), então copie o endereço da pasta e a adicione a variável PATH também.
  10. Parece que os caminhos para as pastas do executável do Python e de seus scripts não foram adicionados a Variável de Ambiente PATH do seu Windows, por isso não conseguiu executar o pip pelo terminal, pois o executável não foi encontrado na pasta onde está, nem em nenhuma pasta inclusa na variável PATH.... O instalador do Python deveria ter adicionado o caminho do Python a variável PATH automaticamente, uma maneira que poderia corrigir isso seria reinstalando o Python e se certificando que a opção para adicionar o caminho no PATH está selecionada (se a opção existir).
  11. É necessário instalar o numpy no seu python para poder usá-lo, pra isso digite a linha abaixo em um terminal (Command Prompt ou Powershell no Windows): pip install numpy
  12. Quanto a verificar se detecta como virus, você pode enviar o arquivo para o site VirusTotal que vai testar em todos os antivirus (ou a maioria) e ver se algum detecta como virus.
  13. Em C usamos as funções malloc, calloc e realloc para alocar(reservar) ou realocar memória dinamicamente, mas estas funções podem falhar, logo sempre é necessário analisar o retorno destas funções para verificar se a memória foi alocada com sucesso. Então, uma solução para não ter que ficar repetindo a verificação seria encapsular estas funções dentro de outra funções que tratam o caso de falha e nunca retornam um ponteiro nulo (NULL). Como em: #include <stdio.h> #include <stdlib.h> void *allocateMemory(size_t size) { void *pointer = malloc(size); if(!pointer) { fprintf(stderr, "Could not allocate\n"); exit(EXIT_FAILURE); } return pointer; } Mas essa função não ajudaria a diagnosticar onde o problema ocorreu no programa, logo uma melhoria seria fazer a função indicar o nome do arquivo e a linha do código onde o erro ocorreu. E com isso em mente segue uma solução completa, com funções que verificam os casos de falha na alocação e indicam onde o erro ocorreu, e macros para chamar as funções usando os mesmos parâmetros das funções originais (malloc, calloc e realloc): #include <stdio.h> #include <stdlib.h> #define VMALLOC(Size) allocateMemory(__FILE__, __LINE__, Size) void *allocateMemory(const char *file, long line, size_t size) { void *pointer = malloc(size); if(!pointer) { fprintf(stderr, "Could not allocate: %zu bytes (%s:%ld)\n", size, file, line); exit(EXIT_FAILURE); } return pointer; } #define VCALLOC(NumberOfElements, ElementSize) allocateCleanMemory(__FILE__, __LINE__, NumberOfElements, ElementSize) void *allocateCleanMemory(const char *file, long line, size_t numberOfElements, size_t elementSize) { void *pointer = calloc(numberOfElements, elementSize); if(!pointer) { fprintf(stderr, "Could not allocate: %zu bytes (%s:%ld)\n", numberOfElements * elementSize, file, line); exit(EXIT_FAILURE); } return pointer; } #define VREALLOC(MemoryBlock, NewSize) reallocateMemory(__FILE__, __LINE__, MemoryBlock, NewSize) void *reallocateMemory(const char *file, long line, void *memoryBlock, size_t newSize) { void *pointer = realloc(memoryBlock, newSize); if(!pointer) { fprintf(stderr, "Could not allocate: %zu bytes (%s:%ld)\n", newSize, file, line); free(memoryBlock); exit(EXIT_FAILURE); } return pointer; } E para usá-las basta chamar o respectivo macro do mesmo modo que faria com a função original, com a diferença de que não há a necessidade de verificar o retorno. Por exemplo: size_t bytes = 10 * sizeof(int); int forceFailure = 0; int *anArray = NULL; /* Mude o respectivo 'forceFailure' para um valor diferente de zero para verificar como cada função se comporta quando não consegue alocar memória. */ // Verified malloc forceFailure = 0; if(forceFailure) bytes = -1; anArray = VMALLOC(bytes); free(anArray); // Verified calloc forceFailure = 0; if(forceFailure) bytes = -1; anArray = VCALLOC(1, bytes); // Verified realloc forceFailure = 0; if(forceFailure) bytes = -1; else bytes = 10 * bytes; anArray = VREALLOC(anArray, bytes); free(anArray); OBS: Vale notar que as funções propostas aqui apenas geram a mensagem de erro e encerram o programa em caso de falha na alocação, mas há situações em que seria preferível tratar o erro de outra maneira que não faça com que o programa seja encerrado abruptamente, logo estas funções não são adequadas para esses casos e precisariam ser adaptadas.
  14. @SwallsNão? Ah, encontrei isto na documentação do robocopy:

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