» »

[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!
- 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)

Isotropic ::

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

amacar ::

Ja pokaži kaj si naredil do sedaj, drugače ne bo nič.

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.

MisoBer ::

Pri 3 nalogi še nič, ker nevem niti začetka..

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:
$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

Zgodovina sprememb…

lebdim ::

@Ciklamen,

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.

___________________________________________________________________________________________________________

Datadog ::

Jest predlagam učenje + naloge https://www.coursera.org/course/cpluspl...

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 ...

Datadog ::

lebdim je izjavil:

š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 ::

bi mi lahko naredil to prosim

Yacked2 ::

MisoBer je izjavil:

bi mi lahko naredil to prosim


kaj ? http://rtk.ijs.si/
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?
#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.

#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.

Zgodovina sprememb…

  • spremenilo: LordiBoy ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

GPS modul NEO-6M GPS in Arduino Nano

Oddelek: Elektrotehnika in elektronika
7695 (638) llc
»

Kako na linuxu (Raspberry PI) prepričati NTP, da bo uporabil podatke iz GPS-a

Oddelek: Operacijski sistemi
202554 (1915) misek
»

Pomoč pri programiranju z javo

Oddelek: Programiranje
203341 (2268) milc
»

c++ naloge

Oddelek: Programiranje
92785 (2409) l0g1t3ch
»

Zna kdo rešiti nalogo v C ++ ?

Oddelek: Programiranje
121487 (1343) OwcA

Več podobnih tem