Εμφάνιση 1-5 από 5
  1. #1
    Εγγραφή
    18-09-2007
    Μηνύματα
    409
    Downloads
    7
    Uploads
    0
    Καλημέρα.

    Μαθαίνοντας κώδικα με τον Visual Studio 2017, έφτιαξα ένα απλό calculator με όλες τις σύνηθες πράξεις καθώς και τετραγωνική ρίζα.
    Το μόνο που επιπλέον θα ήθελα, είναι ο κώδικας για το % , και δυστυχώς όσο κι αν πειραματίστηκα με διάφορα βίντεο από Youtube,
    ο κώδικας δεν είναι συμβατός με το 2017, ενώ λένε για 2017!
    Γνωρίζει κάποιος τον συγκεκριμένο κώδικα για να ολοκληρώσω την εφαρμογή;

    Σας Ευχαριστώ εκ των προτέρων!

  2. #2
    Εγγραφή
    13-11-2011
    Περιοχή
    Χολαργός
    Ηλικία
    37
    Μηνύματα
    1.447
    Downloads
    1
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    24000 / 4500
    ISP
    Wind
    DSLAM
    Wind - ΧΟΛΑΡΓΟΣ
    Path Level
    Interleaved
    Καλημέρα,

    Μερικά βασικά πράγματα, για να μην ψάχνεις χωρίς λόγο και δεν βρίσκεις τίποτα!

    Το Visual Studio είναι ένα περιβάλλον προγραμματισμού (IDE) και όχι γλώσσα προγραμματισμού / βιβλιοθήκη. Στο Visual Studio μπορείς να γράψεις σε πολλές γλώσσες: C#, Visual Basic, F#, C++ (και άλλες, αλλά αυτές είναι οι κύριες), και να χρησιμοποιήσεις πολλές βιβλιοθήκες τόσο για το γραφικό περιβάλλον WinForms, WPF κτλ, όσο και για τον κώδικα που γράφεις (.NET, dotnet, entity framework κτλ).

    Οπότε το να ψάχνεις για "Visual Studio 2017 Calculator percentage" είναι λίγο άτοπο! Πρέπει να ψάξεις το αντίστοιχο που κάνεις εσύ (πχ "C# Calculator Percentage").

    Κατά πάσα πιθανότητα ξεκίνησες με Windows Forms Project (C#) στο Visual Studio οπότε θα θεωρήσω ότι χρησιμοποιείς C# και WinForms για την επεξήγηση με το calculator. Επειδή δεν έχω τον κώδικά σου, θα κάνω ορισμένες παραδοχές για το πώς το έχεις υλοποιήσει μέχρι τώρα, ώστε να μπορέσω να σου εξηγήσω πως δουλεύει το ποσοστό. Αν κάτι δεν ταιριάζει με τα δικά σου πες μου τι έχεις κάνει για να δούμε πως μπορείς να το υλοποιήσεις.

    Αν πάρουμε πρώτα τις βασικές πράξεις [+, -. *, /]. Όταν ο χρήστης κάνει μία πράξη πατάει πρώτα ένα νούμερο, μετά ένα σύμβολο, μετά ένα άλλο νούμερο και μετά είτε άλλη πράξη είτε το "=".

    Θεωρώ ότι υπάρχουν τρεις μεταβλητές, δύο που κρατάνε τα νούμερα και μία που κρατάει την πράξη που θα γίνει.

    Κώδικας:
    double previous = 0; //η προηγούμενη τιμή
    double current; // η τωρινή τιμή
    char operator; // ο τελεστής της πράξης
    Όταν ο χρήστης γράφει στο κομπιουτεράκι τότε αυτή η τιμή πάει στο current, ενώ όταν πατάει ένα από τα βασικά σύμβολα τότε
    - Αν είναι η πρώτη φορά που γίνεται πράξη
    1. αποθηκεύει τον τελεστή στο operator
    2. αποθηκεύει στο previous το current

    - Αν είναι συνέχεια πράξεων
    1. κάνει πράξη που είναι αποθηκευμένη στο operator
    2. αποθηκεύει τον τελεστή στο operator
    3. αποθηκεύει στο previous το αποτέλεσμα

    Αυτή είναι σε γενικές γραμμές μία λογική σειρά πράξεων για ένα βασικό κομπιουτεράκι.

    Αν πάρουμε το σύμβολο '%' τώρα, ο τρόπος με τον οποίο λειτουργεί συνήθως είναι ότι πληκτρολογούμε ένα νούμερο και μόλις πατάμε το "%" τότε αυτό που έχουμε γράψει αλλάζει και γίνεται το ποσοστό του προηγούμενου αποτελέσματος, ώστε να χρησιμοποιηθεί με κάποιον άλλο τελεστή.

    ΠΧ αν πατήσουμε διαδοχικά:
    200 + 10%
    τότε μόλις πατήσουμε το % το "10" που γράψαμε θα γίνει αυτόματα 20, ώστε όταν πατήσουμε το "=" να υπολογιστεί 200+20=220 (200 + 10%).

    Αυτό σημαίνει ότι το % δεν αλλάζει το προηγούμενο αποτέλεσμα, αλλά το τωρινό. Οπότε μία αντίστοιχη συνάρτηση θα μπορούσε να είναι:
    Κώδικας:
    onClickPercentage(){
      double newValue = previous * current / 100; // υπολογίζουμε το ποσοστό που αντιστοιχεί
      current = newValue;
      // εμφανίζουμε στον χρήστη το καινούργιο current
    }
    Με αυτόν τον τρόπο υπολογίζουμε το ποσοστό και δεν χαλάμε τον τελεστή της προηγούμενης πράξης.

  3. #3
    Εγγραφή
    18-09-2007
    Μηνύματα
    409
    Downloads
    7
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από MitsakosGR Εμφάνιση μηνυμάτων
    Καλημέρα,

    Μερικά βασικά πράγματα, για να μην ψάχνεις χωρίς λόγο και δεν βρίσκεις τίποτα!

    Το Visual Studio είναι ένα περιβάλλον προγραμματισμού (IDE) και όχι γλώσσα προγραμματισμού / βιβλιοθήκη. Στο Visual Studio μπορείς να γράψεις σε πολλές γλώσσες: C#, Visual Basic, F#, C++ (και άλλες, αλλά αυτές είναι οι κύριες), και να χρησιμοποιήσεις πολλές βιβλιοθήκες τόσο για το γραφικό περιβάλλον WinForms, WPF κτλ, όσο και για τον κώδικα που γράφεις (.NET, dotnet, entity framework κτλ).

    Οπότε το να ψάχνεις για "Visual Studio 2017 Calculator percentage" είναι λίγο άτοπο! Πρέπει να ψάξεις το αντίστοιχο που κάνεις εσύ (πχ "C# Calculator Percentage").

    Κατά πάσα πιθανότητα ξεκίνησες με Windows Forms Project (C#) στο Visual Studio οπότε θα θεωρήσω ότι χρησιμοποιείς C# και WinForms για την επεξήγηση με το calculator. Επειδή δεν έχω τον κώδικά σου, θα κάνω ορισμένες παραδοχές για το πώς το έχεις υλοποιήσει μέχρι τώρα, ώστε να μπορέσω να σου εξηγήσω πως δουλεύει το ποσοστό. Αν κάτι δεν ταιριάζει με τα δικά σου πες μου τι έχεις κάνει για να δούμε πως μπορείς να το υλοποιήσεις.

    Αν πάρουμε πρώτα τις βασικές πράξεις [+, -. *, /]. Όταν ο χρήστης κάνει μία πράξη πατάει πρώτα ένα νούμερο, μετά ένα σύμβολο, μετά ένα άλλο νούμερο και μετά είτε άλλη πράξη είτε το "=".

    Θεωρώ ότι υπάρχουν τρεις μεταβλητές, δύο που κρατάνε τα νούμερα και μία που κρατάει την πράξη που θα γίνει.

    Κώδικας:
    double previous = 0; //η προηγούμενη τιμή
    double current; // η τωρινή τιμή
    char operator; // ο τελεστής της πράξης
    Όταν ο χρήστης γράφει στο κομπιουτεράκι τότε αυτή η τιμή πάει στο current, ενώ όταν πατάει ένα από τα βασικά σύμβολα τότε
    - Αν είναι η πρώτη φορά που γίνεται πράξη
    1. αποθηκεύει τον τελεστή στο operator
    2. αποθηκεύει στο previous το current

    - Αν είναι συνέχεια πράξεων
    1. κάνει πράξη που είναι αποθηκευμένη στο operator
    2. αποθηκεύει τον τελεστή στο operator
    3. αποθηκεύει στο previous το αποτέλεσμα

    Αυτή είναι σε γενικές γραμμές μία λογική σειρά πράξεων για ένα βασικό κομπιουτεράκι.

    Αν πάρουμε το σύμβολο '%' τώρα, ο τρόπος με τον οποίο λειτουργεί συνήθως είναι ότι πληκτρολογούμε ένα νούμερο και μόλις πατάμε το "%" τότε αυτό που έχουμε γράψει αλλάζει και γίνεται το ποσοστό του προηγούμενου αποτελέσματος, ώστε να χρησιμοποιηθεί με κάποιον άλλο τελεστή.

    ΠΧ αν πατήσουμε διαδοχικά:
    200 + 10%
    τότε μόλις πατήσουμε το % το "10" που γράψαμε θα γίνει αυτόματα 20, ώστε όταν πατήσουμε το "=" να υπολογιστεί 200+20=220 (200 + 10%).

    Αυτό σημαίνει ότι το % δεν αλλάζει το προηγούμενο αποτέλεσμα, αλλά το τωρινό. Οπότε μία αντίστοιχη συνάρτηση θα μπορούσε να είναι:
    Κώδικας:
    onClickPercentage(){
      double newValue = previous * current / 100; // υπολογίζουμε το ποσοστό που αντιστοιχεί
      current = newValue;
      // εμφανίζουμε στον χρήστη το καινούργιο current
    }
    Με αυτόν τον τρόπο υπολογίζουμε το ποσοστό και δεν χαλάμε τον τελεστή της προηγούμενης πράξης.
    Σου στέλνω φίλε μου τον κώδικα για να σε βοηθήσω.

    Public Class Form1
    Dim firstNumber As Decimal
    Dim secondNumber As Decimal
    Dim operations As Integer
    Dim operatorSelect As Boolean = False

    Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button01.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "1"
    Else
    TextBox1.Text = "1"

    End If
    End Sub

    Private Sub Button02_Click(sender As Object, e As EventArgs) Handles Button02.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "2"
    Else
    TextBox1.Text = "2"
    End If
    End Sub

    Private Sub Button03_Click(sender As Object, e As EventArgs) Handles Button03.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "3"
    Else
    TextBox1.Text = "3"
    End If
    End Sub

    Private Sub Button04_Click(sender As Object, e As EventArgs) Handles Button04.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "4"
    Else
    TextBox1.Text = "4"
    End If
    End Sub

    Private Sub Button05_Click(sender As Object, e As EventArgs) Handles Button05.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "5"
    Else
    TextBox1.Text = "5"
    End If
    End Sub

    Private Sub Button06_Click(sender As Object, e As EventArgs) Handles Button06.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "6"
    Else
    TextBox1.Text = "6"
    End If
    End Sub

    Private Sub Button07_Click(sender As Object, e As EventArgs) Handles Button07.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "7"
    Else
    TextBox1.Text = "7"
    End If
    End Sub

    Private Sub Button08_Click(sender As Object, e As EventArgs) Handles Button08.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "8"
    Else
    TextBox1.Text = "8"
    End If
    End Sub

    Private Sub Button09_Click(sender As Object, e As EventArgs) Handles Button09.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "9"
    Else
    TextBox1.Text = "9"
    End If
    End Sub

    Private Sub Button00_Click(sender As Object, e As EventArgs) Handles Button00.Click
    If TextBox1.Text <> "0" Then
    TextBox1.Text += "0"

    End If
    End Sub

    Private Sub ButtonPoint_Click(sender As Object, e As EventArgs) Handles ButtonPoint.Click
    If Not (TextBox1.Text.Contains(".")) Then
    TextBox1.Text += "."
    End If
    End Sub

    Private Sub ButtonClear_Click(sender As Object, e As EventArgs) Handles ButtonClear.Click
    TextBox1.Text = "0"
    End Sub

    Private Sub ButtonSyn_Click(sender As Object, e As EventArgs) Handles ButtonSyn.Click
    firstNumber = TextBox1.Text
    TextBox1.Text = ""
    operations = 1
    operatorSelect = True
    End Sub

    Private Sub ButtonPlin_Click(sender As Object, e As EventArgs) Handles ButtonPlin.Click
    firstNumber = TextBox1.Text
    TextBox1.Text = ""
    operations = 2
    operatorSelect = True
    End Sub

    Private Sub ButtonEpi_Click(sender As Object, e As EventArgs) Handles ButtonEpi.Click
    firstNumber = TextBox1.Text
    TextBox1.Text = ""
    operations = 3
    operatorSelect = True
    End Sub

    Private Sub ButtonDia_Click(sender As Object, e As EventArgs) Handles ButtonDieresi.Click
    firstNumber = TextBox1.Text
    TextBox1.Text = ""
    operations = 4
    operatorSelect = True
    End Sub

    Private Sub ButtonIson_Click(sender As Object, e As EventArgs) Handles ButtonIson.Click
    If operatorSelect = True Then
    secondNumber = TextBox1.Text
    If operations = 1 Then
    TextBox1.Text = firstNumber + secondNumber
    ElseIf operations = 2 Then
    TextBox1.Text = firstNumber - secondNumber
    ElseIf operations = 3 Then
    TextBox1.Text = firstNumber * secondNumber
    ElseIf secondNumber = 0 Then
    TextBox1.Text = "Error..!"
    Else
    TextBox1.Text = firstNumber / secondNumber
    End If
    End If
    End Sub

    Private Sub ButtonRiza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonRiza.Click
    TextBox1.Text = Val(TextBox1.Text ^ (1 / 2))
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles ButtonPercentage.Click

    End Sub
    End Class

  4. #4
    Εγγραφή
    13-11-2011
    Περιοχή
    Χολαργός
    Ηλικία
    37
    Μηνύματα
    1.447
    Downloads
    1
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    24000 / 4500
    ISP
    Wind
    DSLAM
    Wind - ΧΟΛΑΡΓΟΣ
    Path Level
    Interleaved
    Δεν γράφω σε Visual Basic, οπότε η σύνταξη μπορεί να είναι λίγο λάθος.

    Κώδικας:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles ButtonPercentage.Click
        TextBox1.Text = firstNumber * Val(TextBox1.Text) / 100
    End Sub

  5. #5
    Εγγραφή
    18-09-2007
    Μηνύματα
    409
    Downloads
    7
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από MitsakosGR Εμφάνιση μηνυμάτων
    Δεν γράφω σε Visual Basic, οπότε η σύνταξη μπορεί να είναι λίγο λάθος.

    Κώδικας:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles ButtonPercentage.Click
        TextBox1.Text = firstNumber * Val(TextBox1.Text) / 100
    End Sub
    Δουλεύει!!!!!!!!!!!!!!!!
    Το να πω σε ευχαριστώ είναι λίγο Φτιάξτο κι εσύ αν δεν έχεις το κώδικα

    Σε ευχαριστώ πολύ...καλή συνέχεια!

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας