• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Overrun™

Algumas Duvidas Sobre C

28 mensagens neste tópico

Boas ppl.

ha algum tempo que quero aprender C mas como sou um ganda noob e só la vou devagarinho saquei uma data de compiladores e tuturials sem sequer saber o que precisava e para que precisava, exacto para que precisava pois eu tenho aqui umas dúvidas e axei que alguem me podia ajudar.

Bem aqui vão:

1º Qual a diferença entre C e C++ e C# (é que li já n sei onde que C e C++ eram o mesmo agora o C# foi só por perguntar) ?;

2º O que preciso para programar nestas linguágens Compiladores, Editores de janelas, Tuturials etc.  ?;

3º mais ou menos quanto tempo axam necessário para aprender uma ou todas (dependendo da 1ª resposta) estas linguágens ?

NOTA: tenho conhecimentos de Pascal apenas e mesmo assim não são os melhores mas lá me vou safando, o que sei fazer melhor é alterar Códigos e não tenho lá muito jeito para programá-los de inicio  :roll: , bem mas como tudo se aprende espero que alguem me possa ajudar.

PS: aprendi Pascal na escola portanto é meio marado :twisted:

NOTA 2: sem contar com programação até me safo +/- bem nos PC's portanto se eu tiver alguma dúvida é porque nesse conteúdo não tenho lá muito conhecimento.

Quem me quiser ajudar pode por aqui resposta na Thread ou pode falar comigo no #IRC no canal #O2 [peço desculpa pela Publicidade].

Cumps. Magic-Hacker

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

Em relação á primeira pergunta:

C: http://en.wikipedia.org/wiki/C_programming_language

C++: http://en.wikipedia.org/wiki/C_Plus_Plus

C#: http://en.wikipedia.org/wiki/C_sharp

Em relação á tua segunda pergunta:

Depende principalmente que OS usas, pois como podes imaginar os compiladores e editores são diferentes para cada um deles.

Por exemplo, eu nunca programei C em Windows, sempre em Linux, há-de haver quem tenha tido a experiência contrária.

Em Linux:

➔ Editor -> Emacs

➔ Compilador -> gcc

(isto é o que eu uso, há uma 'carrada' de outros...)

A terceira é a mais dificil de responder, depende de pessoa para pessoa, não ha nada a fazer...umas demoram pouco, outras demoram tanto que desistem.

Está tambem relacionado com a experiencia que já tens a programar.

Espero que tenhas ficado 'um pouquito' mais esclarecido...;)

Abraços! 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas MagicHacker,

Vou tentar responder-te ás dúvidas da forma mais sucinta possível até porque neste momento estou envolvido em lagum trabalho...

Ok,

