Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

@STORM

Δες με τη φαντασία σου το πρόγραμμα! Υπάρχουν δυο πίνακες ένας Γινόμενα, και ένας Πρόσημα. Δες ότι υπάρχουν δυο εργάτες (διαδικασίες), ο ένας περιμένει στο ? να πάρει νούμερο για να τον γράψει στον πίνακα σε μια θέση Ι. Το παίρνει λοιπόν και περιμένει το σύμβολο πράξης. Αν αυτό είναι επί ή δια τότε δίνει τη δουλειά στο δεύτερο εργάτη, δίνοντας το Ι και το σύμβολο. Αυτός ο δεύτερος ζητάει το δεύτερο νούμερο. Το παίρνει και εκτελεί την διαίρεση και αφήνει το αποτέσμα στη θέση Ι του πίνακα και περιμένει το επόμενο σύμβολο. Αν πατήσεις = ή + 'η - η δική του δουλειά τελειώνει, και ενημερώνει τον πρώτο εργάτη για το σύμβολο που έχει πάρει. Ο πρώτος εργάτης αν δει το = τότε πάει και προσθέτει όλα τα προηγούμενα (δες παρακάτω πως). Αν δει το + τότε αυξάνει το Ι και βάζει στο πίνακα πρόσημα το 1, αν δει το - βάζει στα πίνακα πρόσημα το -1, και στις δυο περίπτωσεις ζητάει πάλι νούμερο. Για να προσθέσει κάνει αυτό σούμα=0  Για ι=αρχή ως τέλος : Σούμα=Σούμα+Γινόμενο(ι)*Πρόσημο(ι) : Επόμενο Ι.

Βέβαια ο δεύτερος εργάτης μπορεί να δέχεται το C (Clear) ώστε το τελευταίο γινόμενο να ξαναμπεί, ή το E (Erase) για να σβήσουν όλα τα μερικά γινόμενα. Δηλαδή καλό είναι το πρόγραμμα να έχει τρόπο διακοπής εκτέλεσης. Σε περίπτωση λάθους με διαίρεση με το μηδέν ο δεύτερος εργάτης θα σβήνει το γινόμενο και θα το ζητάει πάλι!

Το έγραψα με τρόπο ώστε ο αναγνώστης να μπει στη θέση του προγραμματιστή. Ο προγραμματιστής είναι αυτός που διευθύνει τα μέρη του προγράμματος και πρέπει να κάνουν αυτό που θέλει. Πριν γράψει κανείς κώδικα πρέπει να ξεκαθαρίσει πόσους εργάτες χρειάζεται και τι πρόγραμμα θα τους δώσει να κάνουν! Άλλο πράγμα το τεχνικό θέμα, το τι εντολές θα χρειαστεί κανείς και σε ποια γλώσσα και άλλο το πραγματικό ζήτημα. Δεν μιλάμε για τυποποιημένο αλγόριθμο. Ούτε καν μου αρέσει η χρήση της λέξης αλγόριθμος εδώ. Μόνο μία ταιριάζει: Προγραμματισμός. Αυτό είναι προγραμματισμός, όχι το τεχνικό κομμάτι (που σίγουρα είναι το χρονοβόρο-κοστοβόρο) αλλά η άσκηση "διεύθυνσης"...στις σκέψεις..Αυτό το λέω Mind Managment...

Φοβερό!!! Τι θα γίνει άν ο ένας εργάτης τεμπελιάζει η πίνει καφέ? Ξεχάσαμε τους 7-8 επιβλέποντες το αφεντικό κλπ στην Ελλάδα είμαστε :)

Γι αρχή αξιοποίησε τα arguments. Δηλαδή ο πίνακας (string[] args) που περνάει στην Main αυτόματα αφορά τα command line arguments. Μπορείς ας πούμε να τρέχεις το πρόγραμμα σου γράφοντας arithmomixani 3 5 +. Το 3 θα πάει στο args[0], το 5 στο args[1] κ.ο.κ. Έτσι κάνεις έναν έλεγχο τι πράξη ζητά ο χρήστης και την εκτελείς αμέσως. Το πρόγραμμα σου θα μειωθεί στο 1/5 τουλάχιστον.

 

Τώρα τι προγράμματα να φτιάξεις; Κοίτα τι εργασίες κάνεις συχνά και προσπάθησε να φτιάξεις προγραμματάκια που να τις καλύπτουν. Όλοι κάπως έτσι ξεκινήσαμε.

