Programavimo pamokėlės

pamokelesm

Mokymų ciklas „Programavimo pamokėlės" skirtos visiems, kurie nori išmokti programuoti.

IT galvosūkiai

itgalvosukiai

Konkurso tikslas – skatinti moksleivius domėtis IT sprendžiant įvairiausius galvosūkius.

Informikas

informikasm

Konkurso tikslas – supažindinti moksleivius su menu informacinėse technologijose ir mūsų talismanu.

Dr. J. P. Kazicko konkursai

kkonkursai

Žemaitijos, Aukštaitijos, Suvalkijos ir Dzūkijos regionuose vykdomas IT konkursas.

       
×

Įspėjimas

JUser: :_load: Nepavyko įkelti nario su id: 2966
JUser: :_load: Nepavyko įkelti nario su id: 331

#46 – Uždavinys drugio efektas

Pateikta ‘Pamokėlių konsultacija’
Tai yra vieša konsultacija. Visi žmonės gali matyti jos turinį. Todėl čia nenaudokite slaptažodžių ir kitos slaptos informacijos.
2016 Lapkritis 21, Pirmadienis 18:06 EET
 Laba diena, niekaip nepavyksta pasirašyti tinkamai tikrinimo šiam uždaviniui.
Mano sugalvotas algoritmas šiame uždavinyje galbūt nelabai tinka, bet kitaip neradau išeities:

Nusiskaitau duomenis, rašausi tikrinimo funkciją.

Tikrinimo funkcijoje perduodu string array į char array, kad išskirstyčiau raidėmis.
Galiausiai tikrinu ar pirmojo žodžio raidės, sutampa su antrojo žodžio raidėmis, viskas pavyksta su pirmu ir antru žodžiu.
Jeigu k raidės sutampa, tuomet gauname seka, ir taip einame toliau. Tikriausiai reikia naudoti ciklą cikle šiuo atvėju, bet bandymas nebuvo sėkmingas, todėl kolkas su šiuo tikrinimu stoviu:

P.S. pagrindėje funkcijoje suką ciklą visiems žodžiais su šia funkcija.

void Tikrinti(string zodziai[], char A[], int & zodziuSkaicius, string ilgiausiaZodziuGrandinele)
{
    int sk = 0, vk = 1;
    int suma = 0;
    for(int i = 0; i < zodziai[sk].length(); i++)
    {
        A[i] = zodziai[sk][i];
        if(A[i] == zodziai[vk][i]) suma++;
    }
    sk++;
    vk++;
    cout << suma << endl;
    suma = 0;
}
2016 Lapkritis 27, Sekmadienis 20:10 EET
?
2016 Lapkritis 28, Pirmadienis 00:50 EET
Sveiki

Norėdami sudaryti algoritmą tokiam uždaviniui, pradžioje turėtumėte ant popieriaus lapo susirašyti visas įmanomas žodžių grandinėles. Vaizdžiausiai visas jas padėtų atspindėti medžio struktūra, kurios viršuje yra vienas pagrindinis žodis nuo kurio pradedate tikrinimą ir toliau seka šakos kurių galuose yra žodžiai besiskiriantys nuo savo kaimyno ne daugiau kaip vienu simboliu. Tokiu pačiu principu sudarote grandinėlių medžius kiekvienam sekos žodžiui. Sekantis algoritmo žingsnis - išnaršyti kiekvieną anksčiau aprašytą medžio struktūrą ir surasti pačias ilgiausias kiekvieno medžio žodžių sekas. Kai jau turite susidaręs kiekvienam duotos sekos žodžių po visų galimų žodžių grandinėlių kombinacijų medį ir žinote, kurios sekos yra pačios ilgiausios kiekviename medyje, jums belieka palyginti jas ir surasti ilgiausią.
Jūsų medis turėtų atrodyti panašiai: Medžio struktūrai išvaikščioti ir ilgiausiai grandinėlei rasti labiausiai pagelbėtų rekursinis metodas

Sėkmės!
Į viršų