Jump to content
nosferatu

de ce sa invatati c++

Recommended Posts

uni va vor spune ca c++ nu este potrivit pt incepatori si ,ca atare,daca nu faceti parte din elita programatorilor talentati si experimantati, nu va deranjati. eu unul nu sunt de acord cu aceasta afiramtie

exista cateva motive puternice pt a invata c++ inca de la inceputul carierei tale de programator:).. in general oamneni dedicau o multime de timp stapanirii in prealabil a limbajului C. acum studentii il invata ca piatra de temelie pt c++. dar acest lucru nu prea are sens. invatand c ,sar putea sa deprindeti unele obiceiuri proaste. cel mai bine este sa treceti direct la c++. in prezent este limbajul prefert al programatorilor de sisteme, dar si pt scrierea de programe de "uz casnic" ..

cand veti invata c++ veti alfa de modul de functionar a diferitelor componente a pc si despre motivele funcionarii lor. spre deosebire de C, c++ reprezinta o implementare adecvata a programarii "orientate spre obiecte". aceasta este o abordare a programarii prin care utilizatorul creeaza structuri de date inteligente, extrem de adecvate unor domeniii precum programarea in domeniul grafic.invatand programarea orientata spre obiectre , veti afla mai multe despre stadiul curent al proiectarii programelor.

progamele bazate pe C au renumele de a fi mai dificile ddecat altele din cauza unor "capcane", lucruri care te pot lua pe nepregatite daca nu aveti un un profesor bun sau meditator( ceea ce nu prea mai exista)...

este adevarat, daca nu pricepi repede si nu prinzi ideile din aer, c++ este mai greu la inceput. dar daca ati trecut cu bine de inceput si ati invatat cat de cat c++ o sa puteti trece cu usurinta la limbaje precum java, c#, pascal,visual basic(daca doriti), php etc. c++ este ca un limbaj mai universal.....

fiecare limbaj a fost conceput cu un anumit scop....

basic a fost proiectat pt a fii simplu de invatat si de utilizat. in consecinta ,permite o sintaxa lejera,care poate duce insa, la obiceiuri de programare proaste. cu toate astea microsoft a transformat basic intr-un intstrument comod si rapid, utilizat la constructia aplicatiilor pt windows.

pascal a fost construit in vederea utilizarii in medii academice , pt insusirea unor concepte sofisticate de programe( eu unul nu suport pascal, nici nu mam strduit sal invat, am trecut direct la c++).. pascal este elaborat si plin de sintaxe complexe. este un limbaj bun dar majoritatea programatorilor prefera o varianta care impune mai putine restricitii..

imitial C (care este cam vechi) a fost comceput pt scrierea de sisteme de operare. sintaxa impune o structura mai adecvata( si obiceiuri mai bune) decat basic si este un limbaj "curat" care suporta scurtaturi...

ca invatacel in c++ trebuie sa ca puneti urmatoarele intrebari:

1. care sunt principalele tipuri de date( informatii) din problema care urmeaza a fii rezolvata?

2. care sunt operatiile ce trebuie definite pt fiecare tip de date?

3 cum reactioneaza intre ele obiectele de date?

scz de greselile de ortografie( tastatura noua)

daca am gresit cu vreo afirmatie va rog frumos sa ma corectati,

sau daca aveti alta parere : ne-o puteti impartasii.

Edited by nosferatu
Link to comment
Share on other sites

Sunt de acord ca C++ este bun pentru incepatori. Dar nu ai spus nimic de C++ standard. Si el este bun pentru incepatori, si sper ca va fi folosit din ce in ce mai mult. Diferenta dintre C++ si C++ standard este ca C++ standard are cateva clase in plus, in loc de #include<iostream.h> se scrie #include<iostream> (si asemenea la alte clase), se adauga la programul in C++ "namespace std;", in loc de "cout" se foloseste "std:cout" si alte mici modificari.

Link to comment
Share on other sites

uite ai spus tu acum :smile: :lol:

sau o modalitate de afisare a unui caracter linie noua consta in folosirea constantei predefinite endl. ca si cout,, endl face parte din spatiu de nume std. sau inserarea caracterelor \n. aceasta este o secventa escape pe care c++ o interpreteaza ca avand semnificatie speciala,, in loc sa o citeasca literal

Link to comment
Share on other sites

Parerea mea este ca nu limbajul de programre conteaza. Pentru inceput trebuie sa se cunoasca ideea de soft, nivele de dezvoltare, O.O (object oriented), testere... Dupa ce se cunosc aceste notiuni se poate trece la orice limbaj: C,C++,C#, Java.

Nu stiu cati dintre voi ati auzit de limbajul UML(Unified Modeling Language) este un limbaj de modelare care permite scrierea de programe intr-un limbaj comun tuturor limbajelor de programare. Apoi exista soft-uri care transpun din UML direct in C++ sau java.

Link to comment
Share on other sites

Parerea mea este ca nu limbajul de programre conteaza. Pentru inceput trebuie sa se cunoasca ideea de soft, nivele de dezvoltare, O.O (object oriented), testere... Dupa ce se cunosc aceste notiuni se poate trece la orice limbaj: C,C++,C#, Java.

nu cred ca nimeni intreg la minte s-ar apuca sa invete un limbaj fara sa stie macar ideea de soft...

si chiar daca s-ar apuca nu ar inteleg nimic

Nu stiu cati dintre voi ati auzit de limbajul UML(Unified Modeling Language) este un limbaj de modelare care permite scrierea de programe intr-un limbaj comun tuturor limbajelor de programare. Apoi exista soft-uri care transpun din UML direct in C++ sau java.

sincer nu am auzit de UML, dar o sa ma interesez, ca mai facut curios

Link to comment
Share on other sites

Parerea mea este ca incepatorii ar trebui sa deprinda mai intai "tainele" algoritmilor, a tipurilor de date pentru a-si pune bazele programarii si mai apoi sa treaca la programarea propriu-zisa. Altfel cred ca de nenumarate ori vor fi pusi in situatia de a programa orbeste; si aici ma refer la includerea in program a unor variabile si instructiuni cu caracter redundant, vor mari complexitatea algoritmilor si implicit timpul de rulare al programelor, isi vor ingreuna si complica munca inutil. ("De ce simplu, daca se poate complicat?")

Link to comment
Share on other sites

da, ai dreptate...

dar algoritmi ii pot invata foarte usor si rapid

majoritatea ii fac la liceu..

iar acasa pot invata un limbaj de programare, c++ de preferat:)

acum depinde si de cum poate percepe o persoana un limbaj de programare..

de cum il poate invata si retine..

poate sa le invete in paralel pe amandoua odata..

Link to comment
Share on other sites

uite ai spus tu acum :smile: :lol:

sau o modalitate de afisare a unui caracter linie noua consta in folosirea constantei predefinite endl. ca si cout,, endl face parte din spatiu de nume std. sau inserarea caracterelor \n. aceasta este o secventa escape pe care c++ o interpreteaza ca avand semnificatie speciala,, in loc sa o citeasca literal

Cred ca e o mica confuzie. Sa stii ca si borlandc are endl definita, si nu are C++ standard. (are decat C++)

Chiar si in C daca vrei poti sa definesti endl ca sir de caractere (char[]) asa:

#define endl "\n"

sau caracter (char) asa:

#define endl '\n'

Link to comment
Share on other sites

Algoritmica e una dintre cele mai grele subdomenii ale ITului (if i my say so) nosferatu. Ce se invata in liceu (daca se invata) e doar o mica parte a ceea ce ar trebui sa stie un programator cu pretentii (nu unul de duzina, ca sunt multi). Lucrurile se complica si mai mult cand vine vorba de cercetare dar cred ca asta banuiesti.

