Forum » Programiranje » [C++] Naloge
[C++] Naloge
Ciklamen ::
Pozdrav.
Obračam se na vas, ker vem da ste tu gor večina stručkoti, predvsem programiranja. Torej zadeva je sledeča, jaz imam ful težave si izmislit neke naloge za programiranje. Zato se obračam na vas, ter vas prosim, da napišete kaj bi programiral (naj povem, da sem v fazi učenja programiranja (ampak ne pri hello world - nisem čisto na začetku :P)), zaželjene so la(žje)hke naloge, ali pa lahka naloga in nadgrajevanje na nekaj težjega.
Ker sem mnenja, da mi knjiga/e ne ponudijo nalog oziroma je tam že vse rešeno, pa malo jih je.
Hvala za odgovor/e, naloge že v naprej!
Obračam se na vas, ker vem da ste tu gor večina stručkoti, predvsem programiranja. Torej zadeva je sledeča, jaz imam ful težave si izmislit neke naloge za programiranje. Zato se obračam na vas, ter vas prosim, da napišete kaj bi programiral (naj povem, da sem v fazi učenja programiranja (ampak ne pri hello world - nisem čisto na začetku :P)), zaželjene so la(žje)hke naloge, ali pa lahka naloga in nadgrajevanje na nekaj težjega.
Ker sem mnenja, da mi knjiga/e ne ponudijo nalog oziroma je tam že vse rešeno, pa malo jih je.
Hvala za odgovor/e, naloge že v naprej!
- End of the Post ->
darkkk ::
Lej recimo kar meni ta hip pade na pamet (pa tudi precej f00kal sem se s tem, žal neuspešno) je bilo dodajanje boosta k mingw compilerju, konkretno boost::GIL knjižnice ter izvedba extern "C" funkcij, ki bi "vrnile" prek pointerjev "matrike" slik. Recimo za png format je dovolj. Lahko pa isto z uporabo libpng / libjpeg etc.
Ciklamen ::
darkkk hvala za odgovor, ampak s tem si nimam kaj za začet :P To je za mene trenutno še rocket science, rabim bolj osnovne naloge, zaenkrat še brez pointerjev in tega, torej zanke, ifi, razredi, itd. Prvo da to potreniram, da potem grem dalje na pointerje, headerje, konstruktorje, destruktorje, itd.
- End of the Post ->
folfy ::
Probaj kako enostavno šifriranje implementirat, pa parsanje kakšnega teksta( naprimer da ti prešteje vse ponovitve določene besede), računanje z matrikami (večdimenzjonalna polja). Ko boš pa pri pointerih pa kak eno/dvosmerno povezan seznam :D
Isotropic ::
idealno bi bilo, ce bi ti kaksen star frijevec dal tiste liste z nalogami, ki so jih meli v prvem letniku za programiranje 1 in 2. tam so bile cisto take tipicne zacetniske naloge (arrayi, utrjevanje kazalcev...). ne sicer tako lahke za noobe, tko da si lahko fajn mal glavo razbijas.
darkkk ::
Lahko napišeš parser .ini datotek.
Recimo, da maš format tak:
[sekcija]
id=neki
id2=nekidrugega
.
#komentar
.... #od znaka lojtra dalje komentar
[sekcija2]
.
etc.
Zadeva naj shrani vrstice v map (stl), kjer sta key pa T oba tipa string (oz. zaradi mene tudi int), lahko pa tudi vse vrstice vržeš v list. (da se ne boš lovil z templati, pa classi). Vrstice so od # naprej komentarji, praznih vrst pa zakomentiranih vrst ne tlačiš v liste. Vsaka sekcija naj bo svoj list. (lahko določiš število sekcij v naprej)
Recimo, da maš format tak:
[sekcija]
id=neki
id2=nekidrugega
.
#komentar
.... #od znaka lojtra dalje komentar
[sekcija2]
.
etc.
Zadeva naj shrani vrstice v map (stl), kjer sta key pa T oba tipa string (oz. zaradi mene tudi int), lahko pa tudi vse vrstice vržeš v list. (da se ne boš lovil z templati, pa classi). Vrstice so od # naprej komentarji, praznih vrst pa zakomentiranih vrst ne tlačiš v liste. Vsaka sekcija naj bo svoj list. (lahko določiš število sekcij v naprej)
Ciklamen ::
Evo smo že na podobni valovni dolžini, hvala vam :D Kar prispevajte še v to temo, morda še komu drugemu koristi kaj od navedenega!
- End of the Post ->
hexor ::
Evo js sm se veliko nauču s tega(povezani seznami,pointerji,datoteke), je pa sicer v C-ju:http://trac.lecad.si/vaje/raw-attachmen...
RootMachine ;)
Zgodovina sprememb…
- spremenil: hexor ()
MisoBer ::
1.Rezervirajte polje 30 celih števil. Polje napolnite z naključnimi števili. Izpišite naključna števila med 0 in 500, Izpišite vsoto vseh števil v polju.
2.Napišite program, ki naključno napolni polje 30-ih števil z števili med 0 in 70. Program naj sešteje vsa liha števila.
3.Napišite program, ki zajame besedilo s pomočjo tipkovnice, program naj prešteje in izpiše vse samoglasnike v besedilu. Program naj tudi obrne besedilo.(mama he -> eh amam).
4. Napišite program loto. Program naj naključno izbere 7 števil 1-39.
5. Napišite program, ki zajame besedilo s pomočjo tipkovnice. Program naj spremeni zajeto besedilo tako, da vse znake 'i' zamenja z znakom 'l' , zadnji znak
v besedi spremeni v veliki znak (npr. o -> O) in vse presledke (' ') zamenja s podčrtajem('_'). Spremenjeno besedilo shranite v novo znakovno polje. Obe znakovni polji izpišite na konzolo.
Primer: Lepo je biti mlad. -> LepO_jE_bltL_mlaD
6. Napišite program Euroloto. Pri tej loteriji žrebajo 5 številk med 1 in 50 in dodatno dve "star" številki med 1 in 9.
Pomoč bi rabil v tem
2.Napišite program, ki naključno napolni polje 30-ih števil z števili med 0 in 70. Program naj sešteje vsa liha števila.
3.Napišite program, ki zajame besedilo s pomočjo tipkovnice, program naj prešteje in izpiše vse samoglasnike v besedilu. Program naj tudi obrne besedilo.(mama he -> eh amam).
4. Napišite program loto. Program naj naključno izbere 7 števil 1-39.
5. Napišite program, ki zajame besedilo s pomočjo tipkovnice. Program naj spremeni zajeto besedilo tako, da vse znake 'i' zamenja z znakom 'l' , zadnji znak
v besedi spremeni v veliki znak (npr. o -> O) in vse presledke (' ') zamenja s podčrtajem('_'). Spremenjeno besedilo shranite v novo znakovno polje. Obe znakovni polji izpišite na konzolo.
Primer: Lepo je biti mlad. -> LepO_jE_bltL_mlaD
6. Napišite program Euroloto. Pri tej loteriji žrebajo 5 številk med 1 in 50 in dodatno dve "star" številki med 1 in 9.
Pomoč bi rabil v tem
roba87 ::
Naloge so zelo lahke, vendar začetek je težak. Če se boš spravil zraven, pogledal osnove, boš te naloge takoj naredil. Če ti kaj zašteka pa nas vprašaj.
krneki0001 ::
Napiši program, ki bo NMEA183 vrstice parsal in ti izpisoval lokacijo, kje se trenutno nahajaš (iz vrstic), ter to prikazoval v sliki na google maps(recimo, da bo lažje).
TO ti bo prišlo še kako prav, če se boš kdaj igral z GPS-om.
Vrstice zgledajo takole:
Tukaj pa imaš opisano vse od a do ž za ta protokol in kaj v kakšni vrstici pomeni kakšna cifra:
http://www.tronico.fi/OH6NT/docs/NMEA01...
Pa 4. nalogo bi malo razširil:
Napiši program za loto, ki izbere 7 različnih števil od 1 do 39, potem pa naj pogleda kolikokrat je bila taka kombinacija že izžrebana na loteriji.
TO ti bo prišlo še kako prav, če se boš kdaj igral z GPS-om.
Vrstice zgledajo takole:
$GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76 $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70 $GPGSV,3,2,11,02,39,223,19,13,28,070,17,26,23,252,,04,14,186,14*79 $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76 $GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43 $GPGGA,092751.000,5321.6802,N,00630.3371,W,1,8,1.03,61.7,M,55.3,M,,*75 $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70 $GPGSV,3,2,11,02,39,223,16,13,28,070,17,26,23,252,,04,14,186,15*77 $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76 $GPRMC,092751.000,A,5321.6802,N,00630.3371,W,0.06,31.66,280511,,,A*45
Tukaj pa imaš opisano vse od a do ž za ta protokol in kaj v kakšni vrstici pomeni kakšna cifra:
http://www.tronico.fi/OH6NT/docs/NMEA01...
Pa 4. nalogo bi malo razširil:
Napiši program za loto, ki izbere 7 različnih števil od 1 do 39, potem pa naj pogleda kolikokrat je bila taka kombinacija že izžrebana na loteriji.
Asrock X99 Extreme 4 | Intel E5-2683V4 ES | 64GB DDR4 2400MHz ECC |
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster
Zgodovina sprememb…
- spremenilo: krneki0001 ()
lebdim ::
@Ciklamen,
maš pa primere starih kolokvijev in izpitov tudi na tej spletni strani, tako da vse naloge, ki so, poskusi pretvoriti v C ...
maš pa primere starih kolokvijev in izpitov tudi na tej spletni strani, tako da vse naloge, ki so, poskusi pretvoriti v C ...
Zgodovina sprememb…
- spremenil: lebdim ()
lebdim ::
@MisoBer,
za nekaj nalog ti lahko predstavim, kako bi se jaz lotil, če bi programiral te naloge.
1. naloga: sestaviš enodimenzionalno tabelo velikosti 30 celic, paziti moraš na indekse (v C od 0 naprej), uporabiš funkcijo random in potem preverjaš in izpisuješ števila iz tabele, ki ležijo med 0 in 500
2. naloga: podobna naloga, le da imaš števila do 70. lihost števila se preveri tako, da se preverja, če je ostanek pri deljenju z 2 različen od 0.
3. naloga: samoglasnike daj v množico. potem pa se sprehajaš po DOLŽINI celotnega niza, in preverjaš, če je znak enak samoglasniku, in če je, števec povečaš za 1. obrat besedila izpišeš tako, da se postaviš na zadnji znak in izpisuješ proti prvemu.
___________________________________________________________________________________________________________
za nekaj nalog ti lahko predstavim, kako bi se jaz lotil, če bi programiral te naloge.
1. naloga: sestaviš enodimenzionalno tabelo velikosti 30 celic, paziti moraš na indekse (v C od 0 naprej), uporabiš funkcijo random in potem preverjaš in izpisuješ števila iz tabele, ki ležijo med 0 in 500
2. naloga: podobna naloga, le da imaš števila do 70. lihost števila se preveri tako, da se preverja, če je ostanek pri deljenju z 2 različen od 0.
3. naloga: samoglasnike daj v množico. potem pa se sprehajaš po DOLŽINI celotnega niza, in preverjaš, če je znak enak samoglasniku, in če je, števec povečaš za 1. obrat besedila izpišeš tako, da se postaviš na zadnji znak in izpisuješ proti prvemu.
___________________________________________________________________________________________________________
lebdim ::
ko boš osvojil osnovno logiko in osnovne elemente, se pa potem lotiš kakšnih seznamov (enosmerni / dvosmerni), dreves, grafov, hash tabele, binarna drevesa ...
roba87 ::
1. naloga za motivacijo...
// 1.Rezervirajte polje 30 celih števil. Polje napolnite z naključnimi števili. // Izpišite naključna števila med 0 in 500, Izpišite vsoto vseh števil v polju. #include <iostream> #include <ctime> #include <random> #include <climits> #include <cstdlib> using namespace std; void napolniPolje(int* a){ for (int i = 0; i < 30; i++){ a[i] = rand() % INT_MAX; // opcijsko cout << i + 1 << ". stevilo = " << a[i] << endl; } cout << endl; } int vsotaStevilVPolju(int* a){ int vsota = 0; for (int i = 0; i < 30; i++){ vsota = vsota + a[i]; } return vsota; } void izpisiStevila(int* a){ int stevec = 0; // v primeru, ce nobeno stevilo ni med 0 in 500 for (int i = 0; i < 30; i++){ if (a[i] >= 0 && a[i] <= 500){ cout << "Stevilo " << a[i] << " je med 0 in 500" << endl; stevec++; } } //opcijsko if (stevec == 0){ cout << "Nobeno stevilo ni med 0 in 500" << endl; } cout << endl; } int main() { srand((unsigned)time(NULL)); int* a = new int[30]; napolniPolje(a); izpisiStevila(a); cout << "Vsota vseh stevil v polju = " << vsotaStevilVPolju(a) << endl; system("pause"); return 0; }
lebdim ::
še opozorilo: v vseh teh jezikih (C, java, C++, C#, php....) indeksi v tabeli tečejo od 0 naprej!
zato bodi pozoren na to komponento!
če kdo rabi še ta podatek: v pascalu pa indeksi v tabeli tečejo od 1 naprej ...
zato bodi pozoren na to komponento!
če kdo rabi še ta podatek: v pascalu pa indeksi v tabeli tečejo od 1 naprej ...
Datadog ::
še opozorilo: v vseh teh jezikih (C, java, C++, C#, php....) indeksi v tabeli tečejo od 0 naprej!
zato bodi pozoren na to komponento!
če kdo rabi še ta podatek: v pascalu pa indeksi v tabeli tečejo od 1 naprej ...
Če smo že pri c++ je bolje delat z std::array ki ti odnese marsikater problem z indexiranjem.
Recimo
Deklaracija + init
std::array<int, 3> a2 = {1, 2, 3};
Izpis
std::reverse_copy(a2.begin(), a2.end(), std::ostream_iterator<int>(std::cout, " "));
Brez indexiranja oziroma se ne sekiraš glede dolžine oziroma overflow/underflow.
MisoBer ::
Zdravo. Rabil pomoč in sicer za brisanje podatkov in sortiranje, če mi lahko kdo naredi to metodo.
//knjiznice #include <iostream> // vhodno-izhodni ukazi #include <stdlib.h> //standardni ukazi #include <string> // za la?je delo z nizi, veljavno le v C++ in ne v C# #include <fstream> using namespace std; // uporaba imenskega prostora ni treba pisati std::ukaz /* razred cvet, lastbosti ime ro?e , cena ro?e */ class opr_stanovanja { //privat je v classu default string ime_r; short cena; //metode bodo public, druga?e ne morem priti do astnosti in obdelave //podatkov public: void citaj_iz_dat(opr_stanovanja a[], short &x, short n); void izpisi_na_zaslon(opr_stanovanja b[], short xx); void meni_gl(opr_stanovanja y[], short &a, short nn); void isci_ime(opr_stanovanja g[], short k); }; /* Uporabnik poda podatek za iskanje, mi poiscemo vse kar ustreza temu pdoatku in izpisemo na zaslon */ void opr_stanovanja::isci_ime(opr_stanovanja g[], short k) { string bes; do{ cout<<"Podaj ime opreme, da jo poiscem zate "<<endl; getline(cin,bes); if(bes.length()<=0) cout<<"Napaka , ponovi vnos"<<endl; }while(bes.length()<=0); for(short i=0;i<k;i=i+1) { if(bes==g[i].ime_r) { cout<<i+1<<". ime opreme je "<<g[i].ime_r<<" cena je "; cout<<g[i].cena<<endl; } } } /* metoda izpi?e vse pdoatke polja b, na zaslon podatkov je xx */ void opr_stanovanja::izpisi_na_zaslon(opr_stanovanja b[], short xx) { for(short i=0;i<xx;i=i+1) { cout<<i+1<<". ime opreme je "<<b[i].ime_r<<" cena je "; cout<<b[i].cena<<endl; } } /* String ej iput, ga pretvorim v short po ASCII Tabeli in vrnem z return */ short pretvori_v_short(string c) { short i=0; short st; st=0; for (;i<c.length();i=i+1) { st=st*10 +(((short)c[i])-48);//razumeti ascii+ deseti?ki sestav } return st; } /* dokumentacija PP-metode input: a[]-podatki o rozah, dve vrstici en objekt-string, short &x-stevec objektov n-stevilo prostorov v polju a[] delovanje: iz daoteke cvet.txt citam in dam v pomnilnik a[] output: a[]-podatki o objektih (ime, cena) &x-stevilo objektov, velja x<=n */ void opr_stanovanja::citaj_iz_dat(opr_stanovanja a[], short &x, short n) {//1k dela z datotkeami je prevei knji?nico string vmes; ifstream sim;//2k =simboli?no ime x=0; sim.open("oprema.txt", ios::in); if (sim.is_open())//ali datoteka odprta {//koda, ?e datoteka odprta while(!sim.eof()) { getline(sim,vmes);//ime ro?e a[x].ime_r=vmes; //cout<<" ime="<<vmes<<endl; getline(sim,vmes);//cena ro?e //cout<<" cena="<<vmes<<endl; a[x].cena= pretvori_v_short(vmes); //cout<<" a[x].cena ="<<a[x].cena<<endl; x=x+1;//naslednji objekt ???dve vrstici je en objekt } }else cout<<"Nekaj je narobe, preveri datoteko s podatki"<<endl; sim.close(); } /* input: so podatki o cvetlicah y[] koliko jih je &a ter koliko jih sme biti nn delovanej: 1k: izpis opcij 2k: izbira uporabnika in preverjanje 3k: izvedba izbrane opcije */ void opr_stanovanja::meni_gl(opr_stanovanja y[], short &a, short nn) { string izb;//izbira uporabnika do{ do{ //izpois opcij in izbira uproabnika ter preverjanje cout<<"Izberi kaj zelite storiti:"<<endl; cout<<"a) Izpisi vse na zaslon "<<endl; cout<<"b) isci po imenu opreme"<<endl; cout<<"c) brisi po imenu opreme"<<endl; cout<<"d) sortiraj po imenu opreme"<<endl; cout<<"x=exit=izhod=quit=Koncaj..."<<endl; getline(cin,izb); if(!((izb.length()==1)&&(izb[0]>='a' && izb[0]<='d' || izb[0]=='x') )) {cout<<"napaka, ponovi vnos in razmisli o napaki "<<endl;} }while(!((izb.length()==1)&&(izb[0]>='a' && izb[0]<='d' || izb[0]=='x') ) ); if (izb[0]=='a')izpisi_na_zaslon(y,a); if (izb[0]=='b')isci_ime(y,a); }while( !(izb[0]=='x' or izb[0]=='X')); } int main() { //prirpava objekta //format zapsia v datoteki bo lo?ene vrstice, znaki, stevilka short n=100; opr_stanovanja stanovanja[n];// short k; k=0; stanovanja[0].citaj_iz_dat(stanovanja, k,n); stanovanja[0].meni_gl(stanovanja,k, n); system("pause");// da is ogledam rezultate na zaslonu return 0; }
Yacked2 ::
Rešuj stare naloge iz tekmovanj: acm rtk (google ve več)
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
MisoBer ::
Definiraj poljubno strukturo z vsaj 3 komponontami, od katerih je ena številčna (celoštevilska ali s plavajočo vejico).
Deklariraj polje struktur.
Napiši funkcij:
ki določi vrednosti elelmentom
ki vrne indeks polja z največjo vrednostjo (npr. imamo strukturo o oseb, med njimi podatek o številki čevljev, funkcija vrne indeks tiste osebe, ki ima najvišjo številko)
Zanima me ali je to prav?
Deklariraj polje struktur.
Napiši funkcij:
ki določi vrednosti elelmentom
ki vrne indeks polja z največjo vrednostjo (npr. imamo strukturo o oseb, med njimi podatek o številki čevljev, funkcija vrne indeks tiste osebe, ki ima najvišjo številko)
Zanima me ali je to prav?
#include <cstdlib> #include <iostream> #include <string.h> using namespace std; struct oseba { char ime[30]; float st_cevljev; int starost; }; int main(int argc, char** argv) { struct oseba o; // statična deklaracija spr. tipa OSEBA struct oseba *o1 = new struct oseba; // dinamična deklaracija spr. tipa OSEBA strcpy(o.ime,"Joze\0"); o.st_cevljev = 43,5; o.starost = 17; strcpy(o1->ime, "Ivan\0"); o1->st_cevljev = 44,0; o1->starost = 48; struct oseba *po; // kazalec na tip OSEBA po = &o; po->st_cevljev = 61.9; po = o1; po->st_cevljev = 60.9; return 0; }
mallard ::
Sveta Marija.
In kje je kakšno polje struktur? Kje imaš funkcijo, ki določi vrednosti? Kje je funkcija, ki vrne indeks z največjo vrednostjo?
#include <cstdlib> // zakaj? nobene stvari iz tega headerja ne uporabljaš #include <iostream> // zakaj? ... #include <string.h> // #include <cstring> using namespace std; // http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice struct oseba { char ime[30]; // zakaj ne std::string, če že pišeš C++? float st_cevljev; int starost; }; int main(int argc, char** argv) // zakaj ne int main(), če pa nikjer ne uporabljaš ne argc ne argv? { // to je deklaracija objekta z "automatic storage duration" // se opravičujem, ker ne poznam ustreznega slovenskega izraza, ampak // nikakor to ni "statična alokacija", kot si ti napisal struct oseba o; // Poleg tega, "elaborated type specifier" (struct oseba) je nepotreben. // struct oseba; je čisto v redu. struct oseba *o1 = new struct oseba; // čemu dinamično alociraš? strcpy(o.ime,"Joze\0"); // string literal že ima \0 na koncu, brez da ga ti eksplicitno tlačiš noter o.st_cevljev = 43,5; // to je isto kot o.st_cevljev = 5; poguglaj "C++ comma operator" o.starost = 17; strcpy(o1->ime, "Ivan\0"); // strcpy je za C-jevce // V C++ bi bilo ime tipa std::string, // prireditev bi pa izgledala takole: // o.ime = "Ivan"; o1->st_cevljev = 44,0; o1->starost = 48; struct oseba *po; // zakaj ?! po = &o; po->st_cevljev = 61.9; po = o1; po->st_cevljev = 60.9; return 0; // V C++ tega v main-u ni treba pisat }
In kje je kakšno polje struktur? Kje imaš funkcijo, ki določi vrednosti? Kje je funkcija, ki vrne indeks z največjo vrednostjo?
LordiBoy ::
Zdravo ! A mogoče kdo ve kako bi lahko uredil besedilo tako , da ko bi se izpisalo bi se izpisalo
tako, kot 4 stranice okoli sredinskega besedila.
tako, kot 4 stranice okoli sredinskega besedila.
Zgodovina sprememb…
- spremenilo: LordiBoy ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | GPS modul NEO-6M GPS in Arduino NanoOddelek: Elektrotehnika in elektronika | 804 (747) | llc |
» | Kako na linuxu (Raspberry PI) prepričati NTP, da bo uporabil podatke iz GPS-aOddelek: Operacijski sistemi | 2757 (2118) | misek |
» | Pomoč pri programiranju z javoOddelek: Programiranje | 3579 (2506) | milc |
» | c++ nalogeOddelek: Programiranje | 2874 (2498) | l0g1t3ch |
» | Zna kdo rešiti nalogo v C ++ ?Oddelek: Programiranje | 1577 (1433) | OwcA |