Anonymní profil Robo – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Robo – Programujte.comAnonymní profil Robo – Programujte.com

 

Příspěvky odeslané z IP adresy 178.253.167.–

Robo
C / C++ › Stack
9. 9. 2013   #181218

Takto to mám spravené

#include <iostream>
#include "prd.h"

Stack::Stack(){
	pitems = new Item[MAX];
	size = 0;
	top = 0;
}

Stack::~Stack(){
	delete [] pitems;
}

Stack::Stack(const Stack & st){
	pitems = new Item[MAX];
	size = st.size;
	top = st.top;

	for(int i = 0; i < st.top; i++){
		pitems[i] = st.pitems[i];
	}
}
	
bool Stack::isempty(){
	return size == 0;
}

bool Stack::isfull(){
	return size == MAX;
}

bool Stack::push_back(const Item & item){
	if(top < MAX){
		pitems[top++] = item;
		size++;
		return true;
	}
	return false;
}

bool Stack::pop_back(){
	if(top > 0){
		top--;
		size--;
		return true;
	}
	return false;
}

Stack & Stack::operator=(const Stack & st){
	if(this == & st)
		return *this;
	delete [] pitems;
	pitems = new Item[MAX];
	size = st.size;
	top = st.top;

	for(int i = 0; i < st.top; i++){
		pitems[i] = st.pitems[i];
	}
	return *this;
}

std::ostream & operator<<(std::ostream & os, const Stack & st){
	for(int i = 0; i < st.top; i++){
		os << st.pitems[i] << std::endl;
	}
	return os;
}

Akurát ten pop som nechápal, prečo je to tak riešené
#4 vitamin
šak ja aj tak volám konštruktor, že mi vytvorí celé pole a deštruktor mi ho potom uvoľní

Robo
C / C++ › chyba kompilátoru
8. 9. 2013   #181164

#6 Adam108
Zmeň názov z "nazov.c" na "nazov.cpp"
 

Robo
C / C++ › Stack
8. 9. 2013   #181158

Mojou úlohou je naprogramovať zásobník, ktorý pre uloženie položiek používa dynamické pole.
Nechápem tam len jednej veci a to funkcia pop. 

//top = posledny prvok
//pitems = smernik na zaciatok dynamickeho pola
bool Stack::pop_back(Item & item){
	if(top > 0){
		item = pitems[--top];
		return true;
	}
	return false;
}

prečo sa k položke item priraďuje položka predtým a vôbec prečo má metóda nejaké parametre.
Šak keď sa jedná o zásobník, tak pri funckii pop nepotrebujem mať žiadne parametre, kedže mi odstráni vždy posledný prvok. Jednoducho znížim top.

bool Stack::pop_back(){
	if(top > 0){
		top--;
		return true;
	}
	return false;
}
Robo
Vzdělání › STU - FEI
7. 9. 2013   #181144

#1 Tom
Záleží na aký odbor, programovania tam máš viac.
Ale asi konkrétne myslíš na Aplikovanú Informatiku. Všetko sa bude brať od začiatku ohľadne programovania.
Ale očakávaj, že každý semester budeš mať viacej matematík, ako informatiky

Robo
C / C++ › Struktura jako návratová hod…
5. 9. 2013   #181064

   

#include <iostream>

struct Obdlznik{
	double obsah;
	double obvod; 
};

using namespace std;
Obdlznik vypocet(double a, double b); //funkcia pre vypocet obsahu a obvodu

int main(){
	double stranaA;
	double stranaB;
	Obdlznik obd;

	//vyziadanie a ulozenie poloziek do premennych
	cout << "Zadaj stranu a: ";
	cin >> stranaA;
	cout << "Zadaj stranu b: ";
	cin >> stranaB;

	//funkcia vypocet vypocita dane udaje a priradi ich premennej obd typu Obdlznik
	obd = vypocet(stranaA, stranaB);

	cout << "Obsah: " << obd.obsah << endl;
	cout << "Obvod: " << obd.obvod << endl;

	system("PAUSE");
}

Obdlznik vypocet(double a, double b){
	Obdlznik o;
	o.obvod = 2 * a + 2 * b;
	o.obsah = a * b;

	return o;
} 

Podobne to vieš spraviť aj cez smerník, alebo ešte lepšie cez odkaz

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý