» »

delo s stringi

delo s stringi

Eliminator ::

Zdravo!

Mene pa zanima ce mi lahko en pomaga, kako bi bi napisal program, ki bi izpisal besede glede na to ce si crke v tej besedi sledijo v narascujocem vrstnem redu... Funckijo za vnos in izpis besed ze mam.

Ne vem kako bi se lotil te naloge... Razmislal sem nekaj v tem stilu, da bi moral najprej dobiti dolzino besede, potem pa primerjat prvo crko s sosednjo in tako naprej... in dokler je naslednja crka vecja od prejsnje(glede na abecedo :D) se pac ta postopek nadaljuje in ce pride do konca potem izpise to besedo.


prosil bi za pomoc :D

švrk ::

Živjo,

no mal sem se poigral in napisal en "šušmarski" programček. Če sem prav zastopil bi ti rad, da ti iz stringa izpiše npr; jst, abcde, in,.... se pravi naraščajoče glede na abecedo. No ja takih besed ni ravno veliko:)

public class besede {

	public static String naBes(String a){
		String[] novi=besede.split(a);
		String t="";
		for (int i=0; i<novi.length; i++){
			boolean s=false;
			if(novi[i].length()==1) t=t+novi[i]+", ";
			for(int j=0; j<novi[i].length()-1; j++){
				if(novi[i].toLowerCase().charAt(j)<novi[i].toLowerCase().charAt(j+1)) s=true;
				else{s=false; break;}
			}
			if(s) t=t+novi[i]+", ";
		}	
		return t;
	}
	
	public static String[] split(String regex){
		return regex.split(" ");
	}
	
	public static void main(String[] args) {
	}
}


lp

Zgodovina sprememb…

  • spremenil: švrk ()

Spura ::

public static String naBes(String a) {
    String t = "";
    OUTER: for(String beseda: a.split(" ")) {
        char lastCh = 0;
        for(char znak: beseda) {
            if (Character.toUpperCase(lastCh) > Character.toUpperCase(znak)) {
                continue OUTER;
            } else {
                lastCh = znak;
            }
        }
        t += beseda + ", ";
    }
    return t;
}


Ista koda malo drugace.

amacar ::

Evo moj celoten program. Sicer je bolj tak tak napisan, glavno da je bilo narejeno.


//Datoteka: N23.cpp
/*Napišite program, ki prebere N besed in med njimi najde in izpiše besede, kjer si ?rke sledijo v naraš?ajo?em vrstnem redu.
Program hrani besede v polju. Napišite funkcijo, ki polje uredi padajo?e po številu ?rk v besedah.
Za branje in izpis besed napišite funkciji.
Za predstavitev besede obvezno uporabite string! Vklju?itvena datoteka: #include <string>*/
#include <iostream>
#include <string>
using namespace std;
void vnos(int stevilo, string beseda[])//funkcija za vnos besed
{
    for(int x=0;x<stevilo;x++)//zanka ki se povecuje do velikosti besed ki jih zeli uporabnik vnesti
    {
        cout<<"Vnesite besedo: ";//izpis
        cin>>beseda[x];//dolocitev polja

    }
}
void izpisi(int stevilo, string beseda[],bool izpis,int st_crk[])//funkcija za izpis
{
    for(int x=0;x<stevilo;x++)//zanka ki se povecuje do velikosti besed ki jih zeli uporabnik vnesti
    {
        cout<<beseda[x];//izpis besede
        if(izpis==true)//pogoj za izpisovanje koliko crk ima beseda
        {
            cout<<" ("<<st_crk[x]<<")";//izpise stevilo crk v oklepaju
        }
        cout<<"  ";//izpis
    }
}
void abeceda(int stevilo, string beseda[],string narascajoce[])//funkcija za preverjanje besed, ce so po abecedi
{
    string besedica;//dolo?itev spremenljivke
    int dolzina;//dolo?itev spremenljivke
    bool vrstnired;//dolo?itev spremenljivke
    cout<<endl<<"Besede z narascajocim vrstnim redom crk so: ";//izpis
    for(int x=0;x<stevilo;x++)//zanka ki se povecuje do velikosti besed ki jih zeli uporabnik vnesti
    {
        besedica=beseda[x];//iz polja izberemo niz
        dolzina=besedica.length();//izracunamo dolzino niza
        for(int y=0;y<dolzina-1;y++)//zanka ki se povecuje do velikosti besed -1 ki jih zeli uporabnik vnesti
        {
            vrstnired=false;//vedno postavimo vrstni red na false
            if(besedica[y]<besedica[y+1])// ce je crka pred ?rko v abecedi
            {
                vrstnired=true;//se vrednost postavi na true
            }
            if(vrstnired==false)//ce vrednost ostane false
            {
                break;//prekine s poizkusanjem
            }
        }
        if(vrstnired==true)//ce vrstni red po koncu zanke ostane true
        {
            narascajoce[x]=besedica;//vpiše niz v polje
        }
    }
}
void urejanje(int stevilo, string beseda[],int dolzina[])//funkcija za urejanje besed po stevilu crk
{
    int stevilo_znakov;//dolo?itev spremenljivke
    cout<<endl<<endl<<"Urejeno polje po stevilu crk v besedi: ";//izpis
    for(int x=0;x<stevilo;x++)//zanka ki se povecuje do velikosti besed ki jih zeli uporabnik vnesti
    {
        dolzina[x]=beseda[x].length();//v polje vnese dolzino vseh besed
    }
    for(int y=0;y<stevilo-1;y++)//zanka ki se povecuje do velikosti besed-1 ki jih zeli uporabnik vnesti
    {
        for(int z=0;z<stevilo-1;z++)//zanka ki se povecuje do velikosti besed-1 ki jih zeli uporabnik vnesti
        {
            if(dolzina[z]<dolzina[z+1])//ce je naslednji element manjsi od trenutnega jih zamenja, hkrati zamenja se besede v polju
            {
                int a=dolzina[z];//zacasna dolocitev
                dolzina[z]=dolzina[z+1];//trenutni element je naslednji element
                dolzina[z+1]=a;//naseldnji element je zacasni element
                string zacasno=beseda[z];//zacasna dolocitev
                beseda[z]=beseda[z+1];//trenutni element je naslednji element
                beseda[z+1]=zacasno;//naseldnji element je zacasni element
            }
        }
    }
}
int main()//glavni program
{
    int stevilo;//dolo?itev spremenljivke
    int izpis=false;//dolo?itev spremenljivke in inicializacija
    cout<<"Vnesite stevilo besed, ki jih zelite vnesti: "<<endl;//izpis
    cin>>stevilo;//vnos koliko besed bo uporabnik vnesel
    int dolzina[stevilo];//dolo?itev spolja
    string *narascajoce=new string [stevilo];//dolo?itev spolja
    string *beseda=new string [stevilo];//dolo?itev spolja
    vnos(stevilo,beseda);//klic funkcije za vnos
    abeceda(stevilo,beseda,narascajoce);//klic funkcije za preverjanje narascajocega vrstnega reda crk v besedah
    izpisi(stevilo,narascajoce,izpis,dolzina);//funkcija za izpis besed
    urejanje(stevilo,beseda,dolzina);//klic funkcije za padajoce urejanje besed po stevilu crk
    izpis=true;//izpis damo na true, da nam izpise stevilo ?rk v oklepaju
    izpisi(stevilo,beseda,izpis,dolzina);//klic funkcije za izpis besed
    return 0;
}

