Mitenkähän onnistuu tämmöinen tehtävä?
Tee ohjelma, joka pyytää kaksi positiivista kokonaislukua: leveys ja korkeus. Tulosta lukujen perusteella suorakulmio. Käytä for-luuppia.
Esimerkkitulostus
Anna leveys: 5
Anna korkeus: 3
*****
*****
*****
Olen saanut aikaiseksi alla olevan, mutta tähtiä ei näy.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { int luku1 = 0; int luku2 = 0; Console.Write("Anna leveys: "); luku1 = int.Parse(Console.ReadLine()); ; Console.Write("Anna korkeus: "); luku2 = int.Parse(Console.ReadLine()); ; for (int i = 0; i == luku1; i++) { Console.Write("*"); } for (int i = 0; i == luku2; i++) { Console.Write("*"); } } } }
for (alkutilanne; tehdään niin kauan tämä on tosi; kierroksen lopuksi)
for(int i = 0; i < korkeus; i++) { for(int j = 0; j < leveys; j++) { Console.Write("*"); } Console.Write("\n"); }
Mahtaako riveillä 19 ja 22 olla ylimääräiset puolipisteet?
Macro kirjoitti:
Console.Write("\n");
Pitäisin tyylikkäämpänä ja toimivampana:
Console.WriteLine();
Voi olla, ei ole kokemusta C#:sta :)
Molemmat toimii, kiitos kumminkin!
Milläs tavalla tuo hoidetaan Do Whilella? Menossa olisi C# etäkurssi, mutta opettajassa on hiukan "natsin" elkeitä, eli ei voi kunnolla neuvoa. Oon pähkäillyt tuota jo suht pitkään.
int width = 0; int length = 0; Console.Write("Anna leveys: "); width = int.Parse(Console.ReadLine()); ; Console.Write("Anna korkeus: "); length = int.Parse(Console.ReadLine()); ; int j=0; do { int i=0; do { Console.Write("*"); i++; }while(i<width) Console.Write("\n"); j++; } while(j<length)
Jonkinsortin ajatus. Syntaksi varmaan pielessä kun en jaksanu kaivella c# do while syntakstia.
Mod. korjasi kooditagit!
Tinketti kirjoitti:
Milläs tavalla tuo hoidetaan Do Whilella? Menossa olisi C# etäkurssi, mutta opettajassa on hiukan "natsin" elkeitä, eli ei voi kunnolla neuvoa.
Käskikös tuo opettaja myös lisätä syötteen tarkistuksen? Kaikista silmukoista Do While on varmaankin yleisesti vähiten käytetty ja tähän harjoitteeseen ainakin kohtuullisen huono valinta.
Vihjeeksi, että mieti toimiiko oikein, jos ohjelman saamat syötteet eivät olekaan positiivisia kokonaislukuja?
Sitä ei käskenyt. Eikös se menisi silloin uint:inä, jolloin voi käyttää vaan positiivisiä lukuja?
Tinketti kirjoitti:
Eikös se menisi silloin uint:inä, jolloin voi käyttää vaan positiivisiä lukuja?
Ja nollaa...
Niin sekin tietysti mukana.
jalski kirjoitti:
Kaikista silmukoista Do While on varmaankin yleisesti vähiten käytetty ja tähän harjoitteeseen ainakin kohtuullisen huono valinta.
No eikös for -looppi for(a;b;c) { d } ole olennaisesti a; do { d; c; } while (b)
Grez kirjoitti:
jalski kirjoitti:
Kaikista silmukoista Do While on varmaankin yleisesti vähiten käytetty ja tähän harjoitteeseen ainakin kohtuullisen huono valinta.
No eikös for -looppi for(a;b;c) { d } ole olennaisesti a; do { d; c; } while (b)
Onhan se mutta vähän erikoisempi ratkaisu tähän tilanteeseen. Yleensä tuo tehdään for loopeilla. do...while loopeille on omat käyttökohteensa.
Grez kirjoitti:
No eikös for -looppi for(a;b;c) { d } ole olennaisesti a; do { d; c; } while (b)
for (;0;) { exit() } ≠ do { exit() } while (0)
Melkein vastaava do-while olisi esim. a; if (b) { do { d; c; } while (b); }
jlaire kirjoitti:
Melkein vastaava do-while olisi esim. a; if (b) { do { d; c; } while (b); }
Nuo rimpsut saavat silmät särkemään... ;-)
Lähinnä meinasin yksinkertaisesti vain sitä, että:
While-looppi:
-ehto testataan silmukan alussa.
Do While-looppi:
-ehto testataan silmukan lopussa
-normaalisti suoritetaan aina vähintään kerran, mikä monessa tapauksessa saattaa olla yhden kerran liikaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.