Помош: Кратки програмки

Член од
24 август 2008
Мислења
11
Поени од реакции
0
ахам на тоа мислев...добро ќе се снајдам... тnx:wink:
 
D

drle

Гостин
Друже, не те разбрав баш најдобро... сакаш да направиш да речеме Бележник и одкако ќе го направиш да ја стартуваш апликацијата, потоа да пишуваш некои забелешки, да ги зачуваш и да ја изгаснеш апликацијата... потоа на наредно пуштање на апликацијата работите кои си ги напишал да ги има во програмата.

За тоа мислиш или... ?

Ако мислиш за тоа што го објаснив погоре ќе ти треба база каде што ќе се запишуваат и зачувуваат податоците кои ги внесуваш и после на наредно стартување на апликацијата истите тие податоци ќе ги вчиташ од базата каде што биле запишани.
Во случајов база е многу робусно решение. Можи да помини и со txt,xml,csv... датотеки.:smir:
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Потребно е некој класа за зачувување на поставки. Не знам јава, ама знам .нет.
Таму Visual Studio автоматки генерира класа, и поставките кои ги додаваш, дали стринг, цел број, ги додава како property во таа класата. Па ти само го задаваш или го читаш property-от. А таа генерираната класа пак внатре користи една класа понудена од самиот .нет за зачувувања на разни објекти во датотека, vo xml формат.
Затоа што јава и .нет се големи конкуренти, треба да има слично вакво во јава и нетБинс. Барај нешто за Settings.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Во случајов база е многу робусно решение. Можи да помини и со txt,xml,csv... датотеки.:smir:
Може и така :) Само мене муабетот ми беше дека му треба нешто каде што ќе бидат запишувани внесените податоци (без разлика дали тоа ќе биде класична база или некоја обична датотека) за да може да ги зачува и после со наредно стартување на апликацијата да ги вчита :)

Него Шокиран... Java SE Technologies - Database, NetBeans Database... разгледај може ќе ти се најде. :smir:
 

nozo.mk

Ultras Karpos Boys
Член од
6 септември 2007
Мислења
472
Поени од реакции
18
Имам прашање во врска со PHP/HTML .
На пример имам две Text Field контроли. И од како ќе стиснам на некое копче да ми го испечати збирот од овие полиња но без да ми ја рефрешира страницата.
Ова без врска кажав пример за собирање, муабетот ми е како да процесира некои податоци без рифреш да направи
 

диме

When Am I ?
Член од
14 февруари 2007
Мислења
806
Поени од реакции
21
Имам прашање во врска со PHP/HTML .
На пример имам две Text Field контроли. И од како ќе стиснам на некое копче да ми го испечати збирот од овие полиња но без да ми ја рефрешира страницата.
Ова без врска кажав пример за собирање, муабетот ми е како да процесира некои податоци без рифреш да направи
Ако треба да „процесираш“ некои податоци кои се само на страната на клиентот (нема потреба од прибирање податоци од серверот т.е. нема потреба од PHP) треба да користиш JavaScript.

А ако треба да прибериш податоци од серверот треба да користиш AJAX (asynchronous JavaScript and XML).

Така да и во двата случаи треба да научиш JavaScript :)
 

nozo.mk

Ultras Karpos Boys
Член од
6 септември 2007
Мислења
472
Поени од реакции
18
Кој и програмски јазик да го користам кога ке направам Submit на формата ми се рефрешира страницата
 

диме

When Am I ?
Член од
14 февруари 2007
Мислења
806
Поени од реакции
21
Кој и програмски јазик да го користам кога ке направам Submit на формата ми се рефрешира страницата
Види побарај некои туториjали за Ajax. То е то шо ти треба. :)
 
Член од
12 ноември 2005
Мислења
396
Поени од реакции
8
Zdr momci... mi treba pomosh so Perl ??? Dali nekoj ima dobri poznavanja vo taa nasoka... imam procitano vo detalji za Obj. Oriented, koncept na Perl, no imam problemi pri administriranjeto na Web serverot... ako ima nekoj PLS na PVT da mi pise...
Pozz
 

dragansk

