» »

Pomoč pri programčkih

Pomoč pri programčkih

jacki ::

a bi mi lohka napisu en dva zlo kratka programčka, k rabmo za šolo
1)program, ki izpiše vse večkratnike števila 3 med naravnima št. n in m, pri čemer n in m vnesemo
2)program, ki poljubno ime napiše tako da vsak samoglasnik napiše 5x (npr. Jacki-> Jaaaaackiiiii)
pa če je lohka napisan u visual studiu, kot console aplication, pa u C#

jacki ::

pa sm še čisti začetnik tko d sam tega ne znam

hvala že vnaprej za pomoč

norcuron ::

Pri prvem programčku naredi FOR zanko, ki ti teče od n do m, znotraj zanke preverjaj ostanke pri deljenju s 3, če ni ostanka, število izpiši.

Pri drugem programčku komot ponucaš FOREACH zanko, da se ti sprehodi skozi niz ali pa FOR zanko, edino pri FOR zanki si shraniš dolžino niza, da veš koliko iteracij potrebuješ. V zanki preverjaš pač, če si naletel na samoglasnik in ga 5x ponoviš.

Problema sta tako enostavna, da ne bi smela biti problem niti za začetnika. Če pa ne poznaš strukture zank, ti jo zna VS lepo vstavit. Kar tako verjetno nisi dobil za sestavit tole brez, da bi dobil prej kakšno gradivo za pomoč. Sicer je pa C# začetniških tutorialov na netu res veliko morje.

Lenobe pač ne podpiramo, lahko pa pokažeš kaj ti je uspelo sestavit in kaj ti dela probleme.
Great are mysteries of the mind ... or not?

Mitja Bonča ::

To je za 1. tvoje vprašanje, a bo vredu? Številka 3 je konstanta, kot si hotel, lahko se pa še naredi da jo sam vneseš!
Ok, upam da si zadovoljen:

class Program
{
static void Main(string[] args)
{
int števec = 0;
int število = 0;
int m = 0;
int n = 0;
Console.WriteLine("Programček bo izpisal vse večkratnike števila 3, za vaša izbran naravna števila!");
Popravek:
if (m == 0)
Console.WriteLine("Vpišite naravno število m:");
else if (n == 0)
Console.WriteLine("Vpišite še naravno število n:");

string odgovor = Console.ReadLine();
//preverjanje če je vneseno res število:
bool boolŠtevilo = false;
boolŠtevilo = int.TryParse(odgovor, out število);
if (boolŠtevilo)
{
if (m == 0)
{
m = število;
goto Popravek;
}
else if (n == 0)
n = število;
if (n < m)
{
Console.WriteLine("Naravno število n je manjše od naravnega števila m. Prosim popravite število n.");
Console.ReadLine();
goto Popravek;
}
if (m > 0 && n > 0)
{
for (int i = m; m < n; m++)
{
//POGLEDA SE ALI IMA ŠTEVILO OSTANEK
int ostanekDeljenja = m % 3;
if (ostanekDeljenja == 0)
{
if (števec == 0)
{
Console.WriteLine("");
Console.WriteLine("Lista vseh naravnih števil, med številoma {0} in {1}, ki so deljiva s številom 3:", m, n);
}
// ČE ŠTEVILO NIMA OSTANKA, SE LE TEGA IZPIŠE
int celoŠtevilo = m / 3;
Console.WriteLine("{0}", m);
števec++;
}
}
if (števec == 0)
Console.WriteLine("Med številoma {0} in {1}, ki so deljiva z številom 3 ni naravnih števil", m, n);
else
Console.WriteLine("To je to!");
Console.ReadLine();
}
}
else
{
Console.WriteLine("Vnesli ste {0}. To ni celo število. Za nadaljevanje pritisnite enter.", odgovor);
Console.ReadLine();
goto Popravek;
}
}
}

Mitja Bonča ::

Evo, še 2. tvoja naloga. Ampak vedi, da priti do teh rezultatov je možno na 100 in en način. To je eden od njih:

class Program
{
static void Main(string[] args)
{
int številoČrke = 0;
string novoBeseda = null;
Console.WriteLine("Programček za 5x ponavljanje vseh samoglasnikov v imenu.");
Console.WriteLine("Prosim vpišite ime:");
string odgovor = Console.ReadLine();
if (odgovor != String.Empty)
{
char[] vseČrke = odgovor.ToCharArray();
foreach (char enaČrka in vseČrke)
{
številoČrke += 1;
string črka = Convert.ToString(enaČrka);
string črkaOsnovna = črka;
if (črka == "a" || črka == "e" || črka == "i" || črka == "o" || črka == "u")
{
for (int i = 1; i < 5; i++)
{
črka = črkaOsnovna + črka;
}
}
novoBeseda += črka;
}
}
Console.WriteLine("");
Console.WriteLine("Rezultat 5x ponavljanja samoglasnikov je:");
Console.WriteLine("{0}", novoBeseda);
Console.ReadLine();
}
}