De ce e algoritmica foarte grea? Simplu, implica foarte multa matematica care stim cu totii ca e grea de la un nivel in sus (1+1 stim cu totii sa facem, banuiesc!). Pana si la invatarea bazelor algoritmicii te lovesti de formule pe care trebuie sa le gandesti la un nivel mai "adanc" decat superficial.

Nu iti va preda nimeni in domeniul preuniversitar, in clasa, AVLuri, Red Black tree etc.

Ca sa iti dai seama mai bine despre ce vorbesc: Thomas Cormen, Ronald Rivest, Charles Leiserson - Introducere in algoritmi (cred ca au fost ironici cei de la MIT cand au dat acest nume, cel putin daca vorbim de liceeni).

Limbajele le inveti foarte repede in comparatie cu notiunile acestea pe care le capeti dupa ani intregi de studiu (avand o baza in matematica).

Link to comment
Share on other sites

Eu unul am invatat C si ASM in faculta pt programarea microcontrolerelor, de ce? nici decum pt ca e "piatra de temelie a lu papura voda", pt ca astea sunt limb de prog a majoritatea dispozitivelor electronice avand viteza de executie mult mai mare decat C++, fiind numai bune pt proiecte mici si medii. Mavu vezi ca faci uz de prostie crancena incercand sa te dai destept dupa compilarea hello world.Ala ce ne explica cum sta treaba cu .h si fara lasa calcu si ia o carte ca o dai pe nashpa.Ba da de cand face Gutza tutoriale de programare si eu nu stiu? Voi faceti mai mult dezinformare pe partea asta a forumului.....

Link to comment
Share on other sites

Intai C standard (tipuri de date, librarii standard, declaratii, functii, OOP, design si implementare) apoi aceleasi lucruri in C++, iar in „final” despre procese, thread-uri, management-ul memoriei, DLL, GUI, COM, CLR, securitate Windows. Poate ca am omis cateva, dar astia ar fi pasii de baza care ar trebui urmati.ligatoriu

In mod normal, nu este obligatoriu C la inceput, se poate incepe si cu C++ mai ales ca e mai usor de invatat, dar dezavantajul e ca Win32 API cere un nivel solid de cunostiinte C.

Pentru cine vrea cu adevarat sa se apuce de C/C++ recomand accu.org pentru informatii despre pasii care trebuiesc urmati, cartile necesare s.a.m.d. Cartilea astea cu „Inveti X in 20 zile” sug rau.

Edit: Cine crede ca C++ nu e de el, sau indiferent de alte motive mai bine se apuca de C#, dar in final o sa aibe nevoie de C. Si „gandirea algoritmica” despre care se vorbea pe aici nu se dezvolta numai programand sau invatand matematici.

Link to comment
Share on other sites

fara suparare, nu vreau sa insinuez nimic de rau despre c++, este un limbaj foarte puternic, dar cine se ia de sfantul C, probabil nu stie cum este scris un kernel de sistem de operare...

nimic nu este mai sfant/eficient/puternic decat alocarile/dezalocarile manuale de memorie, mecanisemele de sincronizare primitive, fie ele sub forma de busy-waiting, sau semaphores, sau de posix threads (sub C) si lista poate continua.

da, stiu cu ce se incepe - pascal sau c++ in liceu. insa, la facultate (si la una de profil - gen PUB, Calculatoare, preferabil specializarea C3), se vor preda "radacinile" programarii, care sunt scrise in asm si C. Studiati orice carte despre linux kernel developing, Understanding the Linux Kernel, Professional Linux Kernel Architecture, sau Linux Kernel Development (za best there iz), si veti intelege puterea acestui limbaj de programare.

inca o data, sa NU se inteleaga ca iau in deradere limbajul C++. ba din contra! este cea mai puternica implementare comerciala paradigmei OOP. eu incerc doar sa ofer o parere (personala, ce-i drept) despre C: ANSI C, POSIX C, C with kernel APIs.

inca ceva: C si C++ trebuie sa coexiste peacefully! sunt folosite pentru chestii diferite! Bineinteles ca o aplicatie cu un GUI va fi scrisa foarte probabil intr-un limbaj OOP. Dar un driver de sistem de operare, sau un modul kernel, va si scris intotdeauna si indiscutabil in C.

==== = == ==== = === = == === == ===

There is no point in living if you can't feel alive.

Link to comment
Share on other sites

Asa, dom'ne! Un inceput in forta pro-POSIX-C, pro-unix si pentru pro-gramarea serioasa.

Totusi, sa pastram discutia in zona C++. Sa nu cumva sa se supere Bjarne Stroustrup ca ii facem ghiveci cu C-ul.

O nelamurire:

este cea mai puternica implementare comerciala paradigmei OOP.

Ce inseamna implementare comerciala?

Bineinteles ca o aplicatie cu un GUI va fi scrisa foarte probabil intr-un limbaj OOP. Dar un driver de sistem de operare, sau un modul kernel, va si scris intotdeauna si indiscutabil in C.

Corect. Aplicatiile GUI-oriented fiind cele care au provocat cresterea in popularitate a pradigmei POO.

Link to comment
Share on other sites

(am vrut sa zic ceva, insa poate a sunat putin aiurea...)

"Ce inseamna implementare comerciala? " => R:

pe scurt, implementare non-comerciala - SmallTalk, Objective-C, etc. Limbaje de programare, pur OOP, care insa nu au aplicabilitate atat de mare in lumea "comerciala" a dezvoltarii de software. Limbajele "comerciale", imho, sunt cele bazate pe framework-ul .NET, cele folosite in web design & developing (jscript, php, and so on), si Java.

Link to comment
Share on other sites

C iti da o perspectiva mai buna asupra modului in care functioneaza caclculatorul, deci implicit iti da o posibilitatea mai buna de control asupra lui. Nu cred ca e o problema pentru cineva sa treaca de pe C pe C++. De fapt nici nu cred ca e o asa mare diferenta dintre limbajele de programare, dupa ce am invatat bine PASCAL m-am descurcat usor si pe C, C++, CVI , VC++ (wc++), JavaScript, PHP, JAVA, CLIPS, Python, C#, QBasic, BASH si multe altele. Imi ia in medie maxim 30 de minute sa invat sa scriu un program simplu in orice limbaj de programare bine documentat. Diferente mari sunt doar atunci cand schimbi platforma (de la INTEL la PIC sau ARM). Pe langa C, cel mai mult mi-a placut CVI. E un limbaj foarte flexibil si capabil.

Link to comment
Share on other sites

Mavu vezi ca faci uz de prostie crancena incercand sa te dai destept dupa compilarea hello world.Ala ce ne explica cum sta treaba cu .h si fara lasa calcu si ia o carte ca o dai pe nashpa.Ba da de cand face Gutza tutoriale de programare si eu nu stiu? Voi faceti mai mult dezinformare pe partea asta a forumului.....

Oricum nu trebuie sa vii aici ca sa inveti C sau C++. Cauti pe google tutoriale. Aici cred ca vii daca stii deja. :)

Link to comment
Share on other sites

vreti sa invatati limbajul c++ ducetiva la liceu ,profil mate info si invatati acolo programare ca nu cred ca reuseste unu sa faca ceva in c/c++ fara sa stie ceva

am fost eu la liceu de informatica, renumit chiar, si iti spun ca faceam romana pe rupte, iar la info prof diferit in fiecare an, chiar intr-a 12-a se facea foxpro si scria instructiunea cuvant cu cuvant dintr-o carte fara sa stie ce reprezinta

informatica si orice limbaj il inveti singurel, acasa, cautand pe net si citind din diverse carti, si bine inteles facand programele

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...