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

C#: Πρόγραμμα υπολογισμού μέσου όρου.


costgial

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

Στις 1/1/2018 στις 7:40 ΠΜ, solarpower είπε

Ο μέσος όρος βγαίνει με τον προηγούμενο μέσο όρο συν την νέα τιμή και αυτό το άθροισμα το διαιρούμε στο τέλος με το σύνολο των εισαγωγών.

Άστο καλύτερα :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

12 ώρες πριν, k33theod είπε

costgial

Ευχαριστώ γιατί δίνεις τροφή για σκέψη :)

Να πούμε επίσης ότι υπάρχει και η συνάρτηση Average() που επιστρέφει μέσo όρο για περιπτώσεις που έχουμε μεγάλα array με πολλές τιμές οπότε έκανα και εγώ ένα script που κάνω τη δουλεία με array χωρίς όμως ελέγχους για την είσοδο


Console.WriteLine("Δώσε αριθμούς για να υπολογίσω τον μέσo όρο (quit για έξοδο) ");
int counter = 0;
string entry;
double[] arithmoi = new double[50];
while ((entry = Console.ReadLine()) != "quit" && counter<50)
    arithmoi[counter++] = Double.Parse(entry);
Console.WriteLine($"Ο μέσος όρος των {counter} αριθμών είναι {arithmoi.Take(counter).Average()}");
            

εγώ δίνω τροφή για σκέψη όταν προσπαθώ να πάρω τροφή για προγραμματιστική σκέψη χεχε. Καλή σου χρονιά! :-D

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

16 hours ago, Kostas Palaiologos said:

                        //avoid overflow
                        if (number < Double.MinValue)
                        {
                            number = Double.MinValue;
                        }
                        
                        if (number > Double.MaxValue)
                        {
                            number = Double.MaxValue;
                        }

Καταθέτω και εγώ τον όβολο μου. καλή χρονιά σε όλους

Αυτό το μέρος του κώδικα δεν κάνει απολύτως τίποτα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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


namespace ConsoleApp1
{
    
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(
                "Avg:{0}", 
                ConsoleDoubleReader(
                    x => double.TryParse(x, out var _),
                    v => v.Equals("quit")
                    ).Average()
                );
            
            Console.Read();
        }
        static IEnumerable<double> ConsoleDoubleReader(Predicate<string> validate, Predicate<string> eof)
        {
            for (var input = Console.ReadLine(); !eof(input); input = Console.ReadLine())
                if (validate(input))
                    yield return Double.Parse(input);
                else
                    continue;
        }
    }
}

get-trolled-2.jpg

  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

57 λεπτά πριν, παπι είπε
  Εμφάνιση κρυμμένου περιεχομένου


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


namespace ConsoleApp1
{
    
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(
                "Avg:{0}", 
                ConsoleDoubleReader(
                    x => double.TryParse(x, out var _),
                    v => v.Equals("quit")
                    ).Average()
                );
            
            Console.Read();
        }
        static IEnumerable<double> ConsoleDoubleReader(Predicate<string> validate, Predicate<string> eof)
        {
            for (var input = Console.ReadLine(); !eof(input); input = Console.ReadLine())
                if (validate(input))
                    yield return Double.Parse(input);
                else
                    continue;
        }
    }
}
  Εμφάνιση κρυμμένου περιεχομένου

get-trolled-2.jpg

Δε σου κρύβω ότι μπερδέφτηκα λιγάκι :D

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

@παπι cool αλλά γιατί όχι λίγο ακόμα LINQ αντί για καστομιές;

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(
                "Avg:{0}", 
                ConsoleLineReader()
                    .TakeWhile(s => s !== "quit")
                    .Where(s => double.TryParse(s, out var _))
                    .Select(double.Parse)
                    .Average()
                );
            
            Console.Read();
        }

        static IEnumerable<string> ConsoleLineReader()
        {
            while (true) yield return Console.ReadLine();
        }
    }

;)

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

8 ώρες πριν, costgial είπε

Δε σου κρύβω ότι μπερδέφτηκα λιγάκι :D

Δώσε της χρόνο, αυτη η γλωσσα εχει από τα καλύτερα syntax. Πραγματική ευχαρίστηση ναμγραφεις πανω της.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στις ‎05‎/‎01‎/‎2018 στις 8:29 ΜΜ, defacer είπε

@παπι cool αλλά γιατί όχι λίγο ακόμα LINQ αντί για καστομιές;


    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(
                "Avg:{0}", 
                ConsoleLineReader()
                    .TakeWhile(s => s !== "quit")
                    .Where(s => double.TryParse(s, out var _))
                    .Select(double.Parse)
                    .Average()
                );
            
            Console.Read();
        }

        static IEnumerable<string> ConsoleLineReader()
        {
            while (true) yield return Console.ReadLine();
        }
    }

;)

Η καλύτερη λύση..!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 3 εβδομάδες αργότερα...

Αγαπητέ φίλε costgial, αν θέλεις να ασχοληθείς σοβαρά με τον προγραμματισμό, θα πρέπει πρώτα να μάθεις ποια είναι τα εργαλεία σου. Το να χρησιμοποιείς αυτά που σου προτείνουν χωρίς να τα γνωρίζεις δεν είναι λύση. Παράδειγμα: Πρέπει να ξέρεις ακριβώς πως λειτουργεί και γιατί το error handling και μετά,... να πάρεις ιδέες για το πώς θα το χρησιμοποιείς στον κώδικά σου.

Παρατήρησα οτι σου έχουν προτείνει κάποιες τεχνικές ή frameworks, κλπ (όπως το LINQ), που σε καμία περίπτωση δεν θα σε βοηθήσουν να μάθεις, και μάλλον θα σε μπερδέψουν. Γι' αυτό, το καλύτερο που έχεις να κάνεις είναι να ξεκινήσεις με κάποιο βιβλίο ή tutorials.

Τα αγγλικά είναι πολύ βασικά, γιατί μόνο με αυτά μπορείς να βρείς πραγματική βοήθεια στο διαδύκτιο. Μάθε να διαιρείς το πρόβλημα σε μικρότερα και να αναζητείς λύσεις γι' αυτά. Σου προτείνω το stackoverflow.

Ο προγραμματισμός (το coding που λέμε), έχει τα εξής που πρέπει να κατανοήσεις και να έχεις πάντα στο νου σου:

  • Σύνταξη (basic, flow control, exceptions, arrays, types, κλπ)
  • Design patterns
  • OOP (Object Oriented Programming)
  • Memory Management (garbage collection, reference counting, manual, ...)
  • Error handling
  • Threading

Δεν σε βοήθησα στο συγκεκριμένο σου πρόβλημα, αλλά είμαι σίγουρος οτι σε βοήθησα σε όλα τα μελλοντικά σου!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • 2 εβδομάδες αργότερα...
Στις 1/26/2018 στις 2:21 ΜΜ, vapon είπε

Αγαπητέ φίλε costgial, αν θέλεις να ασχοληθείς σοβαρά με τον προγραμματισμό, θα πρέπει πρώτα να μάθεις ποια είναι τα εργαλεία σου. Το να χρησιμοποιείς αυτά που σου προτείνουν χωρίς να τα γνωρίζεις δεν είναι λύση. Παράδειγμα: Πρέπει να ξέρεις ακριβώς πως λειτουργεί και γιατί το error handling και μετά,... να πάρεις ιδέες για το πώς θα το χρησιμοποιείς στον κώδικά σου.

Παρατήρησα οτι σου έχουν προτείνει κάποιες τεχνικές ή frameworks, κλπ (όπως το LINQ), που σε καμία περίπτωση δεν θα σε βοηθήσουν να μάθεις, και μάλλον θα σε μπερδέψουν. Γι' αυτό, το καλύτερο που έχεις να κάνεις είναι να ξεκινήσεις με κάποιο βιβλίο ή tutorials.

Τα αγγλικά είναι πολύ βασικά, γιατί μόνο με αυτά μπορείς να βρείς πραγματική βοήθεια στο διαδύκτιο. Μάθε να διαιρείς το πρόβλημα σε μικρότερα και να αναζητείς λύσεις γι' αυτά. Σου προτείνω το stackoverflow.

Ο προγραμματισμός (το coding που λέμε), έχει τα εξής που πρέπει να κατανοήσεις και να έχεις πάντα στο νου σου:

  • Σύνταξη (basic, flow control, exceptions, arrays, types, κλπ)
  • Design patterns
  • OOP (Object Oriented Programming)
  • Memory Management (garbage collection, reference counting, manual, ...)
  • Error handling
  • Threading

Δεν σε βοήθησα στο συγκεκριμένο σου πρόβλημα, αλλά είμαι σίγουρος οτι σε βοήθησα σε όλα τα μελλοντικά σου!

Ευχαριστώ πολύ για την απαντηση φίλε μου. Επειδή μου αρέσει ο προγραμματισμός και ειδικά η γλώσσα C#, άλλαξα πορεία. Τι εννοώ; Πήρα ένα βιβλίο στα Ελληνικά που αναλύει τη φιλοσοφία του OOP μέσω της C++. Αυτό το έκανα, διότι τα Αγγλικά μου είναι φτωχά και έτσι είχα ένα προβληματάκι με το να ξεκινήσω με ένα Αγγλικό βιβλίο της C#. Σκοπός μου είναι μόλις τελειώσω το Ελληνικό βιβλίο και έχω αποκτήσει μια βασική ιδέα να ξεκινήσω ένα ξενόγλωσσο βιβλίο για τη C#. 
Ευχαριστώ και πάλι για την απάντηση σου! :-D 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα
  • Δημιουργία νέου...