Nick-us
(usa Slackware)
Enviado em 05/06/2020 - 16:37h
paulo1205 escreveu:
A Minha dúvida é se o que eu expliquei acima é correto? Ou se tudo que entendi está completamente errado?
Lamento (mesmo!) dizer que está errado.
E razão pela qual eu lamento é que já lhe foi sugerido várias vezes dar uma parada para aprender o básico antes de partir para o que é mais complicado. Assim como eu o aconselhei a não tentar usar programação orientada a objetos (POO) numa linguagem que não tem suporte a POO (que é o caso do C), também lhe sugeri enfaticamente que investisse tempo em absorver de modo adequado os conceitos que vão lhe habilitar a programar sem ficar completamente perdido nem tentando adivinhar o que o código faz ou -- o que é pior ainda, e que foi exatamente o que você fez neste tópico -- qual o sentido de construções fundamentais da linguagem.
Por isso, eu repito mais uma vez a sugestão: pare o que está fazendo, pegue um bom livro introdutório, aprenda com segurança os elementos fundamentais, e, depois disso, volte a tentar construir seus edifícios em cima desses bons fundamentos que você então terá adquirido.
Paulo mais uma vez obrigado! Mas estou fazendo o que vc sugeriu sim! É que demoro um pouco para entender as coisas!
Eu li sobre Classes, e preciso criar a minha própria Classe para entender ela separadamente! Não me pareceu difícil.
Os Livros que vc indicou já consegui alguns, eu tenho lido e marcado.
Eu consegui Programming Principles and Practice Using C++ (Em Inglês Somente) Indicado por você, e gostei muito, pois ele usa FLTK e isso me empolgou muito, uma Biblioiteca indicada pelo criador do C++
Mas calma ai, estou lendo ainda... Estou no comecinho! Eu costumo ler, anotar o que entendi separadamente para consulta posterior, criar exemplos do que entendi para ter certeza que entendi.
Acontece que nesse processo não uso apenas o Livro, pois qdo não entendo procuro outras fontes sobre o mesmo assunto, para comparar, tipo outra explicação do mesmo assunto.
Sua indicação desse livro em questão me ajudou muito a usar esse Autor como referência, visto que muitos livros por ai tem exemplos meio que errados!
Outros livros que estou lendo ao mesmo tempo com esse são:
C++ BR (Silvio do Lago Pereira)
C++ BR em Ambiente Multiplataforma
C++ For Beginners
The C++ Programming Language 4th
Eu dou preferência aos que estão em português pq fica um pouco mais fácil, porém compreendo que não são tão bons e não são fontes confiáveis de referência, mas nesse caso comparo eles com os do Bjarne Stroustrup
Porém claro, eu meio que misturo um pouco as coisas, pq ao mesmo tempo que leio linha a linha do Livro, estou criando uma Janela em FLTK para meu programa, Tentando criar um Grid para receber dados de um arquivo em C++. E ainda não dominei direito Entrada/Saida em C++.
Mas tipo, em C eu sei mecher com arquivos, agora quero saber fazer o mesmo em C++. Eu entendi o básico e sei o que tenho que fazer, acontece que esse básico ainda de Entrada/Saida ainda não absorvi completamente, mesmo lendo pelo menos uns 8 locais diferentes sobre isso, ainda não posso montar um exemplo eficiente sabendo o que significa 100% cada linha! Mas ainda não cheguei nessa parte no Livro do Bjarne Stroustrup estou confiante que no Livro dele, mesmo em Inglês me leve a compreender 100%.
No meio do caminho me deparei com Class, por causa do Grid em questão! Visto que a 1ª Coisa em um Programa é o Planejamento da parte Visual.
Então a sequencia que estou usando é:
1) (FEITO) Planejar o que quero do meu programa e como ele vai funcionar. Está todo descrito e Salvo em Texto. Esse planejamento fiz com Base do que sou capaz de fazer em C, logo faltando apenas aprender C++ para que seja feito em C++.
2) (FEITO) Escolher a Biblioteca Gráfica. Escolhi FLTK por ela ser extremamente pequena, super simples, pouquissima coisa pra estudar, Extremamente poderosa, e indicada pelo Bjarne Stroustrup. (Adorei isso)
3) Criar as Janelas. Isso ainda estou fazendo, sei criar tudo, faltando apenas o Grid, que não é arrastar e soltar como em outras bibliotecas, pois o Draw dele precisa ser feito na mão kkkkkkkk Mas não vejo como um problema, e sim como um desafio! Eu já consegui criar um Azul Lindo. Mas falta eu entender perfeitamente o que fiz! Pois peguei um exemplo gigantesco, reduzi ele ao máximo, e agora estou modificando para entender ele, conhecer cada linha e seu significado, para que eu tenha o poder de mudar o que eu desejar!
No Caso do Grid, foi quando eu me deparei com Classes, Membros e Etc... que embora pareça que eu tenha entendido, ainda falta muito, pois só terei mesmo entendido quando eu conseguir mesmo criar uma Classe e colocar ela em funcionamento. Vi exemplos que criam classes básicas como um Retangulo, o cálculo de alguma coisa, O que eu pensei mesmo foi em criar uma Classe com nome FICHA e ela teria Tipo, Nome, Tel, End. Então eu usaria essa Classe. com algum propósito, porém, ainda estou tentando entender, e nem estou perto disso no Livro do Bjarne Stroustrup. E no que li pela Internet, me pareceu não tão complicado! Mas ainda estou estudando isso!
4) Por último escrever o código em C++, mas essa parte é a mais fácil, já que já fiz esse programa usando a Biblioteca wxWidgets. A diferença aqui é que reforçarei meu aprendizado em C++ dando preferência a escrever tudo em C++ ao invés de usar o pronto da Biblioteca, apenas para aprendizado! Pq já li você informar que o ideal é usar o que a Biblioteca oferece para evitar conversões. Mas inicialmente meu objetivo é usar meu exemplo para aprender C++ depois sim, crio novamente o mesmo programa usando a Biblioteca qdo for usar o programa em si.
Embora eu desconfie claro que com FLTK nem precisarei me preocupar com isso, visto que FLTK usa C++ diretamente, ele não parece criar nada que precise ser convertido como é com QT ou wxWidgets.
OBS:
Eu entendo que talvez a forma como eu estudo podem achar que não seja a ideal, mas para mim, parece a forma mais fácil pra eu conseguir entender!
Quando eu estava estudando C inicialmente, eu li 1 Livro inteiro e não entendi praticamente nada! Não sou bom em Teoria!
Então precisei ler tudo de novo, precisei comparar com outros livros que li, a mesma coisa, e só mesmo consegui entender quando criei exemplos funcionais.
Porém mesmo assim, sei que não aprendi quase nada!
Pra vc ter uma idéia: Eu sei que main é uma função, sei o que faz uma função normal que não seja o main. Compreendi sobre retorno da função, parâmetros (Um Pouco).
Mas mesmo estudando o Main e entendendo alguma coisa, de verdade eu não sei como o main funciona ainda!
Se eu ficasse o tempo inteiro buscando informações para entender o main talvez eu leve o ano inteiro! E pra ser sincero nunca nem achei nada que explique de verdade o que é o main, ou pelo menos não entendi até hoje. Motivo pelo qual sou incapaz de criar um programa em C sem a função main tradicional.
Exemplo: O Dia que eu conseguir fazer isso abaixo funcionar, com certeza eu saberei o que é main
int MeuMain(void) {
return 0;
}
Porque dei uma pausa sobre o Main? Porque notei que para entender ele mais, eu terei que estudar o que é um Interpretador, o que é um Compilador, possivelmente eu teria que criar meu próprio compilador para isso. Vou precisar estudar o funcionamento de outros compiladores, visto que o único que sei usar é o GCC e nem sei quase nada do GCC.
Não parei meus estudos em C. A maior pendência e a que considero mais importante que eu ainda não fiz, foi descobrir ONDE baixar o C.
Visto que nem o C eu tenho de verdade, o que tenho é um Compilador que possue o C.
E não é o que quero. Eu quero o C Puro, ou seja uma pasta com todas as suas bibliotecas originais!
Então sim, usando um compilador qualquer que não seja o GCC, de preferência o primeiro compilador C criado, eu consiga compilar um Hello World, como faziam antigamente!
Se vc souber por acaso como eu consigo o C Original livre de terceiros, ajudaria!
Voltando ao assunto. Eu costumo fazer assim para aprender:
Eu escolho algo que quero criar, então sigo aquela linha de aprendizado! Vendo os resultados, eu me sinto empolgado!
Igual aprender a dirigir. Eu me sinto melhor, comprando o Carro, entrando nele, olhando ele, vendo o que ele faz, então aprendo o básico para usar ele, uso esse básico e vou me aprofundando até aprender mecanica!
Não consigo aprender mecanica e a engenharia do Carro primeiro, sem ve-lo ou usá-lo, acho que a falta de animação ou empolgação atrapalha!
Eu estudei variáveis em C, mas só estudei o que eu vou usar, no caso INT e CHAR. Não tenho uso para float, double e outras variações delas, por isso nunca me interessei, e eu gastaria um enorme tempo estudando elas sendo que acredito que nunca as usarei! O dia que eu precisar de um Float, então estudo!
Ainda em C, estudei somente comandos (Funções) que uso, e claro, ainda estou querendo saber ao menos o nome de todas as funções existentes em C e o que elas fazem, pois não cataloguei isso ainda! farei isso em C e C++, Em C é mais fácil, tem menos coisas!
Outra coisa que ainda não fiz em C mas quero fazer, é criar minhas funções, substituindo algumas existentes, ainda não fiz isso, porque ainda não consegui entender como encontrar essas funções corretamente nas bibliotecas para separa-las.
Achei super complexo encontrar 1 função! Elas ainda tem um nível de complexidade muito alto pra mim, para que eu possa modificá-las em seu próprio código. Além de ainda faltar aprender muita coisa em C que estão pendentes, pois ainda sei somente o básico pra criar pequenas coisas!
C é um Mundo ainda Gigante, misturei ao estudo de C++ pq na prática preciso usar as janelas, para criar meu Catalogo de Informações sobre o que aprendo!
Minha idéia sobre o C++ é apenas eu estar um pouco apto pra ler um arquivo para um Grid, editar, excluir, salvar e pesquisar. Somente isso, para voltar para o C e anotar melhor o que aprendo!
Não estou preso a um resultado, tipo, eu fiz o programa de Contatos com Fotos e tudo, em C++ usando wxWidgets, e agora estou fazendo ele de novo usando FLTK e adorei ela!
E talvez eu faça ele de novo e de novo usando QT, GTK... apenas para comparar as biliotecas, entender como funcionam, e ainda realmente quero e pensei em usar apenas as APIs do X11, porém, antes eu preciso saber mais de classes, c++ para isso.
Estudar wxWidgets me deu um bom aprendizado sobre Widgets, como funcionam, como converter algumas coisas, a FLTK está extendendo esse aprendizado, visto que ela é mais baixo nível.
É isso, para não alongar tanto o texto