jacki ::

Ej hvala ti, ta prvo nalogo sm že uspel nekak rešt tale ta druga mi bo pa zlo prou pršla

Mitja Bonča ::

ni blema, če imaš še kaj, ti kar povej.
btw, kako si prvo rešil, druge pa ne, saj je 2. dosti lažja. :)

Zgodovina sprememb…

Spura ::

Mitja Bonča je izjavil:


>> implying da se ime ne more zacet s samoglasnikom
>> implying da je "if" boljsa opcija od "switch"
>> implying da je se uporablja foreach, ce rabis indeks
>> implying da se v kodi uporablja sumnike
>> implying da številoČrke > steviloCrk, novoBeseda > novaBeseda

Zgodovina sprememb…

  • spremenil: Spura ()

Mitja Bonča ::

Spura, kaj si hotel s tem povedati?
Ne vem kaj si hotel, ampak tvoj post zveni zelo nenavadno.
No da obrazložim tvoje besede:

- da se ime ne more začeti s samoglasnikom. Ne? Kaj je pa Andrej?
- if je boljša opcija od switch-a.
- tudi for zanko se rabi, če rabiš index: primer:
for(int i = 0; i < listView1.Items.Count; i++)
{
if(listView1.Items[i].Text == "KAR NEKAJ")
{
// ČE JE V PRVEM STOLPCU LISTVIEW-JA IME KAR NEKAJ, POTEM NAREDI SLEDEČE:
//KAR PA ŽE HOČEŠ
}
}
- kaj si hotel reči z šumniki. VS nima problema z šumniki.
- zadnje je pa kar nekaj. Tega še Einstein nebi razvozlal.

Zgodovina sprememb…

Spura ::

Mitja Bonča je izjavil:

Spura, kaj si hotel s tem povedati?
Ne vem kaj si hotel, ampak tvoj post zveni zelo nenavadno.
No da obrazložim tvoje besede:

- da se ime ne more začeti s samoglasnikom. Ne? Kaj je pa Andrej?

Tvoja koda implicira drugace. :)):))

Mitja Bonča ::

Oprosti, ampak še vedno ne razumem kaj hočeš povedati. Bi lahko bil malo bolj natančen.
Tudi jaz se še učim in sprejmem vsako konstruktivno mnenje. Zato prosim...

Zgodovina sprememb…

techfreak :) ::

Mitja Bonča je izjavil:

Oprosti, ampak še vedno ne razumem kaj hočeš povedati. Bi lahko bil malo bolj natančen.
Tudi jaz se še učim in sprejmem vsako konstruktivno mnenje. Zato prosim...

Šumniki se v spremenljivkah ne uporabljajo, goto-ji v večini primerov niso zaželjenih.
'A' != 'a'

Zgodovina sprememb…

Mitja Bonča ::

Hvala, to je pa res ja.
Se bom probal odnavaditi pisanja šumnikov v spremenljivhah.
btw, kaj bi pa ti naredil namesto goto? Kakšne if zanke, ali switch?

Zgodovina sprememb…

Mitja Bonča ::

Evo, popravil je to sedaj bolje:

 
class Program
    {
        static void Main(string[] args)
        {
            int števec = 0;
            int število = 0;
            int m = 0;
            int n = 0;
            bool boolVpisŠtevilke_1 = false;
            bool boolVpisŠtevilke_2 = false;
            bool boolVečjeŠtevilo = false;
            string odgovor = null;
            Console.WriteLine("Programček bo izpisal vse večkratnike števila 3, za vaša izbran naravna števila!");

            while (!boolVpisŠtevilke_1)
            {
                if (števec == 0)
                    Console.WriteLine("Vpišite naravno število m:");
                else
                    Console.WriteLine("Vnesli ste {0}. To ni celo število. Prosim ponovite vnos števila m:", odgovor);
                odgovor = Console.ReadLine();
                boolVpisŠtevilke_1 = int.TryParse(odgovor, out število);
                if (boolVpisŠtevilke_1)
                    m = število;
                števec++;
            }
            števec = 0;
            while (!boolVpisŠtevilke_2)
            {
                if (števec == 0)
                    Console.WriteLine("Vpišite naravno število n:");
                else if (števec > 0 && !boolVečjeŠtevilo)
                    Console.WriteLine("Vnesli ste {0}. To ni celo število. Prosim ponovite vnos števila n:", odgovor);
                odgovor = Console.ReadLine();
                boolVpisŠtevilke_2 = int.TryParse(odgovor, out število);
                if (boolVpisŠtevilke_2)
                {
                    n = število;
                    if (n < m)
                    {
                        Console.WriteLine("Naravno število n mora biti večje od števila m:");
                        boolVpisŠtevilke_2 = false;
                        boolVečjeŠtevilo = true;
                    }
                }
                else
                    boolVečjeŠtevilo = false;
                števec++;
            }
            števec = 0;
            if (m > 0 && n > 0)
            {
                for (int i = m; m < n; m++)
                {
                    //POGLEDA SE ALI IMA ŠTEVILO OSTANEK
                    int ostanekDeljenja = m % 3;
                    if (ostanekDeljenja == 0)
                    {
                        if (števec == 0)
                        {
                            Console.WriteLine("");
                            Console.WriteLine("Lista vseh naravnih števil, med številoma {0} in {1}, ki so deljiva s številom 3:", m, n);
                        }
                        // ČE ŠTEVILO NIMA OSTANKA, SE LE TEGA IZPIŠE
                        int celoŠtevilo = m / 3;
                        Console.WriteLine("{0}", m);
                        števec++;
                    }
                }
                if (števec == 0)
                    Console.WriteLine("Med številoma {0} in {1}, ki so deljiva z številom 3 ni naravnih števil", m, n);
                else
                    Console.WriteLine("To je to!");
                Console.ReadLine();
            }
        }
    }

norcuron ::

Pri tadrugi nalogi recimo je eden od načinov preverjanja tudi ta, da preverjaš kaj ti vrne IndexOf(), recimo takole se lahko naredi na enega od načinov:
namespace Namnozeni_samoglasniki
{
    class Pac_en_primer
    {
        static void Main(string[] args)
        {
            //začetni izpis
            Console.WriteLine("\n NAMNOŽENI SAMOGLASNIKI-najdemo samoglasnik in ga namnožimo");
            Console.WriteLine("-------------------------------------------------------------");

            //uporabnika pozovemo, da vnese poljubno ime
            Console.Write("\nVnesi poljubno ime: ");

            //deklariramo dve novi spremenljivki in zbirko samoglasnikov
            string vnesenoIme, novIzpisImena = "";
            const string zbirkaSamoglasnikov = "aeiouAEIOU";

            //v prvo shranimo vnešeno ime, v drugo bomo shranjevali črke za končni izpis
            vnesenoIme = Console.ReadLine();

            //z zanko gremo skozi vse znake vnešenega imena in iščemo samoglasnike
            foreach (char trenutnaCrka in vnesenoIme)
            {
                //če je rezultat, ki ga vrne IndexOf() različen od -1, smo našli samoglasnik
                if (zbirkaSamoglasnikov.IndexOf(trenutnaCrka) != -1)
                {
                    /* naredimo 5 znakov, lahko bi pa tudi naredili FOR zanko in dodali znak ob vsakem prehodu*/
                    novIzpisImena += "" + trenutnaCrka + trenutnaCrka + 
                        trenutnaCrka + trenutnaCrka + trenutnaCrka;
                }
                else
                {
                    novIzpisImena += trenutnaCrka;
                } //konec IF-ELSE stavka
            } //konec FOREACH zanke

            //naredimo še končni izpis
            Console.WriteLine("\nKončni izpis obdelanega besedila:");
            Console.WriteLine("----------------------------");
            Console.WriteLine(novIzpisImena);

            //počakamo na tipko Enter
            Console.ReadLine();
        }
    }
}

Kot je bilo že povedano, prasca lahko zakolješ na več kot en način. :)
Great are mysteries of the mind ... or not?

Mitja Bonča ::

Dobra varjanta je ta z IndexOf(). Nisem še nikoli prej probal.


Vredno ogleda ...

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

C# program za pretvorbo v desetiško število z rekurzijo

Oddelek: Programiranje
81364 (1087) MrStein
»

križci krožci c # (strani: 1 2 )

Oddelek: Programiranje
5010775 (9434) Yacked2
»

[C#] Domača naloga - osnove

Oddelek: Programiranje
372340 (1557) 11tomi12
»

[C#] razlaga

Oddelek: Programiranje
161527 (1244) krastača
»

[c] Enaki datoteki

Oddelek: Programiranje
7929 (789) Spura

Več podobnih tem