Тема: срочно! нужна момощь по С++

Ответить в теме
Показано с 1 по 20 из 20
  1. Вверх #1
    Новичок
    Пол
    Мужской
    Адрес
    Od.
    Сообщений
    19
    Репутация
    14

    По умолчанию срочно! нужна момощь по С++

    Собственно вопрос(на зачете):

    описать функцию вставляющую в начало цепочки L новый элемент Е


    плизз...


  2. Вверх #2
    Посетитель
    Пол
    Мужской
    Возраст
    36
    Сообщений
    404
    Репутация
    44
    что ты подразумеваеш под "цепочкой L"?

  3. Вверх #3
    Новичок
    Пол
    Мужской
    Адрес
    Od.
    Сообщений
    19
    Репутация
    14
    так дано в задании...

  4. Вверх #4
    Новичок
    Пол
    Мужской
    Адрес
    Od.
    Сообщений
    19
    Репутация
    14
    любая наверное...)

  5. Вверх #5
    Посетитель
    Пол
    Мужской
    Возраст
    36
    Сообщений
    404
    Репутация
    44
    спроси у препода)

  6. Вверх #6
    Не покидает форум Аватар для YOKO
    Пол
    Мужской
    Адрес
    Одеса, Україна
    Возраст
    43
    Сообщений
    5,452
    Репутация
    728
    Цитата Сообщение от Jaccot Посмотреть сообщение
    Собственно вопрос(на зачете):

    описать функцию вставляющую в начало цепочки L новый элемент Е


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

  7. Вверх #7
    Частый гость Аватар для THRESHE
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    978
    Репутация
    39
    Если имеется ввиду стек
    Код:
    # include < iostream.h >
    # include < string.h >
    
    //-----------------------------------------------------------------------------------------------
    
    class Stack
    {
       private : char* a ;
    			 Stack *NextPtr ;
    
    	public : Stack ( char* ) ;
    			 ~Stack () { delete a ; } ;
    		     void addElement ( char* ) ;
    			 void printElement ( int ) ;
    			 void deleteElement ( int ) ;
    			 
    } ;
    
    //-----------------------------------------------------------------------------------------------
    
    Stack *Top = 0 , *Tail = 0 ;
    
    Stack :: Stack ( char* b )
    {
    	a = new char [10] ;
    	strcpy ( a , b ) ;
    } 
    
    //-----------------------------------------------------------------------------------------------
    
    void Stack :: addElement ( char* b )
    {
    	Stack *NewRecordPtr = new Stack ( b ) ;
    	NewRecordPtr -> NextPtr = Top ;
    	while( Tail -> NextPtr  )
    	{
    		Tail = Tail -> NextPtr ;
    	}
    	Top = NewRecordPtr ;
    }
    
    //-----------------------------------------------------------------------------------------------
    
    void Stack :: printElement ( int Number )
    {
    	Stack *FindPtr = Top ;
    	while ( Number )
    	{
    		Number -- ;
    		if ( Number == 0 ) 
    		{
    			cout << FindPtr -> a << endl ;
    		}
    		FindPtr = FindPtr -> NextPtr ;
    		
    	}
    }
    
    //-----------------------------------------------------------------------------------------------
    
    void Stack :: deleteElement ( int Number )
    {
    	Stack *DeletePtr = Top , *DeletePtrPrevious = 0 ;
    	while ( Number )
    	{
    		Number -- ;
    		if ( Number == 0 )
    		{
    			break ;
    		}
    		DeletePtrPrevious = DeletePtr ;
    		DeletePtr = DeletePtr -> NextPtr ;
    	}
    	if ( DeletePtr )
    	{
    		if ( DeletePtrPrevious )
    		{
    			DeletePtrPrevious -> NextPtr = DeletePtr -> NextPtr ;
    		}
    		else 
    		{
    			Top = DeletePtr -> NextPtr ;
    		}
    		delete DeletePtr ;
    		delete DeletePtrPrevious ;
    	}
    }
    
    //-----------------------------------------------------------------------------------------------
    
    void main ( void ) 
    {
    	char *AnswerPtr = new char [3] , *NamePtr = new char [10] ;
    	cout << "Input name\n" ;
    	cin >> NamePtr ;
    	Top -> addElement ( NamePtr ) ;
    	while ( 1 )
    	{
    		cout << "Do you want to add an element ? \n" ;
    		cin >> AnswerPtr ;
    		if ( AnswerPtr [0] == 'y' )
    		{
    			cout << "Input name\n" ;
    	        cin >> NamePtr ;
    	        Top -> addElement ( NamePtr ) ;
    		}
    		if ( AnswerPtr [0] == 'n' )
    		{
    			break ;
    		}
    	}
    	int* NumberPtr = new int ;	
    	while ( 1 )
    	{
    		cout << "Do you want to print an element ? \n" ;
    		cin >> AnswerPtr ;
    		if ( AnswerPtr [0] == 'y' )
    		{
    			cout << "Input number of element to print\n" ;
    	        cin >> *NumberPtr ;
    			Top -> printElement ( *NumberPtr ) ;
    		}
    		if ( AnswerPtr [0] == 'n' )
    		{			
    			break ;
    		}
    	}
    	delete [10]AnswerPtr  ;
    	delete NumberPtr ;
    	cin.get () ;
    }
    или кольцевая очередь
    Код:
    # include < iostream.h >
    # include < string.h >
    
     int Menu ( void ) ;
     void Print ( void ) ;
     void Add ( void );
    
    //-----------------------------------------------------------------------------------------------
    
    class Queue
    {
       private : char* a ;
    			 int Time ;
    			 Queue *NextPtr ;
    			 int CountFunc ( void ) ;
    
    	public : Queue ( char* ) ;
    			 ~Queue () { delete a ; } ;
    		     void addElement ( char* ) ;
    			 void printElement ( int ) ;
    			 void printQueue ( void ) ;
    			 void getQuantity ( void ) ;
    			 void CPUTime ( void ) ;
    				 			 
    } ;
    
    //-----------------------------------------------------------------------------------------------
    
    Queue *Head = 0 , *Tail = 0 ;
    const int kvant = 7 ;
    int counter = 0 ;
    
    //-----------------------------------------------------------------------------------------------
    
    inline Queue :: Queue ( char* b )
    {
    	a = new char [10] ;
    	strcpy ( a , b ) ;
    	Time = counter * kvant ;
    	counter ++ ;
    } 
    
    //-----------------------------------------------------------------------------------------------
    
    void Queue :: addElement ( char* b )
    {
    	Queue *NewRecordPtr = new Queue ( b ) ;
    	if ( Tail )
    	{
    		Tail -> NextPtr = NewRecordPtr ;
    	}
    	Tail = NewRecordPtr ;
    	if ( Head == 0 )
    	{
    		Head = Tail ;
    	}
    	Tail -> NextPtr = Head ;
    }
    
    //-----------------------------------------------------------------------------------------------
    
    void Queue :: printElement ( int Number )
    {
    	if ( Head )
    	{
    		Queue *FindPtr = Head ;
    		while ( Number )
    		{
    			Number -- ;
    			if ( Number == 0 ) 
    			{
    				cout << "Programm name - " << FindPtr -> a << endl ;
    				cout << "Time = " << FindPtr -> Time << endl ;
    			}
    			FindPtr = FindPtr -> NextPtr ;
    		}
    	}
    }
    //-----------------------------------------------------------------------------------------------
    
    int Queue :: CountFunc ( void )
    {
    	Queue *CountPtr = Head ;
    	
    	if ( Head )
    	{
    		int N = 1 ;
    		while ( CountPtr -> NextPtr != Head )
    		{
    			N++ ;
    			CountPtr = CountPtr -> NextPtr ;
    		}
    		return N ;
    	}
    	else 
    		return 0 ;
    }
    
    //-----------------------------------------------------------------------------------------------
    
    void Queue :: printQueue ( void )
    {
    	cout << "-----------------------------------------------\n" ;
    	cout << "       Output of hole Queue\n" ;
    	Queue *FindPtr = Head ;
    	int Number = CountFunc () ;
    	while ( Number )
    	{
    		Number -- ;
    		cout << "Programm name - " << FindPtr -> a << endl ;
    		cout << "Time = " << FindPtr -> Time << endl ;
    		FindPtr = FindPtr -> NextPtr ;
    	}
    	cout << "-----------------------------------------------\n" ;
    }
    
    //-----------------------------------------------------------------------------------------------
    
    void Queue :: getQuantity ( void )
    {
    	cout << "The quantity is " << CountFunc () << endl ;
    }
    
    //-----------------------------------------------------------------------------------------------
    
    void Queue :: CPUTime ( void )
    {
    	int counter = 0 , T ;
    	cout <<"Input CPU time " << endl ;
    	cin >> T ;
    	Queue *FindPtr = Head ;
    	while ( T > 0 )
    	{
    		T = T - 7 ;
    		cout << "Programm name - " << FindPtr -> a << endl ;
    		cout << "Time = " << FindPtr -> Time << endl ;
    		if ( FindPtr -> NextPtr == Head )
    		{ break ;}
    		FindPtr = FindPtr -> NextPtr ;
    	}
    }
    
    //-----------------------------------------------------------------------------------------------
    
    
    void main ( void ) 
    {
    	int choise ;
    	while ( 1 )
    	{
    		choise = Menu () ;
    		if ( choise == 1 )
    		{
    			break ;
    		}
    	}
    	cin.get () ;
    }
    
    //-----------------------------------------------------------------------------------------------
    
    int Menu ( void )
    {
    	int choise = 0 ;
    	cout << "Press 1 to add element , 2 to print needed element,\n"
    		 << "3 to output hole queue , 4 to output quantity of elements,\n"
    		 << "5 to ouput elements when CPU time is over , 6 to exit\n";
    	cin >> choise ;
    	switch ( choise )
    	{
    		case 1 :
    			Add () ;
    			return 0 ;
    			break ;			
    		case 2 :
    			Print () ;
    			return 0 ;
    			break ;			
    		case 3 :
    			Tail -> printQueue () ;
    			return 0 ;
    			break ;
    		case 4 :
    			Tail -> getQuantity () ;
    			return 0 ;
    			break ;
    		case 5 :
    			Head ->CPUTime () ;
    			return 0 ;
    			break ;
    		case 6 :
    			return 1 ;
    			break ;
    		default :
    			return 0 ;
    			break ;
    	}
    }			
    
    //-----------------------------------------------------------------------------------------------
    
    void Add ( void )
    {
    	char *NamePtr = new char [10] ;
    	cout << "Input name\n" ;
    	cin >> NamePtr ;
    	Tail -> addElement ( NamePtr ) ;
    }
    
    //-----------------------------------------------------------------------------------------------
    
    void Print ( void )
    {
    	int* NumberPtr = new int ;	
    	cout << "Input number of element to print\n" ;
    	cin >> *NumberPtr ;
    	Head -> printElement ( *NumberPtr ) ;
    }
    
    //-----------------------------------------------------------------------------------------------
    Курсовая работа 2х годичной давности
    Последний раз редактировалось THRESHE; 05.06.2007 в 13:48.

  8. Вверх #8
    Новичок
    Пол
    Мужской
    Адрес
    Od.
    Сообщений
    19
    Репутация
    14
    Всем пасиба))

  9. Вверх #9
    Цитата Сообщение от Odalex Посмотреть сообщение
    что ты подразумеваеш под "цепочкой L"?
    Лично я думаю, что это список.
    Ибо если в стек - то в вершину.
    Но вот вопрос: нужно ли это реализовывать, или что-то стандартное?

    если STL, то в начало практически любой коллекции можно вставить
    функцией push_front.

    Например

    #include <list>
    using namespace std;

    ...

    list<char> lsCh;
    lsCh.push_front('E');

  10. Вверх #10
    Живёт на форуме Аватар для firejump
    Пол
    Мужской
    Сообщений
    3,144
    Репутация
    373
    А может очередь имеется ввиду?
    Viva La Barca !!! We are the champions :)

  11. Вверх #11
    Частый гость Аватар для THRESHE
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    978
    Репутация
    39
    Цитата Сообщение от firejump Посмотреть сообщение
    А может очередь имеется ввиду?
    Очередь я запостил наверху.

    Тем более что вроде человеку больше не нужно...

  12. Вверх #12
    Живёт на форуме Аватар для firejump
    Пол
    Мужской
    Сообщений
    3,144
    Репутация
    373
    Цитата Сообщение от THRESHE Посмотреть сообщение
    Очередь я запостил наверху.

    Тем более что вроде человеку больше не нужно...
    Сорри код с очередью не заметил.
    Viva La Barca !!! We are the champions :)

  13. Вверх #13
    Частый гость
    Пол
    Мужской
    Сообщений
    673
    Репутация
    71
    Цитата Сообщение от THRESHE Посмотреть сообщение
    ...Тем более что вроде человеку больше не нужно...
    Судя по срочности и нужности, то человек задавал вопрос прямо из компьютерной аудитории во время зачета. Так что тема стала неактуальной где-то через несколько часов после ее создания. ИМХО.

  14. Вверх #14
    Частый гость
    Пол
    Мужской
    Сообщений
    670
    Репутация
    -52
    дамс ребята извините за флуд но это ток далеко от того что мы учим )))
    Я помахал рукой форуму :)

  15. Вверх #15
    pHp-ProGRaMMeR Аватар для NoXX
    Пол
    Мужской
    Возраст
    33
    Сообщений
    1,690
    Репутация
    320
    а может даже и векторы...
    In TRANCE I trust...

  16. Вверх #16
    Цитата Сообщение от S.F | CrAsH Посмотреть сообщение
    дамс ребята извините за флуд но это ток далеко от того что мы учим )))
    А учите-то что?

  17. Вверх #17
    Частый гость
    Пол
    Мужской
    Сообщений
    670
    Репутация
    -52
    А учите-то что?
    походу от С++ только одно название глядя на это то вообще мы учим какой-то примитив... )))
    Я помахал рукой форуму :)

  18. Вверх #18
    Частый гость Аватар для THRESHE
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    978
    Репутация
    39
    Цитата Сообщение от S.F | CrAsH Посмотреть сообщение
    походу от С++ только одно название глядя на это то вообще мы учим какой-то примитив... )))
    Тада учись сам или работу не найдешь...

  19. Вверх #19
    Частый гость
    Пол
    Мужской
    Сообщений
    670
    Репутация
    -52
    Тада учись сам или работу не найдешь...
    так при чём здесь это я ж не на програмера учусь )
    Я помахал рукой форуму :)

  20. Вверх #20
    pHp-ProGRaMMeR Аватар для NoXX
    Пол
    Мужской
    Возраст
    33
    Сообщений
    1,690
    Репутация
    320
    можно еще и так (даже проще):
    Код:
    #include <iostream>
    #include <vector>
    using namespace std;
    void main(void)
    {
    vector<char*> L;
    char* E;
    E = 'string';
    L.insert(begin(), E);
    }
    In TRANCE I trust...


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения