1

Тема: в чому помилка?

при можливості допоможіть виправити

// st.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <iostream>
using namespace std;
const int size=50;
  
   // Створення узагальненого класу queueClass.
template <class qType> class queueClass 
{         qType array[size];
           int sloc, rloc,response,i;
     public:
           queueClass() { sloc = rloc = 0;i=1; }
           void Get(qType c);
           void func(int response);
           void Put(int k); // Виведення з об'єкта значення
};

    // Занесення об'єкта в чергу.
template <class qType> void queueClass<qType>::Get(qType c)
{     if(sloc>=size) 
                   { cout << "Стек заповнений" << endl; return; }
       sloc++;
       array[sloc] = c;
}

    // Вилучення об'єкта з черги.
template <class qType> void queueClass<qType>::Put(int k)
{ 
    rloc=k;

for(int item = k-1; k>0; item--)
cout<<array[item]<<" , ";
}

template <class qType> void queueClass<qType>::func(int response)
{
    
switch(response) 
    {
    case 1:
        array[i]="Komp";
        for (int k=1;k<=i;k++)
        cout<<array[k]<<" , ";
        i++;
        break;
    case 2:
        array[i]="Flash";
        for (int k=1;k<=i;k++)
        cout<<array[k]<<" , ";
        i++;
        break;
    case 3:
        array[i]="Nout";
        for (int k=1;k<=i;k++)
        cout<<array[k]<<" , ";
        i++;
        break;
    case 4:
        array[i]="Phone";
        for (int k=1;k<=i;k++)
        cout<<array[k]<<" , ";
        i++;
        break;
        
//    case 5:
//        return 0;
//        //exit (1);
//        //Put();
//        cout<<"jkhuih";
//        break;
    }
cout<<endl;

}
    

void main()
{   
    setlocale (LC_ALL,".1251");
    int response;
    int q=1;
    queueClass<char*> ObjA;         // Створюємо дві черги для int-значень.
    {

    cout<<"1.Komp"<<endl
        <<"2.Flesh"<<endl
        <<"3.Nout"<<endl
        <<"4.Phone"<<endl
        <<"5.korzuna"<<endl;
    cout<<"Vvedin № tovaru: "<<endl;
    cin>>response;
    } 
    int k=1;
    while(response!=5)
    {ObjA.func(response); cin>>response;k++;}
    while(response==5)
    ObjA.Put(k);    
  system("pause");
}

2

Re: в чому помилка?

Мабуть отут

while(response==5)
    ObjA.Put(k); 

фігурні дужки пропустили.

Re: в чому помилка?

DOP написав:

Мабуть отут

while(response==5)
    ObjA.Put(k); 

фігурні дужки пропустили.

