Forum Sveta kompjutera  

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 9.6.2017, 10:53   #381
Alan
Član
 
Član od: 10.11.2007.
Poruke: 62
Zahvalnice: 46
Zahvaljeno 2 puta na jednoj poruci
Određen forumom Re: How to... C++

Здраво,

Edit1->Text = Edit1->Text + UPC[cifra];
Edit1->Text = Edit1->Text + UPC[cifra|0];

//UPC je niz tipa String.
//Promjenljiva cifra je tipa integer i, predstavlja indeks člana niza.

1) Раде ли ове двије линије исту ствар?

2) Чему служи ова усправна црта?

3) Какав би био резултат да умјесто 0, стоји 1, или неки други цио број?
Alan je offline   Odgovor sa citatom ove poruke
Stara 9.6.2017, 13:35   #382
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 10.067
Zahvalnice: 1.497
Zahvaljeno 4.275 puta na 2.404 poruka
Određen forumom Re: How to... C++

Uspravna crta predstavlja bitsku operaciju za OR-ovanje (bitsko "ili"). Rezultat OR-ovanja bilo kog broja s nulom je taj broj, tako da te dve linije rade isto.

OR-ovanje s jedinicom će setovati najniži bit na jedan bez obzira šta je bilo na tom bitu. To neće izmeniti neparne brojeve (npr. 3 OR 1 = 3, ili binarno 0x11 OR 0x01 = 0x11), ali će izmeniti parne (npr. 2 OR 1 = 3, ili binarno 0x10 OR 0x01 = 0x11), tako da nije isto kao navedeni primer.

(Ne mešaj bitsko OR-ovanje sa logičkim OR-ovanjem koje se predstavlja sa dve uspravne crte, i kao rezultat vraća TRUE ili FALSE za ceo izraz, npr FALSE ili TRUE = TRUE; podseti se tautologije iz prve godine srednje škole).
voodoo_ je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci:
Alan (9.6.2017)
Stara 18.11.2017, 23:29   #383
NovaNada
Član
 
Član od: 13.3.2017.
Poruke: 55
Zahvalnice: 30
Zahvaljeno 3 puta na 3 poruka
Određen forumom Re: How to... C++

Imam pitanje o razlici između kopirajućeg i premeštajućeg konstruktora. Da li se kopirajući uvek poziva kada mu je argument lvrednost, a premeštajući kada je njegov argument dvrednost, ili to kompajler nekako određuje koji poziva?
NovaNada je offline   Odgovor sa citatom ove poruke
Stara 20.11.2017, 9:13   #384
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: How to... C++

Uz tri slučaja

Prvi:
Type a = std::move(b)
Drugi:
Kod prenosa argumenata, npr imas fju void foo(Type t); i poziv foo(std::move(temp));
Treci:
Kod vracanja vrednosti iz fje, kompajler ce implicitno pozvati move ctor ukoliko postoji.
Kod:
Type foo() { 
   Type a; 
   return a; 
}
---

Type b = foo();
Teva je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci:
NovaNada (20.11.2017)
Stara 2.6.2018, 17:26   #385
NovaNada
Član
 
Član od: 13.3.2017.
Poruke: 55
Zahvalnice: 30
Zahvaljeno 3 puta na 3 poruka
Određen forumom Re: How to... C++

Iz kojih izvora ste učili STL i šablone?
cppreference.com ili iz neke knjige?
NovaNada je offline   Odgovor sa citatom ove poruke
Stara 4.6.2018, 7:39   #386
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: How to... C++

Za templejte imaš staru al po meni i dalje mnogo jaku knjigu Aleksandresku

E sad što se tiče samog STLa, ja lično sam učio kroz primenu al uvek imaš cppref otvoren za konsultacije
Teva je offline   Odgovor sa citatom ove poruke
Stara 9.1.2019, 18:56   #387
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 759
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom Re: How to... C++

Možda se neki od pratilaca ove sobe sećaju da sam pre dosta vremena (2012.) svašta pisao u ovoj temi protiv C++-a, protiv njegovog kreatora i pravca promena. Toliko sam se istrtljao da me je sad sramota šta sam pisao i čudim se čudu kako sam bio u stanju da smislim to što sam napisao. Dobio sam čak i dve zahvalnice (jedn od voodoo-a) koje apsolutno nisam zaslužio. Bio sam vrlo ostrašćen, a znanja da potkrepe takve stavove nisam imao. Sada se iskreno kajem što sam to pisao, bio sam glup. Da to shvatim bilo je potrebno da prođe ovoliko vremena.

Zašto sam se sada setio toga? Zato što sada želim da budem C++ programer. Jeste pojeo sam go*no. Shvatio sam da sam bio na tamnoj strani. Zarađivao sam pare programirajući u Javi. I posle iskustva dozlogrdilo mi je stanje u Java svetu. Stanje Java ekosistema je skoro na nivou stanja JavaScript ekosistema, koji je već prokazan na Internetu mnogo puta. Sa svakim novim updejtom neke od najkorišćenijih biblioteka veličina nepotrebnog koda u njima se povećava, nivoi apstrakcije se dižu još više. Hipsteraj raste nekontrolisano.

Zato imam neku iluziju da C++ svet bolje stoji po tom pitanju uprkos "nedostacima" jezika. U poslednje vreme sam gledao dosta predavanja sa raznih C++ konferencija, ispratio sam dosadašnji razvoj jezika i tendencije koje propagiraju najuticajniji članovi C++ zajednice. To sve ide u dobrom smeru, podjednako se ide i prema većoj lakoći korišćenja i prema održavanju ili unapređivanju performansi. Jeste postoje nedostaci, ali sad mi se čini da su to uglavnom bile istoriske nužnosti bez ozbiljnih krivaca.

