#include #include #include #include #include using namespace std; #include "fiboqueue.h" #include "storelist.h" #include "standaard.h" #include "leestekst.h" #include "communiceer.h" #define sv1 999 #define sv7 100000 #define sv57 12 ifstream sv42;ofstream sv41;ofstream sv412;char sv58[sv57+1][30]= {"","Insert","DeleteMin","DeleteMin (2)","Decrease", "Delete","Show","Merge","Empty","Empty (2)","Reset","Switch","Stop"};bool sv14, sv16;int sv8,sv9,sv6,sv15;scl2*sv17,*sv18,*sv20,*sv19;FiboQueue*q1,*q2,*q,*sv21; #define sv59 43 void sf3(char sv22[30],char sv24[30],char sv25[30]){int sv30; sv30=strcspn(sv22,".");strncpy(sv24,sv22,sv30);sv24[sv30]=EOS; strcat(sv24,".uit");strncpy(sv25,sv22,sv30);sv25[sv30]=EOS;strcat(sv25,".con"); }/*sf3*/void sf4(int&Min,int&sv10){ cout<<"U kunt een minimale en een maximale waarde aangeven\n"; cout<<" voor de getallen in de Fibonacci rij.\n";Min=sf21(sv14,sv42,sv41,sv412, "Geef een minimale waarde",' ',-sv1,sv1," ActMin"); sv10=sf21(sv14,sv42,sv41,sv412,"Geef een maximale waarde",' ', Min,sv1," ActMax");}void sf5(){sv6=sv7;sv15=1;sv17=new scl2(sv8,sv9); sv18=new scl2(sv8,sv9);sv20=sv17;sv19=sv18;q1=new FiboQueue;q2=new FiboQueue; q=q1;sv21=q2;}void sf6(){delete q1;delete q2;delete sv17;delete sv18;} void sf7(FiboQueue*q,int N){int sv31,i,r,p,sv32;float fr;QValueTp sv5; cout<<"Geef een positieve gehele waarde voor de random seed\n"; cout<<" (<= 0 betekent: geen nieuwe seed) : ";if(sv14)cin>>sv31;else{sv42>>sv31; sf22(sv42);cout<0)srand(sv31); if(N<=sv59){cout<sf24(sv5,q->Insert(sv5));sv6--;if(N<=sv59) {cout<sf24(sv5,q->Insert(sv5));sv6--;}} void sf9(FiboQueue*q){int N;bool sv114;char sv61='j'; cout<<"Hoeveel knopen wilt u invoeren, nog maximaal "<>N;else{sv42>>N;sf22(sv42);cout<sv6))cout<<"Verkeerd aantal.\n";else if(N>=1) {cout<<"U kunt de waarde(s) zelf invoeren, of u kunt ze random laten genereren.\n"; sv114=(N<=sv59);sv61=sf30(sv14,sv42,sv41,sv412,sv114,"Wilt u ze zelf invoeren"); if(sv61=='N')sf7(q,N);else sf8(q,N);}}void sf10(FiboQueue*q,bool sv62) {QValueTp sv5;FiboNode*sv11;if(!q->IsEmpty()){sv11=q->Min;sv5=q->Minimum(); sv20->sf18(sv5,sv11);sv5=q->DeleteMin();sv6++; cout<<"We hebben de (minimale) waarde "<>sv3;else{sv42>>sv3;sf22(sv42);cout<sv9))cout<<"Verkeerde waarde.\n";else if(!sv20->sf17(sv3)) {cout<<"Deze waarde stond nog niet in de Fibonacci rij.\n"; cout<<"We kunnen haar dus zeker niet verlagen.\n";}else {cout<<"Geef een nieuwe waarde voor deze knoop,\n"; cout<<" minimaal "<>sv4;else {sv42>>sv4;sf22(sv42);cout<=sv3))cout<<"Verkeerde waarde.\n";else{sv12=sv20->sf18(sv3); q->Decrease(sv12,sv4);sv20->sf24(sv4,sv12);}}}void sf25(FiboQueue*q){ cout<<"Helaas ... deze methode hoeft niet ge-implementeerd te worden\n";} void sf26(FiboQueue*q,bool sv62){QValueTp sv5,sv63;FiboNode*sv11;bool sv64,sv65; if(!q->IsEmpty()){cout<<"We proberen `Decrease' te gebruiken om het minimum\n"; cout<<" van de Fibonacci rij op te hogen\n";sv11=q->Min;sv5=q->Minimum(); q->Decrease(sv11,sv5+1);if((q->Minimum()!=sv5)||(q->Min!=sv11)) {sv20->sf18(sv5,sv11);sv20->sf24(sv5+1,sv11);}}sv64=q->IsEmpty();sv63=sv8; sv65=true;cout<< "We maken de lijst leeg en komen daarbij de volgende waardes tegen:\n"; while(!q->IsEmpty()){sv11=q->Min;sv5=q->Minimum();sv20->sf18(sv5,sv11); sv5=q->DeleteMin();sv6++;cout<=sv63)sv63=sv5;else sv65=false;}if(!sv64){cout<Min;sv5=q->Minimum();sv20->sf18(sv5,sv11);sv5=q->DeleteMin(); cout<<"Daarbij treffen we aan : "<>sv33;else{sv42>>sv33;sf22(sv42); cout<=1)&&(sv33<=sv57)){sf23(sv41,sv33,"","");}else {sf23(sv41,sv33,"","");}}cout<Show();break;case 7:q->Merge(sv21); sv20->Merge(sv19);break;case 8:sf26(q,true);break;case 9:sf26(q,false);break; case 10:sf6();sf5();break;case 11:sf91();break;case 12:break; default:cout<<"Verkeerde invoer. Probeer het nog eens.\n";}}while(sv33!=12); sf6();if(!sv14){sv41.close();sv42.close();}if(sv16){sv65=sf27(sv24,sv25); if(sv65)cout<<"GELIJK\n";else cout<<"NIET GELIJK\n";}return 0;}