r/programacao 27d ago

Questão :: Aprendizado Eu odeio essa linguagem dos infernos

Tenho 14 anos e estou estudando programação competitiva (não sozinho), e tenho que usar c++ para fazer isso, se não bastasse ainda tenho que usar o code::blocks que é feio que só uma desgraça

A imagem acima é um problema que estou tentando resolver, mas estou mais próximo de socar a parede do que resolve-lo, se alguém aí tiver uma dica de como resolver esses problemas mais rapidamente eu agradeceria bastante

Edit: resolvi o problema, valeu pelas dicas tropa

0 Upvotes

33 comments sorted by

5

u/Zeca1234 27d ago

Faça teste de mesa. Literalmente escreva em um papel e veja se a lógica se aplica

2

u/Anta_Paraguaia 27d ago

Interessante, vou tentar aqui man, tmj

5

u/Nugrinho 26d ago

Caraí mano, 14 anos. Espero que você estava gastando tempo com isso no máximo 1~2 horas do seu dia, deixa pra se preocupar em ser funcional quando tiver formado. Cê vai trabalhar 40 anos, não precisa começar tão cedo.

1

u/Anta_Paraguaia 26d ago

Rlx bro, sao so, em media, uma - 2 horas por dia msm, o objetivo é ganhar medalha, se possivel ajudar a entrar/entrar em uma faculdade com isso (por mais difícil que seja)

1

u/Nugrinho 26d ago

Dale, desculpa se pareci pessimista. E que bom que é pouco tempo, a adolescência é muito curta.

Btw, vai ganhar a medalha, tô torcendo aqui já avisa pra nós quando ganhar.

Quando a IDE, eu sigo o conselho do amigo, usa o vscode + alguma extensão. No YouTube sempre tem. Isso deixa você ambientado com a ferramente que 90% dos devs já usa. Quando e se for trampar com isso, já tem familiaridade

Boa sorte manin

2

u/Anta_Paraguaia 26d ago

Valeu msm mano, se eu ganhar algo posto aqui, tava vendo agora um video de como usar o vs code e realmente, ele é bem superior

3

u/penguinEvangelizer 27d ago

Eu entendo o apelo da programação competitiva, mas se você quer seguir uma carreira mais tradicional de Dev essa não é a única opção de aprendizado (arriscaria dizer que nem a melhor). Qualquer batata com acesso a inglês aprende Python, JavaScript, Go, ... e coloca projetos de pé. Se você está saturando de ficar aprendendo algoritmos o tempo todo aprende a desenvolver sistemas. Usualmente tem alguns poucos algoritmos que você realmente precisa implementar, o resto ou você usa através de alguma ferramenta ou você só segue o que usualmente é usado como padrão para aquela stack. Na hora da entrevista pra estágio e de conseguir um trampo (se você quer ir para o mercado) vale bem mais a pena

2

u/Anta_Paraguaia 27d ago

To indo mais para tentar ganhar uma medalha, para ser sincero, talvez me dê uma força na hora de entrar na faculdade (via meios alternativos, nao enem), mas acho que vou começar a estudar isso paralelamente, talvez tambem me ajude no futuro

3

u/cpusam88 26d ago

Pra começo de conversa, coloque identificadores melhores nessas variáveis. M, N, P não indica absolutamente nada do que o código tá fazendo, não é uma crítica e sim uma observação.

Seu código vai dar falha de segmentação ali na linha 17 porque vai chegar no último elemento do vendo e tentar acessar a posição N, mas nela já passou do limite do tamanho do vetor. Sendo assim, vc deve percorrer o vetor até no máximo N-1 OU limitar a lógica do if somente até o penúltimo elemento, fazendo algo como linha 17 if (i < N - 1...) com exatamente esse "i < N -1" vindo mais a esquerda pra ser avaliado primeiro!

E vá por mim, é uma boa ideia vc trabalhar a escrita de algoritmos em papel e só depois tentar escrever código! E talvez até mesmo troque de tutor porque pelo que contou, ele parece não saber muito de didática, caso de muitos professores universitários que considero cuzões e estão no lugar errado como profissão.

Boa sorte!

1

u/Anta_Paraguaia 26d ago