1º O C é considerada a linguagem-mãe, porque todas as outras linguagens mais utilizadas na actualidade (Java,PHP, C++,C#) têm pozinhos do C, ou seja, contem instruções bastante parecidas com as do C.

O C++ é, digamos, o C avançado. Depois de aprenderes C é que deves aprender C++, porque esta linguagem tem funções que são continuação das funções do C, logo as intruções são diferentes...

O C++ é então considerada uma linguagem mais "complicada" que o C....

O C# é a linguagem C com vertente Web, ou seja, consiste numa combinação de instruções de C++ com Java e PHP á mistura e é uma das linguagens mais utilizadas pelos programadores da actualidade....

2º Para aprenderes C, precisas, de facto, de um compilador e de alguns tutoriais (ou um bom livro...)

O compilador que eu conheço e que me adapto melhor é o DevC++ da Bloodshed...Procura no Google por DevC++ e encontrarás logo o site da bloodshed onde é só fazer download de seguida...

3º O tempo necessário para aprenderes C, falando com base na minha experiencia pessoal, rege-se entre os 8 meses e um ano (isto para dominares a linguagem a 100%, com os conteúdos todos sabidinhos).

É lógico que se "saíres" do C com os conteudos todos sabidinhos e com alguns programas no currículo, ser-te-á muito mais fácil aprenderes C++ e C#, ou seja, demorarás mais cerca de 6 meses a um ano a aprender essas duas linguagens de seguida....

No entanto, antes de entrares no C, dá mais uma ou duas semanitas a rever Pascal e a praticar com programas mais elaborados (aconselho-te tambem é testares velocidades de código, etc...).

Ora, desculpa lá a pressa na resposta mas tenho mesmo de continuar aquilo que estava a fazer....

Cumps e qualquer duvida, já sabes....P@P está aqui para te ajudar.... :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
.... o que sei fazer melhor é alterar Códigos e não tenho lá muito jeito para programá-los de inicio...

Boas!

não sei ao certo que conhecimentos/facilidade tens em relação á programação, mas pelo que eu precebi do teu post, julgo na minha opinião que em 1º lugar devias ter bem claro as noções de Algoritemia que isso ai é que é realmente importante. Partindo dai torna-se tudo MUITO mais facil.

(não sei se dominas bem essa parte, ou se tens dificuldades nisso, só comentei pq foi a sensação com que fiquei) :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hello again

bem desde já obrigado pela ajuda, depois a questão do Dev C++ eu já o tenho só que até com códigos fontes que tenho aqui em C++ (penso eu, são do emule) dá erro na compilação isto com códigos já feitos, ou sou eu que não entendo bem o funcionamento do programa ou então há algum problema.

Depois como já devem ter percebido eu uso Windows (XP SP2) brevemente 64 bits (quando formatar) bem mas não é essa a questão, é assim eu tenho cá uns tuturials meio marados do tipo aprender C e C++ em 14 dias e em 5 Horas etc, eu não acreditei muito mas pelo menos para saber as bases deve dar, depois com o tempo aprendo totalmente o funcionamento.

Tenho também aqui o Visual Studio .NET 2003 mas não sei como compilar, neste momento estou a sacar o Borland Builder C++ 6.0 logo se verá o que sairá daqui.

perguntaram-me se eu tinha noção de algoritmos, bem o que é certo é que a minha professora deste ano (felizmente já bazei) era uma má stora e no pascal começou a falar de algoritmia etc mas n nos explicou o que era eu aprendi abocado (  :oops: )  num TUTURIAL em PT, para alem disso a minha stora deixou o  Label, o Const, o Type, o Procedure e o Functions, ou seja até ao final do 3º período a stora tava a começar a dar os Arrays e a acabar o for to do.

Bem mas isso não interessa porque o Pascal entende-se rápido apartir do momento em que se tem as bases.

já agora o último pedido que vos fazia era se me poderiam aconcelhar um Bom Livro para aprender C++, mas falo mesmo de um Livro e não um simples tuturial ou eBook, isto porquê? O que é certo é que eu não posso ler no PC porque sou logo tentado a começar a fazer, logo levo mais tempo e não aprendo como deve ser, daí o meu pedido de o nome de um bom livro para eu ler quando estiver na Praia por exemplo já que tamos no tempo dela.

Cumps. Magic-Hacker

Keep up the good Work

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação ao que te estava a falar sobre algoritmia, o que eu digo que é importante não é propriamente a parte teorica toda bonita que os gajus enssinam, com aqueles simbolos manhos etc,..NAO, não é preciso isso (a meu ver) é preciso sim preceber BEM o conteudo, o verdadeiro fundo da coisa, tou-me a fazer entender?  :?  o encadear das coisas umas com as outras....

mas se consegues fazer um programa do inicio ao fim em Pascal é pq tás lá! :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
a minha professora deste ano (felizmente já bazei) era uma má stora e no pascal começou a falar de algoritmia etc mas n nos explicou o que era

quando eu falei aqui era a isso que me estava a referir, ou seja a minhsa stora começou por falar em algoritmia e em programação e não nos mostrou sequer um exemplo ao inicio para nós percebermos +/- o que estávamos a dar no fundo o que a stora fez no início foi dar palha k ela tinha no manual dela, tudo escrito sem sequer dar exemplos ou seja frases do tipo:

"o comando Var serve para indicár as Variáveis", isto sem nós sequer sabermos de que variáveis estava a mulher a falar, bem mas isso também já não interessa.

mas se consegues fazer um programa do inicio ao fim em Pascal é pq tás lá!

é assim fazer o programa eu faço mas tenho dificuldades em associar o programa que irei fazer ao problema que tenho, ou seja tendo um problema matemático por exemplo tenho dificuldade em descubrir o programa que irei fazer para o resolver.

mas como eu disse no início tudo se aprende.

ha e quando eu falei em modificar códigos Fontes quero dizer que sem sequer perceber nada de C++ já alterei alguns .ini  como por exemplo as Stats de IRC do evoL, o que relativamente é fácil mas nem todos o fazem.

desculpem lá as frases longas mas perfiro tirar as dúvidas todas duma vez.

não se esqueçam de me dar o nome de um bom livro.  :roll:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o conceito base eh partires o teu problema em problemas mais pequenos!

Vai por mim, resulta!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
o conceito base eh partires o teu problema em problemas mais pequenos!

Vai por mim, resulta!!

Áa! é isso! Tens de ir por partes...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

Magic-Hacker, em relação ao livro já foram mencionados alguns em cima....

Para começares realmente a aprender as bases de C arranja este:

The C Programming Language.

Este foi o livro que definiu a estrutura e sintaxe da linguagem C.

Também para uma aprendizagem básica da estrutura/sintaxe, e em português, tens este:

Linguagem C

Agora vem o melhor...

Quando realmente já dominares bem a linguagem, podes dar uma vista de olhos neste:

Algorithms in C

Para mim dos melhores livros de C!!

Este não te vai ensinar nada da sintaxe, é sobre algoritmos e estruturas de dados implementadas em C (este é apenas para interessados :D), além disso ensina-te também bons metodos de programação, etc...

Abraços!!  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
1º Qual a diferença entre C e C++ e C# (é que li já n sei onde que C e C++ eram o mesmo agora o C# foi só por perguntar) ?;
Podes programar C++, como se estivesses a programar em C e podes programar C como se estivesses a programar C++, no entanto a filosofia de ambas é completamente diferente

O C é uma linguagem relacional, enquanto o C++ e C# são linguagens Orientadas a Objectos.

Por ultimo, o C# é uma reação da M$ ao Java(da SUN)... Possui uma VM como o Java, no entanto essa é apenas para windows. Existe o projecto mono q da suporte ao C# para linux, mas nao é completamente operacional

2º O que preciso para programar nestas linguágens Compiladores, Editores de janelas, Tuturials etc.  ?;
Um bom livro, um compilador, as bibliotecas e o Notepad(ou um IDE q nao faça tudo por ti) :D
3º mais ou menos quanto tempo axam necessário para aprender uma ou todas (dependendo da 1ª resposta) estas linguágens ?
Demoras um ano para apreender todos os conceitos de uma linguagem e estrutura das suas bibliotecas. No entanto se ja souberes outras linguagens de paradigmas identicos(OO), apenas tens de te preocupar em "saber" usar as suas bibliotecas...
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem Bem olha no que umas simples (pensava eu) perguntas vieram dar.

desde já obrigado pelas respostas.

de seguida quero-vos perguntar outra coisa  :oops:

o [PT]Devilishly disse-me que a filosofia do C e do C++ era diferente porque o C era uma linguágem relacional e o C++ uma linguágem orientada a objectos, o que é certo é que eu já ouvi falar em relacional e já ouvi falar em orientado a objectos mas neste contexto não consigo entender o que significa isso do relacional e objectos. Se alguem me pudesse explicar ou no minimo me dizer se vem escrito em algum dos livros...  :D  para alem de que eu também já ouvi falar das bibliotecas mas também não sei para que servem, mas o que me deu a entender nas respostas foi que só iria aprender depois de aprender o C e/ou o C++, entretanto sobre o C# esqueçam porque já não estou interessado era só para saber sobre de que se tratava.

Pelos vistos realmente é melhor estudar mais um pouquinho de Pascal e depois mais tarde logo começo a dar-lhe no C, mas já agora deixem-me perguntar uma ultima coisa sendo que não há nenhuma linguágem inicial obrigatória e sabendo que o Pascal é mais aconcelhada, mesmo assim eu posso tentar começar pelo C isto tendo um bom livro que me explique os conceitos claro. é que eu já tenho umas basesitas de Pascal da escola, mas não tenho gosto nenhum em tar a aprender Pascal (é uma linguágem que não tenho vontade de aprender, isto porque eu sou um bocado ambicioso, e então gosto de começar pelas coisas mais avançadas.) mas no caso de ser mesmo aconcelhavel (quase obrigatório) o pascal para início é como diz o outro:

"se não percebo nada de me*** como é que quero perceber de internet"

não é este o contexto mas aplicasse.

Cumps. Magic-Hacker

Be Cool

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Pelos vistos realmente é melhor estudar mais um pouquinho de Pascal e depois mais tarde logo começo a dar-lhe no C, mas já agora deixem-me perguntar uma ultima coisa sendo que não há nenhuma linguágem inicial obrigatória e sabendo que o Pascal é mais aconcelhada, mesmo assim eu posso tentar começar pelo C isto tendo um bom livro que me explique os conceitos claro. é que eu já tenho umas basesitas de Pascal da escola, mas não tenho gosto nenhum em tar a aprender Pascal (é uma linguágem que não tenho vontade de aprender, isto porque eu sou um bocado ambicioso, e então gosto de começar pelas coisas mais avançadas.) mas no caso de ser mesmo aconcelhavel (quase obrigatório) o pascal para início é como diz o outro:

É assim, eu não sou muito da ideia de que se deve começar pelo Pascal... Eu comecei pelo pascal e achei perda de tempo. Os conceitos de programação que normalmente são ensinados em pascal para aqueles que se iniciam nesta linguagem podem perfeitamente ser ensinados usando C já que são linguagens do mesmo paradigma. E eu não acho que a sintaxe do C dificulte esta aprendizagem...

Quando alguem se inicia  programação deve aprender certos conceitos e metodos de fazer as coisas, e isso é que realmente importa.

Bem, mas isto é a minha opinião ... cada um tem a sua.  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tanks SLider3 sempre pensei que o pessoal tivesse começado todo pelo Pascal, bem afinal sempre tenho uma última duvida, os Programas em C e/ou C++ são em 'DOS' ou em ambiente gráfico ??

é que vi aqui um exemplo noutro Topico compilei e era em DOS e eu sempre pensei que C fosse em ambiente gráfico.

Se por acaso der para fazer das duas formas digam sff.

Cumps. Magic-Hacker

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
tanks SLider3 sempre pensei que o pessoal tivesse começado todo pelo Pascal, bem afinal sempre tenho uma última duvida, os Programas em C e/ou C++ são em 'DOS' ou em ambiente gráfico ??

é que vi aqui um exemplo noutro Topico compilei e era em DOS e eu sempre pensei que C fosse em ambiente gráfico.

Se por acaso der para fazer das duas formas digam sff.

Cumps. Magic-Hacker

Podes fazer em DOS ou em ambiente gráfico....em DOS precisas de um ou dois ficheiros diferentes no máximo....Em ambiente gráfico precisas de mais alguns interligados....

No entanto, ao inicio é quase tudo em DOS....

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
tanks SLider3 sempre pensei que o pessoal tivesse começado todo pelo Pascal, bem afinal sempre tenho uma última duvida, os Programas em C e/ou C++ são em 'DOS' ou em ambiente gráfico ??

é que vi aqui um exemplo noutro Topico compilei e era em DOS e eu sempre pensei que C fosse em ambiente gráfico.

Se por acaso der para fazer das duas formas digam sff.

Cumps. Magic-Hacker

É assim, em qualquer linguagem input/output simples é por linha de comandos!! Não se vai começar logo a fazer interface gráfica quando se está a aprender uma linguagem, até mm porque em algumas linguagens isto é bastante complicado ou trabalhoso.

Para fazer interface gráfica em C podes fazê-lo de várias maneiras: ou usar as bibliotecas do C, ou no caso de estares a programar em win usando as apis do win ou então usando um toolkit tipo GTK ou wxWidgets, etc.

O que te aconselho é a não te preocupares com interface gráfica enquanto não dominares a linguagem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigadão pessoal as minhas dúvidas tão praticamente resolvidas, excepto aquelas dos Conceitos de orientado a objectos etc mas isso depois quem me respondeu poder-me-á explicar melhor mais tarde, sendo assim vou comprar o tal livro linguágem C de luíz damas e estudar aquilo bem e como por enquanto não faço mais nada pode ser que aprenda aquilo rápido, já agora leio primeiro o livro todo e depois passo á acção ou dentro do livro está escrito quando devo experimentar ? eu sei que é uma pergunta estupida mas eu ás x também sou meio duh... se me poderem responder agradeço.

NOTA: esta Thread até valeu a pena para o ppl novato chegar e ler e se tiver mais dúvidas polas aqui, não acham?

Cumps. Magic-Hacker

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao engulas conhecimento e so dp experimentes!

Ao longo do livro tem varias cenas para experimentares!! Faz-te bem ver como e porque que funciona daquela maneira!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
obrigadão pessoal as minhas dúvidas tão praticamente resolvidas, excepto aquelas dos Conceitos de orientado a objectos etc mas isso depois quem me respondeu poder-me-á explicar melhor mais tarde, sendo assim vou comprar o tal livro linguágem C de luíz damas e estudar aquilo bem e como por enquanto não faço mais nada pode ser que aprenda aquilo rápido, já agora leio primeiro o livro todo e depois passo á acção ou dentro do livro está escrito quando devo experimentar ? eu sei que é uma pergunta estupida mas eu ás x também sou meio duh... se me poderem responder agradeço.
Em relação  parte da diferença entre OO e linguagens baseadas em procedimentos e funçoes, vou apenas te dar um simples exemplo e coloco-te um link para se quiseres saber mais:

A programação Orientada a Objectos, baseia-se em interacções directas com os objectos. Ou seja, defines um objecto c todas as suas propriedades e dp podes aplicar transformações sobre ele, sabendo q esse objecto continua sempre a obedecer a determinada estrutura pre-definida.

Supondo q em determinada posicao do teu programa queres desenhar um carro no monitor e depois move-lo.

Se fosse em *POO, o mais normal era criares um Objecto Carro e definires nesse objecto todas as caracteristicas de um carro(tais como numero de rodas e outros...) e adiciona-lo  tua tela. Sempre q o quisesses desenhar, apenas aplicavas um metodo por exemplo redrawCar() e ele redesenhava o carro na tela, como o previsto.

Uma aplicação tipo de nao OO, seria em vez de se pensar como um Objecto carro, simplesmente considerar "desenhar um carro" como simplesmente um conjunto de metodos e funcoes q desenham um carro no monitor. Isto apesar de em algumas linguagens parecer mais "rapido" e fácil, acaba por nao o ser, pois por exemplo, se quisesses aplicar uma transformação ao carro, terias de alterar as tuas funções por forma a estarem correctas...

Isto foi assim um exemplo meio fraquito, mas se tiveres mais duvidas... :roll:

Aqui tens um pdf q te explica isso:

http://www.dei.isep.ipp.pt/~lpinho/disciplinas/cprg/POO.pdf

* - Programação orientada a objectos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bem ajudasteme a perceber +/- o que eu precisava de saber.

Já não tenho mais dúvidas, já agora já comprei o livro eheh XD.

PS: podiam era ter avisado que o livro era tão grande

Cumps. and Tnx. Overrun

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Linguagem C de Luíz Damas, aquele que me recomendaram no inicio

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
PS: podiam era ter avisado que o livro era tão grande
Se for o do Luis Damas, sim é grande, mas tem uma leitura bem simples :D

Se for esse o livro, e se essa for a 5ª Edição(q é a q tenho), ele tem uma forma algo má de definir um metodo main q é a seguinte:

main(){
...
}

Isso é capaz de te dar alguns erros em novos compiladores, por isso sempre q vejas isso, faz antes assim:

int main(){
...
return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

heheeh nao da erro, da warning... diz que chega ao fim de uma funcao nao void e nao retorna nada... :D

Isso ja eh assim ah algum tempo :D

Btw, eu n desgosto do livro do damas... mas.. acho que faltam coisas (por exemplo, eh verde acerca de estructuras, e entao listas.... nem tem nada!! programas que recebem argumentos na execucao tem pouco ou quase nada e arvores de procura :roll: )

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É um livro q referente apenas ao core da linguagem C e apenas fala mmo do basico...(o q é bom!)

Acho q fala de estruturas la para o fim, mas para essa parte usei outro livro o The ANSI C Programming Language.

No entanto acho q é bom livro para iniciantes :roll:

PS: Ainda ha pouco tempo tive de implementar uma Priority Queue em C e nem procurei em livros de C, indo logo ao "Data Structures & Problem Solving using Java".

Por isso acho q é mais importante primeiro solidificar-se bem o conhecimento de uma linguagem, pois as estruturas de dados sao todas iguais...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora