M2G Posted August 5, 2013 Report Posted August 5, 2013 Intrebari si raspunsuri pentru iteratia numarul 2:Chapter 4 - Functions and Program StructureDetalii aici: https://rstforums.com/forum/72988-rsta-1-c-programming-language.rst#post475571Offtopic = Warn Quote
passfig Posted August 6, 2013 Report Posted August 6, 2013 Intrebare legata de pagina 60.Avem acolo un program scris care se foloseste de doua functii (getline() si strindex ()). Observ ca cele doua functii sunt cumva "declarate" apoi folosite in main si abia apoi scrise. Eram curios daca merge programul asa a ca l-am pus in codeblocks si nu a rulat. Daca in schimb scriem functiile deasupra lui main inainte ca ele sa fie chemate (asa cum se procedeaza in toate limbajele pe care le-am vazut), programul merge. Intrebarea mea este ce-i cu aceste linii ("declararile"):int getline(char line[], int max)int strindex(char source[], char searchfor[]); Quote
TheTime Posted August 6, 2013 Report Posted August 6, 2013 Trebuie sa mai pui un "punct si virgula" dupa prima linie. In C poti sa declari functiile inainte de main, doar ca sa anunti compilatorul ca functiile exista si sa ii spui ce parametri primeste/returneaza, apoi poti sa scrii functiile dupa main. Trebuie ca functiile sa aiba la declarare si la implementare acelasi nume, aceiasi parametri in aceeasi ordine si acelasi tip de date returnat.E putin ciudat ca tie nu iti merge in codeblocks, lasa-ne un printscreen sa vedem ce si cum... Quote
passfig Posted August 6, 2013 Report Posted August 6, 2013 @TheTime am dat copy-paste direct din carte si nu am remarcat ca au uitat sa puna ";" dupa prima linie, asta e motivul presupun. Multumesc! Quote
Nytro Posted August 6, 2013 Report Posted August 6, 2013 Ideea e simpla. Sa presupunem ca scrii o functie: RST() pe care o apelezi in main().int main(){RST();}void RST(){// Ceva}Acest cod iti va da eroare deoarece in main, NU cunoaste functia RST, deoarece nu a fost declarata inca (pe scurt, pentru ca e definita SUB functia main). Ceea ce poti face insa e ca deasupra functiei main, sa declari PROTOTIPUL functiei RST, urmat de ";".Adica:void RST();int main(){RST();}void RST(){// Ceva}Acum compilatorul stie ca tu ai o functie RST, fara parametri, de tip "void". Asta e ideea. Quote
bcman Posted August 6, 2013 Report Posted August 6, 2013 Si ca sa fac o adaugare la ceea ce au spus Nytro si TheTime, in prototipul functie trebuie sa declari parametrii, dar este suficient sa declari doar tipul lor:void RST(int, float);int main(){ int a=3; float b=4.3; RST(a,; return 0;}void RST(int x, float y){//codul functiei} Quote
Hannibal. Posted August 7, 2013 Report Posted August 7, 2013 Eu am mai mult o sugestie decat o intrebare, nu stiu daca e locul potrivit, imi cer scuze daca am gresit.Ideea cu academia e chiar foarte buna, studiul in grup e mult mai usor, dar are totusi o lipsa. Ce lipseste sunt teme!Aplicatii simple in C care le-ar pune mintea la lucru celor care vor sa invete.De ex: Sa se scrie un program care calculeaza ecuatia de gradul 2: ax^2+bx+c cu a, b, c citite de la tastatura.Sau..nu stiu..vedeti voi:))Asta e cel mai bun mod sa intelegi si sa practici ceea ce citesti. Sa scrii cat mai mult cod. Quote
M2G Posted August 7, 2013 Author Report Posted August 7, 2013 Am specificat asta aici: https://rstforums.com/forum/72988-rsta-1-c-programming-language.rstOr sa se faca doar ca nu am timp sa ma ocup si sa caut sau sa concep exercitii. Sunt super ocupat pana pe la sfarsitul lui septembrie si incerc sa imi fac timp si pentru RST dar nu reusesc de fiecare data.Or sa fie si exercitii.O sa vorbesc cu nedo sau cineva care stie C sa vad daca poate sa ne ajute cu asa ceva.De asemenea, sugestiile trebuie puse aici: https://rstforums.com/forum/72777-rst-academy.rstAsta ca sa tinem threadurile cat mai curate posibil si bine organizate.Daca aveti sugestii de exercitii, triteti-mi un PM sau dati-mi add la id-ul din semnatura. Quote
Nytro Posted August 7, 2013 Report Posted August 7, 2013 La final cred ca ar fi ok un examen din tot Quote
SilvaDark Posted August 7, 2013 Report Posted August 7, 2013 @Hannibal: Sunt deja exercitii la sfarsitul fiecarui capitol din carte. E adevarat ca se putea si mai bine, mai multe exercitii si mai complexe dar e si ala un punct de inceput. Quote
nedo Posted August 16, 2013 Report Posted August 16, 2013 Pentru cei care mai doresc ceva exercitii.Incercati sa faceti urmatorul programel.Este vorba de un "joc". Utilizatorul este rugat sa se gandeasca la o cifra intre 0 si x (puteti pune ce cifra maxima doriti in limita unui int).Dupa care calculatorul v-a incerca sa ghiceasca numarul vostru.Algoritmul pentru a face asta este relativ simplu.Calculatorul va imparti x la 2 si va va intreba daca acela este numarul vostru, sau daca este mai mic sau mai mare.Daca este mai mare, va face diferenta intre numarul ales si maxim, si il va imparti din nou la 2.Daca este mai mic, il va lua pe acesta si il va imparti la 2.In mod normal, prin acest algoritm, ar trebui sa va ghiceasca numarul in cel mult 7 incercari.Ar trebui sa cunoasteti destule despre functii si despre operatiile cu intregi pentru a putea duce la capat un astfel de joculet.De asemenea sunt sigur ca veti invata si cate ceva din el.Daca mai aveti nevoie de indicatii, spuneti-mi.O sa incerc sa mai vin cu alte idei pentru astfel de programele, pentru nivelul la care suntem. Quote