Dakle pošto sam rešio da radim kao C++ programer moram da se pripremim. Nisam ga učio na fakutetu niti sam radio profesionalno sa jezikom. Zato moram da imam neki mali projekat da pokažem kao argument za svoje znanje. Rešio sam da svoj diplomski rad (koji sam radio u C#-u jer mi se Java smučila) prepišem u C++.

Mogu vam reći da se plan za sada odvija vrlo uspešno. Ono što je bilo neophodno da utvrdim je priroda veza između objekata u mom programu, to jest koje reference (pokazivači) su vlasničke prirode, a koji su pozajmice. I uspeo sam u tome. Od smart pointera koristim samo std::unique_ptr<T> (on samo poziva delete kada se sam destruktuje). Ostale veze između objekata su obični pointeri jer su to pozajmljene veze i objekti koji zajme veze neće potrajati duže od vlasnika pozajmljenih objekata. Objekte privremene prirode deklarišem direktno na steku i samo dajem obične pointere drugim funkcijama. Na više mesta u programu se prave svojevrsne linked liste od objekata koji su svi na steku jer pattern koji koristim čini to bezbednim. U odnosu na C# verziju, mislim da se broj heap alokacija privremenih objekata smanjio nekoliko puta, ostao je samo gde imam neke privremene liste. Tokom prepisivanja i obraćanje pažnje na vlasništvo na objektima (koje nije bilo mnogo teško, na moje iznenađenje, samo sam trebao da budem konzistentan) primetio sam i neke sitne nelogičnosti u originalnom C# kodu koje se tiču vlasništva. Neki delovi su se oslanjali na automatsku memoriju. Tu sam samo morao da promislim kako da opravim, ali to je minoran deo celog poduhvata. Završio sam prepisivanje, sada sam u fazi rešavanja bagova i grešaka. Trenutno imam neki bag koji mi uopšte nije jasan, ali je u pitanju greška koju prijavljuje jedna eksterna biblioteka koju koristim, koja nema veze sa nepravilnim upravljanjem memorijom. Dakle još nisam došao do momenta kada program radi od početka do kraja. Pokretao sam ga do sada sa valgrindom i nije projavljivao curenje, ali definitivno ću biti siguran kad bude 100% proradio.

Eto, ova moja pisanija bi se mogla nazovati "Ispovest bivšeg hejtera C++a". A na tu promenu me je nateralo ništa drugo od hejt prema ekosistemu suparničkog jezika. Klin se klinom izbija.

Poslednja ispravka: ivan90BG (9.1.2019 u 19:03)
ivan90BG je offline   Odgovor sa citatom ove poruke
Stara 10.1.2019, 9:51   #388
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 10.067
Zahvalnice: 1.497
Zahvaljeno 4.275 puta na 2.404 poruka
Određen forumom Re: How to... C++

Uvek imaj na umu da pre-C++11 i današnji C++ baš i nisu ista stvar

Ja više ne favorizujem nijedan jezik jer sam se nagledao toliko loše napisanog koda čije probleme nikakvi sintaksni ni bibliotečni mehanizmi mogu da nadomeste, tako da je bitnije ko radi a ne u čemu
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 10.1.2019, 13:07   #389
analayzer
Starosedelac
 
Član od: 2.6.2008.
Poruke: 1.624
Zahvalnice: 84
Zahvaljeno 281 puta na 264 poruka
Određen forumom Re: How to... C++

Odlično samo ti je ostalo da nam ovde dostaviš svoj program u finalnoj verziji pa da vidimo šta radi i zašta se koristi ili samo radi a za ništa se ne koristi ili šta već....
analayzer je offline   Odgovor sa citatom ove poruke
Stara 10.1.2019, 17:51   #390
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 759
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom Re: How to... C++

Rečeno učinjeno.

Program je kompletan kompajler za sitan programski jezik C-ovske sintakse, ima funkcije strukture, nizove, numeričke tipove, malo OOP-a, vidi se u primerima. Ima Garbage Collector, doduše jednostavan i nekoristan u realnom svetu, baziran na staroj metodi koja se najbrže implementira. Kompajlira u mašinski kod putem LLVM biblioteke. Parsira uz pomoć Bison-a.

Sve je na Github-u:

https://github.com/irpbc/mj - Ovo je originalna C# verzija
https://github.com/irpbc/mj-compiler-cpp - A ovo je C++ verzija.
https://github.com/irpbc/mj-rt - Ovo je C++ kod u kome je implementiran GC. On je od početka bio C++, jer GC mora da bude native kod.

U folderu testCode su reprezentativni primeri. Upozorenje, ako želite da ga pokrenete i da pokrenete kompajlirane programe, pročitajte uputstva za kompajler i za GC projekat, ima prilična procedura.

Poslednja ispravka: ivan90BG (10.1.2019 u 18:06)
ivan90BG je offline   Odgovor sa citatom ove poruke
Sledećih 2 korisnika se zahvaljuje korisniku ivan90BG na korisnoj poruci:
analayzer (10.1.2019), voodoo_ (10.1.2019)
Stara 9.3.2019, 22:08   #391
Nikola Stankovic
Član
 
Član od: 15.1.2008.
Lokacija: Vranje
Poruke: 210
Zahvalnice: 190
Zahvaljeno 6 puta na 4 poruka
Slanje poruke preko MSN-a korisniku Nikola Stankovic Slanje poruke preko Skypea korisniku Nikola Stankovic
Određen forumom Re: How to... C++

LJudi, kako bi bio kod za sortiranje sporedne dijagonale kvadratne matrice u opadajucem redosledu? Deo u FOR petlji....
Nikola Stankovic je offline   Odgovor sa citatom ove poruke
Stara 9.3.2019, 23:39   #392
Wolf72
Član
 
Član od: 28.8.2012.
Poruke: 84
Zahvalnice: 20
Zahvaljeno 5 puta na 5 poruka
Određen forumom Re: How to... C++

Citat:
Nikola Stankovic kaže: Pregled poruke
LJudi, kako bi bio kod za sortiranje sporedne dijagonale kvadratne matrice u opadajucem redosledu? Deo u FOR petlji....
Kod:
for(int i=0; i<n-1;i++){
         for(int j=i+1; j<n;j++){
                if(a[i][n-1-i]<a[j][n-1-j]){
                  int temp=a[i][n-1-i];
                  a[i][n-1-i]=a[j][n-1-j];
                  a[j][n-1-j]=temp;
                }
        }
}
Wolf72 je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Wolf72 na korisnoj poruci:
Nikola Stankovic (10.3.2019)
Stara 14.3.2019, 23:44   #393
sokadin
Novi član
 
Član od: 2.6.2010.
Poruke: 5
Zahvalnice: 2
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: How to... C++

I ako moze pomoc kod mene za C, treba mi program koji treba da stampa broj maksimalnih ocena studenata, evo koda sa sve komentarima:

Kod:
#include<stdio.h>

int main() {

	int n=1; //broj studenata sa najvisom ocenom
	int i; //brojac elemenata niza
	int max; //maksimalna ocena
	int o[14] = { 3,6,6,6,7,10,10,8,10,9,9,10,6,7 }; //niz sa ocenama
        max = o[0]; /*prvi element niza prooglasen maksimumom*/
	for (i = o; i <= 14; i++) {
		if (o[i + 1] > o[i]) { /*ako je susedni element veci, bice proglasen maksimumom, a n se vraca na 1*/
			max = o[i + 1];
			n = 1;
		}
		else if (o[i+1]<o[i]) /*ako je susedni element manji, nastavi za brojenjem*/
		{
			continue;
		}else{ /* u ostalim slucajevima, povecaj broj maksimalnih ocena za 1*/
			n++;
		}
		printf("%d", n); //stampaj broj maksimalnih ocena
		}
	return 0;
}
sokadin je offline   Odgovor sa citatom ove poruke
Stara 15.3.2019, 18:52   #394
Remedy
Veteran
 
Član od: 5.11.2005.
Poruke: 655
Zahvalnice: 104
Zahvaljeno 132 puta na 110 poruka
Određen forumom Re: How to... C++

Kod:
#include <stdio.h>

int main()
{

    int n=1; 
    int i; 
    int max;
    int o[14] = { 3,6,6,6,7,10,10,8,10,9,9,10,6,7 }; 

    max = o[0];

    for (i = o; i <= 14; i++)
    // i = nula, a ne slovo O
    // nizovi se indeksiraju od 0, maksimalni index je 13, tj o[13] je 7; znaci i < 14
    {
        if (o[i + 1] > o[i])
        // Ovo ne moze: kada je i = 13, o[i + 1] je o[14], ko zna sta je na toj adresi u memoriji
        // posto je i <= 14, ocitace se i o[15] kada je i = 14, takodje ko zna sta je na toj adresi
        // Ako si stigao do pointera trebalo bi da razumes zasto
        {
             max = o[i + 1];
             n = 1;
	}
        else if (o[i+1] < o[i])
	{
             continue;
	}
        else
        {
             n++;
	}

	printf("%d\n", n); // Ovo je u for petlji, stampace 15 puta

    }

    return 0;
}
Kod:
#include <stdio.h>

int main()
{

    int n = 0; 
    int i; 
    int max;
    int o[14] = { 3,6,6,6,7,10,10,8,10,9,9,10,6,7 }; 
    
    max = 1; // Ovo bih inicijalizovao na vrednost najmanje ocene, pretpostavljam 1

    for (i = 0; i < 14; i++)
    {
        if (o[i] > max)
        {
            max = o[i];
            n = 1;
        }
        else if (o[i] == max)
        {
            n++;
        }
        
    }

    printf("Max ocena: %i, broj studenata sa max ocenom: %i.\n", max, n);

    return 0;
}

// => Max ocena: 10, broj studenata sa max ocenom: 4.
Remedy je offline   Odgovor sa citatom ove poruke
Stara 20.3.2019, 11:01   #395
Nikola Stankovic
Član
 
Član od: 15.1.2008.
Lokacija: Vranje
Poruke: 210
Zahvalnice: 190
Zahvaljeno 6 puta na 4 poruka
Slanje poruke preko MSN-a korisniku Nikola Stankovic Slanje poruke preko Skypea korisniku Nikola Stankovic
Određen forumom Re: How to... C++

Kako bi glasio kod u posebnoj funkciji za sortiranje vrste kvadratne matrice? Trebalo bi da se u toj funkciji sortira elemente prosledjenog niza svake vrste matrice iz glavnog programa?

Poslednja ispravka: Nikola Stankovic (20.3.2019 u 11:25)
Nikola Stankovic je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Tagovi
c++, how to, pomoc, programiranje

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno



Sva vremena su po Griniču +2 h. Sada je 15:44.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2019, vBulletin Solutions, Inc.
Hosted by Beograd.com