хелоу...
Член од
2 февруари 2008
Мислења
271
Поени од реакции
4
барав нешто по нетов ама некако слабо, ми треба
мсн плус скрипта ако постои таква што ке го мења топикот кога ке се смени статусот автоматкси во away(idle)

може ли некако да се испрограмира, еве еден код од една скрипта (автоматски ги мења сликите што ти се ставени во одредена папка, на одредено време)така случајно што ја имав, и не знам кој програмски јазик ке да е ова? :)

Код:
//Plugin options
var DpPath, aLogin, aTimer, timerL, random, shuffle;
//Other variables
var displayPics;
var scriptTitle = "Display Picture Changer";
var devName = ".NET Developer For Rent";
var scriptVersionMajor = 1;
var scriptVersionMinor = 2;
//index of next picture
var picIndex = 0;
var currentPicIndex = 0;
//ActiveX Stuff
var WScript = new ActiveXObject('WScript.Shell');
var winShell = new ActiveXObject("Shell.Application");
var fsoObj = new ActiveXObject("Scripting.FileSystemObject");

////////////////
// Initialize //
////////////////
function OnEvent_Initialize(MessengerStart)
{
    if (!MessengerStart)
    {
        initialize();
    }
}

/////////////
// Sign In //
/////////////
function OnEvent_Signin(Email)
{    
    initialize();
}

////////////////////////////
// Option control Clicked //
////////////////////////////
function OnDPCOptionsEvent_CtrlClicked(PlusWnd, ControlId)
{
    switch (ControlId)
    {
        case "BtnOk":
            optionsOKClicked(PlusWnd);
            break;
        case "BtnBrowse":
            optionsBrowseClicked(PlusWnd);
            break;
    }
}

//////////////////////////////
// Option button OK Clicked //
//////////////////////////////
function optionsOKClicked(PlusWnd)
{
    DpPath = PlusWnd.GetControlText('EdtDpDir');
    //strip leading spaces
    while(DpPath.indexOf(' ') == 0)
    {
        DpPath = DpPath.substr(1);
    }
    aLogin = PlusWnd.Button_IsChecked('CkAutoLogin');
    aTimer = PlusWnd.Button_IsChecked('CkAutoRotate');
    if (isNaN(PlusWnd.GetControlText('EdtRTime')))
    {
        timerL = 60000;
    }
    else
    {
        timerL = PlusWnd.GetControlText('EdtRTime') * 1000;
    }
    random = PlusWnd.Button_IsChecked('RadRandom');
    shuffle = PlusWnd.Button_IsChecked('CkShuffle');
    if(Messenger.MyEmail != "")
    {
        SaveSettings(Messenger.MyEmail);
    }
    populateDp();
    if(aTimer)
    {    
        ChangeDp();    
    }
    PlusWnd.Close(1);
}

//////////////////////////////////
// Option button browse Clicked //
//////////////////////////////////
function optionsBrowseClicked(PlusWnd)
{
    PlusWnd.SetControlText('EdtDpDir', browseFolderDialog());
}

//////////////////
// Menu Clicked //
//////////////////
function OnEvent_MenuClicked(MenuItemId, Location, OriginWnd)
{
    switch (MenuItemId)
    {
        case "Options":
            displayOptions();
            break;
        case "Change":
            ChangeDp();
            break;
        case "Steal":
            if (Location == 2)
            {
                StealDp(OriginWnd);
            }
            else
            {
                MsgPlus.DisplayToast(scriptTitle + " v " + scriptVersionMajor + "." + scriptVersionMinor, "Call this function from the chatwindow of the contact you wish to steal the display picture from.", "", "");
            }
            break;
        case "Delete":
            DeleteDp();
            break;
        case "Reload":
            reloadDpList();
            break;
        case "StartRotate":
            rotationStart();
            break;
        case "StopRotate":
            rotationStop();
            break;
        case "About":
            displayAbout();    
            break;
    }
}

///////////////////////////
// About Control Clicked //
///////////////////////////
function OnWndAboutEvent_CtrlClicked(PlusWnd, ControlId)
{    
    switch (ControlId)
    {
        case "gotowebsite":
            WScript.run("http://www.dotnetdeveloperforrent.be");
            PlusWnd.Close(1);
            break;
        case "lblOptions":
            displayOptions();
            PlusWnd.Close(1);
            break;
        case "lblChange":
            ChangeDp();
            break;
        case "lblDelete":
            DeleteDp();
            break;
        case "lblReload":
            reloadDpList();
            break;
        case "lblRotateStart":
            rotationStart();
            break;    
        case "lblRotateStop":
            rotationStop();
            break;
    }
}

//////////////
// Commands //
//////////////
function OnEvent_ChatWndSendMessage(ChatWnd, Message)
{
    var m = Message.toLowerCase();
    switch (m)
    {
        case "/dpcoptions":
            displayOptions();
            return "";
        case "/dpcchange":
            ChangeDp();
            return "";
        case "/dpcsteal":
            StealDp(ChatWnd);
            return "";
        case "/dpcdelete":
            DeleteDp();
            return "";
        case "/dpcreload":
            reloadDpList();
            return "";
        case "/dpcrotatestart":
            rotationStart();
            return "";
        case "/dpcrotatestop":
            rotationStop();
            return "";    
        case "/dpcabout":
            displayAbout();    
            return "";
        case "/dpcstealsilent":
            //not documented
            StealDpSilent(ChatWnd);    
            return "";
    }
    return Message;
}

////////////////////
// start rotation //
////////////////////
function rotationStart()
{
    if (!aTimer)
    {
        aTimer = true;
        ChangeDp();
    }
}

////////////////////
// stop rotation //
////////////////////
function rotationStop()
{
    aTimer = false;
    stopTimer();
}

////////////////
// initialize //
////////////////
function initialize()
{    
    if(Messenger.MyEmail != "")
    {    
        GetSettings(Messenger.MyEmail);
        populateDp();
        if( aLogin )
        {    
            ChangeDp();    
        }
        else if (aTimer)
        {
            startTimer();
        }
    }
    else
    {
        initOptions();
    }
}

///////////////////////////////
// Initialize plugin options //
///////////////////////////////
function initOptions()
{
    DpPath = WScript.SpecialFolders("MyDocuments");
    if (DpPath == null || DpPath == '')
    {
        DpPath = "C:\\";
    }
    aLogin = true;
    aTimer = true;
    timerL = 60000;
    random = false;
    shuffle = true;
    displayPics = new Array();
}

////////////////////////////////////
// Steal Display picture Silently //
// (Undocumented)                  //
////////////////////////////////////
function StealDpSilent(ChatWnd)
{
    var contact = (new Enumerator(ChatWnd.Contacts)).item();
    var dp = contact.DisplayPicture;
    if (dp != "")
    {
        if(fsoObj.FileExists(dp))
        {
            var baseName = fsoObj.GetBaseName(dp);
            var ext = fsoObj.GetExtensionName(dp);
            if (ext == "")
            {
                ext = "png";
            }
            var newPath = fsoObj.BuildPath(DpPath, baseName + "." + ext);
            var count = 1;
            while (fsoObj.FileExists(newPath))
            {
                newPath = fsoObj.BuildPath(DpPath, baseName + "[" + count + "]." + ext);
                count++;
            }
            fsoObj.CopyFile(dp, newPath);
            MsgPlus.DisplayToast(scriptTitle + " v " + scriptVersionMajor + "." + scriptVersionMinor, "Display Picture stolen silently!", "", "");
        }
    }
    else
    {
        MsgPlus.DisplayToast(scriptTitle + " v " + scriptVersionMajor + "." + scriptVersionMinor, "Contact has no display picture", "", "");
    }
}

