Ir para conteúdo
Fórum Script Brasil

isrnick

Membros
  • Total de itens

    70
  • Registro em

  • Última visita

Sobre isrnick

Perfil

  • Gender
    Not Telling

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

isrnick's Achievements

0

Reputação

  1. isrnick

    Tutoriais

    Tem um livro open source/livre bom pra quem está começando em Python, ou até aprendendo a programar em geral, chamado Think Python (Pense Python) também conhecido como How to Think Like a Computer Scientist (Como Pensar Como um Cientista da Computação) originalmente escrito por Allen B. Downey para Java, e posteriormente adaptado para Python por Jeffrey Elkner, Chris Meyers, e Peter Wentworth. Recomendo especialmente as versões online interativas em inglês ou português, que permitem executar os exemplos do livro, assim como resolver e rodar os exercícios propostos, no próprio navegador. Português: Versão em português: https://penseallen.github.io/PensePython2e/ (Contém versão para ler online, ou link para comprar a versão impressa.) Versão EPUB em português: https://github.com/PenseAllen/PensePython2e/blob/master/ebooks/PenseEmPython2e.epub Versão PDF em português: http://eltonminetto.net/docs/pythontut.pdf (Acredito que esse PDF seja uma tradução diferente.) Versão online interativa em português: https://panda.ime.usp.br/pensepy/static/pensepy/index.html (Dispinibilizado pelo IME-USP para ser usado pelos alunos de introdução a programação, traduzida da versão interativa em inglês. Link para a página contendo outros recursos para estudo: https://panda.ime.usp.br/panda/python ) Inglês: Versão original em inglês: http://greenteapress.com/wp/think-python-2e/ (Contém links para download de PDF, ler online em HTML, ou comprar a versão impressa.) Versão modificada por Peter Wentworth em inglês: http://openbookproject.net/thinkcs/python/english3e/ (Por se tratar de um livro open source outros autores tem a possibilidade de fazer versões modificadas ou ampliadas baseadas no original. As versões interativas por sua vez basearam-se nessa versão.) Versão online interativa em inglês: https://runestone.academy/runestone/static/thinkcspy/index.html Outro livro livre online que é recomendado mais pra quem já tem algum conhecimento de linguagem de programação é o "Dive Into Python 3" (http://www.diveintopython3.net/), mas não encontrei tradução dele.
  2. Aqui eu fiz uma função simples para comparar datas: struct Data{ int dia, mes, ano; }; /*Retorna 0 se data1 == data2, um número positivo se data1 > data2, ou negativo se data1 < data2. */ int compara_datas(Data data1, Data data2){ int delta_anos, delta_meses, delta_dias; delta_anos = data1.ano - data2.ano; delta_meses = data1.mes - data2.mes; delta_dias = data1.dia - data2.dia; if (delta_anos != 0) return delta_anos; if (delta_meses != 0) return delta_meses; return delta_dias; }
  3. É um programa simples, seu conhecimento é mais que suficiente. O tipo char nada mais é que um número inteiro, a diferença do o tipo char para o tipo int é que ele tem apenas 8 bits em forma binária, enquanto o int tem pelo menos 16 bits (normalmente tem 32 bits na arquitetura x86), quando você manda imprimir um caractere, por exemplo usando "%c" no printf() o que ele faz é usar uma tabela de conversão que pega esse número inteiro e acha o caractere correspondente na tabela, e então imprime o caractere na tela. Existem várias tabelas de caracteres, e uma bem básica e conhecida é a tabela ASCII. Então seu programa deve simplesmente pegar todos os caracteres digitados pelo usuário e imprimir na tela o número inteiro correspondente, usando "%u" (inteiro sem sinal) no printf(). Por exemplo: #include <stdio.h> int main() { unsigned char c = '\0'; while(c != '\n'){ c = getchar(); if (c != '\n') printf(" %c\t%u\n", c, c); } return 0; }
  4. O valor está de x está fixo, logo x%20 vai calcular o número de notas de 20 do valor total, não apenas do que restou. Faça assim: x = int(input()) a = x//100 x = x%100 b = x//50 x = x%50 c = x//20 x = x%20 d = x//10 x = x%10 e = x//5 x = x%5 f = x//2 g = x%2 print(a, b, c, d, e, f, g)
  5. Se a primeira letra vai ser lida antes do ciclo, o valor inicial de cont deve ser 1. E nesse caso também poderia fazer assim: #include<stdio.h> int main(void){ int cont=1; char letra; scanf("%c",&letra); while(letra != 'A' && letra != 'a'){ scanf("%c",&letra); if (letra != '\n') cont = cont + 1; } printf("Foram feitas %d tentativas",cont); return 0; } Para descartar os '\n' que ficam como lixo na entrada padrão, e contar apenas as letras. Dessa maneira você pode entrar tanto 1 letra por vez seguidas de Enter, quanto digitar todas as letras de uma vez e só então da Enter: b c d e a ou então assim: bcdea Ambos resultam em: Foram feitas 5 tentativas
  6. Ok, o problema é que o comprimento do array/vetor é muito grande, ou seja quando você faz prohibited[N], com N tendo valor de mais de 1 milhão, está tentando reservar espaço demais no stack da memória para armazenar os valores, e isso causa o erro. Nesse caso é necessário alocar memória dinamicamente, usando malloc() (da biblioteca stdlib.h), a fim de guardar os valores no heap da memória, onde grandes quantidades de dados podem ser armazenados: #define L 1024 /* linear lattice size */ #define ofile "ZProhibited.10" /* output binary file name */ #include <stdio.h> #include <ctype.h> #include <stdlib.h> int main() { int N=L*L, *prohibited, i; FILE *fdata; prohibited = malloc(N * sizeof(*prohibited)); for(i=0 ; i<3L+1 ; i++) { prohibited[i]=0; } for(i=3L+1 ; i<3L+12 ; i++) { prohibited[i]=1; } for(i=3L+12 ; i<4L+1 ; i++) { prohibited[i]=0; } for(i=4L+1 ; i<4L+12 ; i++) { prohibited[i]=1; } for(i=4L+12 ; i<N ; i++) { prohibited[i]=0; } fdata=fopen(ofile,"wb"); fwrite(prohibited, sizeof(int), N,fdata); fclose(fdata); free(prohibited); return 0; } OBS: Lembre-se que é necessário usar free() para liberar a memória alocada dinamicamente.
  7. Aqui está gerando o arquivo, que problema está tendo?
  8. Para postar códigos use a tag CODE apertando o botão <> no topo do campo de respostas, assim você preserva a formatação do código e evita que o fórum faça alterações nele. Por exemplo, o fórum "comeu" todos os [ i ] (sem espaços) do seu código pois no fórum isso é a tag para deixar o texto em itálico, então o texto do seu código está em itálico a partir do primeiro que foi encontrado (os demais apenas somem porque o texto já tá em itálico). Mas já posso ver alguns erros no programa, onde você está colocando comparações no primeiro parâmetro dos ciclos for, como i>4L, imagino que queria colocar i = 4L+1? E talvez seria melhor fazer um único ciclo for com alguns ifs dentro...
  9. O objeto arquivo (ftest) já é iterável, e quando iterado sobre retorna uma linha a cada iteração, logo não é necessário usar read ou readlines. Logo teste isso: def search(): filetest = "C:/Python33/exemplo.txt" #demanded codes file #read the demanded codes file ftest = open(filetest, 'r') for i, line in enumerate(ftest): print(i, line) A saída na tela deveria ser o número da linha seguido do texto da linha: Por exemplo para exemplo.txt: abcde ferd sfdasf gfdgrt gfdg A saída será: 0 abcde 1 ferd 2 sfdasf 3 gfdgrt 4 gfdg
  10. Tenta assim: typedef struct node{ char dado; struct node *esq; struct node *dir; } Node;
  11. O problema é que você não definiu o que a função primeiroPilha retorna se algum dos ifs dentro da função não for satisfeito. Ou seja, se alguma condição dos ifs da função não for VERDADEIRO, esta função não retornará nada, pois o único return está dentro dos ifs, e essa função tem tipo char (não é void) e sempre precisa retornar algum valor.
  12. O problema provavelmente é que está usando o especificador de formato errado para imprimir na tela o tipo unsigned long long. Veja, esse código funcionou como esperado aqui: #include <stdio.h> int main(){ unsigned long long i = 1; printf("%llu\n", i<<60); return 0; } Um site contendo a tabela de especificadores de formato do printf() e sua família de funções: http://pt.cppreference.com/w/c/io/fprintf
  13. Em outras linguagens é usado abre e fecha chaves { }, ou algo do tipo "comando e fim_do_comando", para indicar onde começa e termina um bloco de comandos. Mas em Python a indentação é que indica quais comandos pertencem a um mesmo bloco. <comando 1> if <condicao>: <comando 1 dentro do bloco de comandos do if> <comando 2 dentro do bloco de comandos do if> <comando 2> <comando 3> Ex: a = 7 print "fora do if" if a < 10: print "dentro do if" a = 15 print "ainda dentro do if" print "fora do if novamente" Logo, é muito importante sempre usar a indentação corretamente, de forma consistente. E isso é muito bom pra quem está aprendendo a programar, pois aprende dês de cedo a deixar o código bem organizado, já que em Python indentar corretamente é obrigatório.
  14. A mensagem de erro já diz o que é, ou seja, significa que você colocou algum espaço em branco no começo da primeira linha quando você copiou e colou, e não deveria.
  15. Aqui compilou e rodou normalmente, sem erros.
×
×
  • Criar Novo...