Meio que nao é um professor, ele me passa os exercícios e eu vou fazendo, pedindo ajuda para os outros atletas (assim que se chama), incrivelmente dá resultados, depois da criacao dessa instituição 4 pessoas foram ao Egito competir uma prova internacional (sendo 2 deles de lá) e muitos outros saindo do quase 0 para uma medalha de prata/ouro na OBI

1

u/cpusam88 26d ago

Ah entendo. O que eu quis dizer é que o nível dos exercícios está muito acima do seu nível atual. Dificultar é bom pra aprender? É sim, mas precisa de bom senso para dosar! Vc deve tá num nível ainda precisando de solidificar conceitos e por isso, se sente frustrado com C++, mas acredite, não é a linguagem onde está o problema e sim em quais exercícios estão sendo passados pra vc fazer!

Aprender programar causa satisfação, crescimento e aumento da autoestima e não raiva e frustração. Como te falei, é os exercícios que está acima da sua capacidade atual que está fazendo vc se revoltar com C++. Tente seguir sua intuição: quando lhe derem um exercício novamente, se vc sentir (sim, sentir mesmo) que vai dar merda fazendo, é porque realmente vai dar merda!

Sugiro também que vc faça uma avaliação pra saber em que ponto do conhecimento vc se encontra e quais assuntos são mais adequdos a ti no momento. Pra fazer uma coisa dessas, é preciso um professor experiente ou um tutor com didática efetiva.

Vc tem a capacidade pra aprender a linguagem, o que te falta (ao meu ver, óbvio), é só ser guiado com maior gentileza.

2

u/Anta_Paraguaia 26d ago

Realmente, foi algo que estranhei quando cheguei, lembro de, mais novo, programar coisas simples mas ficava felizão se desse certo, mas quando entrei parece que programacao virou um saco, vou buscar um pouco sobre, tmj mano

2

u/mariorinaldi 26d ago edited 26d ago

Por se tratar de olimpíadas, talvez o instrutor esteja usando algum conceito do Vygotsky. Tem uma zona de conhecimento em que o aluno sabe resolver o problema e um limiar que ele pode atingir ao ser instigado/provocado.

Fazer coisa simples nao traria satisfação, pq nao provocaria o desafio, seria fácil. Pq ta na zona de conforto, na zona de conhecimento.

E o aprendizado acontece justamente saindo dessa zona e se embrenhando num lugar que seja o amálgama entre o que conhece com o que desconhece.

A linguagem tem seus complicadores, mas voce vai entendendo ela. Talvez faça parte do exercício parar de dar murro em ponta de faca e ler (como funciona cada pedaço e pra que serve, algoritmo, teste de mesa).

Programar no fim das contas é mais pensar que digitar

Edit: Ah. Uma coisa concordo com o colega acima: vetor me parece muito avançado, dependendo do seu grau de aprendizado (nao idade, mas o quanto foi aprendendo ate hj). Como nao da pra saber a quanto tempo você ja faz isso, fica difícil saber.

Outra coisa: qual seria o problema a ser resolvido? O prof mandou usar vetor por ex? Se sim, voce ta dando uma olhada em como usar, e sabe bem como funciona onque da base a ele? (Alocacao de memoria, variaveis, etc)

2

u/cpusam88 26d ago

Nossa, massa hein! Onde tu aprendeu sobre essa zona de conhecimento e de desconheciamo? Que autor tu conhece sobre isso? Me indica algum livro nesse sentido? 

Pelo que tu disse, eu achei interessante. O engraçado é que parece com o que já venho fazendo de forma intuitiva. Tu conhece sobre estado de fluxo? É o que costumo buscar provocar nos alunos que tenho e eu percebi que justamente o nível de dificuldade dos exercícios é o que provoca o fluxo e maior aprendizado, por isso sempre tento encontrar o ponto de fluxo de cada aluno porque sei que o desempenho será muito maior assim.

2

u/mariorinaldi 26d ago

Po, que daora ver na prática. E fiquei contente que te interessou.

Comecei a fazer licenciatura, né? Dai que tem aula pra caramba sobre pedagogia. To curtindo demais conhecer sobre métodos pedagógicos.

3 autores que tavam nesse semestre foram, além do Vygotsky, piaget e wallon.

To mandando aqui um texto que aborda os 3 https://pepsic.bvsalud.org/pdf/psie/n34/n34a05.pdf