Έτσι νομίζω πρέπει να προσεγγίσεις το θέμα ο χρήστης γράφει ότι θέλει πχ 4*5/3-4+25 κλπ . Μετά το πρόγραμμα διαβάζει έναν έναν τους χαρακτήρες, ομαδοποιεί όπου χρειάζεται, κάνεις τι πράξεις και δίνει το αποτέλεσμα ή την αναφορά λάθους. 

  • Απαντ. 43
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Έτσι νομίζω πρέπει να προσεγγίσεις το θέμα ο χρήστης γράφει ότι θέλει πχ 4*5/3-4+25 κλπ . Μετά το πρόγραμμα διαβάζει έναν έναν τους χαρακτήρες, ομαδοποιεί όπου χρειάζεται, κάνεις τι πράξεις και δίνει το αποτέλεσμα ή την αναφορά λάθους.

Παραειναι δυσκολο για το επιπεδο του.

  • Like 1
Δημοσ.

Παραειναι δυσκολο για το επιπεδο του

Ναι ίσως, μπορεί να το κάνεις όμως σε απλή μορφή με δύο αριθμούς όπως στο πρόγραμμά του. 

Δημοσ.

Ιδέες θέλει ο άνθρωπος! Ότι πιάσει! Πώς κάνετε έτσι;
Defacer, εγώ έχω  ανοίξει το topic για τη Μ2000, μια και είμαι ο συγγραφέας της.
 
@Giorgos65ert
Η γλώσσα του σχολείου είναι ενταγμένη σε ένα εκπαιδευτικό πρόγραμμα, και ειδικά γι'αυτό, για την ύλη του. Αν η ύλη ήταν ένα Εισαγωγή και Τύπωσε...αυτά θα είχε μόνο. Όμως οποιοσδήποτε απ΄έξω μπορεί να κρίνει αν αυτό το θεωρεί καλό εργαλείο, για άλλες χρήσεις. Εγώ κρίνω ότι είναι πατάτα για άλλες χρήσεις! Δεν κάνει για καμία άλλη δουλειά! Είναι άχρηστη! Δεν έχει ούτε συνάρτηση τυχαίων ούτε γενικές..(άρα δεν μπορείς να κάνεις μια συνάρτηση τυχαίων, για να κρατήσεις το seed για παράδειγμα). Ότι έχουν κάνει δυο άτομα (ίσως και παραπάνω) με τους διερμηνευτές. Όλα είναι σε ελληνικά αλλά το mod είναι στα αγγλικά. Αυτό δεν αλλάζει! 

Ο Νικολαϊδης (Spinet) έχει γράψει ένα εμπλουτισμένο συντακτικό με χρήση αρχείων.

Στο τελευταίο σου ερώτημα: Προφανώς βρήκαν μια λύση που δεν θέλει χρήμα για εκπαίδευση προσωπικού.Αλλά δεν έχω σε όλα απάντηση...Ρίξε μια ματιά και δες τι "προσφέρει" το πακέτο (που είναι και μάθημα για εξετάσεις...εισαγωγικές).

  • 1 μήνα μετά...
Δημοσ.

Εγώ την είχα κάνει έτσι:

using System;


class Αριθμομηχανη
{
   static void Main ()
    {
        int arithmos1;
        int arithmos2;
        char epilogiPraksis;
        int apotelesma;
        
        Choose:
        Console.WriteLine("Parakalo epilekste praksi. \nPieste (1) gia prosthesi, (2) gia afairesi, (3) gia pollaplasiasmo, (4) gia diairesi.");
        epilogiPraksis = char.Parse(Console.ReadLine());

        Console.WriteLine("Parakalo doste to proto arithmo: ");
        arithmos1 = int.Parse(Console.ReadLine());
        Console.WriteLine("Parakalo doste to deftero arithmo: ");
        arithmos2 = int.Parse(Console.ReadLine());

        switch (epilogiPraksis)
        {
            case '1':
                apotelesma = arithmos1 + arithmos2;
                break;
            case '2':
                apotelesma = arithmos1 - arithmos2;
                break;
            case '3':
                apotelesma = arithmos1 * arithmos2;
                break;
            case '4':
                apotelesma = arithmos1 / arithmos2;
                break;
           default:
                Console.WriteLine("H epilogi praksis den egine apoexti!");
                goto Choose;
        }


        Console.WriteLine("To apotelesma einai: {0}", apotelesma);
        Console.ReadLine();
        
    }




}

Ορίστε μια άλλη ιδέα για άσκηση (αν δεν σου έχει έρθει ήδη):

 

