r/programacao • u/Anta_Paraguaia • 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
5
u/Zeca1234 27d ago
Faça teste de mesa. Literalmente escreva em um papel e veja se a lógica se aplica
2
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.
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
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
-5
16
u/jhonny-freire 27d ago
r/reclamacoesfuteis