• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

jak działa warunek "if(zmienna)"?

Object Storage Arubacloud
0 głosów
825 wizyt
pytanie zadane 30 maja 2015 w C i C++ przez ceplusplus Początkujący (440 p.)
Witam, mam do zrobienia szablon stosu. Potrafię zrobić wszystkie ciała metod typupop(), getSize() i tak dalej, jednak przyjęłam sobie, żecała tablica na początku jest wypełniona zerami, a wierzchołek nie może byc zerem. Jak mam o zrobić, jeśli nie chcę tablicy nadawać żadnych początkowych wartości?

Mam metdę push(), która dodaje wierzchołek, wczytywany od użytkownika. Metodę getSize chcę zrobić w taki sposób:

 

int licznik = 0;

for ( int i=0; i<rozmiar; i++)

if(tab[i])

licznik++;

cut << "Stos ma " << licznik << " elementów"

 

Jednak taki warunek nie działa. Chodzi mi  o to, że jeśli tab[i] istnieje, licznik ma się powiększyć. Gdy wszystkie el. tablicy były zerami, a wierzchołki nie, sprawa była prosta - warunek wyglądał tak: if(tab[i]!=0).

Jak mam to zrobić teraz? Proszę o pomoc :)

1 odpowiedź

0 głosów
odpowiedź 30 maja 2015 przez pewolt Mądrala (5,790 p.)
edycja 30 maja 2015 przez pewolt

Nie wiem czy dobrze zrozumalaem twoj problem ale sprobuj zrobic tak:

for ( int i=0; i<rozmiar; i++)
{
	if(!(tab[i] == 0))
	{
		cout << "Stos ma " << i << " elementów";
        break;
    }
}

 
komentarz 30 maja 2015 przez pewolt Mądrala (5,790 p.)
mozesz wkleic caly kod?
komentarz 30 maja 2015 przez ceplusplus Początkujący (440 p.)
#pragma once
#include <iostream>
using namespace std;
template <class T, int R> class Stos
{
public:
    T*tab ;
    int aktualny_wierzcholek;
    Stos ()
    {tab= new T[R];
    for (int i=0; i<R; i++)            // TEGO CHCĘ SIĘ  POZBYĆ  -->
    {tab [i]=0;};                         // TABLICA NIE MA MIEĆ POCĄTKOWYCH ELEMENTÓ
    aktualny_wierzcholek=0;
    };

    void push()
        { T n=0;
        cout << "Podaj wierzcholek: " ;
        cin >> n;
        tab[aktualny_wierzcholek]=n;
        aktualny_wierzcholek++;
        };

    void pop()
    { if(tab[aktualny_wierzcholek-1]!=0)   // IF(TAB) - MOŻE TAK BYĆ?
       {cout << tab[aktualny_wierzcholek-1]<< endl;
        tab[aktualny_wierzcholek-1]=0;}
        else
            cout << "Stos jest pusty, wiec nie mozesz zdjac wierzcholka!" << endl;
    aktualny_wierzcholek--;};

    void isEmpty()
        {
            int licznik=0;
            for (int i=0; i<R; i++)
            {
        if (tab[i]!=01)
        licznik ++;};
            if (licznik == 0)
            cout << "Stos jest pusty" << endl;
            else
            cout << "Stos nie jest pusty" << endl;
            
    };
    void isFull()
        {int l=0;
            for (int i=0; i<R; i++)
            {if (tab[i]!=0)
            l ++;};
            if (l==R)
                cout << "Stos jest pelny" << endl;
            else
                cout<< "Stos nie jest pelny" << endl;
    };
                
    void getSize()
        {int size=0;
            for (int i=0; i<R; i++)
            {if((tab[i] != 0))
            size ++;};
            cout << "Aktualny rozmiar stosu to: " << size << endl;
    };

    void getTop()
    {if (tab[aktualny_wierzcholek]=0)
    cout << "Stos jest pusty, nie ma wierzcholka!" << endl;
    else
            cout << "Aktualny wierzholek stosu to: " << tab[aktualny_wierzcholek-1] << endl;
    };
    ~Stos() {delete[]tab;};
};
komentarz 30 maja 2015 przez pewolt Mądrala (5,790 p.)
o kurde nie wiem czy zdolam ci pomuc nie zabardzo sie znam na template

jak mozesz zrobic cos takiego jak przy lancuchach char ze podajesz \0 i to jest koniec textu
komentarz 30 maja 2015 przez ceplusplus Początkujący (440 p.)
Chodzi mi tylko o to, jak mam zrobić tak, żeby nie nadawać tej tablicy wartości początkowych, a Stos działał. Tak jakbyś pisał Stos, po prostu, niekonecznie dla template
komentarz 30 maja 2015 przez pewolt Mądrala (5,790 p.)
nie rozumiem sorry nie pomoge ci

Podobne pytania

0 głosów
4 odpowiedzi 10,158 wizyt
0 głosów
1 odpowiedź 421 wizyt
pytanie zadane 9 marca 2017 w JavaScript przez Kamil Słapek Początkujący (260 p.)
0 głosów
4 odpowiedzi 834 wizyt
pytanie zadane 15 października 2017 w C i C++ przez Corvette 653 Początkujący (400 p.)

92,622 zapytań

141,477 odpowiedzi

319,818 komentarzy

62,005 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...