Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 12 odgovora
  • 5.116 pregleda

Najnovija ↓

2 pitanja oko komandi? 26.11.2005. u 16:13 · pre 254 meseca #1
1.Pitanje:
Zasta služi komanda
Code:
using namespace std;
.Kucam je svaki put kada pisem neke programcice a ne znam zasta služi.

2.Pitanje:
Moze li mi ko objasniti vektore.Koliko sam ja shvatio oni se mogu definisati kao string,int,float i td a ustvari oni su nizovi?
Re: 2 pitanja oko komandi? 26.11.2005. u 22:23 · pre 254 meseca #3
Citat:
Nibble: 1.Pitanje:
Zasta služi komanda
Code:
using namespace std;
.Kucam je svaki put kada pisem neke programcice a ne znam zasta služi.

To se kuca samo u Microsoftovim kompajlerima (Visual Studio i Visual C++). Označava da ćeš koristiti standardni namespace (tj. ključne riječi i ostale džidže).
Re: 2 pitanja oko komandi? 26.11.2005. u 22:28 · pre 254 meseca #4
Citat:
Nibble: 1.Pitanje:
Zasta služi komanda
Code:
using namespace std;
.Kucam je svaki put kada pisem neke programcice a ne znam zasta služi.

jednostavnije
std sluzi da nemoras da pises std::cout ili std::cin......
Potpis
Alright. 5 reasons why I'm convinced that my penis runs Linux.
1. I can create child processes
2. I can handle multiple users on any platform at once.
3. I'm VERY user friendly.
4. I have incredible uptime. and
5. When my system load gets too heavy, I :end up dumping my core and the system shuts down. :p
Re: 2 pitanja oko komandi? 26.11.2005. u 23:23 · pre 254 meseca #5
Citat:
#Ninja#: To se kuca samo u Microsoftovim kompajlerima (Visual Studio i Visual C++). Označava da ćeš koristiti standardni namespace (tj. ključne riječi i ostale džidže).

Zasto se to samo pise kod MS kompajlera?
Re: 2 pitanja oko komandi? 26.11.2005. u 23:40 · pre 254 meseca
izmenjeno 1 put, poslednji put skundra 26.11.2005. u 23:45
  1. skundra26.11.2005. u 23:45zapis iz teksta poruke
#6
using namespace std; je direktiva koja se koristi da kompajleru ukazes na to da ces sve definisane klase,funkcije,promenljive koristiti u standardnom imenskom prostoru std.Npr. mozes da kucas using namespace "ime nekog drugog imenskog prostora", i prilikom toga sve promenljive ce vaziti samo unutar tog prostora, odnosno u vise kosiscenih imenskih prostora mozes da koristis ista imena za funkcije,promenljive itd...
primer
namespace prostor1;
{int i=1; int j=50;}
namespace prostor2;
{int i=0; j=40;}

onda kucas za odredjenu promenljivu koju zelis da koristis

prostor1::i=5; // prvo i je promenilo vrednost
prosto2::j=0 // drugo j je promenilo vrednost

A ako zelis da uvezes sve promenljive iz odredjenog imensog prostora kucas
using namespace prostor1;
using namespace prostor2;
Tu treba voditi racuna da ne dodje do preplitanja naziva promenljivih ako uvozis promenljive istog naziva iz vise imenskih prostora.

Imenski prostor nije stvar Microsoft-ovog ili bilo kog drugog kompajlera vec je stvar stanarda C++.
Re: 2 pitanja oko komandi? 28.11.2005. u 13:28 · pre 254 meseca #9
Normalno da se kuca, u svakom normalnom kompajleru.
Da se ne kuca, namespaceovi ne bi koristili nicemu.
Potpis
[email protected]
Re: 2 pitanja oko komandi? 28.11.2005. u 19:40 · pre 254 meseca #10
U C++ Builderu se kuca
Code:
#include <iosream.h>

umjesto
Code:
#include <iosream>
using namespace std;
Re: 2 pitanja oko komandi? 28.11.2005. u 20:18 · pre 254 meseca
izmenjeno 1 put, poslednji put std::geek 28.11.2005. u 20:36
  1. std::geek28.11.2005. u 20:36zapis iz teksta poruke
#11
Moradoh da se javim - zbog nick-a ;)

Citat:
#Ninja#: U C++ Builderu se kuca
Code:
#include <iosream.h>

umjesto
Code:
#include <iosream>
using namespace std;


Pa stvarno nemam Borland Builder (nisam mazohista) pa ne mogu da kazem, ali mi je tesko da poverujem u to. U stvari moguce je da imas neku veoma matoru verziju Buildera. U suprotnom, ako se fajl zaista zove <iostream.h> to bi znacilo da se uvazena Borland kompanija ne pridrzava Ansi-ISO standarda za CPP koji propisuje da se header fajlovi standardne C++ biblioteke ne zavrsavaju sa .h, u sta mi je stvarno tesko da poverujem. Inace using namespace je CPP standard. To nikako nije rezervisana rec specificno vezana za bilo koji brend kompajlera ili radnog okruzenja.

Na kraju, ako ne zelis, i ne moras da kucas using namespace std, ali onda moras da kucas std:: ispred svake klase ili funkcije iz standardne biblioteke. To vazi i za MSVC i za GCC i za Watcom i za ... (dodaj brend po zelji). Primer za to je moj nick. Da sam pre nego sto sam ga registrovao napisao using namespace std moj nick bi bio kraci, tj. samo geek. ;)

Druga, i jos cistija alternativa za using namespace std je da "oznacis" samo one klase koje ces koristiti u fajlu, pa ako su to samo vector i string mozes pisati npr:

Code:

#include <vector>
#include <string>

using std::vector;
using std::string;

vector<string> myVectorOfStrings;
Re: 2 pitanja oko komandi? 03.12.2005. u 12:39 · pre 254 meseca #12
Hvala vam ljudi sve mi je jasnije.Imam jos jedno pitanje :)

Code:
//printBinary.h
// Display a byte in binary
void printBinary(const unsigned char val);
///

//printBinary.cpp {O}
#include <iostream>
void printBinary(const unsigned char val) {
for(int i = 7; i >= 0; i--)
if(val & (1 << i)) //Moze li mi ko obasniti ovaj dio.Nerazumijem operator "<<" .Sta on radi?
std::cout << "1";
else
std::cout << "0";
} 

Re: 2 pitanja oko komandi? 03.12.2005. u 14:42 · pre 254 meseca
izmenjeno 1 put, poslednji put #Ninja# 03.12.2005. u 14:59
  1. #Ninja#03.12.2005. u 14:59zapis iz teksta poruke
#13
To ti je lijevi SHIFT operator (postoji i desni, >>). Oba argumenta moraju biti int. Shift operator (ovaj lijevi konkretno) pomijera bitove broja na lijevoj strani za onoliko mjesta ulijevo kolika je vrijednost broja na desnoj strani. Prazna mjesta se ispunjavaju nulama (binarnim, naravno).

Decimalo opisano, a << b je isto što i a*2b (a >> b je isto što i a/2b).

EDIT - da pojasnim ovo binarno

222 << 2

Ovo bismo decimalno izračunali kao 222*22 = 888. Binarno bi to izgledalo ovako:

(222)10 = (11011110)2

Broj 11011110 bismo pomjerili 2 mjesta ulijevo i na dva prazna mjesta s desne strane stavili dvije nule. Dobili bismo broj 1101111000.

(1101111000)2 = (888)10
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme