Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Малко помощ, ако може за Курсов проект

Featured Replies

Здравейте!Имам нужда от малко помощ по тази програма на C++: 
Съставяне на два динамично представени стека с целочислени данни,съдържащи се във външен файл. 
Сортиране на елементите в двете структури по метод чрез размяна (метод на мехурчето). 
Изграждане на подредена динамична структура дек,съдържащ елементите на двата стека и намиране на най-малкото число по-голямо от средноаритметичната стойност на всички елементи в дека. 
Запис на изходните резултати във външен файл. 
Ето до къде съм стигнал: 
#include <iostream> 
using namespace std; 

struct elem 

int key; 
elem *next; 

} *P,*N; 

void push(int n, elem *&start) 

elem *p = start; 
start = new elem; 
start -> key=n; 
start -> next=p; 

int pop(int &n, elem *&start) 

if(start) 

elem *p=start; 
n=start->key; 
start=start->next; 
delete p; 
return 1; 

else return 0; 

void bubbleSort2(elem *N[], int& n) 
{ int i=1, j, k; 
for (i=0; i<n-1; i++)  
for (j=n-1; j>=i; j--) 
if (P[j].key > P[j+1].key) { 
k=(int) N[j]; N[j]=N[j-1]; k=(int) N[j-1]; 
k = j; 


void bubbleSort3(elem *P [], int &n) 
{ int i=1, j, k; 
for (i=n; i<n-1; i++)  
for (j=n-1; j>=i; j--) 
if (N[j].key > N[j+1].key) { 
k=(int) P[j]; P[j]=P[j-1]; k=(int)P[j-1]; 
k = j; 

void main() 

int n=1; 
while(n) 

cout<<"\n Vuvedi cifra: "<<endl; 
cin>>n; 

if(n>0) 
{ push(n,P); 


else 

if(n<0) 
push(n,N); 



while(pop(n,P)) 

cout<<" "<<n<<"\t"; 
cout<<"Sortirane1"<<endl; 
bubbleSort2( &N,n); 
while(pop(n,N)) 

cout<<" "<<n<<"\t"; 
cout<<"Sortirane2"<<endl; 
bubbleSort3(&P,n); 
cout<<endl; 
}

Не е по условието, а по-скоро по това което си написал досега.

#include <iostream> 
using namespace std; 

struct elem 
{ 
    int key; 
    elem *next; 
}; 

void push(elem *&start, int n) 
{ 
     elem *p = start; 
     start = new elem; 
     start -> key=n; 
     start -> next=p; 
} 

int pop(elem *&start) 
{ 
    elem *p=start; 
    int  n=start->key; 
    start=start->next; 
    delete p; 
    return n; 
} 


void  print(elem* S)
{
     while(S)
     {
          cout<<S->key<<"  ";
          S = S->next; 
     }
     cout<<endl;
}

void bubblesort(elem* &S)
{
     elem *T=NULL;
     int n, flag;
     if (S==NULL) return;
     do
     {
         n=pop(S);
         flag=0;
         while (S)
         {
             if (S->key < n) 
             {
                 push(T,pop(S));
                 flag=1;
             } else {
                 push(T,n);
                 n=pop(S);
             } 
         }
         push(S, n);
         
         while (T) push(S,pop(T));
         
     } while (flag);
}

int main() 
{ 
    int n; 
    elem *P = NULL;
    elem *N = NULL;
    do 
    { 
         cout<<"Vuvedi cifra: "; 
         cin>>n; 

         if(n>0) push(P, n);
         else if (n<0) push(N, n);
    } while (n);
    
    print(N);
    cout<<"Sortirane1"<<endl; 
    bubblesort(N); 
    print(N);
    
    print(P);
    cout<<"Sortirane2"<<endl; 
    bubblesort(P); 
    print(P);
    cout<<endl; 
}

 

а ако смяташ че сортиране с използаване само на командите push() и pop() и втори спомагателен стек е прекалено бавно и неефективно може да сортираш директно вътре в стека.

 

void bubblesort(elem *&S)
{
     elem *T;
     int n, flag;
     if (S==NULL) return;
     do
     {
         flag=0;
         T = S;
         while (T->next)
         {
             if (T->next->key < T->key) 
             {
                 n=T->key;
                 T->key=T->next->key;
                 T->next->key=n;
                 flag=1;
             }
             T = T->next;
         }
     } while (flag);
}

 

Редактирано от ined (преглед на промените)

А функцията за запис на изходните резултати във външен файл, така ли би трябвало да стане?Също искам да попитам, ако трябва данните от различните стекове да се записват в различни файлове, как ще се получи?

void zapisfail(elem* S){
ofstream vfail("file.txt");
if(!vfail){
cout<<"Error";
return;
}
while(S){
vfail<<S->key<<" ";
S=S->next;
}
cout<<endl;
vfile.close();
}

Както и другата функция за извеждане на съдържанието на файла, така ли трябва да се получи?

void izvejdanefail(){ 
	vfail.open("file.txt");
	string line;
	while (getline(vfail, line)){
		getline(vfail, line);
		cout << line << endl;
	}
	file.close();
}

Някой?

Редактирано от notorious19 (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.