Pereiti prie turinio

Objektinio užduotis (didžiausias intervalas tarp žodžių)


Rekomenduojami pranešimai

Sveiki, turiu tokią objektinio C++ problemėlę:

 

Parašyti programą su objektais, kurių metodai:

1. Iš duomenų failo nuskaitytų tekstą. Tekste visos raidės mažosios (tekstas – ne viena eilutė).

2.Pakeistų sakinių pirmąsias raides į didžiąsias.

3. Surastų visame tekste didžiausią intervalą tarp žodžių.

4. Visi rezultatai išvedami į ekraną ir rezultatų failą.

 

Kol kas turiu tik tiek:

 

int main()

{

string str;

char dot = '.' ;

int n;

 

ifstream in;

in.open("input.txt");

ofstream out;

out.open("output.txt");

while (in)

{

getline(in, str, dot);

n=str.find_first_of("abcdefghijklmnopqrstuvwxyz");

str[n]=toupper(str[n]);

cout<<str<<dot;

out<<str<<dot;

}

 

return 0;

}

 

Gal galit užvest ant kelio kaip reikėtų rasti tą intervalą ? Suprantu, kad reikia nusiskaityti 2 žodžius,bet nesugalvoju, kaip juos toliau panaudot.

Redagavo ImprezaWRX
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prie to pačio: kodėl man išveda 2 taškus gale, kai raidžių pakeitimą padarau ?

 

Programa perskaito visus sakinius, bet dar failo pabaigos neaptiko. Tada bando paskutinį kartą, nieko neperskaito ir prieina failo pabaigą. Bet tu toliau vykdai tą ciklą ir atspausdini dar vieną tašką, nes sakinys, kurį bandei perskaityti, yra tuščias. Šitaip turėtum išvengti šios problemos:

 

while (getline(in, str, dot)) { // patikrina failo stream'o būseną iškart po perskaitymo
 ..
}

 

Tarpų skaičius tarp 2 įvestų žodžių. Jeigu yra vienodų, tai imami esantys toliausiai vienas nuo kito.

 

Jeigu nori sužinoti, kiek yra tarpų tarp dviejų žodžių, tai paprasčiausia būtų susikaičiuoti, kiek tarpų yra nuo pradžios iki kiekvienio žodžio. Pavyzdžiui, jei sakinys atrodo taip:

 

[kažkiek žodžių bei X tarpų] [žodis A] [kažkiek žodžių bei Y tarpų] [žodis B] [kažkiek žodžių ir bei Z tarpų].

Nesunku pastebėti, kad nuo pradžios iki žodžio A yra X tarpų, o nuo pradžios iki žodžio B yra X+Y tarpų. Kad rastum tarpų skaičių tarp žodžių A ir B telieka atimti iš tarpų skaičiaus iki žodžio B tarpų skaičių iki žodžio A (t.y. (X+Y) - X = Y).

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...