Rare fout bij uitvoeren console application

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • freddy0519
  • Registratie: April 2011
  • Laatst online: 24-08 22:38

freddy0519

It hurts when IP

Topicstarter
Beste tweakers,


het is de eerste keer dat ik hier in deze categorie iets post, maar ik zit met een probleem waar ik niet direct op een oplossing kan op vinden. Ik moet een console applicatie maken in de taal C# met het programma Visual Studio Ultimate 2012.

Ik ben student eerste jaar Toegepaste Informatica (met als keuzetraject: Computer & Cybercrime Professional) op Howest in Brugge (een van de enigste scholen die deze richting aanbieden _/-\o_ ) en wij moeten moeten oefeningen maken en die dan online indienen op spoj.com. Dat is een soort van controle site met een compiler die je code laat uitvoeren en de antwoorden controleert met het antwoord van de docent.

De opdracht:

Vraag met een C# programma de hoogte (of basis) van een rechthoekige gelijkbenige driehoek. Beeld deze vervolgens af met '*' symbolen. De driehoek is rechts uitgelijnd aan de rand van het scherm en begint met de basis en loopt naar de beneden in een punt. Na het afdrukken neem je een nieuwe lijn.

Als iemand een negatief getal of nul opgeeft dan blijf je aandringen op strikt een positief getal.

Invoer

Een geheel getal (int) als basis (of hoogte) . Je blijft een getal opvragen tot je een geheel getal hebt dat strikt positief is.

Uitvoer

De gelijkbenige rechthoekige driehoek is rechts uitgelijnd met de basis bovenaan en een top onderaan, gevolgd door een nieuwe lijn.

Voorbeeld

Invoer:
-3
0
5

Uitvoer:
*****
****
***
**
*

(alleen begint hij wel links in het consolevenster ipv rechts, maar anders lijnt hij links uit hier in deze post en dan klopt de code niet meer 8)7
(basis = hoogte = 5, neem een nieuwe lijn na het afdrukken van de driehoek!)


Is een redelijk simpel programmatje, I know, maar je met van ergens starten 8)

Mijn code:

using System;
class Program
{
static void Main(string[] args)
{
int getal = int.Parse(Console.ReadLine());
while (getal < 1)
{
getal = int.Parse(Console.ReadLine());
}
int teller1 = 1;
int teller2 = 1;
while (teller1 <= getal)
{
while(teller2 <= teller1)
{
Console.Write("*");
teller2++;
}
teller1++;
teller2 = 1;
Console.Write("");
}
Console.ReadKey();
}
}


Het probleem:
Als ik eerst een negatief getal of 0 invoer, blijft hij vragen naar een nieuw getal voor dat hij het programma uitvoert. Klopt. Maar als ik dan een positief getal invoer, dan slaat hij 6 regels over die leeg zijn en staat daar de cursor weer te pinken (de Console.ReadKey() commando). Maar als ik direct bij het uitvoeren van het programma een positief getal invoer, dan toont hij wel mooi de sterretjes.


Hopelijk staat dit in het juiste onderdeel.

Anyway, alvast bedankt voor elke hulp!

Al doende leert men, al draaiende keert men.


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

De door jou geposte code print geen nieuwe regels, en mocht de Console.Write("") een Enter printen, dan treedt het door jou genoemde probleem niet op. Is dit exact de code die je gebruikt? Plaats de code eens in [code][/code]-tags. :)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • freddy0519
  • Registratie: April 2011
  • Laatst online: 24-08 22:38

freddy0519

It hurts when IP

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
class Program
{
static void Main(string[] args)
{
int getal = int.Parse(Console.ReadLine());
while (getal < 1)
{
getal = int.Parse(Console.ReadLine());
}
int teller1 = 1;
int teller2 = 1;
while (teller1 <= getal)
{
while(teller2 <= teller1)
{
Console.Write("*");
teller2++;
}
teller1++;
teller2 = 1;
Console.Write("");
}
Console.ReadKey();
}
}