///////////////////////////
// Steal Display picture //
///////////////////////////
function StealDp(ChatWnd)
{
    //stop timer to not interrupt functionality
    stopTimer();
    var contact = (new Enumerator(ChatWnd.Contacts)).item();
    var dp = contact.DisplayPicture;
    if (dp != "")
    {
        if(fsoObj.FileExists(dp))
        {
            var baseName = fsoObj.GetBaseName(dp);
            var ext = fsoObj.GetExtensionName(dp);
            if (ext == "")
            {
                ext = "png";
            }
            var newPath = fsoObj.BuildPath(DpPath, baseName + "." + ext);
            var count = 1;
            while (fsoObj.FileExists(newPath))
            {
                newPath = fsoObj.BuildPath(DpPath, baseName + "[" + count + "]." + ext);
                count++;
            }
            fsoObj.CopyFile(dp, newPath);
            currentPicIndex = displayPics.length;
            picIndex = 0;
            displayPics[currentPicIndex] = newPath;
            Messenger.MyDisplayPicture = newPath;
            var chat = Messenger.OpenChat(contact.Email);
            if (chat != null && chat.EditChangeAllowed)
            {
                chat.SendMessage("/me has stolen (!N)'s Display Picture! (6)\n\n[B]'" + scriptTitle + "'[/B]\n(-- " + devName + " --)\n\n");
            }
            MsgPlus.DisplayToast(scriptTitle + " v " + scriptVersionMajor + "." + scriptVersionMinor, "Display Picture stolen!", "", "");
        }
    }
    else
    {
        MsgPlus.DisplayToast(scriptTitle + " v " + scriptVersionMajor + "." + scriptVersionMinor, "Contact has no display picture", "", "");
    }
    //restart timer
    if (aTimer)
    {
        startTimer();
    }
}

////////////////////////////
// Delete Display picture //
////////////////////////////
function DeleteDp()
{
    //stop timer to not interrupt functionality
    stopTimer();
    var retVal = WScript.Popup("Current display picture will be removed from the list!\nDo you also want to remove the display picture from the filesystem?", 60, "Delete Display Picture", 4+32);
    var tmp = displayPics.splice(currentPicIndex,1);
    ChangeDp();
    MsgPlus.DisplayToast(scriptTitle + " v " + scriptVersionMajor + "." + scriptVersionMinor, "Display Picture removed from list", "", "");
    if (retVal == 6)
    {
        if(fsoObj.FolderExists(DpPath))
        {    
            var dir = fsoObj.GetFolder(DpPath);
            fsoObj.DeleteFile(tmp[0], true);
            MsgPlus.DisplayToast(scriptTitle + " v " + scriptVersionMajor + "." + scriptVersionMinor, "Display Picture removed from filesystem", "", "");        
        }
    }
}

////////////////////////////
// Change Display Picture //
////////////////////////////
function ChangeDp()
{
    stopTimer();
    if(displayPics != "" && displayPics.length > 0)
    {
        if (random)
        {
            currentPicIndex = Math.floor(Math.random()*displayPics.length);
            fileName =  displayPics[currentPicIndex];
        }
        else
        {
            currentPicIndex = picIndex;
            fileName = displayPics[currentPicIndex];
            picIndex++;
            if (picIndex >= displayPics.length)
            {
                picIndex = 0;
            }
        }
        try
        {
            if (fsoObj.FileExists(fileName))
            {
                Messenger.MyDisplayPicture = fileName;
            }
        }
        catch(exception){}
        //restart timer
        if (aTimer)
        {
            startTimer();
        }
    }
    else
    {
        MsgPlus.DisplayToast(scriptTitle + " v " + scriptVersionMajor + "." + scriptVersionMinor, "No pictures in current folder", "", "displayOptions");    
    }
}

//////////////////////////
// Browse Folder Dialog //
//////////////////////////
function browseFolderDialog()
{
    var folder = winShell.BrowseForFolder(0, "Select the directory containing your display pictures. No other pictures should be contained with this directory.", 0, 0);
    var fPath = "";
    if (folder != null)
    {
        if (folder.Items() != null)
        {
            if (folder.Items().Item() != null)
            {
                fPath = folder.Items().Item().Path;
            }
        }
    }
    if (fPath == "")
    {
        fPath = DpPath;
    }
    return fPath;
}

////////////////////////////
// Display Options Window //
////////////////////////////
function displayOptions()
{    
    plusWnd = MsgPlus.CreateWnd('windows.xml', 'DPCOptions');        
    plusWnd.SetControlText('EdtDpDir', DpPath);
    plusWnd.Button_SetCheckState('CkAutoLogin', aLogin);
    plusWnd.Button_SetCheckState('CkAutoRotate', aTimer);
    plusWnd.SetControlText('EdtRTime', (timerL / 1000));
    plusWnd.Button_SetCheckState('RadRandom', random);
    plusWnd.Button_SetCheckState('RadSlide', !random);
    plusWnd.Button_SetCheckState('CkShuffle', shuffle);
}

////////////////////////////
// Display About Window //
////////////////////////////
function displayAbout()
{    
    MsgPlus.CreateWnd('about.xml', 'WndAbout');
}

/////////////////////////////////////
// Reload Display Pictures Array //
/////////////////////////////////////
function reloadDpList()
{
    populateDp();
    currentPicIndex = 0;
    picIndex = 0;
    ChangeDp();
}



}
 

dragansk

хелоу...
Член од
2 февруари 2008
Мислења
271
Поени од реакции
4
Код:
/////////////////////////////////////
// Populate Display Pictures Array //
/////////////////////////////////////
function populateDp()
{        
    if(fsoObj.FolderExists(DpPath))
    {    
        Dir = fsoObj.GetFolder(DpPath);
        Files = new Enumerator(Dir.files);    
        displayPics = new Array();
        while(!Files.atEnd())
        {    
            File = Files.item();
            fExt = fsoObj.GetExtensionName(File.Name).toLowerCase();
            if(fExt == "jpg" || fExt == "gif" || fExt == "bmp" || fExt == "png")
            {    
                displayPics[displayPics.length] = File;    
            }
            Files.moveNext();
        }
        if (shuffle)
        {
            shuffleDp();
        }
    } 
    else
    {
        MsgPlus.DisplayToast(scriptTitle + " v " + scriptVersionMajor + "." + scriptVersionMinor, "Directory " + DpPath + " does not exist.", "", "displayOptions");        
    }
}