Φτιάξε ένα κουίζ πολλαπλών ερωτήσεων με 10 ερωτήσεις, το οποίο για κάθε σωστή ερώτηση θα προσθέτει ένα πόντο στο σκορ, και κατά την ολοκλήρωση θα παρουσιάζει το συνολικό σκορ του παίκτη (Χ/10). Αν ο παίκτης απαντήσει σωστά σε μια ερώτηση, του εμφανίζεται τυχαία ένα από 3 μηνύματα επιτυχίας, και άμα απαντήσει λάθος, εμφανίζεται τυχαία ένα από τα 3 μηνύματα αποτυχίας!

 

Πες και συ κάμια άσκηση γιατί και εγώ στην ίδια φάση είμαι.  :)

  • Moderators
Δημοσ.

Μπορείς να επεκτείνεις την αριθμομηχανή σου έτσι ώστε να δέχεται παραστάσεις τύπου x1 op x2, δηλαδή 15 + 38, ή 7*9 κλπ. Μόνο για 2 αριθμούς (όχι ολόκληρες παραστάσεις, εκεί πας σε άλλα πράγματα) και ενδεχομένως με περισσότερους από 4 τελεστές (μπορείς πχ να χρησιμοποιείς το ^ για ύψωση σε δύναμη, πχ το 2^3 να σου δίνει 8). Δες επίσης τι μπορείς να κάνεις για να αποτρέψεις λάθη που προέρχονται από λάθος είσοδο (αν δώσω "dafdfg" αντί για αριθμό, ή αν προσπαθήσω να διαιρέσω με 0, ή αν προσπαθήσω να πολλαπλασιάσω 2 μεγάλους αριθμούς).

 

 

 

Αυτή τη στιγμή το πρόγραμμά σου θα κρασάρει να πάω να κάνω διαίρεση και δώσω δεύτερο αριθμό το 0.

 

 

  • Like 1
Δημοσ.

Δοκίμασε αυτό που λέει ο Kercyn. Ο χρήστης να δίνει στο input ολόκληρη τη πράξη σα string(πχ "4 + 7").

1. αφαιρείς τα κενά

2. χωρίζεις τα νούμερα και τη πράξη

3. Ελέγχεις αν είναι νούμερα, πχ μη δώσει ο χρήστης "α - 4", και αν δεν είναι βγάζει μήνυμα να ξαναπροσπαθήσει

4. έλεγχος για διαίρεση με το 0

5 exit μπορεί να κάνει αν γράψει exit

 

Ιδέες για προγραμματακια

1 xml reader, writer

2 read, write, update, delete σε Sqlite ή ms sql localdb

3 αρχεία read write, μετακινηση, έλεγχος αν υπάρχει

Κάτι από αυτά πολύ πιθανόν να χρειαστεί σε κάποιο μεγαλύτερο project

 

Θα μπορούσες κάθε πράξη που δίνει ο χρήστης να σώνεται σε αρχείο με το αποτέλεσμα της, είτε txt είτε xml

 

πχ αρχείο prakseis.txt

2 + 4 = 6
9 - 3 = 6

Αριθμός πράξεων: 2 
Δημοσ.

Θα μπορούσε κανείς να φτιάξει μια δική του read δείτε το παρακάτω. Έτσι αντί να χωρίζει αλφαριθμητικό μετά την εισαγωγή, θα επεξεργάζεται άμεσα όπως κάνουν και οι αριθμομηχανές. Με το πρόγραμμα παρακάτω βλέπεις τι γυρνάει και μετά φτιάχνεις το πρόγραμμα να δέχεται 0123456789. +×÷-= C CE. CLEAR δηλαδή και CLEAR ERROR.

Να γίνεται έλεγχος για να μην 'ακούει' το σύστημα δεύτερη τελεία. Παραπάνω χώρισα σε ομάδες τα σύμβολα. Η πρώτη ομάδα σχηματίζει αριθμό, η δεύτερη μεταθέτει τον αριθμό σε μια μεταβλητή π.χ.Καταχωρητής Α, αν δεν υπάρχει πράξη σε αναμονή. Έστω δεν υπάρχει, το δείχνει μια μεταβλητή αυτό με το σύμβολο της πράξης, ή κενό όταν δεν υπάρχει πράξη. Γράφουμε τον δεύτερο αριθμό και πατάμε κάτι από την δεύτερη ομάδα. Αφού υπάρχει πράξη μπαίνει στο Α το αποτέλεσμα Α πράξη Εισαγωγή και πράξη = νέα πράξη.

Για να έχουμε επανάληψη πράξης με διαδοχικό ίσον...

Το = παίζει το εξής. Αν δεν υπάρχει πράξη = στην αναμονή, μετάθέτει τη πράξη σε μια δεύτερη αναμονή, έστω πράξη2. Αν υπάρχει πράξη = τότε κάνει τις πράξεις Α = Α πράξη2 Εισαγωγή.

Το πλήκτρο που θα ορίσουμε ως C θα καθαρίζει τα πάντα, και ένα error flag. Το πλήκτρο για το Clear Error θα καθαρίζει το λάθος, και την εισαγωγή, άρα θα μας γυρνάει σε είσοδο αριθμού. Έτσι ένα ακόμα flag είναι αυτό που λέει δεν έχω εισαγωγή. Με το που πατάμε κάτι από την πρώτη ομάδα, γυρνάμε το flag στο false.

Το error flag δεν θα αφήνει τις δύο πρώτες ομάδες να ακούγονται...από το πρόγραμμα.

 

Συνοψίζοντας

Μεταβλητές

Α, Εισαγωγή, πραξη1, πράξη2, Error_flag.

Το name.char χρειαζόμαστε.

 

Console.WriteLine("Enter any Key: ");

ConsoleKeyInfo name = Console.ReadKey();

Console.WriteLine("You pressed {0}", name.KeyChar);

Δημοσ.

Ας πω και εγώ την βλακεία μου :)

 

@OP

Ένας calculator με την μορφή που τον έχεις τώρα δεν προσφέρει τίποτα σε εσένα πέρα από το να στήσεις μία λογική και να την υλοποιήσεις. Η λογική είναι πολύ απλή, οπότε μπορείς να καταλάβεις τι προσφέρει σε εσένα.

 

Αυτό που όμως μπορεί να προσφέρει πολλά, είναι να ασχοληθείς με το parsing των μαθηματικών/calculation expressions. Δηλαδή, αντί να επεξεργάζεσαι αυτό που έρχεται στην είσοδο και να κάνεις μία αντιστοίχιση των strings εισόδου με πράξεις, μπορείς να κάνεις transform το expression σε ένα tree. Σε αυτό το δένδρο, τα φύλλα είναι αριθμοί και οι κόμβοι σύμβολα (δηλαδή *, (, ), /, +, - κτλ).

 

Τι κερδίζεις;

 

Τα προφανή:

Χειρισμός δένδρων

 

Τα μη προφανή:

Χειρισμός στοίβας

Τριβή με διάσχιση δένδρων

Τριβή με διαφορετικές αναπαραστάσεις μαθηματικών εκφράσεων (pre, post κτλ)

Τριβή με τις αναπαραστάσεις σειριακών συσχετίσεων συμβόλων, let it be tokens, words, meanings, mathematical expressions και ό,τι άλλο

 

Οπότε, διάβασε:

- https://en.wikipedia.org/wiki/Binary_expression_tree

- https://en.wikipedia.org/wiki/Reverse_Polish_notation

- https://en.wikipedia.org/wiki/Polish_notation

- https://en.wikipedia.org/wiki/Infix_notation

 

Το να κάνεις ένα δένδρο είναι εντελώς λυμένο για όλες τις mainstream γλώσσες... βασικά για όλες τις γλώσσες θα έλεγα αλλά ποτέ δεν ξέρεις.

 

Το να χρησιμοποιήσεις και να φτιάξεις στοίβες, το ίδιο.

 

Το να διασχίσεις δένδρα με συγκεκριμένο τρόπο, το ίδιο.

 

 

 

Άρα, το μόνο overhead που έχεις είναι να διαβάσεις, να ψάξεις, να αντιγράψεις κώδικα και να καταλάβεις τι κάνει αυτός ο κώδικας.

  • Moderators
Δημοσ.

Αυτό που λέει ο groot είναι αυτό που έλεγα εγώ για πράξεις με παραπάνω από δύο αριθμούς/παραστάσεις. Αυτός είναι ο τρόπος που κάνουν πράξεις οι compilers, απλώς μου φάνηκε λίγο too much με βάση αυτά που έχεις γράψει ήδη, γι' αυτό και σου πρότεινα κάτι πιο απλό. Βέβαια αν νομίζεις ότι θα την παλέψεις, το να κάνεις αυτό που περιγράφει ο groot μόνο καλό θα σου κάνει.

Δημοσ.

Καλή φάση και η ασχολία με δένδρα. Στο παράδειγμα που ανέπτυξα, χωρίς κώδικα, παίζει να έχουμε παρενθέσεις, απλά το Α είναι η κορυφή από μια σειρά μερικών πράξεων, όπου κρατάμε ένα νούμερο και μια πράξη, σε κάθε στοιχείο της σειράς.

Η χρήση του δένδρου βοηθάει όταν θέλουμε σε ένα Α()*Β+Γ()*Δ να εκτελούνται πρώτα οι συναρτήσεις Α() και Γ()... μετά τα γινόμενο, και τέλος το άθροισμα.

Αν δεν υπάρχει τέτοιος λόγος, δεν χρειάζεται δένδρο, διότι πάμε με αναδρομική κλήση, άρα σχηματίζουμε λογικά το δένδρο, προς μια πλευρά. Στο παράδειγμα..θα εκτελεστεί η Α(), το γινόμενο με τη Δ, θα κληθεί πάλι η ρουτίνα για το υπόλοιπο μετά το + μέρος, θα κληθεί η Γ(), θα βγει το γινόμενο με τη Δ, θα επιστραφεί τιμή ή οποία θα προστεθεί, με το άθροισμα Α()+Β και τελείωσε το πράγμα. Όπου τώρα καλούμε την ρουτίνα για τη μετά το + έκφρασή, μπορεί να αποφευχθεί με τη χρήση της σειράς, άρα μια μεταβλητή...βάθος, παίζει το ρόλο του stack pointer, δείχνει στα Α() και πράξη().

Εννοείται ότι το σύστημα της επανάληψης πράξης με την πράξη2 δεν χρειάζεται εδώ, ή το αφήνουμε μόνο για βάθος=1 και πράξεις πρόσθεσης.

Δημοσ.

Μπορείς να επεκτείνεις την αριθμομηχανή σου έτσι ώστε να δέχεται παραστάσεις τύπου x1 op x2, δηλαδή 15 + 38, ή 7*9 κλπ. Μόνο για 2 αριθμούς (όχι ολόκληρες παραστάσεις, εκεί πας σε άλλα πράγματα) και ενδεχομένως με περισσότερους από 4 τελεστές (μπορείς πχ να χρησιμοποιείς το ^ για ύψωση σε δύναμη, πχ το 2^3 να σου δίνει 8). Δες επίσης τι μπορείς να κάνεις για να αποτρέψεις λάθη που προέρχονται από λάθος είσοδο (αν δώσω "dafdfg" αντί για αριθμό, ή αν προσπαθήσω να διαιρέσω με 0, ή αν προσπαθήσω να πολλαπλασιάσω 2 μεγάλους αριθμούς).

 

 

 

Αυτή τη στιγμή το πρόγραμμά σου θα κρασάρει να πάω να κάνω διαίρεση και δώσω δεύτερο αριθμό το 0.

 

 

 

Προσπάθησα να το κάνω ώστε άμα ο χρήστης δε γράψει αριθμό αλλά άλλα σύμβολα να μη κρασάρει, και το κατάφερα. Ύστερα όμως αποφάσισα να κάνω κάτι παραπάνω και το χάλασα!  :fear:  Το θέμα είναι ότι δεν προσπάθησα να κάνω τίποτα περίπλοκο, αλλά κάτι απλό. Ανάλογα τη πράξη που θα επιλέγει ο χρήστης, να εμφανίζει διαφορετικά string όταν ζητά τους αριθμούς. Δε μπορώ αυτή τη στιγμή να διακρίνω τι πείραξα και χάλασα, αλλά πλέον το VS διαμαρτύρεται πως η μεταβλητή apotelesma στη τελευταία Console.Writeline δεν έχει τιμή! (unassigned). Στην οποία όμως δίνω τιμή στο switch ακριβώς από πάνω.

using System;


class FtoCTable
{
   static void Main ()
    {
        string arithmos1;
        int arithmos1a;
        string arithmos2;
        int arithmos2a;
        char epilogiPraksis;
        int apotelesma;
        int praksi;

        string protiProtasi;
        string defteriProtasi;
        string prostheteosA = "Parakalo eisagete ton proto Prostheteo: ";
        string prostheteosB = "Parakalo eisagete ton deftero Prostheteo: ";
        string meioteos = "Parakalao eisagete ton meioteo: ";
        string afaireteos = "Parakalo eisagete ton afaireteo: ";
        string pollaplasiasteos = "Parakalo eisagete ton pollaplasiasteo: ";
        string pollaplasiastis = "Parakalo eisagete ton pollaplasiasti: ";
        string diaireteos = "Parakalo eisagete ton diaireteo: ";
        string diairetis = "Parakalo eisagete ton diaireti: ";


        
        Choose:
        Console.WriteLine("Parakalo epilekste praksi. \nPieste (1) gia prosthesi, (2) gia afairesi, (3) gia pollaplasiasmo, (4) gia diairesi.");
        epilogiPraksis = char.Parse(Console.ReadLine());

        switch (epilogiPraksis)
        {
            case '1':
                protiProtasi = prostheteosA;
                defteriProtasi = prostheteosB;
                praksi = 1;
                break;

            case '2':
                protiProtasi = meioteos;
                defteriProtasi = afaireteos;
                praksi = 2;
                break;

            case '3':
                protiProtasi = pollaplasiasteos;
                defteriProtasi = pollaplasiastis;
                praksi = 3;
                break;

            case '4':
                protiProtasi = diaireteos;
                defteriProtasi = diairetis;
                praksi = 4;
                break;


            default:
                Console.WriteLine("H epilogi praksis den egine apodexti!");
                goto Choose;
                
        }



       ErotisiA:
        Console.WriteLine(protiProtasi);
        arithmos1 = Console.ReadLine();

        if (int.TryParse(arithmos1, out arithmos1a))
        {
            
        }

        else
        {
            Console.WriteLine("H eisagogi den egine apodekti!");
            goto ErotisiA;
        }
        

       ErotisiB:
        Console.WriteLine(defteriProtasi);
        arithmos2 = Console.ReadLine();

        if (int.TryParse(arithmos2, out arithmos2a))
        {

        }

        else if (arithmos2 == "0")
        {
            Console.WriteLine("Parakalo eisagete akeraiao diaforo tou midenos!");
            goto ErotisiB;
        }


        else
        {
            Console.WriteLine("H eisagogi den egine apodekti!");
            goto ErotisiB;
        }

        switch (praksi)
        {
            case 1:
                apotelesma = arithmos1a + arithmos2a;
                break;
            case 2:
                apotelesma = arithmos1a - arithmos2a;
                break;
            case 3:
                apotelesma = arithmos1a * arithmos2a;
                break;
            case 4:
                apotelesma = arithmos1a / arithmos2a;
                break;
           default:
                break;
        }


        Console.WriteLine("To apotelesma einai: {0}", apotelesma);
        Console.ReadLine();
        
    }




}
Δημοσ.

Δεν δουλεύω VS... αλλά πάω στοίχημα ότι δεν λέει μόνο "unassigned" για την μεταβλητή. Λέει ότι δεν έχει τιμή ΠΡΙΝ χρησιμοποιηθεί.

 

Hint...

 

Εάν η μεταβλητή praksi δεν είναι στο [1, 4] (ακέραιες τιμές). Τι γίνεται στην προ-τελευταία γραμμή;

  • Moderators
Δημοσ.

Κάτι που βγάζει μάτι είναι τα labels που έχεις βάλει. Έχουμε 2016 και γράφεις C#, υπάρχουν ελάχιστοι λόγοι να χρησιμοποιήσεις goto, και η περίπτωσή σου δεν είναι ένας απ' αυτούς.

Δεύτερον, έχεις δύο switch για επιλογή πράξης. Η πράξη επιλέγεται στο πρώτο switch, γιατί δε βάζεις όλον τον κώδικα για τη συγκεκριμένη πράξη εκεί και έχεις και 2ο switch;

Μετά, έχεις εδώ

if (int.TryParse(arithmos1, out arithmos1a))
{

}

else
{
Console.WriteLine("H eisagogi den egine apodekti!");
goto ErotisiA;
}

Γιατί αυτό δεν το κάνεις

 

 

if (! int.TryParse(arithmos1, out arithmos1a))
{
Console.WriteLine("H eisagogi den egine apodekti!");
goto ErotisiA;
}

 

Επίσης εδώ

if (int.TryParse(arithmos2, out arithmos2a))
{

}

else if (arithmos2 == "0")
{
Console.WriteLine("Parakalo eisagete akeraiao diaforo tou midenos!");
goto ErotisiB;
}

Αν ο αριθμός είναι 0, το tryParse θα πετύχει, οπότε δεν ελέγχεις πουθενά αν ο αριθμός είναι 0.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...