het klopt met die code als ik een gewoon positief getal invoer :)

Al doende leert men, al draaiende keert men.


Acties:
  • 0 Henk 'm!

  • freddy0519
  • Registratie: April 2011
  • Laatst online: 24-08 22:38

freddy0519

It hurts when IP

Topicstarter
Got it, Visual Studio was met een ander project bezig ;)

Deze code werkt wel :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
class Program
{
    static void Main(string[] args)
    {
        int hoogte = int.Parse(Console.ReadLine());
        while (hoogte < 1)
        {
            hoogte = int.Parse(Console.ReadLine());
        }

        int teller1 = 1;
        int teller2 = 1;
        int sterteller1 = hoogte;
        int sterteller2 = hoogte;

        while (teller1 <= hoogte)
        {
            while (teller2 < teller1)
            {
                Console.Write(" ");
                teller2 += 1;
            }
            while (sterteller1 > 0)
            {
                Console.Write("*");
                sterteller1--;
            }
            sterteller2 -= 1;
            sterteller1 = sterteller2;
            teller1 += 1;
            teller2 = 1;
            Console.WriteLine("");
        }
        Console.ReadKey();
    }

}


Toch bedankt voor je hulp! :)

Al doende leert men, al draaiende keert men.


Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 19:26
Hallo medestudent*! Ik herken die code, moest ik ook doen indertijd, wel niet indienen online ^^

Een kleine opmerking: er bestaat een "edit" knop, 2x na elkaar posten is not done ;)

* 3e jaars TI CCCP, weliswaar wel op erasmus op dit moment, dus medestudent is misschien niet 100% het geschikte woord :+

[ Voor 11% gewijzigd door azerty op 16-10-2013 21:56 ]


Acties:
  • 0 Henk 'm!

  • freddy0519
  • Registratie: April 2011
  • Laatst online: 24-08 22:38

freddy0519

It hurts when IP

Topicstarter
Aah ja, handig om te weten die knop ;)

Amai, dat is ook toevallig zeg, en is het plezant in het 3de jaar ? Want nu in het eerste jaar is het maar saaie basisdingen dat ze aanleren :P

Ik heb deze oefening trouwens gekregen bij het partim Programmastructuren van lector Vandycke, ooit van gehoord ? ;)

En heb je al een stageplaats gevonden ?

Al doende leert men, al draaiende keert men.


Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 19:26
freddy0519 schreef op woensdag 16 oktober 2013 @ 22:21:
Aah ja, handig om te weten die knop ;)

Amai, dat is ook toevallig zeg, en is het plezant in het 3de jaar ? Want nu in het eerste jaar is het maar saaie basisdingen dat ze aanleren :P

Ik heb deze oefening trouwens gekregen bij het partim Programmastructuren van lector Vandycke, ooit van gehoord ? ;)

En heb je al een stageplaats gevonden ?
Of het plezant is hangt natuurlijk af van hoe graag je sommige zaken doet ;) Maar het is altijd zo, je hebt altijd wel zaken die minder interessant zijn dan anderen.

Oh, Mr. Vandycke. Die ga je nog een tijdje krijgen (vorig semester nog les van gehad). Is ook verantwoordelijk voor projecten en stagebegeleider.

En qua stage: we moeten tegen deze avond 3 plaatsen aanduiden waar we willen stage lopen, en dan krijgen we er 1tje toegewezen. Heb ik dus gedaan, zal binnenkort wel bekend worden gemaakt...

(maar dit gaat natuurlijk wel redelijk off-topic tov de originele vraag, stuur anders een dm/pm ^^)

Acties:
  • 0 Henk 'm!

  • freddy0519
  • Registratie: April 2011
  • Laatst online: 24-08 22:38

freddy0519

It hurts when IP

Topicstarter
Will do :)

Al doende leert men, al draaiende keert men.

Pagina: 1