Jump to content



C#


TheHacker

Recommended Posts

Δημοσιεύτηκε

Καλησπερα ,εχω ενα προγραμματακι στο πανεπιστημιο το οποιο θα μ δωσει πολλα μπονους στην εξεταστικη ,και χρειαζομαι μια μικρη βοηθεια απο καποιον. Πρεπει να φτιαξω ενα "Parse" προγραμμα (για οσους δεν καταλαβαν ειναι προγραμμα ελεγχου λαθων).

1.Πως θα ελεγχω αν ο αριθμος που εχει εισαχθει στο προγραμμα (απ το πληκτρολογιο) ειναι ακεραιος

2.αν ειναι συνδιασμος ακεραιων αριθμων χωρισμενων με κομμα

3.αν ειναι κενο συνολο

4.αν ειναι " {} " αυτο :p ...

να σημειωθει πως ειμαστε ακομη στην αρχη και δν εχουμε μαθει ακομη πολυπλοκα πραγματα οπως strings και μπλα μπλα... σκεφτηκα να τ κανω με διαιρεση του αριθμου ωστε να παρω τα ψηφια και να τα ελεγχο 1 by 1....

ευχαριστω παραα πολυ εκ των προτερων..

Console Application υποθέτω

1.Int16.TryParse Int16.TryParse Method (System)

2.Εδώ πρέπει αρχικά να ελέγξεις αν υπάρχει τουλάχιστον 1 ή περισσότερα κόμματα στο string εισόδου.Μετα split με το κόμμα.Το split θα σου επιστρέψει ένα array απο strings με τους "αριθμούς" ελέγχεις με το 1. αν είναι ακέραιοι.Αν είναι ΟΛΟΙ ακέραιοι αποδεκτη είσοδος έστω και ένας λάθος μη αποδεκτή

String.Contains

String.Contains Method (System)

String.Split

String.Split Method (Char[]) (System)

3.String.IsNullOrEmpty

String.IsNullOrEmpty Method (System)

4.To 4 με τα παραπάνω είναι βατό και αφήνεται σαν άσκηση στον αναγνώστη.

1.int16.tryparse? δν εχω ιδεα το παιζει με αυτο ...xD

ας πουμε οτι εχω διαβασει εναν αριθμο απ το πληκτρολογιο...και εχω συνθηκη ωστε να τερματιζει εαν υπαρχει EOF(end of file) γραφω

if int16.tryparse? δεν το πιανω :S ..κατι πιο απλο ή μια επεξηγηση :D?

Tο λινκ το διάβασες? :p

public static bool TryParse(
string s,
out short result
)

Parameters

s
Type: System.String
A string containing a number to convert.

result
Type: System.Int16

When this method returns, contains the 16-bit signed integer value equivalent to the number contained in s, if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null or String.Empty, is not of the correct format, or represents a number less than MinValue or greater than MaxValue. This parameter is passed uninitialized.

Return Value
Type: System.Boolean
true if s was converted successfully; otherwise, false.

την καλείς με 2 ορίσματα

short number;

bool result = Int16.TryParse(value, out number);

value=είσοδος από το πληκτρολόγιο.

To result είναι true αν το value είναι ακέραιος και η τιμή του σε ακέραια μορφή περιέχεται στην μεταβλητή number.

Το result είναι false αν το value δεν είναι ακέραιος και η μεταβλητή number τότε είναι ίση με το μηδέν.

οπότε ναι ένα απλό if αρκεί .Τρέξε μια και το παραδειγμα που έχει στην σελίδα.

Βασικά μπορείς να ενώσεις τα δύο πρώτα σε ένα.

Αν κάνεις Decimal.TryParse. Σε αυτή την περίπτωση, ελέγχει και για δεκαδικά και αν είναι σωστός ο αριθμός θα πάρεις True.

Επίσης, εγώ χρησιμοποιώ την εξής σύνταξη:

Decimal.Tryparse(input_string, myNumber).

Αν το myNumber είναι 0, τότε ο χρήστης έβαλε "0" ή κάτι που δεν είναι αριθμός, το 1ο εύκολα ελέγχεται. Διαφορετικά θα πάρεις μεταβλητή τύπου Decimal με τον δεκαδικό που εισήγαγε ο χρήστης.

2.αν ειναι συνδιασμος ακεραιων αριθμων χωρισμενων με κομμα

Εγώ αυτό το κατάλαβα σαν 1,34,56,78,... και όχι σαν δεκαδικό

Μην ξεχνατε τα locales !!1!eleven

Δεν τα ξεχνάμε, αλλά εδώ σου λέει ότι δεν έχουν κάνει ακόμα strings, κλπ., locales θα ξέρουν; :p

κατι παω να καταλαβω αλλα παλι χανομαι στο tryparse γτ δν το εχω κανει ως "βοηθο"..ειμαστε ακομη αρχαριοι στο πανεπιστημιο ...ασε που νομιζω πως θελει κατι πιο απλο και οχι τετοιες "βοηθειες" απο την βιβλιοθηκη xD

Για να το κανω λιγο πιο λιανα πες μ ακριβως τι πρεπει να γραψω σας κωδικα στο dev για παραδειγμα ωστε να διαβαζει απ το πληκτρολογιο 1 αριθμο και αμεσως μετα να ελεγχει αν αυτος ειναι ακεραιος και να τον εκτυπωνει αλλιως να κανει end of file.

Όλα στο πιάτο


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
System.Console.Out.Write("Input a number:");
var inputToTest = System.Console.In.ReadLine();

short inputAsInteger;
if(Int16.TryParse(inputToTest,out inputAsInteger))
System.Console.Out.Write("Valid number input\n");
else
System.Console.Out.Write("Not valid number input\n");

}
}
}

Δεν έχει try catch για exceptions.Και είναι Console Application.

Clopyright 50 Κιλα κωδικας A.E.B.E και ΣΙΑ 2015 :p

ρε φιλε μου [MENTION=1215]nucleus[/MENTION] δν ειμαι προγραμματιστης ακομη στο 1ο εξαμηνο ειμαι δεν καταλαβαινω απο αυτα π μ στελνεις τπτ xD ...πρεπει να τ γραψω απλα με καποιον τροπο :p

Καταρχήν είναι σίγουρα σε C#?Mήπως είναι C?

Θέλεις κάτι να τρέχει ή μήπως θες μια περιγραφή σε ψευτοκώδικα?

Για να δώ, αυτό που είναι ελληνικά και όχι C# θα το καταλάβεις;

ρε φιλε μου [MENTION=1215]nucleus[/MENTION] δν ειμαι προγραμματιστης ακομη στο 1ο εξαμηνο ειμαι δεν καταλαβαινω απο αυτα π μ στελνεις τπτ xD ...πρεπει να τ γραψω απλα με καποιον τροπο :p
MHN γράφεις με SMS συντμήσεις, γράφε ελληνικά. :whip:

Σου έχω κάνει εγώ και άλλοι mods τόσες φορές παρατήρηση.

ααουυ με συγχωρειτε :p .... [MENTION=4796]TifoziF1[/MENTION] αλλαξε το ονομα του θεματος σε C Παρακαλω γτ εγραψα c# ...c εννουσα :X ...και συγνωμη για τις συντομογραφιες

:warning2:

Πας στο 1ο ποστ, πατάς edit.png μετά στο κουμπι Επεξεργαστής Κειμένου και αλλάζεις τίτλο. Τόσο απλό.

Archived

This topic is now archived and is closed to further replies.

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

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.