А хіба коли є одна дії, обов`язково дужки фігурні ставити ?

4

Re: в чому помилка?

ні ні, фігурні дужкт при одній дії не обов'язкові тому я і їх не ставив
тут проблема в іншому, програма працює і видає мені потрібні значення, але от
швидше за все вона в функції Put(), на мою думку, зациклюється і після того як видає мені всі необхідні результати аварійно припиняє роботу програми, ну принаймі в мене так
от чому  я звернувся до спільноти за допомогою

5

Re: в чому помилка?

while(response==5)
    ObjA.Put(k); 

Якщо перед тим цикл завершився, коли response набуло п'ятірки, то коли завершиться цей цикл? :)

6 Востаннє редагувалося z.igor.9v (10.04.2013 11:58:03)

Re: в чому помилка?

хмм от дилема, а як тоді мені цей цикл зробити так щоб при воборі 5, мені викликало функцію Put()?
ну але поідеї цей другий цикл теж завершується коли умова задовільняється, а саме коли я вибираю 5-ку, в результаті чого викликається потрібна функція

7

Re: в чому помилка?

z.igor.9v написав:

хмм от дилема, а як тоді мені цей цикл зробити так щоб при воборі 5, мені викликало функцію Put()?
ну але поідеї цей другий цикл теж завершується коли умова задовільняється, а саме коли я вибираю 5-ку, в результаті чого викликається потрібна функція

Вам бракує методу на кшалт bool empty().

8

Re: в чому помилка?

z.igor.9v написав:

хмм от дилема, а як тоді мені цей цикл зробити так щоб при воборі 5, мені викликало функцію Put()?
ну але поідеї цей другий цикл теж завершується коли умова задовільняється, а саме коли я вибираю 5-ку, в результаті чого викликається потрібна функція

а логічний оператор "if" тут не катить?

9

Re: в чому помилка?

ну це не сильно виправить ситуацію
ну задля цікавості я попробував, і проблема осталась та ж сама

10

Re: в чому помилка?

z.igor.9v написав:

ну це не сильно виправить ситуацію
ну задля цікавості я попробував, і проблема осталась та ж сама

Може, ви поділитеся бамбуком, який нині курите? Бо мої коноплі на печі попріли явно... :)

Одне з двох:
1.

Прихований текст

Це бамбук із якого регіону?

2. Ви когось прагнете потролити напарити: реалізація черги через масив, ще й статичний...

11

Re: в чому помилка?

ну чому ж так критично сприймати зараз це)
я накидав програму як прототип, який маю намір так і оставити, проблема виникла явна,
якби я знав як її виправити то би і не писав сюди
мені впринципі як і викладачу якому я маю здати цю програму вона підходить
але те що в самому кінці аварійно припиняє роботу після правильного виконання всіх умов
мене трішки бентежить, ну так як це ніхто не буде на ділі провіряти то може бути і так,
для скріншота мені вистачить, але задля покращення візуального сприйняття програми і задля більш гармонійного її функціонування я і звернувся до цієї спіьноти
P.S
"Бамбук" з місцевого магазину,30грн. за 1 кг., довлі смачний маю зазначити))

12

Re: в чому помилка?

до речі, я отак і здавала лаби з аварійним завершення - і нічого, викладачка з розумінням до цього поставилась :)

13

Re: в чому помилка?

z.igor.9v написав:

ну чому ж так критично сприймати зараз це)
я накидав програму як прототип, який маю намір так і оставити, проблема виникла явна,
якби я знав як її виправити то би і не писав сюди
мені впринципі як і викладачу якому я маю здати цю програму вона підходить
але те що в самому кінці аварійно припиняє роботу після правильного виконання всіх умов
мене трішки бентежить, ну так як це ніхто не буде на ділі провіряти то може бути і так,
для скріншота мені вистачить, але задля покращення візуального сприйняття програми і задля більш гармонійного її функціонування я і звернувся до цієї спіьноти

Імго: копайте отут:

while(response==5)//на віки вічні...
    ObjA.Put(k);  
...

Мені деякі місця цього коду нагадали таку картинку:
http://img9.сайт-злодій/pics/comment/full/%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0%B5-%D0%9A%D0%BE%D0%BC%D0%B8%D0%BA%D1%81%D1%8B-%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0-170309.jpeg

z.igor.9v написав:

P.S
"Бамбук" з місцевого магазину,30грн. за 1 кг., довлі смачний маю зазначити))

Ряжена махра навпіл із дурманом. :)

14

Re: в чому помилка?

ну мене тоже цей фрагмент коду занепокоїв ше з самого початку
до викладача на перевірку підійшов то він очима тільки кліпав і нічого
толкового сказати чи порадити не зміг

15

Re: в чому помилка?

z.igor.9v написав:

ну мене тоже цей фрагмент коду занепокоїв ше з самого початку
до викладача на перевірку підійшов то він очима тільки кліпав і нічого
толкового сказати чи порадити не зміг

При вашій реалізації метода Put(), достатньо

//while(response==5)//на віки вічні...
    ObjA.Put(k);  

З.І: а якщо хочете вивчити програмування - не орієнтуйтеся на даного викладача.

16

Re: в чому помилка?

ахахахаха))
замітку прийму до уваги))

17

Re: в чому помилка?

Cyan написав:

до речі, я отак і здавала лаби з аварійним завершення - і нічого, викладачка з розумінням до цього поставилась :)

ну я думаю що так само поступлю якщо в найближчі 2 дня не зроблю так як я хочу)