Forum » Pomoč in nasveti » c# program
c# program
Pebo111 ::
Pozdravljeni. Potrebujem pomoč pri izvedbi programa:
Izdelajte program, ki bo prebral niz znakov in določil koliko besed je v njem. Besede so med seboj ločene s poljubno kombinacijo presledkov in ločil (, . ! ; ? : -). Upoštevajte, da je lahko med besedami več kakor eno ločilo. V primeru, da je v besedi prisotna številka, naj se ta beseda pri štetju ne upošteva.
Opomba: kot besedo štejte tudi tiste podnize, ki vsebujejo samo eno črko.
Primer
Vhod: Včeraj, ko sem šel domov - s kolesom - sem naletel na napis: 1kratnih Letecih12!!? Zanimivo; res zanimivo.
Izhod: Število besed: 14.
Nesmemo uporabljati nobenih "naprednih možnosti", ampak si nekako neznam predstavljat, kako bi ta program sploh zgledal.
Vsaka pomoč bo dobrodošla, Lp
Izdelajte program, ki bo prebral niz znakov in določil koliko besed je v njem. Besede so med seboj ločene s poljubno kombinacijo presledkov in ločil (, . ! ; ? : -). Upoštevajte, da je lahko med besedami več kakor eno ločilo. V primeru, da je v besedi prisotna številka, naj se ta beseda pri štetju ne upošteva.
Opomba: kot besedo štejte tudi tiste podnize, ki vsebujejo samo eno črko.
Primer
Vhod: Včeraj, ko sem šel domov - s kolesom - sem naletel na napis: 1kratnih Letecih12!!? Zanimivo; res zanimivo.
Izhod: Število besed: 14.
Nesmemo uporabljati nobenih "naprednih možnosti", ampak si nekako neznam predstavljat, kako bi ta program sploh zgledal.
Vsaka pomoč bo dobrodošla, Lp
MisterR ::
In kje rabiš pomoč oz kje se ti je zataknilo? Prilepi programsko kodo, ki si jo spisal, da vidimo kako in kaj. Samo tako ti lahko pomagamo.
Pebo111 ::
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Stetje_besed { class Program { static void Main(string[] args) { //Definicija spremenljivk int steviloBesed = 0; string besedilo; char[] locila = { ' ', ',', '.', '!', '_', '?', '-',';',':'}; Console.WriteLine("Vnesite besedilo: "); //Vnos besedila besedilo = Console.ReadLine(); //Deljenje besedila na posamezne besede string[] besede = besedilo.Split(locila, StringSplitOptions.RemoveEmptyEntries); foreach (string beseda in besede) { Console.WriteLine("{0}", beseda); steviloBesed++; } /*foreach (string besedaa in besede) { for (int i = 0; i < besedaa.Length; i++) { if (besedaa[i] >= '0' && besedaa[i] <= '9') steviloBesed--; } } */ Console.WriteLine("Število besed: {0}", steviloBesed); Console.ReadKey(); } } }
Problem je v tem, da neznam postaviti kode tako, da mi nebi zraven štelo tudi besed, katere vsebujejo števila.
ZeleniJure ::
Nekaj podobnega kot že imaš:
Uporabi en flag (boolean ki pove če je notri kakšna številka) in prekini for zanko ko najdeš številko. Po for loopu pa preveri če si našel besedo in povečaj counter.
for (int i = 0; i < besedaa.Length; i++) { if (besedaa[i] >= '0' && besedaa[i] <= '9') steviloBesed--; }
Uporabi en flag (boolean ki pove če je notri kakšna številka) in prekini for zanko ko najdeš številko. Po for loopu pa preveri če si našel besedo in povečaj counter.
smacker ::
Regex to reši v 1 vrstici:
int steviloBesed = Regex.Matches(besedilo, @"\b\p{L}+\b", RegexOptions.CultureInvariant).Count;
ZeleniJure ::
Pebo111 ::
int steviloBesed = 0; string besedilo; bool a=true; char[] locila = { ' ', ',', '.', '!', '_', '?', '-', ';', ':' }; Console.WriteLine("Vnesite besedilo: "); //Vnos besedila besedilo = Console.ReadLine(); //Deljenje besedila na posamezne besede string[] besede = besedilo.Split(locila, StringSplitOptions.RemoveEmptyEntries); foreach (string beseda in besede) { Console.WriteLine("{0}", beseda); for (int i = 0; i < beseda.Length; i++) { if (beseda[i] >= '0' && beseda[i] <= '9') a = false; else a = true; } if(a) steviloBesed++; } Console.WriteLine("Število besed: {0}", steviloBesed); Console.ReadKey(); } } }
ZeleniJure, se igram s tem že cel dan, pa mi ne rata.
eko_2k4 ::
Cim najdes prvo stevilo v besedi postavi a na false in zapusti zanko. Kot imas sedaj je vse odvisno od zadnjega znaka v besedi :)
ZeleniJure ::
1.
Kot je napisal eko...namesto kode zgoraj daš
2. a vedno postaviš na true tik pred for zanko
Potem mislim da bi znalo bit to to...
else a = true;
Kot je napisal eko...namesto kode zgoraj daš
break;
2. a vedno postaviš na true tik pred for zanko
Potem mislim da bi znalo bit to to...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C#] Domača naloga - osnoveOddelek: Programiranje | 2482 (1699) | 11tomi12 |
» | [c#] Majhen problemčekOddelek: Programiranje | 991 (799) | darkolord |
» | Štetje besed v nizu (C#)Oddelek: Programiranje | 1056 (994) | Spura |
» | branje iz datoteke c#Oddelek: Programiranje | 1633 (1362) | darkolord |
» | c# težava delo z niziOddelek: Programiranje | 1512 (1363) | Tutankhamun |