Lion29 ::

zelo bi pomagalo, ce bi napisal v katerem jeziku zelis program
Founder and CTO @ Article-Factory.ai

darkolord ::

Sam tko offtopic, zakaj eni tako šparate s presledki in novimi vrsticami?

Spura ::

Komentarji so prevec verbose.

int stevilo_znakov;//dolo?itev spremenljivke

To je jasno vsakemu, tega ni treba pisat. Izogibaj se nepomembnih komentarjev.
i++; // povecamo i za 1
No shit. Ce je prevec tega, potem bo vecina ljudi bolj z enim ucem brala komentarje, in bodo vcasih tut pomembne izpustil.

x3ca ::

Python:
if sorted(beseda)==beseda:
    print beseda

:D

ERGY ::

Za moje pojme na srednjih šolah preveč forsirajo komentarje pisat, predvsem nepotrebne. Kt je Spura reku so taki komentarji čist odveč. Mi pa tud ni všeč, da se tlači vse v eno vrstico pa vse skup piše, kda bo hitrej vse delal. Raje lepše napiši boš prej napake najdu. Lažje je tud drugim brat kodo in jo popravljat.


In še primer, kako se ne piše komentarjev za funkcije. To, da je funkcija za izpis je razvidno iz imena.
Bolj bi nas zanimalo kaki so vhodni argumenti(tip), in kaj funkcija vrača(tip).

void izpisi(int stevilo, string beseda[],bool izpis,int st_crk[])//funkcija za izpis
{
    for(int x=0;x<stevilo;x++)//zanka ki se povecuje do velikosti besed ki jih zeli uporabnik vnesti
    {
        cout<<beseda[x];//izpis besede
        if(izpis==true)//pogoj za izpisovanje koliko crk ima beseda
        {
            cout<<" ("<<st_crk[x]<<")";//izpise stevilo crk v oklepaju
        }
        cout<<"  ";//izpis
    }
}

amacar ::

Ker sem prišel z gimnazije programiranja sploh nisem imel, na faxu pa tudi nihče ni nič razložil kako pa kaj, tako da sem dejansko komentarje pisal samo za asistente, pa noben ni omeil, da je kaj narobe :-P. Bom pa spremenil način komentiranja :-D


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pomoč pri programiranju z javo

Oddelek: Programiranje
203600 (2527) milc
»

[Java] Objekt poslan k metodi v kakšnem stanju?

Oddelek: Programiranje
211604 (1051) shadeX
»

Java-Izdelek-Nujno

Oddelek: Programiranje
71521 (1293) iggy
»

osnove v Javi - zvezdice

Oddelek: Programiranje
403603 (2825) Tutankhamun
»

Pomoč pri Flash MX 2004

Oddelek: Programska oprema
91056 (948) Vesoljc

Več podobnih tem