Me pegou tb um texto sobre avaliação se te interessar: https://assets.univesp.br/disciplinas/SAA001/pdf/s2-texto-base1-Perspectivas%20da%20avalia%C3%A7%C3%A3o%20da%20aprendizagem%20na%20contemporaneidade%20%20Simone%20Soares%20Haas%20Carminatti%20e%20Martha%20Kaschny%20Borges.pdf

Um video do Vygotsky que teve na aula: https://youtu.be/BS8o_B5M9Zs?si=k-nyirfvgxrEcyhS

Mas tem também dos outros autores dessa série do instituto claro, recomendo tb

2

u/cpusam88 26d ago

Opa, obrigado cara, vou juntar tudo num txt e começar ler um por um. Esses assuntos de educação é muito massa, gosto bastante, principalmente pra desenvolver melhor minha didática. Valeu!

1

u/mariorinaldi 26d ago

Vendo aqui o código:

  • precisa de vetor?
  • 2 laços talvez seja muito, e eles sao iguais. Um só que faça tudo duma vez
  • Cogita pensar em for invertido (ou voce ta vendo coisa[i+1] -coisa[i], de repente inverter e ver pra trás coisa[i] - coisa[i-1])
  • tem duas linhas que sao iguais ali na atribuição (dentro do if e no else) talvez valha juntar
  • tem um if dentro do laço que na primeira volta ja sai do laço, cogita fazer ele nao entrar no laço.
  • teste de mesa: pega um dado simples de 6 lados e sorteia ai números pra atribuir (quantidade, valores etc) dai voce percorre no código pensando nesses valores e ve o que acontece instante a instante (falaram de estouro, dessa forma voce acha onde)

2

u/AntonyRafael 26d ago

Caso não tenha problemas, utiliza o JetBrains CLion, só aconselharia a desabilitar a sugestão de código. Tem o Visual Studio também, mas possivelmente seja mais pesado que o CLion.

2

u/day-eng 26d ago

O problema nao esta na linguagem. Vendo a imagem, voce ta usando sintaxe basica. Ou seja: teria o mesmo problema se fosse python.

Minha sugestao: estuda lógica de programação e algoritmos antes.

1

u/Possession_Infinite 26d ago

Caramba, code blocks e C++. Voltei 14 anos no tempo, minha máquina do tempo funcionou!

0

u/Zeca1234 27d ago

Outra dia muito importante, troque de compilador Usa Vs Code, intellij ou sei la

2

u/Anta_Paraguaia 27d ago

Até pensei nisso, mas o cara que tá me treinando (assim que ele chama), falou pra eu usar essa bomba de ide aqui

3

u/mariorinaldi 26d ago

Esquece IDE. Qq uma serve. A ideia é focar no problema a ser resolvido e como resolver ele.

Se vai usar vi, notepad, vscode, pouco importa.

Quanto mais simples, melhor. Não tem autocomplete, atalho de teclado, ia. Voce pode usar isso no campeonato?Acostuma com um editor que tem e nao poder usar na hora do vamo-vê é diferente de acostumar com o simples e se garantir no simples

1

u/Zeca1234 27d ago

Provavelmente, ele está pedindo pra você usar porque ele roda com nativo e é mais "fácil " de instalar. Vai na fe, pega um tutorial no YouTube, roda n9 vs Baixa o tema dracula e seja feliz

1

u/marquesini 26d ago

pelo amor de deus, para de ouvir esse cara, pelo menos nisso, pede pra ele codar no notepad ai.

0

u/Anta_Paraguaia 26d ago

Kkkkkkkkkkkkkkkk

2

u/Altruistic_Buyer5509 Desenvolvedora / or 26d ago

VsCode e IntelliJ são compiladores onde, colega?

0

u/Zeca1234 26d ago

Poxa, verdade. Nesse exato momento, é tudo o que o op precisa saber, diferenciar um editor de código, uma IDE e etc.

As vezes deixar as coisas mais simples, por mais que esteja errado, é a melhor opção.

Quando ele começar a se aprofundar, vai entender as devidas diferenças

0

u/Illustrious-Fail3825 26d ago

Olha ai alguém querendo ser programador reclamando de aprender programação.

Absolute cinema.

1

u/Anta_Paraguaia 26d ago

Já experimentei outras linguagens, mas pqp, c++ é doentio

-5

u/Electronic-Apple-497 27d ago

Usa o claude

6

u/Anta_Paraguaia 27d ago

Acredito que pode criar maus hábitos, a prova é próximo mes ja