////////////////////////////////////
// Shuffle Display Pictures Array //
////////////////////////////////////
function shuffleDp()
{
    var tmp = new Array();
    while (displayPics.length > 0)
    {
        var i = Math.floor(Math.random()*displayPics.length);
        if (i > displayPics.length - 1) i = displayPics.length - 1;
        tmp[tmp.length] = displayPics.splice(i,1)[0];
    }
    displayPics = tmp;
}
/////////////////
 // Start Timer //
 /////////////////
 function startTimer()
 {
     if(aTimer)
     {
         MsgPlus.AddTimer("PDCTimer", timerL);    
     }
 }
 
 /////////////////
 // Stop Timer //
 /////////////////
 function stopTimer()
 {
     MsgPlus.CancelTimer("PDCTimer");
 }
 
 /////////////////
 // Event Timer //
 /////////////////
 function OnEvent_Timer(TimerId)
 {
     if(TimerId == "PDCTimer")
     {
         if (aTimer)
         {
             ChangeDp();
         }
         else
         {
             stopTimer();
         }
     }
 }
 
 //////////////////////
 // Get The Settings //
 //////////////////////
 function GetSettings(email)
 {
     try 
     {            
         DpPath = WScript.RegRead(MsgPlus.ScriptRegPath + email + '\\DpPath');
         timerL = WScript.RegRead(MsgPlus.ScriptRegPath + email + '\\timerL');
         aLogin = (WScript.RegRead(MsgPlus.ScriptRegPath + email + '\\aLogin') == "Yes");
         aTimer = (WScript.RegRead(MsgPlus.ScriptRegPath + email + 
 '\\aTimer') == "Yes");
          random = (WScript.RegRead(MsgPlus.ScriptRegPath + email + '\\random') == "Yes");
          shuffle = (WScript.RegRead(MsgPlus.ScriptRegPath + email + '\\shuffle') == "Yes");
          if(timerL < 1000 || timerL > 86400000)
          { 
              timerL = 1800000;
          }
      } 
      catch(exception)
      {
          initOptions();
          SaveSettings(email);
      }
  }
  
  ///////////////////////
  // Save The Settings //
  ///////////////////////
  function SaveSettings(email)
  {
      try 
      {
          var tLogin,tTimer,trandom,tshuffle;
          tLogin = (aLogin?"Yes":"No");
          tTimer = (aTimer?"Yes":"No");
          trandom = (random?"Yes":"No");
          tshuffle = (shuffle?"Yes":"No");
          if(timerL < 1000 || timerL > 86400000)
          {
              timerL = 1800000;
          }
          WScript.RegWrite(MsgPlus.ScriptRegPath + email + '\\DpPath', DpPath);
          WScript.RegWrite(MsgPlus.ScriptRegPath + email + '\\aLogin', tLogin);
          WScript.RegWrite(MsgPlus.ScriptRegPath + email + '\\aTimer', tTimer);
          WScript.RegWrite(MsgPlus.ScriptRegPath + email + '\\timerL', timerL);
          WScript.RegWrite(MsgPlus.ScriptRegPath + email + '\\random', trandom);
          WScript.RegWrite(MsgPlus.ScriptRegPath + email + '\\shuffle', tshuffle);                 
      } 
      catch(exception){}
еве уште еден код, овој нешто става кај тебе на топик колку души ти се пуштени, со кој и со колку луге збориш

Код:
// Done by Tomaz
// Thanks to Slash !
var online;
var offline;
var nchat;
var nomecontatto;
var chat;

function ContaContatti(){
    online=0;
    offline=0;
    var Contacts = Messenger.MyContacts; 
    for(var e = new Enumerator(Contacts); !e.atEnd(); e.moveNext()){
        item = e.item();
        if(item.Status != 1 && item.Status != 0){
        online++;
        }
        offline++;
        }
}

function ContaChat(){
    nchat=Messenger.CurrentChats.Count;
    if (nchat=="0"){
        nchat="[c=4]"+nchat+"[/c] ";
    }else{
        nchat="[c=9]" + nchat + "[/c] ";
    }
}


function OnEvent_Timer(timer1){
    var inizio="[a=1][c=0]";
    var fine="[/a][/c]";
    var barra="|";
    var messpers;
    ContaChat();
    ContaContatti(); 
    messpers= inizio + " Opened chats : " + nchat + barra;
    messpers+= " Online : " + "[c=9]" + online + "[/c]/[c=4]" + offline +"[/c] "+ barra;
    if(nomecontatto=="[c=4]No-one[/c] ")
        messpers+= " Talking with : " + nomecontatto + fine;
    else
        messpers+= " Talking with : " +"[c=9]" + nomecontatto + "[/c]"+ fine;
    Messenger.MyPersonalMessage=messpers;
    MsgPlus.AddTimer("timer1",500);
}

function OnEvent_Signin(Email){
    nomecontatto="[c=4]No-one[/c] ";
    MsgPlus.AddTimer("timer1",500);
}

function OnEvent_Initialize(MessengerStart){
    nomecontatto="[c=4]No-one[/c] ";
    MsgPlus.AddTimer("timer1",500);
}

function Amp(){
    nomecontatto="[c=4]No-one[/c] ";
    MsgPlus.AddTimer("timer1",500);
}

function Dmp(){
    MsgPlus.CancelTimer("timer1");
    Messenger.MyPersonalMessage="";
}

function OnEvent_ChatWndSendMessage(ChatWnd,message){
    if(message == '/Amp'){
           Amp();    
           return "";
     }
     if(message == '/Dmp'){
          Dmp();
           return "";
     }
        return message;
}

function OnEvent_MenuClicked(MenuItemId,Location,ChatWnd) {
   switch(MenuItemId) {
      case 'Amp':               
         Amp();
       break;
       case 'Dmp':
        Dmp();        
        break;
   }
}

function OnEvent_ChatWndReceiveMessage(ChatWnd,Origin,Message,MessageKind){
    var backup;
    chat=ChatWnd;
    contatto=ChatWnd.Contacts;
    if(contatto.Count == 1) {
            var e = new Enumerator(contatto);
            var Cnt = e.item();
            nomecontatto = Cnt.Email.split("@");
            nomecontatto = nomecontatto[0];
    }

}

function OnEvent_ChatWndDestroyed(ChatWnd){
    if(chat.Handle==ChatWnd.Handle){
        nomecontatto="[c=4]Nessuno[/c] ";
    }
}

function OnEvent_ChatWndCreated(ChatWnd){
    var contatto;
    chat=ChatWnd;
    contatto=ChatWnd.Contacts;
    if(contatto.Count == 1) {
            var e = new Enumerator(contatto);
            var Cnt = e.item();
            nomecontatto = Cnt.Email.split("@");
            nomecontatto = nomecontatto[0];
    }
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
За овие погоре. Може да се испрограмира скрипта, јазикот е JScript и работи преку Windows Script Host. Msg plus изложува свој API и така работи тоа. Треба да се прочита документацијата за апи то и тоа е тоа. Немам windows live mesenger (и не мислам да имам - Miranda IM со додатоците FTW) па неможам да тестирам ништо па толку од мене за тоа.

Сега ако може некој мене да ми помогне. Една задача е.

Ја сведов до ова. Имаш неколку купчиња. Во мојов слушај го знаеме бројот на елементи во купчето, но тоа не менува ништо, решението би било слично ако не интересираа самите елементи.
Затоа што не интересира само бројот, имам неколку цели броеви наместо неколку низи (arrays).
Вкупниот број ни е познат од почетокот. Сите купчиња имаат одреден капацитет, во случајов 9.
Тие се празни. Ги полниме така што прво го полниме првото цело, потоа второто цело, и пример, трето колку што останало. Четвртото останува празно. (во задачава имаме 4 купчиња). Доколку не интересираа самите елемени ќе користевме податочна структура Stack (array, покажувач кон последен елемент и push(int) и int pop() методи)

Чим сме ги пополниле купчињата, зема еден објект од едно го преместуваме од друго, земаме друг објект од некое, го ставаме во некое. Ако на почетокот првото купче е цело исполенто а второто до половина, на крајот треба последното да биде цело, а претпоследното до половина.

Во случајов наместо да преместуваме, од едниот цел број ќе намалуваме за 1, а во друг ќе додаваме 1.

Според мене, алгоритмот би бил рекрзувен, со сличности со алгоритам за пермутации.
Јазикот не е важен, ц, ц++, псеудо, било што.
Однапред благодарам.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Не те сватив баш што точно сакаш... т.е. која е крајната цел не ја сватив... До кај си стигнал со решавање на задачава ?

Едноставно решение за полнење на купчињата ако се познати сите елементи:
Код:
int brojki[18] = {3,6,7,12,32,34,54,56,33,17,14,45,63,56,51,87,99,47};
int kupchinja[4][9]; // 4 купчиња со капацитет 9 елементи
int brojac = 0;
for(int i=0; i<4; i++){
for(int j=0; j<9; j++){
brojac++;
if(brojac<18){
kupchinja[i][j]=brojki[brojac];
}
else
{
kupchinja[i][j]=NULL; // Празните ќе бидат нули
}
}
}
(можда имам синтаксичка грешка...)

...е сеа не сватив каде и како треба да се преместуваат...
Како и да мислам дека ќе ти треба динамичко програмирање за да ја решиш целосно и точно задачата.
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Тоа го направив. Тоа не е проблемот. Сега ми го напиша полнењето на купчињата.

Е сега. Ми требаат сите можни позиции на објекти низ тие купчиња. Пример првото е полно прво со 9 објекти а второто со 5. После првото со 8 второто со 5 третото со 1, после 9 4 1, итн. После секое вакво преместување тие ќе се печатат (или ќе се повикува callback функција, тоа не е важно. или едноставно обична фикс функција не треба callback).
И самите објеки не се важни, туку само бројот на објекти во некое купче.
Значи наместо int kupchinja[4][9]; дефинираме само kupchinja[4];
За пример, почетокот нека е kupchinja[0] = 9; kupchinja[1] = 5; kupchinja[2] = 0; kupchinja[3] = 0;

Сега следува рекурзивен алгоритам.
 

Kajgana Shop

На врв Bottom