<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Courses Q&amp;A - Recent questions and answers in progintro</title>
<link>https://courses.softlab.ntua.gr/q2a/qa/progintro</link>
<description>Powered by Question2Answer</description>
<item>
<title>Answered: Υποβολές ασκήσεων εκτός εργαστηρίου PCLAB</title>
<link>https://courses.softlab.ntua.gr/q2a/1072/%CF%85%CF%80%CE%BF%CE%B2%CE%BF%CE%BB%CE%AD%CF%82-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD-%CE%B5%CE%BA%CF%84%CF%8C%CF%82-%CE%B5%CF%81%CE%B3%CE%B1%CF%83%CF%84%CE%B7%CF%81%CE%AF%CE%BF%CF%85-pclab?show=1073#a1073</link>
<description>&lt;p&gt;Οι σειρές ασκήσεων του progintro (με εξαίρεση τις χρονιές του COVID) υποβάλλονται από τους πρωτοετείς φοιτητές &lt;strong&gt;μόνο από τους υπολογιστές του PCLAB&lt;/strong&gt;, την ώρα του εργαστηρίου του μαθήματος. Αν η ώρα δεν επαρκεί και υπάρξει ανάγκη για παράταση, θα διαπιστωθεί και θα δοθεί παράταση. Για φοιτητές που έρχονται καθυστερημένα στο εξάμηνο (π.χ. λόγω μετεγγραφών), λαμβάνεται ιδιαίτερη μέριμνα για εκπρόθεσμες υποβολές.&lt;/p&gt;
&lt;p&gt;(Βλέπω ότι πιθανώς η ερώτηση γίνεται από φοιτητή μεγαλύτερου έτους.) Υπενθυμίζεται ότι σύμφωνα με το &lt;a rel=&quot;nofollow&quot; href=&quot;https://helios.ntua.gr/pluginfile.php/1896/course/section/4129/2023b_%CE%95%CE%BD%CE%B7%CE%BC%CE%B5%CF%81%CF%89%CF%84%CE%B9%CE%BA%CF%8C%20%CF%86%CF%85%CE%BB%CE%BB%CE%AC%CE%B4%CE%B9%CE%BF.pdf&quot;&gt;ενημερωτικό φυλλάδιο&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Οι φοιτητές παλαιότερων εξαμήνων που έχουν ξαναπάρει το μάθημα&lt;br&gt;
βαθμολογούνται μόνο βάσει της τελικής γραπτής εξέτασης (με αναγωγή&lt;br&gt;
στις 10 μονάδες) και δε συμμετέχουν στο εργαστήριο. Για να περάσει&lt;br&gt;
κάποιος πρέπει να έχει τουλάχιστον 4.5 στα 10.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Αν υπάρχει κάποιος ιδιαίτερος και σοβαρός λόγος ώστε να γίνει ειδική ρύθμιση για κάποιον φοιτητή, μπορείτε να στείλετε e-mail στους διδάσκοντες του μαθήματος.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/1072/%CF%85%CF%80%CE%BF%CE%B2%CE%BF%CE%BB%CE%AD%CF%82-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD-%CE%B5%CE%BA%CF%84%CF%8C%CF%82-%CE%B5%CF%81%CE%B3%CE%B1%CF%83%CF%84%CE%B7%CF%81%CE%AF%CE%BF%CF%85-pclab?show=1073#a1073</guid>
<pubDate>Mon, 02 Oct 2023 20:14:39 +0000</pubDate>
</item>
<item>
<title>Answered: Copy-paste στο vi</title>
<link>https://courses.softlab.ntua.gr/q2a/420/copy-paste-%CF%83%CF%84%CE%BF-vi?show=1070#a1070</link>
<description>&lt;p&gt;Το σχόλιο με το &lt;code&gt;gg=G&lt;/code&gt; δεν απαντάει ακριβώς την ερώτηση. Δεν εμποδίζει το να χαλάσει η μορφοποίηση, αλλά τη διορθώνει εκ των υστέρων. Μάλιστα, η εντολή αυτή στο vi μορφοποιεί οποιοδήποτε (ολόκληρο) πρόγραμμα, είτε το έχετε κάνει copy-paste, είτε όχι.&lt;/p&gt;
&lt;p&gt;Ο σωστός τρόπος για να μην χαλάσει η μορφοποίηση όταν κάνουμε copy-paste στο vi είναι να χρησιμοποιήσουμε πιο πριν την εντολή &lt;code&gt;:set paste&lt;/code&gt;. Αυτό πρακτικά σταματάει την αυτόματη στοίχιση σε οτιδήποτε γράφουμε (ή κάνουμε copy-paste). Για να επαναφέρουμε την αυτόματη στοίχιση μετά, χρησιμοποιούμε την αντίστροφη εντολή &lt;code&gt;:set nopaste&lt;/code&gt;.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/420/copy-paste-%CF%83%CF%84%CE%BF-vi?show=1070#a1070</guid>
<pubDate>Sun, 01 Oct 2023 01:11:01 +0000</pubDate>
</item>
<item>
<title>Answered: Εξεταστική Σεπτεμβρίου</title>
<link>https://courses.softlab.ntua.gr/q2a/811/%CE%B5%CE%BE%CE%B5%CF%84%CE%B1%CF%83%CF%84%CE%B9%CE%BA%CE%AE-%CF%83%CE%B5%CF%80%CF%84%CE%B5%CE%BC%CE%B2%CF%81%CE%AF%CE%BF%CF%85?show=814#a814</link>
<description>&lt;p&gt;Δείτε σημερινή ανακοίνωση επ' αυτού στις ιστοσελίδες των μαθημάτων #progintro και #progtech.  Καλό καλοκαίρι!&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/811/%CE%B5%CE%BE%CE%B5%CF%84%CE%B1%CF%83%CF%84%CE%B9%CE%BA%CE%AE-%CF%83%CE%B5%CF%80%CF%84%CE%B5%CE%BC%CE%B2%CF%81%CE%AF%CE%BF%CF%85?show=814#a814</guid>
<pubDate>Fri, 30 Jul 2021 09:50:30 +0000</pubDate>
</item>
<item>
<title>Answered: 5η σειρά ασκήσεων γραπτές ασκήσεις</title>
<link>https://courses.softlab.ntua.gr/q2a/462/5%CE%B7-%CF%83%CE%B5%CE%B9%CF%81%CE%AC-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD-%CE%B3%CF%81%CE%B1%CF%80%CF%84%CE%AD%CF%82-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CE%B9%CF%82?show=480#a480</link>
<description>&lt;p&gt;Η &lt;a rel=&quot;nofollow&quot; href=&quot;https://courses.corelab.ntua.gr/course/view.php?id=29&quot;&gt;υποβολή γραπτών ασκήσεων&lt;/a&gt; της 5ης σειράς έχει ανοίξει.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/462/5%CE%B7-%CF%83%CE%B5%CE%B9%CF%81%CE%AC-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD-%CE%B3%CF%81%CE%B1%CF%80%CF%84%CE%AD%CF%82-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CE%B9%CF%82?show=480#a480</guid>
<pubDate>Fri, 22 Jan 2021 15:10:59 +0000</pubDate>
</item>
<item>
<title>Answered: Μορφή τελικής ηλεκτρονικής τηλε-εξέτασης</title>
<link>https://courses.softlab.ntua.gr/q2a/374/%CE%BC%CE%BF%CF%81%CF%86%CE%AE-%CF%84%CE%B5%CE%BB%CE%B9%CE%BA%CE%AE%CF%82-%CE%B7%CE%BB%CE%B5%CE%BA%CF%84%CF%81%CE%BF%CE%BD%CE%B9%CE%BA%CE%AE%CF%82-%CF%84%CE%B7%CE%BB%CE%B5-%CE%B5%CE%BE%CE%AD%CF%84%CE%B1%CF%83%CE%B7%CF%82?show=479#a479</link>
<description>&lt;p&gt;Ναι, μπορεί να θεωρηθεί ενδεικτική.&lt;br&gt;
Δείτε και &lt;a rel=&quot;nofollow&quot; href=&quot;https://courses.softlab.ntua.gr/q2a/472&quot;&gt;αυτή την απάντηση&lt;/a&gt;.&lt;br&gt;
Η εξέταση θα διαρκέσει περίπου 1 ώρα.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/374/%CE%BC%CE%BF%CF%81%CF%86%CE%AE-%CF%84%CE%B5%CE%BB%CE%B9%CE%BA%CE%AE%CF%82-%CE%B7%CE%BB%CE%B5%CE%BA%CF%84%CF%81%CE%BF%CE%BD%CE%B9%CE%BA%CE%AE%CF%82-%CF%84%CE%B7%CE%BB%CE%B5-%CE%B5%CE%BE%CE%AD%CF%84%CE%B1%CF%83%CE%B7%CF%82?show=479#a479</guid>
<pubDate>Fri, 22 Jan 2021 14:43:27 +0000</pubDate>
</item>
<item>
<title>Answered: endif Στην 5η εργαστηριακή?</title>
<link>https://courses.softlab.ntua.gr/q2a/461/endif-%CF%83%CF%84%CE%B7%CE%BD-5%CE%B7-%CE%B5%CF%81%CE%B3%CE%B1%CF%83%CF%84%CE%B7%CF%81%CE%B9%CE%B1%CE%BA%CE%AE?show=478#a478</link>
<description>&lt;p&gt;Το πρόβλημα με το &lt;code&gt;#endif&lt;/code&gt; δημιουργήθηκε μόνο σε όσους έκαναν copy-paste τον κώδικα του template της εργαστηριακής εξέτασης στον editor τους και μόνο αν ο editor τους έχει την κακή συνήθεια να μη βάζει τέλος γραμμής (EOL) πριν το τέλος του αρχείου (EOF).  Στην περίπτωση που συνέβησαν αυτά τα δύο, το αποτέλεσμα ήταν ότι κατά την υποβολή του προγράμματός σας στον grader υπήρχε &lt;strong&gt;σφάλμα μεταγλώττισης&lt;/strong&gt; που ανέφερε ρητά &quot;missing #endif&quot; (ή κάτι τέτοιο).&lt;/p&gt;
&lt;p&gt;Υπό ΚΣ δε χρειαζόταν να κάνετε απολύτως τίποτα με την τελευταία γραμμή του αρχείου.&lt;/p&gt;
&lt;p&gt;Αν το πρόγραμμά σας έγινε δεκτό από τον grader χωρίς σφάλμα μεταγλώττισης, τότε όλα είναι καλά και δεν έχετε τίποτα να ανησυχείτε σχετικά με αυτό το ζήτημα.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Η τελευταία γραμμή κάθε αρχείου κειμένου (που σέβεται τον εαυτό του, όπως λέει και ο ερωτών) πρέπει να καταλήγει σε EOL.  Αυτό προφανώς ισχύει και για τον κώδικα των προγραμμάτων, που γράφεται σε αρχεία κειμένου.  Είτε ο compiler που τρέχει στον grader είτε ο ίδιος ο grader φαίνεται ότι δε λειτουργούν σωστά αν το πρόγραμμα δεν έχει EOL πριν το EOF.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/461/endif-%CF%83%CF%84%CE%B7%CE%BD-5%CE%B7-%CE%B5%CF%81%CE%B3%CE%B1%CF%83%CF%84%CE%B7%CF%81%CE%B9%CE%B1%CE%BA%CE%AE?show=478#a478</guid>
<pubDate>Fri, 22 Jan 2021 14:07:20 +0000</pubDate>
</item>
<item>
<title>Answered: ΔΕΥΤΕΡΟΕΤΗΣ ΠΗΡΑ ΑΡΓΑ ΤΟΥΣ ΚΩΔΙΚΟΥΣ</title>
<link>https://courses.softlab.ntua.gr/q2a/468/%CE%B4%CE%B5%CF%85%CF%84%CE%B5%CF%81%CE%BF%CE%B5%CF%84%CE%B7%CF%83-%CF%80%CE%B7%CF%81%CE%B1-%CE%B1%CF%81%CE%B3%CE%B1-%CF%84%CE%BF%CF%85%CF%83-%CE%BA%CF%89%CE%B4%CE%B9%CE%BA%CE%BF%CF%85%CF%83?show=477#a477</link>
<description>&lt;p&gt;Θα μου στείλεις e-mail με τους δύο κωδικούς που έχεις χρησιμοποιήσει και θα κάνω &quot;merge&quot; τις ασκήσεις σου.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/468/%CE%B4%CE%B5%CF%85%CF%84%CE%B5%CF%81%CE%BF%CE%B5%CF%84%CE%B7%CF%83-%CF%80%CE%B7%CF%81%CE%B1-%CE%B1%CF%81%CE%B3%CE%B1-%CF%84%CE%BF%CF%85%CF%83-%CE%BA%CF%89%CE%B4%CE%B9%CE%BA%CE%BF%CF%85%CF%83?show=477#a477</guid>
<pubDate>Fri, 22 Jan 2021 13:57:43 +0000</pubDate>
</item>
<item>
<title>Answered: Χρήση του MS Forms στις ηλεκτρονικές τηλε-εξετάσεις</title>
<link>https://courses.softlab.ntua.gr/q2a/471/%CF%87%CF%81%CE%AE%CF%83%CE%B7-%CF%84%CE%BF%CF%85-ms-forms-%CF%83%CF%84%CE%B9%CF%82-%CE%B7%CE%BB%CE%B5%CE%BA%CF%84%CF%81%CE%BF%CE%BD%CE%B9%CE%BA%CE%AD%CF%82-%CF%84%CE%B7%CE%BB%CE%B5-%CE%B5%CE%BE%CE%B5%CF%84%CE%AC%CF%83%CE%B5%CE%B9%CF%82?show=476#a476</link>
<description>&lt;p&gt;Το ηλεκτρονικό διαγώνισμα θα πραγματοποιηθεί μέσω του Microsoft Forms και ο συντονισμός της εξέτασης θα γίνει στο Microsoft Teams. Αν δεν έχετε πρότερη εξοικείωση με τις δύο αυτές πλατφόρμες, μπορείτε να συμβουλευτείτε τους ακόλουθους δυο οδηγούς:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://bit.ly/2UPNLcq&quot;&gt;Οδηγίες χρήσης Microsoft Teams για φοιτητές&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://bit.ly/37B8vde&quot;&gt;Ηλεκτρονικό γραπτό διαγώνισμα με Microsoft Forms - σπουδαστες&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Δε νομίζω ότι το MS Forms διατίθεται σε desktop app.  Δουλεύει μιά χαρά από browser.  Δοκιμάστε το πριν την εξέταση.&lt;/p&gt;
&lt;p&gt;Χρησιμοποιώ Linux από το 1995 και ελάχιστες φορές το έχω μετανιώσει...  :-)&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/471/%CF%87%CF%81%CE%AE%CF%83%CE%B7-%CF%84%CE%BF%CF%85-ms-forms-%CF%83%CF%84%CE%B9%CF%82-%CE%B7%CE%BB%CE%B5%CE%BA%CF%84%CF%81%CE%BF%CE%BD%CE%B9%CE%BA%CE%AD%CF%82-%CF%84%CE%B7%CE%BB%CE%B5-%CE%B5%CE%BE%CE%B5%CF%84%CE%AC%CF%83%CE%B5%CE%B9%CF%82?show=476#a476</guid>
<pubDate>Fri, 22 Jan 2021 13:56:50 +0000</pubDate>
</item>
<item>
<title>Answered: Μορφή τελικής τηλε-εξέτασης</title>
<link>https://courses.softlab.ntua.gr/q2a/472/%CE%BC%CE%BF%CF%81%CF%86%CE%AE-%CF%84%CE%B5%CE%BB%CE%B9%CE%BA%CE%AE%CF%82-%CF%84%CE%B7%CE%BB%CE%B5-%CE%B5%CE%BE%CE%AD%CF%84%CE%B1%CF%83%CE%B7%CF%82?show=475#a475</link>
<description>&lt;p&gt;Η τελική εξέταση θα γίνει στο MS Forms.  Θα έχει / μπορεί να έχει ερωτήσεις τύπου:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;multiple choice, με αρνητική βαθμολογία&lt;/li&gt;
&lt;li&gt;ερωτήσεις συσχέτισης (matching), επίσης με αρνητική βαθμολογία&lt;/li&gt;
&lt;li&gt;ερωτήσεις ανοιχτού τύπου με σύντομη απάντηση (π.χ. τι τυπώνει το πρόγραμμα;) &lt;/li&gt;
&lt;li&gt;ανοιχτού τύπου με απάντηση σύντομο κώδικα&lt;/li&gt;
&lt;/ol&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/472/%CE%BC%CE%BF%CF%81%CF%86%CE%AE-%CF%84%CE%B5%CE%BB%CE%B9%CE%BA%CE%AE%CF%82-%CF%84%CE%B7%CE%BB%CE%B5-%CE%B5%CE%BE%CE%AD%CF%84%CE%B1%CF%83%CE%B7%CF%82?show=475#a475</guid>
<pubDate>Fri, 22 Jan 2021 13:50:34 +0000</pubDate>
</item>
<item>
<title>Answered: Τρόπος Βαθμολόγησης Σεπτέμβρη</title>
<link>https://courses.softlab.ntua.gr/q2a/473/%CF%84%CF%81%CF%8C%CF%80%CE%BF%CF%82-%CE%B2%CE%B1%CE%B8%CE%BC%CE%BF%CE%BB%CF%8C%CE%B3%CE%B7%CF%83%CE%B7%CF%82-%CF%83%CE%B5%CF%80%CF%84%CE%AD%CE%BC%CE%B2%CF%81%CE%B7?show=474#a474</link>
<description>&lt;p&gt;Όπως καταλαβαίνετε δεν είναι δυνατό να προβλέψουμε αυτή τη στιγμή τι θα γίνει το Σεπτέμβριο.  Σε κάθε περίπτωση, διατηρούνται οι φετινοί βαθμοί εργαστηρίου.  Αν έχει αποκατασταθεί η λειτουργία της Σχολής και γίνουν γραπτές εξετάσεις με φυσική παρουσία, η βαθμολογία θα είναι 0-10 και κάποιος που δεν έχει πάει καλά στο εργαστήριο θα έχει τη δυνατότητα να πάρει μεγαλύτερο βαθμό.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/473/%CF%84%CF%81%CF%8C%CF%80%CE%BF%CF%82-%CE%B2%CE%B1%CE%B8%CE%BC%CE%BF%CE%BB%CF%8C%CE%B3%CE%B7%CF%83%CE%B7%CF%82-%CF%83%CE%B5%CF%80%CF%84%CE%AD%CE%BC%CE%B2%CF%81%CE%B7?show=474#a474</guid>
<pubDate>Fri, 22 Jan 2021 13:46:53 +0000</pubDate>
</item>
<item>
<title>Answered: Υπολογισμός πολυπλοκότητας βρόχου από γνωστή πολυπλοκότητα κάθε επανάληψης</title>
<link>https://courses.softlab.ntua.gr/q2a/464/%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CE%BC%CF%8C%CF%82-%CF%80%CE%BF%CE%BB%CF%85%CF%80%CE%BB%CE%BF%CE%BA%CF%8C%CF%84%CE%B7%CF%84%CE%B1%CF%82-%CE%B2%CF%81%CF%8C%CF%87%CE%BF%CF%85-%CF%80%CE%BF%CE%BB%CF%85%CF%80%CE%BB%CE%BF%CE%BA%CF%8C%CF%84%CE%B7%CF%84%CE%B1-%CE%B5%CF%80%CE%B1%CE%BD%CE%AC%CE%BB%CE%B7%CF%88%CE%B7%CF%82?show=465#a465</link>
<description>&lt;p&gt;Αν σε ενδιαφέρει το θέμα, μπορείς να διαβάσεις &lt;a rel=&quot;nofollow&quot; href=&quot;https://discrete.gr/complexity/?el&quot;&gt;αυτό το εξαιρετικό άρθρο σχετικά με πολυπλοκότητα αλγόριθμων.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Το bottom line είναι ότι σε ενδιαφέρει να βρεις μια συνάντηση που είναι ασυμπτωτικα μεγαλύτερη από την πολυπλοκότητα που θέλεις να φτιάξεις. &lt;/p&gt;
&lt;p&gt;Στην περίπτωση σου ισχύει $f(n) = \log n + \log (n-1) + ... + \log 1 \leq n\log n = g(n)$, άρα μπορείς να πεις ότι $f(n) = O(g(n))$, το οποίο για τις περισσότερες χρήσεις που θα έχεις είναι ένα good enough όριο, ώστε να μην χρειάζεται να βρεις καλύτερο.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/464/%CF%85%CF%80%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CF%83%CE%BC%CF%8C%CF%82-%CF%80%CE%BF%CE%BB%CF%85%CF%80%CE%BB%CE%BF%CE%BA%CF%8C%CF%84%CE%B7%CF%84%CE%B1%CF%82-%CE%B2%CF%81%CF%8C%CF%87%CE%BF%CF%85-%CF%80%CE%BF%CE%BB%CF%85%CF%80%CE%BB%CE%BF%CE%BA%CF%8C%CF%84%CE%B7%CF%84%CE%B1-%CE%B5%CF%80%CE%B1%CE%BD%CE%AC%CE%BB%CE%B7%CF%88%CE%B7%CF%82?show=465#a465</guid>
<pubDate>Fri, 15 Jan 2021 12:40:00 +0000</pubDate>
</item>
<item>
<title>Answered: READ_STRING</title>
<link>https://courses.softlab.ntua.gr/q2a/437/read_string?show=438#a438</link>
<description>&lt;p&gt;Όλο το αρχείο της PZHelp και οι συναρτήσεις που υλοποιεί μπορούν να βρεθούν στο &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/softlab-ntua/pzhelp/&quot;&gt;github repo&lt;/a&gt; της γλώσσας. Εκεί μπορείς να βρείς και τον κώδικα που τρέχει όταν καλείς την &lt;code&gt;READ_STRING&lt;/code&gt;. Ακόμα εκεί υπάρχει το documentation για κάθε συνάρτηση. Για την &lt;code&gt;READ_STRING&lt;/code&gt; είναι &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/softlab-ntua/pzhelp/blob/master/Macros.el.md#read_string&quot;&gt;αυτό&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;P.S. Προσωπικά προτείνω να κοιτάξεις και τον κώδικα της συνάρτησης και να δεις πώς δουλεύει under the hood, καθώς σιγά σιγά φτάνετε στο τέλος του εξαμήνου και μπορείτε να καταλάβετε αρκετά καλά πως δουλεύουν και τα πράγματα σε C/C++ επίπεδο.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/437/read_string?show=438#a438</guid>
<pubDate>Sun, 10 Jan 2021 17:17:42 +0000</pubDate>
</item>
<item>
<title>Ερωτήσεις σε κώδικα δημιουργίας τράπουλας</title>
<link>https://courses.softlab.ntua.gr/q2a/417/%CE%B5%CF%81%CF%89%CF%84%CE%AE%CF%83%CE%B5%CE%B9%CF%82-%CF%83%CE%B5-%CE%BA%CF%8E%CE%B4%CE%B9%CE%BA%CE%B1-%CE%B4%CE%B7%CE%BC%CE%B9%CE%BF%CF%85%CF%81%CE%B3%CE%AF%CE%B1%CF%82-%CF%84%CF%81%CE%AC%CF%80%CE%BF%CF%85%CE%BB%CE%B1%CF%82</link>
<description>&lt;p&gt;Καλησπέρα! Καλή χρονιά, με υγεία και χαρές σε όλους! Έχω μαζέψει με τον καινούργιο χρόνο κάποιες απορίες λύνοντας ασκήσεις του βιβλίου τις οποίες θα θέσω σε λίγα διαδοχικά threads, ξεκινώντας από αυτό. Έχω έναν κώδικα από άσκηση του βιβλίου (συγκεκριμένα του Χατζηγιαννάκη, σελ. 497, άσκηση 14.21)  η οποία θέλει να δημιουργήσουμε μια τράπουλα με 52 κάρτες. Ο κώδικας που έφτιαξα δίνεται παρακάτω ωστόσο κολλάω σε δύο πράγματα στα οποία θα ήθελα μια μικρή(?) βοήθεια:&lt;/p&gt;
&lt;p&gt;α) Θέλω αυτά που έχει στη main, όπου δίνουν τιμές στις μεταβλητές μέλη για τη δημιουργία των καρτών, να τα βάλω στον constructor της κλάσης trapoula. Μια ιδέα πως να το κάνω αυτό και να δουλέψει; Επίσης, έχω μπλέξει λίγο τον constructor της κλάσης trapoula αφού χρησιμοποιώ μεν τις κάρτες από την κλάση card ωστόσο τον αριθμό των καρτών τον έχω βάλει (αδίκως?) στον contructor της κλάσης trapoula. &lt;/p&gt;
&lt;p&gt;β) Θέλω αντί να χρησιμοποιήσω strings να χρησιμοποιήσω enums, ωστόσο δεν ξέρω πως να δημιουργήσω getters και setters, αλλά και πως να φτιάξω τον constructor με τη xρήση των enum. Κάποια βοήθεια;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Headers 
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;

// Namespace
using namespace std;


class card_deck {
    
    int cards{};

public:
    card_deck() {};
    card_deck(int n) : cards(n) {};
    card cards[52];

    // Card shuffle method 
    void cardshuffle(card cards[52]) {    
       for (int i = 0; i &amp;lt; 52; i++)
        {
            // Random for remaining positions
            int r = i + (rand() % (52 - i));  
            // Swap cards within the card deck
            swap(cards[i], cards[r]);    
        }
    };
    void display(card cards[52]) {
        for (int i = 0; i &amp;lt; 52; i++)
            cout &amp;lt;&amp;lt; cards[i].get_ctype() &amp;lt;&amp;lt; &quot; &quot; &amp;lt;&amp;lt; cards[i].get_cfigure() &amp;lt;&amp;lt; &quot; &quot;;   //Print card deck cards 
        cout &amp;lt;&amp;lt; endl;
    };
    
}carddeck[2];

class card {
    
    string card_type{};
    string card_figure{};

public:
    card() {};
    card(string t, string f) : card_type(t), card_figure(f) {};
    void set_prop(string t, string f) { card_type = t; card_figure = f; };
    string get_ctype() { return card_type; };
    string get_cfigure() { return card_figure; };
}cards[52];


int main()
{
 // Απο εδώ και κάτω θέλω να μεταφερθεί στον constructor της κλάσης trapoulas
    int i;
    
    for (i = 0; i &amp;lt; 52; i++) {                  
        string k, l;
        cout &amp;lt;&amp;lt; &quot; Give card type&quot; &amp;lt;&amp;lt; endl;
        cards[i].set_prop(k,l);
    }
    for (i = 0; i &amp;lt; 52; i++) {
        cout &amp;lt;&amp;lt; &quot; Card type is&quot; &amp;lt;&amp;lt; endl;
        cards[i].get_ctype();
        cards[i].get_cfigure();
    }


    return 0;
}
  
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/417/%CE%B5%CF%81%CF%89%CF%84%CE%AE%CF%83%CE%B5%CE%B9%CF%82-%CF%83%CE%B5-%CE%BA%CF%8E%CE%B4%CE%B9%CE%BA%CE%B1-%CE%B4%CE%B7%CE%BC%CE%B9%CE%BF%CF%85%CF%81%CE%B3%CE%AF%CE%B1%CF%82-%CF%84%CF%81%CE%AC%CF%80%CE%BF%CF%85%CE%BB%CE%B1%CF%82</guid>
<pubDate>Sat, 02 Jan 2021 20:08:39 +0000</pubDate>
</item>
<item>
<title>Answered: Ερώτηση για getter</title>
<link>https://courses.softlab.ntua.gr/q2a/390/%CE%B5%CF%81%CF%8E%CF%84%CE%B7%CF%83%CE%B7-%CE%B3%CE%B9%CE%B1-getter?show=393#a393</link>
<description>&lt;p&gt;Καταρχάς θα πρότεινα να διαβάσεις &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.geeksforgeeks.org/access-modifiers-in-c/&quot;&gt;αυτό&lt;/a&gt; γιατί καλό το trial and error, αλλά κάποια πράγματα πρέπει να τα δείς πιο συστηματικά.&lt;/p&gt;
&lt;p&gt;Από το παραπάνω  άρθρο:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The class members declared as private can be accessed only by the&lt;br&gt;
member functions inside the class. They are not allowed to be accessed&lt;br&gt;
directly by any object or function outside the class.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Άρα συμπεραίνουμε ότι, από την main πχ, δεν μπορείς να κάνεις κατευθείαν access (πχ να τυπώσεις) τα private μέλη μιας κλάσης (πχ &lt;code&gt;kaf1.kafes&lt;/code&gt;), αλλά μπορείς να τα κάνεις access από άλλα μέλη της ίδιας κλάσης (όπως κάνεις στην &lt;code&gt;kafetiera::status()&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Οι seters/geters επομένως είναι χρήσιμοι όταν θες να θέσεις/πάρεις τα private μέλη μιας κλάσης  σε συναρτήσεις όπως η main που δεν έχουν απευθείας πρόσβαση.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt; &lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Παρακάτω φαίνονται λάθος και σωστοί τρόποι να θέσεις/ διαβάσεις μια private μεταβλητή εκτός κλάσης.&lt;br&gt;
 Τα commented κομμάτια του κώδικα θα προκαλέσουν λάθος μεταγλώττισης αν γίνουν uncomment και άρα είναι λάθος τρόποι να κάνεις το αντίστοιχο task.&lt;br&gt;
Tονίζω ότι η ύπαρξη ή όχι setters και getters &lt;strong&gt;δεν θα αλλάξει&lt;/strong&gt; τη συμπεριφορά των commented (λάθος) κομματιών. Αν γίνουν uncomment  θα προκαλέσουν σφάλμα.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#include&amp;lt;iostream&amp;gt;

class A {
private:
 int x;
public:
    void set_x(int i){
        x = i;
    }
    int get_x(){
        return x;
    }
    A():x(0){}
}


int main(){
    class A a;
    
    int i; 
    // a.x = 2;    // ERROR!!! (A::x is private)
    
    a.set_x(2);    // CORRECT
    
    // i = a.x;    // ERROR!!! (A::x is private)
    
    i = get_x();   // CORRECT
    std::cout&amp;lt;&amp;lt;i&amp;lt;&amp;lt;std::endl; // prints 2.
}
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/390/%CE%B5%CF%81%CF%8E%CF%84%CE%B7%CF%83%CE%B7-%CE%B3%CE%B9%CE%B1-getter?show=393#a393</guid>
<pubDate>Wed, 23 Dec 2020 11:48:06 +0000</pubDate>
</item>
<item>
<title>Grader 4η εξέταση</title>
<link>https://courses.softlab.ntua.gr/q2a/375/grader-4%CE%B7-%CE%B5%CE%BE%CE%AD%CF%84%CE%B1%CF%83%CE%B7</link>
<description>&lt;p&gt;Θα μπορούσατε μήπως να φτιάξετε ένα αντίγραφο του σημερινού διαγωνισμού (ημέρας Πέμπτης 17/12/2020) στον Grader για να δοκιμάσουμε να το λύσουμε (ως προπονητική άσκηση) και όσοι εξεταστήκαμε χθες;&lt;/p&gt;
&lt;p&gt;Ευχαριστώ εκ των προτέρων!&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/375/grader-4%CE%B7-%CE%B5%CE%BE%CE%AD%CF%84%CE%B1%CF%83%CE%B7</guid>
<pubDate>Thu, 17 Dec 2020 13:01:45 +0000</pubDate>
</item>
<item>
<title>Answered: 6η Σειρά Ασκήσεων-Δεν έχει Ανέβει?</title>
<link>https://courses.softlab.ntua.gr/q2a/320/6%CE%B7-%CF%83%CE%B5%CE%B9%CF%81%CE%AC-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD-%CE%B4%CE%B5%CE%BD-%CE%AD%CF%87%CE%B5%CE%B9-%CE%B1%CE%BD%CE%AD%CE%B2%CE%B5%CE%B9?show=372#a372</link>
<description>&lt;p&gt;Τώρα έχει...  :-)&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/320/6%CE%B7-%CF%83%CE%B5%CE%B9%CF%81%CE%AC-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD-%CE%B4%CE%B5%CE%BD-%CE%AD%CF%87%CE%B5%CE%B9-%CE%B1%CE%BD%CE%AD%CE%B2%CE%B5%CE%B9?show=372#a372</guid>
<pubDate>Wed, 16 Dec 2020 06:39:53 +0000</pubDate>
</item>
<item>
<title>Answered: Αντιγραφή αρχείου στο novice</title>
<link>https://courses.softlab.ntua.gr/q2a/370/%CE%B1%CE%BD%CF%84%CE%B9%CE%B3%CF%81%CE%B1%CF%86%CE%AE-%CE%B1%CF%81%CF%87%CE%B5%CE%AF%CE%BF%CF%85-%CF%83%CF%84%CE%BF-novice?show=371#a371</link>
<description>&lt;p&gt;Σε περιβάλλοντα Unix/Unix-like υπάρχει η εντολή cp. Το σύστημα του novice ωστόσο φαίνεται να μην υποστηρίζει την εντολή αυτή.&lt;/p&gt;
&lt;p&gt;Ένα workaround είναι να χρησιμοποιήσεις το vi  για να κάνεις αυτή την δουλειά. Ειδικότερα το vi έχει την εντολή &lt;code&gt;:sav {file}&lt;/code&gt; με την οποία το αρχείο που έχεις ανοιχτό αποθηκεύεται σε ένα άλλο αρχείο (το file), με το vi πλέον να θεωρεί ότι επεξεργάζεσαι το νέο αρχείο.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/370/%CE%B1%CE%BD%CF%84%CE%B9%CE%B3%CF%81%CE%B1%CF%86%CE%AE-%CE%B1%CF%81%CF%87%CE%B5%CE%AF%CE%BF%CF%85-%CF%83%CF%84%CE%BF-novice?show=371#a371</guid>
<pubDate>Mon, 14 Dec 2020 15:52:03 +0000</pubDate>
</item>
<item>
<title>Answered: κωδικοί progintro με διαφορετικό mail</title>
<link>https://courses.softlab.ntua.gr/q2a/355/%CE%BA%CF%89%CE%B4%CE%B9%CE%BA%CE%BF%CE%AF-progintro-%CE%BC%CE%B5-%CE%B4%CE%B9%CE%B1%CF%86%CE%BF%CF%81%CE%B5%CF%84%CE%B9%CE%BA%CF%8C-mail?show=357#a357</link>
<description>&lt;p&gt;Η ερώτηση έχει απαντηθεί από τον κ. Παπασπύρου (@nickie) εδώ: &lt;a rel=&quot;nofollow&quot; href=&quot;https://courses.softlab.ntua.gr/q2a/228/%CE%BA%CF%89%CE%B4%CE%B9%CE%BA%CE%BF%CE%AF-progintro-%CF%80%CF%81%CE%B9%CE%BD-%CE%BA%CE%B1%CE%B9-%CE%BC%CE%B5%CF%84%CE%AC-%CF%84%CE%B7%CE%BD-%CE%B5%CE%B3%CE%B3%CF%81%CE%B1%CF%86%CE%AE&quot;&gt;https://courses.softlab.ntua.gr/q2a/228/κωδικοί-progintro-πριν-και-μετά-την-εγγραφή&lt;/a&gt;&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/355/%CE%BA%CF%89%CE%B4%CE%B9%CE%BA%CE%BF%CE%AF-progintro-%CE%BC%CE%B5-%CE%B4%CE%B9%CE%B1%CF%86%CE%BF%CF%81%CE%B5%CF%84%CE%B9%CE%BA%CF%8C-mail?show=357#a357</guid>
<pubDate>Sun, 13 Dec 2020 16:30:44 +0000</pubDate>
</item>
<item>
<title>Answered: Error prompt : &quot;Member inaccessible&quot;</title>
<link>https://courses.softlab.ntua.gr/q2a/345/error-prompt-member-inaccessible?show=347#a347</link>
<description>&lt;p&gt;Πρόσεξε λίγο εδώ:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; cout &amp;lt;&amp;lt; &quot;dwse ba8mous sto prwto ma8ima&quot; &amp;lt;&amp;lt; endl;
    	for (int i = 0; i &amp;lt; NO_STUDENT; ++i)
    		cin &amp;gt;&amp;gt; stnts[i].ma8ima_1;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Στο &lt;code&gt;cin &amp;gt;&amp;gt; stnts[i].ma8ima_1;&lt;/code&gt;:&lt;br&gt;
Το νόημα των private members είναι το να μην μπορούν να τα διαχειριστούν άλλοι εκτός της ίδιας της κλάσης (δηλαδή, κώδικας των μεθόδων της).&lt;/p&gt;
&lt;p&gt;Για να δουλέψει το παράδειγμά σου μπορείς να δημιουργήσεις συναρτήσεις get/set για τις private τιμές, πχ:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void setMathima1(int a) { mathima1 = a; }
int getMathima1() { return mathima1; }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;και κάθε φορά που επιθυμείς να διαβάσεις/γράψεις σε αυτές να καλείς την αντίστοιχη μέθοδο.&lt;/p&gt;
&lt;p&gt;Επίσης, ακόμα πιο σωστό θα ήταν να χρησιμοποιήσεις τους constructors που δέχονται τα μαθήματα ως παραμέτρους, και να κατασκευάζεις απευθείας τον μαθητή με όλους τους βαθμούς του. &lt;br&gt;
πχ:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cin &amp;gt;&amp;gt; a &amp;gt;&amp;gt; b &amp;gt;&amp;gt; c;
student mathitis(a, b, c);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Κάτι τελευταίο: ο υπολογισμός του μέσου όρου του κάθε μαθητή εξαρτάται από τους βαθμούς του μαθητή, επομένως θα ταίριαζε πολύ να δημιουργήσεις μια μέθοδο στην κλάση &lt;code&gt;student&lt;/code&gt;, όπως &lt;code&gt;float calculateAverageGrade()&lt;/code&gt;, που να υπολογίζει και να επιστρέφει τον μέσο όρο.&lt;br&gt;
Οπότε εν τέλει να το χρησιμοποιείς με αυτό τον τρόπο:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cout &amp;lt;&amp;lt; student1.calculateAverageGrade() &amp;lt;&amp;lt; endl;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;το οποίο μου φαίνεται πιο καθαρό, και σου μειώνει πολύ τις γραμμές κώδικα εκτός της κλάσης student :D&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/345/error-prompt-member-inaccessible?show=347#a347</guid>
<pubDate>Sat, 12 Dec 2020 11:04:59 +0000</pubDate>
</item>
<item>
<title>Answered: Πρόγραμμα το οποίο ζητάει 10 ονόματα σε πίνακα αντικειμένων string και δεν επιτρέπει την καταχώριση ίδιου ονόματος ξανά</title>
<link>https://courses.softlab.ntua.gr/q2a/336/%CF%80%CF%81%CF%8C%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1-%CE%BF%CE%BD%CF%8C%CE%BC%CE%B1%CF%84%CE%B1-%CE%B1%CE%BD%CF%84%CE%B9%CE%BA%CE%B5%CE%B9%CE%BC%CE%AD%CE%BD%CF%89%CE%BD-%CE%B5%CF%80%CE%B9%CF%84%CF%81%CE%AD%CF%80%CE%B5%CE%B9-%CE%BA%CE%B1%CF%84%CE%B1%CF%87%CF%8E%CF%81%CE%B9%CF%83%CE%B7-%CE%BF%CE%BD%CF%8C%CE%BC%CE%B1%CF%84%CE%BF%CF%82?show=337#a337</link>
<description>&lt;p&gt;Έχεις κάμποσα προβληματάκια. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Το κυριότερο είναι ότι το &lt;code&gt;find_it(frasi, 10, frasi[i])&lt;/code&gt; θα είναι&lt;br&gt;
πάντα αληθές (αν έχεις υλοποιήσει σωστά το &lt;code&gt;find_it&lt;/code&gt;), αφού πάντα&lt;br&gt;
μέσα σε έναν πίνακα υπάρχει το i-στο στοιχείο του. (Ίσως να χρησιμοποιούσες κάποιο προσωρινό string πριν κάνεις την αναζήτηση και ύστερα να το περνάς στον πίνακα).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Το loop που έχεις στη main δεν βάζει 10 στοιχεία στον πίνακα, αλλά &lt;strong&gt;το πολύ&lt;/strong&gt; 10.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Η &lt;code&gt;find_it&lt;/code&gt; δεν χρειάζεται δύο loop.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;br&gt;
 Και μερικά εξτραδάκια που δεν επηρεάζουν πολύ τη λειτουργικότητα αλλά θα ήταν  Καλό Πράγμα™ να παραλειφθούν:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Το πρώτο &lt;code&gt;find_it&lt;/code&gt; είναι περιττό (και μάλλον το έχεις αφήσει εκ παραδρομής).&lt;/li&gt;
&lt;li&gt;Μπορείς να παραλείψεις το &lt;code&gt;else continue;&lt;/code&gt; και θα έχεις ακριβώς την ίδια λειτουργικότητα.&lt;/li&gt;
&lt;li&gt;To &lt;code&gt;if ( something == true)&lt;/code&gt; μπορεί πάντα να αντικατασταθεί από το &lt;code&gt;if (something)&lt;/code&gt; και είναι και πιο καθαρό κατά τη γνώμη μου.&lt;/li&gt;
&lt;/ul&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/336/%CF%80%CF%81%CF%8C%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1-%CE%BF%CE%BD%CF%8C%CE%BC%CE%B1%CF%84%CE%B1-%CE%B1%CE%BD%CF%84%CE%B9%CE%BA%CE%B5%CE%B9%CE%BC%CE%AD%CE%BD%CF%89%CE%BD-%CE%B5%CF%80%CE%B9%CF%84%CF%81%CE%AD%CF%80%CE%B5%CE%B9-%CE%BA%CE%B1%CF%84%CE%B1%CF%87%CF%8E%CF%81%CE%B9%CF%83%CE%B7-%CE%BF%CE%BD%CF%8C%CE%BC%CE%B1%CF%84%CE%BF%CF%82?show=337#a337</guid>
<pubDate>Wed, 09 Dec 2020 13:37:37 +0000</pubDate>
</item>
<item>
<title>Answered: ΠΡΟΠΟΝΗΣΗ ΑΣΚΗΣΗ 17</title>
<link>https://courses.softlab.ntua.gr/q2a/312/%CF%80%CF%81%CE%BF%CF%80%CE%BF%CE%BD%CE%B7%CF%83%CE%B7-%CE%B1%CF%83%CE%BA%CE%B7%CF%83%CE%B7-17?show=328#a328</link>
<description>&lt;p&gt;Η συγκεκριμένη άσκηση έχει λυθεί και εξηγηθεί από τον κύριο Παπασπύρου στο μάθημα στην αρχή του εξαμήνου. Θα σου πρότεινα να ρωτήσεις κάποιον συμφοιτητή μας να σου πει ποιο test case δημιουργεί το πρόβλημα και κυρίως γιατί δημιουργείται αυτό το πρόβλημα. (Είναι συγκεκριμένο το test case που προκαλεί το πρόβλημα στους περισσότερους σε αυτήν την άσκηση!) Είναι σχετικά δύσκολο να μαντέψεις μόνος/μόνη σου πού εντοπίζεται το πρόβλημα εδώ, και σίγουρα ακόμα δυσκολότερο να εξηγήσεις γιατί συμβαίνει.&lt;/p&gt;
&lt;p&gt;Υ.Γ. Θα σου έγραφα το testcase που δημιουργεί το πρόβλημα, το είχαμε συζητήσει με τον κύριο Παπασπύρου, όμως επειδή η ερώτηση αυτή είναι δημόσια ίσως κάψω την άσκηση για τους επομένους.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/312/%CF%80%CF%81%CE%BF%CF%80%CE%BF%CE%BD%CE%B7%CF%83%CE%B7-%CE%B1%CF%83%CE%BA%CE%B7%CF%83%CE%B7-17?show=328#a328</guid>
<pubDate>Tue, 08 Dec 2020 16:09:51 +0000</pubDate>
</item>
<item>
<title>Ταξινόμηση πίνακα με quicksort  - ο πίνακας δεν αλλάζει</title>
<link>https://courses.softlab.ntua.gr/q2a/323/%CF%84%CE%B1%CE%BE%CE%B9%CE%BD%CF%8C%CE%BC%CE%B7%CF%83%CE%B7-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1-%CE%BC%CE%B5-quicksort-%CE%BF-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1%CF%82-%CE%B4%CE%B5%CE%BD-%CE%B1%CE%BB%CE%BB%CE%AC%CE%B6%CE%B5%CE%B9</link>
<description>&lt;p&gt;Θα ήθελα να ταξινομήσω έναν πίνακα με ακέραιους αριθμούς σε αύξουσα σειρά και για αυτό χρησιμοποίησα (ουσιαστικά αντέγραψα ;-; ) από τις διαφάνειες του μαθήματος την μέθοδο &lt;code&gt;quicksort&lt;/code&gt;. Παρόλα αυτά, ο πίνακας τυπώνεται χωρίς καμία αλλαγή.  Άλλαξα τις ονομασίες &lt;code&gt;swap&lt;/code&gt; και &lt;code&gt;partition&lt;/code&gt; γιατί το CodeBlocks τις χρωμάτιζε ως δηλωμένες λέξεις.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#include &amp;lt;cstdio&amp;gt;

void swaping(int &amp;amp;x, int &amp;amp;y){
  int save = x;
  x = y;
  y = save;
}

int partitioning(int A[], int first, int last){
  int x = A[(first + last)/2];
  int i = first, j=last;

  while(true){
    while (A[i] &amp;lt; x) i++;
    while (x &amp;lt; A[j]) j--;
    if (i &amp;gt;= j) break;
    swaping(A[i], A[j]);
    i++;
    j--;
  }
  return j;
}

void quicksort(int A[], int first, int last){
  if(first &amp;gt;= last) return;

  int i = partitioning(A, first, last);
  quicksort(A, first, i);
  quicksort(A, i+1, last);
}

int main(){
  int N;
  scanf(&quot;%d&quot;, &amp;amp;N);
  int A[N];

  for(int i=0; i&amp;lt;N; i++)
    scanf(&quot;%d&quot;, &amp;amp;A[i]);

  quicksort(A, A[0], A[N-1]);

  for(int i=0; i&amp;lt;N; i++){
    printf(&quot;%d&quot;, A[i]);
    printf(&quot; &quot;);
  }
}
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/323/%CF%84%CE%B1%CE%BE%CE%B9%CE%BD%CF%8C%CE%BC%CE%B7%CF%83%CE%B7-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1-%CE%BC%CE%B5-quicksort-%CE%BF-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1%CF%82-%CE%B4%CE%B5%CE%BD-%CE%B1%CE%BB%CE%BB%CE%AC%CE%B6%CE%B5%CE%B9</guid>
<pubDate>Tue, 08 Dec 2020 14:52:31 +0000</pubDate>
</item>
<item>
<title>Answered: ερώτηση για κώδικα</title>
<link>https://courses.softlab.ntua.gr/q2a/282/%CE%B5%CF%81%CF%8E%CF%84%CE%B7%CF%83%CE%B7-%CE%B3%CE%B9%CE%B1-%CE%BA%CF%8E%CE%B4%CE%B9%CE%BA%CE%B1?show=304#a304</link>
<description>&lt;p&gt;Έχεις δύο τρόπους να το κάνεις.  Ο πρώτος είναι ευκολότερος γιατί χρειάζεται λιγότερες αλλαγές στο πρόγραμμά σου.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Βάζεις έναν ακόμα μετρητή, τον οποίο αυξάνεις κάθε φορά που το &lt;code&gt;k == 1&lt;/code&gt;.  Ακριβώς αυτό προτείνεις στο σχόλιό σου, αλλά η συνθήκη σου είναι λάθος.  Στο τέλος, η τιμή αυτού του μετρητή είναι το πλήθος των ενδιάμεσων χαρακτήρων (συν ένα για τον πρώτο αστερίσκο).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Αλλάζεις το πρόγραμμά σου ώστε να διαβάζει μέχρι να βρει τον πρώτο αστερίσκο.  Εκεί σταματάς και αρχίζεις να διαβάζεις χαρακτήρες, μετρώντας τους, μέχρι να βρεις το δεύτερο αστερίσκο.  Εκεί σταματάς οριστικά.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/282/%CE%B5%CF%81%CF%8E%CF%84%CE%B7%CF%83%CE%B7-%CE%B3%CE%B9%CE%B1-%CE%BA%CF%8E%CE%B4%CE%B9%CE%BA%CE%B1?show=304#a304</guid>
<pubDate>Thu, 03 Dec 2020 12:40:43 +0000</pubDate>
</item>
<item>
<title>Answered: ΘΕΩΡΗΤΙΚΕΣ ΑΣΚΗΣΕΙΣ</title>
<link>https://courses.softlab.ntua.gr/q2a/287/%CE%B8%CE%B5%CF%89%CF%81%CE%B7%CF%84%CE%B9%CE%BA%CE%B5%CF%83-%CE%B1%CF%83%CE%BA%CE%B7%CF%83%CE%B5%CE%B9%CF%83?show=303#a303</link>
<description>&lt;p&gt;Μετράνε αλλά λίγο --- μάλλον δυσανάλογα λίγο για τη δυσκολία κάποιων από αυτές. Κρίνοντας από το πόσοι τις παραδίδουν, νομίζω ότι είναι καλύτερα να μείνει έτσι.  :-)&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/287/%CE%B8%CE%B5%CF%89%CF%81%CE%B7%CF%84%CE%B9%CE%BA%CE%B5%CF%83-%CE%B1%CF%83%CE%BA%CE%B7%CF%83%CE%B5%CE%B9%CF%83?show=303#a303</guid>
<pubDate>Thu, 03 Dec 2020 12:32:59 +0000</pubDate>
</item>
<item>
<title>Answered: Διαδικασίες και Πίνακες.</title>
<link>https://courses.softlab.ntua.gr/q2a/274/%CE%B4%CE%B9%CE%B1%CE%B4%CE%B9%CE%BA%CE%B1%CF%83%CE%AF%CE%B5%CF%82-%CE%BA%CE%B1%CE%B9-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B5%CF%82?show=275#a275</link>
<description>&lt;p&gt;Μέχρι να απαντηθεί πιο αναλυτικά, (ή μέχρι να διδαχτείτε για δείκτες),&lt;/p&gt;
&lt;p&gt;υπάρχουν διάφοροι τρόποι να το κάνεις, ισως ο πιο ξεκάθαρος αυτή την στιγμή είναι ορίζοντας την συνάρτηση ως&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PROC mergeSort(int arr[], int l, int r) {
    \\ your code goes here
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ΠΡΟΣΟΧΗ: Η συνάρτηση αυτή θα αλλάξει τον πινακα που θέτεις ως παράμετρο. Αν θελεις να κρατησεις και τον αρχικο πίνακα δημιούργησε ένα αντίγραφο του. &lt;/p&gt;
&lt;p&gt;Μπορείς να δεις μια υλοποίηση της merge sort σε C ή C++ &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.geeksforgeeks.org/merge-sort/&quot;&gt;εδώ&lt;/a&gt;.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/274/%CE%B4%CE%B9%CE%B1%CE%B4%CE%B9%CE%BA%CE%B1%CF%83%CE%AF%CE%B5%CF%82-%CE%BA%CE%B1%CE%B9-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B5%CF%82?show=275#a275</guid>
<pubDate>Tue, 01 Dec 2020 13:59:54 +0000</pubDate>
</item>
<item>
<title>Answered: Crypto 1,extra line in the end</title>
<link>https://courses.softlab.ntua.gr/q2a/266/crypto-1-extra-line-in-the-end?show=267#a267</link>
<description>&lt;p&gt;Νομίζω πως καταλάθος τυπώνεις το EOF της εισόδου :)&lt;br&gt;
(Ίσως αυτό που εκτυπώνεται να μην είναι newline...)&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/266/crypto-1-extra-line-in-the-end?show=267#a267</guid>
<pubDate>Fri, 27 Nov 2020 22:49:56 +0000</pubDate>
</item>
<item>
<title>Answered: Βελτιστοποίηση στην συνθήκη του For</title>
<link>https://courses.softlab.ntua.gr/q2a/264/%CE%B2%CE%B5%CE%BB%CF%84%CE%B9%CF%83%CF%84%CE%BF%CF%80%CE%BF%CE%AF%CE%B7%CF%83%CE%B7-%CF%83%CF%84%CE%B7%CE%BD-%CF%83%CF%85%CE%BD%CE%B8%CE%AE%CE%BA%CE%B7-%CF%84%CE%BF%CF%85-for?show=265#a265</link>
<description>&lt;p&gt;Ίσως κάποια &quot;βελτιστοποίηση&quot; (ουσιαστικά, αποφυγή επανυπολογισμού) να συμβαίνει αν το N έχει δηλωθεί ως &lt;code&gt;const&lt;/code&gt; ή είναι defined κατά το pre-compilation (δηλαδή είναι μια σταθερή έκφραση -- επομένως δεν χρειάζεται και υπολογισμό, απλά διάβασμα).&lt;/p&gt;
&lt;p&gt;Κατά τα άλλα, αν το Ν είναι μια μεταβλητή, το &quot;όριο&quot; του for loop θα μεταβάλεται σύμφωνα με το expression στο οποίο συμμετέχει το Ν, και το όριο αυτό θα υπολογίζεται κάθε φορά.&lt;/p&gt;
&lt;p&gt;Αν γνωρίζεις πως το όριο θα μείνει σταθερό και δεν μεταβάλλεται δυναμικά, είναι καλή πρακτική να σώσεις όπως λες την τιμή (πχ σε μια &lt;code&gt;const&lt;/code&gt; μεταβλητή) και να τρέξεις το for loop σύμφωνα με αυτή. Αμφιβάλλω για το αν υπάρχει optimisation pass που κάνει κάτι σαν &quot;tracking&quot; του αν άλλαξε μια μεταβλητή στο σώμα της for ή οχι.&lt;/p&gt;
&lt;p&gt;Για να δείς τον κώδικά σου μετά από κάποιο optimisation μπορείς ίσως να ρίξεις μια ματιά στην Assembly που παράγει ο compiler (δεν ξέρω πόσο κατανοητή θα είναι).&lt;br&gt;
Πάντως είμαι σχεδόν σίγουρος πως δεν μπορείς να δείς τον βελτιστοποιημένο κώδικα, καθώς τα optimisation passes γίνονται αφού ο κώδικας μετατραπεί σε AST μορφή (ουσιαστικά δεν είναι κώδικας πλέον -- περισσότερα στους compilers 8ου εξαμήνου).&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/264/%CE%B2%CE%B5%CE%BB%CF%84%CE%B9%CF%83%CF%84%CE%BF%CF%80%CE%BF%CE%AF%CE%B7%CF%83%CE%B7-%CF%83%CF%84%CE%B7%CE%BD-%CF%83%CF%85%CE%BD%CE%B8%CE%AE%CE%BA%CE%B7-%CF%84%CE%BF%CF%85-for?show=265#a265</guid>
<pubDate>Fri, 27 Nov 2020 20:18:55 +0000</pubDate>
</item>
<item>
<title>Answered: Διάβασμα και εκτύπωση χαρακτήρων με scanf και printf.</title>
<link>https://courses.softlab.ntua.gr/q2a/243/%CE%B4%CE%B9%CE%AC%CE%B2%CE%B1%CF%83%CE%BC%CE%B1-%CE%BA%CE%B1%CE%B9-%CE%B5%CE%BA%CF%84%CF%8D%CF%80%CF%89%CF%83%CE%B7-%CF%87%CE%B1%CF%81%CE%B1%CE%BA%CF%84%CE%AE%CF%81%CF%89%CE%BD-%CE%BC%CE%B5-scanf-%CE%BA%CE%B1%CE%B9-printf?show=245#a245</link>
<description>&lt;p&gt;Το κύριο λάθος που βλέπω είναι ότι στην printf δεν θέλει &amp;amp;, καθώς θες να τυπώσεις το χαρακτήρα και όχι τη διεύθυνση μνήμης.&lt;/p&gt;
&lt;p&gt;Δεν ξέρω αν έχουν δώσει οι διδάσκοντες οδηγίες για να ενεργοποιείς τα warnings στο Dev-C++, αλλά νομίζω θα ήταν μία καλή ευκαιρία να το ψάξεις, γιατί βρίσκεις ενδιαφέροντα πράγματα (θα παρέθετα οδηγίες εδώ αλλά δεν βρήκα κάτι με πρόχειρο γουγλάρισμα...):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;foo.cpp: In function ‘int main()’:
foo.cpp:16:10: warning: format ‘%c’ expects argument of type ‘int’, but argument 2 has type ‘char*’ [-Wformat=]
   printf(&quot;%c&quot;, &amp;amp;st[i]);
          ^~~~  ~~~~~~
foo.cpp:7:9: warning: unused variable ‘k’ [-Wunused-variable]
  int N, k=0;
         ^
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Από εκεί και πέρα, ο κώδικάς σου έχει κάποια λαθάκια, κυρίως σχετικά με το πώς διαχειρίζεσαι την αλλαγή γραμμής. Η scanf διαβάζει και τον χαρακτήρα αλλαγής γραμμής (που ενδέχεται να είναι και 2 χαρακτήρες στα Windows), και εισάγεις έναν τέτοιο χαρακτήρα όταν πατάς το enter μετά τον αριθμό σου [1]. Οπότε για N &amp;lt; 2-3 το πρόγραμμά ενδέχεται να τερματίσει αμέσως, ενώ για μεγαλύτερα N θα σου φάει τους πρώτους 1-2 χαρακτήρες.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/243/%CE%B4%CE%B9%CE%AC%CE%B2%CE%B1%CF%83%CE%BC%CE%B1-%CE%BA%CE%B1%CE%B9-%CE%B5%CE%BA%CF%84%CF%8D%CF%80%CF%89%CF%83%CE%B7-%CF%87%CE%B1%CF%81%CE%B1%CE%BA%CF%84%CE%AE%CF%81%CF%89%CE%BD-%CE%BC%CE%B5-scanf-%CE%BA%CE%B1%CE%B9-printf?show=245#a245</guid>
<pubDate>Thu, 26 Nov 2020 17:56:11 +0000</pubDate>
</item>
<item>
<title>Answered: Ερώτηση για εντολή if</title>
<link>https://courses.softlab.ntua.gr/q2a/239/%CE%B5%CF%81%CF%8E%CF%84%CE%B7%CF%83%CE%B7-%CE%B3%CE%B9%CE%B1-%CE%B5%CE%BD%CF%84%CE%BF%CE%BB%CE%AE-if?show=241#a241</link>
<description>&lt;p&gt;Δεν καταλαβαίνω πώς έχεις μπλεχτεί τόσο πολύ. Είσαι σε ένα while loop. Εάν ισχύει το if, θα εκτελεστεί η εντολή στο if. Όσο δεν ισχύει το if, εκτελείται κανονικά το loop με όλες τις εντολές του πλην της μίας που είναι μέσα στην if. Το &lt;code&gt;p = p-&amp;gt;next&lt;/code&gt; δεν έχει return, είναι μία παλιά καλή ανάθεση.&lt;/p&gt;
&lt;p&gt;Αυτό που λέει ο κώδικας που έχεις γράψει είναι ότι &quot;εάν η frasi είναι μικρότερη ή ίση από το p-&amp;gt;data [1] τότε επίστρεψε το πεδίο previous στη δομή που δείχνει το p [2]. Σε κάθε περίπτωση όμως, προχώρα το p να δείχνει στο επόμενο στοιχείο, μπας και βρούμε εκεί το στοιχείο όπου η &lt;code&gt;frasi &amp;lt;= p-&amp;gt;data&lt;/code&gt;&quot;.&lt;/p&gt;
&lt;p&gt;Αν δεν βάλεις το &lt;code&gt;p = p-&amp;gt;next&lt;/code&gt; τότε το loop σου δεν θα βγάζει πολύ νόημα, γιατί το loop σου θα τρέχει συνέχεια για το ίδιο p (99% infinite loop, εκτός και αν η συνθήκη αληθεύει για το 1ο στοιχείο). Αντίστοιχα θα συμβούν αν δεν βάλεις το &lt;code&gt;i = i + 1&lt;/code&gt; σε κάποιο παλιό καλό loop ακεραίων...&lt;/p&gt;
&lt;p&gt;[1] κάτι που βγάζει ή δεν βγάζει νόημα ανάλογα τον τύπο του frasi. Αν ας πούμε είναι char *, δεν βγάζει νόημα η συνθήκη. Θα βοηθούσε αν μας έδινες και τον ορισμό του struct...&lt;br&gt;
[2] που υποθέτω είναι δείκτης στο προηγούμενο στοιχείο, καθώς δεν μας έχεις δώσει τον ορισμό του struct. Δεν βρήκα αυτό τον κώδικα στις διαφάνειες και δεν έχω τη διάθεση να ψάξω να βρω πού τον βρήκες :)&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/239/%CE%B5%CF%81%CF%8E%CF%84%CE%B7%CF%83%CE%B7-%CE%B3%CE%B9%CE%B1-%CE%B5%CE%BD%CF%84%CE%BF%CE%BB%CE%AE-if?show=241#a241</guid>
<pubDate>Thu, 26 Nov 2020 15:36:04 +0000</pubDate>
</item>
<item>
<title>Answered: Διευκρίνιση σχετικά με τις ασκήσεις 12-13 (crypt1, crypt2) της 5ης σειράς ασκήσεων</title>
<link>https://courses.softlab.ntua.gr/q2a/236/%CE%B4%CE%B9%CE%B5%CF%85%CE%BA%CF%81%CE%AF%CE%BD%CE%B9%CF%83%CE%B7-%CF%83%CF%87%CE%B5%CF%84%CE%B9%CE%BA%CE%AC-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CE%B9%CF%82-crypt1-crypt2-%CF%83%CE%B5%CE%B9%CF%81%CE%AC%CF%82-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD?show=237#a237</link>
<description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Σε όλες τις ασκήσεις που υποβάλλονται στον grader, μπορείτε να εκτυπώνετε τα αποτελέσματα σταδιακά, χωρίς να περιμένετε να διαβαστεί πρώτα ολόκληρη η είσοδος.   Άρα, στις δύο αυτές ασκήσεις, αν θέλετε να επεξεργάζεστε το κείμενο μία γραμμή τη φορά (ή ακόμα και ένα χαρακτήρα τη φορά) και να εκτυπώνετε κατευθείαν το αποτέλεσμα χωρίς να το αποθηκεύετε κάπου, είστε ελεύθεροι να το κάνετε.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Η είσοδος τελειώνει όταν η &lt;code&gt;getchar()&lt;/code&gt; επιστρέψει &lt;code&gt;EOF&lt;/code&gt;.  Το τι θα κάνει ο χρήστης για να το πετύχει αυτό είναι δική του δουλειά και δεν αφορά το πρόγραμμά μας.  Αν θέλετε να το δοκιμάσετε στο novice (και άρα αφορά εσάς), τότε θα πρέπει να πατήσετε Ctrl-D μετά την τελευταία γραμμή του κειμένου.  Αν θέλετε να το δοκιμάσετε στο σπίτι σας, εξαρτάται από το λειτουργικό σας σύστημα.&lt;/p&gt;
&lt;p&gt;(Οι δύο συνεχόμενες φορές Enter, πραγματικά δεν κατάλαβα από πού προκύπτουν.)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/236/%CE%B4%CE%B9%CE%B5%CF%85%CE%BA%CF%81%CE%AF%CE%BD%CE%B9%CF%83%CE%B7-%CF%83%CF%87%CE%B5%CF%84%CE%B9%CE%BA%CE%AC-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CE%B9%CF%82-crypt1-crypt2-%CF%83%CE%B5%CE%B9%CF%81%CE%AC%CF%82-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD?show=237#a237</guid>
<pubDate>Thu, 26 Nov 2020 00:48:00 +0000</pubDate>
</item>
<item>
<title>Answered: Διάβασμα συμβολοσειρών με scanf</title>
<link>https://courses.softlab.ntua.gr/q2a/232/%CE%B4%CE%B9%CE%AC%CE%B2%CE%B1%CF%83%CE%BC%CE%B1-%CF%83%CF%85%CE%BC%CE%B2%CE%BF%CE%BB%CE%BF%CF%83%CE%B5%CE%B9%CF%81%CF%8E%CE%BD-%CE%BC%CE%B5-scanf?show=234#a234</link>
<description>&lt;p&gt;Σύμφωνα με το standard της c++ (&lt;a rel=&quot;nofollow&quot; href=&quot;https://en.cppreference.com/w/cpp/io/c/fscanf&quot;&gt;https://en.cppreference.com/w/cpp/io/c/fscanf&lt;/a&gt;) η συνάρτηση scanf όταν πάει να διαβάσει μια συμβολοσειρά προσπερνά πρώτα όλους τους &quot;κενούς&quot; χαρακτήρες (whitespaces) και μετά ξεκινάει να τοποθετεί τους χαρακτήρες στην συμβολοσειρά. Επειδή το newline θεωρείται &quot;κενός&quot; χαρακτήρας η scanf τον προσπερνά και περιμένει να εισάγετε κάποιον μη-κενό χαρακτήρα για να ξεκινήσει να τοποθετεί χαρακτήρες στην συμβολοσειρά.&lt;/p&gt;
&lt;p&gt;Συνεπώς με τον τρόπο &lt;code&gt;scanf(&quot;%s&quot;, s)&lt;/code&gt; δεν είναι δυνατόν να ανιχνεύσουμε την κένη σειρά. Μια πρόταση θα ήταν να διαβάσουμε την είσοδο του χρήστη γραμμή-γραμμή. Δηλαδή να διαβάζουμε χαρακτήρες μέχρι να πετύχουμε newline και οτιδήποτε βρούμε να το καταχωρούμε στην συμβολοσειρά (φροντίζοντας στο τέλος να βάλουμε τον null χαρακτήρα '\0' ). &lt;/p&gt;
&lt;p&gt;Η ανάγνωση γραμμή-γραμμή μπορεί είτε να υλοποιηθεί από τον γράφοντα είτε να χρησιμοποιηθεί η έτοιμη συνάρτηση της C fgets (&lt;a rel=&quot;nofollow&quot; href=&quot;https://en.cppreference.com/w/cpp/io/c/fgets&quot;&gt;https://en.cppreference.com/w/cpp/io/c/fgets&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Στην περίπτωση της συνάρτησης fgets:&lt;br&gt;
Για να ανιχνεύσουμε την κενή σειρά θα ελέγχουμε αν ο πρώτος χαρακτήρας της συμβολοσειράς ειναι το newline. Για να ανιχνεύσουμε αν ο χρήστης εισήγαγε πλήθος χαρακτήρων μεγαλύτερο από τον επιτρεπόμενο ελέγχουμε τον προτελευταίο χαρακτήρα αν είναι newline (εννοώντας ως προτελευταίο τον χαρακτήρα που βρίσκεται ακριβώς πριν το '\0'. Μια ιδέα για να αποφύγουμε τον έλεγχο χαρακτήρα-χαρακτήρα θα ήταν να αρχικοποιήσουμε την συμβολοσειρά με μηδενικά, οπότε να μπορούμε να ελεγξούμε άμεσα τον προτελευταίο χαρακτήρα αν είναι διάφορος από μηδέν και newline)&lt;/p&gt;
&lt;p&gt;Για να λειτουργήσει αυτό καλό θα ήταν να είμαστε συνεπείς σε όλη την είσοδο και να διαβάσουμε και τον αρχικό αριθμό με αυτόν τρόπο. Για να μετατρέψουμε την 1η γραμμή (τον αριθμό) σε αριθμό μπορούμε να χρησιμοποιήσουμε την συνάρτηση sscanf (&lt;a rel=&quot;nofollow&quot; href=&quot;https://en.cppreference.com/w/cpp/io/c/fscanf&quot;&gt;https://en.cppreference.com/w/cpp/io/c/fscanf&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EDIT:&lt;/strong&gt; Όσο δακτυλογραφούσα την απάντηση, ο κύριος Παπασπύρου (@nickie) έστειλε απάντηση για την ερώτηση. Ο μελλοντικός ανάγνωστης καλύτερα να μελετήσει την απάντησή του, εφόσον είναι ο καθηγητής του μαθήματος.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/232/%CE%B4%CE%B9%CE%AC%CE%B2%CE%B1%CF%83%CE%BC%CE%B1-%CF%83%CF%85%CE%BC%CE%B2%CE%BF%CE%BB%CE%BF%CF%83%CE%B5%CE%B9%CF%81%CF%8E%CE%BD-%CE%BC%CE%B5-scanf?show=234#a234</guid>
<pubDate>Wed, 25 Nov 2020 18:38:19 +0000</pubDate>
</item>
<item>
<title>Answered: Κωδικοί progintro, πριν και μετά την εγγραφή</title>
<link>https://courses.softlab.ntua.gr/q2a/228/%CE%BA%CF%89%CE%B4%CE%B9%CE%BA%CE%BF%CE%AF-progintro-%CF%80%CF%81%CE%B9%CE%BD-%CE%BA%CE%B1%CE%B9-%CE%BC%CE%B5%CF%84%CE%AC-%CF%84%CE%B7%CE%BD-%CE%B5%CE%B3%CE%B3%CF%81%CE%B1%CF%86%CE%AE?show=229#a229</link>
<description>&lt;p&gt;Θα συνεχίσεις να χρησιμοποιείς &lt;strong&gt;τον ίδιο κωδικό&lt;/strong&gt; που πήρες.&lt;/p&gt;
&lt;p&gt;Αν έχεις δηλώσει στο ΕΜΠ το ίδιο mail με το οποίο πήρες αυτόν τον κωδικό, τότε μπορείς να πας πάλι στο &lt;a rel=&quot;nofollow&quot; href=&quot;https://courses.softlab.ntua.gr/get-your-account/&quot;&gt;get-your-account&lt;/a&gt; και να βάλεις στην περίπτωση #1 τον ΑΜ σου.  Με αυτόν τον τρόπο θα συνδεθεί το υπάρχον account σου με τον ΑΜ.&lt;/p&gt;
&lt;p&gt;Αν όχι, δεν πειράζει.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/228/%CE%BA%CF%89%CE%B4%CE%B9%CE%BA%CE%BF%CE%AF-progintro-%CF%80%CF%81%CE%B9%CE%BD-%CE%BA%CE%B1%CE%B9-%CE%BC%CE%B5%CF%84%CE%AC-%CF%84%CE%B7%CE%BD-%CE%B5%CE%B3%CE%B3%CF%81%CE%B1%CF%86%CE%AE?show=229#a229</guid>
<pubDate>Tue, 24 Nov 2020 16:02:54 +0000</pubDate>
</item>
<item>
<title>Answered: Δημιουργία πίνακα με 1.000.000 στοιχεία</title>
<link>https://courses.softlab.ntua.gr/q2a/219/%CE%B4%CE%B7%CE%BC%CE%B9%CE%BF%CF%85%CF%81%CE%B3%CE%AF%CE%B1-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1-%CE%BC%CE%B5-1-000-000-%CF%83%CF%84%CE%BF%CE%B9%CF%87%CE%B5%CE%AF%CE%B1?show=221#a221</link>
<description>&lt;p&gt;Δες &lt;a rel=&quot;nofollow&quot; href=&quot;https://courses.softlab.ntua.gr/q2a/7/?show=13#a13&quot;&gt;αυτή την απάντηση&lt;/a&gt; σε μια παρόμοια ερώτηση.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/219/%CE%B4%CE%B7%CE%BC%CE%B9%CE%BF%CF%85%CF%81%CE%B3%CE%AF%CE%B1-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1-%CE%BC%CE%B5-1-000-000-%CF%83%CF%84%CE%BF%CE%B9%CF%87%CE%B5%CE%AF%CE%B1?show=221#a221</guid>
<pubDate>Sat, 21 Nov 2020 12:33:31 +0000</pubDate>
</item>
<item>
<title>Answered: string space scanf</title>
<link>https://courses.softlab.ntua.gr/q2a/214/string-space-scanf?show=218#a218</link>
<description>&lt;p&gt;Να πω και 2 λόγια επιπλέον. Έχεις κάποια &quot;λαθάκια&quot; τα οποία δεν έχεις καταλάβει ότι έχεις κάνει. Και θα προσπαθήσω να τα εξηγήσω όσο πιο απλά γίνεται. :))) Αν δεν έχετε κάνει pointers ακομή, έλα πάλι στην απάντηση αυτή όταν κάνετε, θα το κατανοήσεις πιο εύκολα. Παρόλαυτα κάνε μια προσπάθεια να μείνεις μαζί μου.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;char a[30];
scanf(&quot;%s&quot;, &amp;amp;a);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Εδώ έχεις δώσει στην scanf τη διεύθυνση του a. Όμως το a είναι πίνακας και αποτελεί λοιπόν από μόνος του διεύθυνση(περίπου). Άρα, εσύ λες στη scanf να γράψει στην διεύθυνση που βρίσκεται η διεύθυνση του πίνακα a. Στη συγκεκριμένη περίπτωση δεν βλέπεις λάθος για δύο λόγους. Ο πρώτος είναι  ότι εδώ αυτά τα δύο κάπως ταυτίζονται μιας και  το a είναι σύμβολο και όχι διεύθυνση και επιπλέον έχεις γράψει αυτό:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;printf(&quot;%d&quot;, &amp;amp;a);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Όπου πάλι έχεις δώσει στην printf την διεύθυνση που βρίσκεται η διεύθυνση του πίνακα a. Είπαμε όμως εδώ τα δύο αυτά είναι ίδια. &lt;/p&gt;
&lt;p&gt;Αν όμως είχες αυτό; &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;char *pointer;
char a[30];
pointer = a;
scanf(&quot;%s&quot;, &amp;amp;pointer);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Τότε, ενώ στην αρχή ο pointer δείχνει εκεί που βρίσκεται ο πίνακας σου, δηλαδή, έχουμε κάτι τέτοιο:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pointer ----&amp;gt;   |         a[0]              |        
                |         a[1]              |
                |         a[2]              |
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mόλις πραγματοποιηθεί  το scanf η διεύθυνση του pointer σου θα είναι τα δεδομένα εισόδου που έδωσες μέσω της scanf,  και ουσιαστικά θα δειχνεί πια σε κάτι άλλο, σε μια διεύθυνση που απαρτίζεται από τα δεδομένα που έγραψες. Σίγουρα πάντως όχι στον πίνακα a. &lt;/p&gt;
&lt;p&gt;Ομοίως αν κάνεις αυτό σε c++  (το οποίο αργότερα στη σχολή θα το χρησιμοποιείς συχνά και λέγεται δυναμικός πίνακας γιατί έχουμε δυναμική παραχώρηση μνήμης).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;char *foo;
foo = new char[30];
scanf(&quot;%s&quot;, &amp;amp;foo);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Όλα αυτά, λοιπόν, είναι λάθος, αν δεν τα καταλαβαίνεις τώρα, θα τα καταλάβεις αργότερα, θεώρησα οκ να σου δώσω κάποια ερεθίσματα. Αν θες τα κρατάς και ψάχνεσαι παραπάνω, αλλιώς πέτα τα και προχώρα για μια ήσυχη και τέλεια ζωή. &lt;/p&gt;
&lt;p&gt;Το &lt;strong&gt;σωστό&lt;/strong&gt; είναι αυτό:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;char a[30];
scanf(&quot;%29s&quot;, a);
printf(&quot;%s&quot;, a);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ααα και η  scanf δεν ενδείκνυται για διάβασμα συμβολοσειρών. Γιατί δεν τσεκάρει το πλήθος των χαρακτήρων που διαβάζονται εκτός αν κάνεις αυτό που έκανα παραπάνω:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;scanf(&quot;%29s&quot;, a);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ώστε να μπορεί να διαβάσει το πολύ 29 χαρακτήρες και ο τελευταίος να είναι το '\0' που βάζει από μόνη της. &lt;/p&gt;
&lt;p&gt;Όπως και να χει, η &lt;strong&gt;fgets()&lt;/strong&gt; είναι καλύτερη λύση γενικά. Ψάξε γι' αυτήν &lt;a rel=&quot;nofollow&quot; href=&quot;https://linux.die.net/man/3/fgets&quot;&gt;εδώ&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Πολύ πιθανόν να μην κατάλαβες τίποτα, γιατί είναι νωρίς ακόμη. Κράτα τι είναι σωστό για αρχή, και έλα πάλι εδώ όταν γνωρίζεις περισσότερα.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/214/string-space-scanf?show=218#a218</guid>
<pubDate>Fri, 20 Nov 2020 18:45:47 +0000</pubDate>
</item>
<item>
<title>Answered: 2d πίνακες και συναρτήσεις</title>
<link>https://courses.softlab.ntua.gr/q2a/206/2d-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B5%CF%82-%CE%BA%CE%B1%CE%B9-%CF%83%CF%85%CE%BD%CE%B1%CF%81%CF%84%CE%AE%CF%83%CE%B5%CE%B9%CF%82?show=211#a211</link>
<description>&lt;p&gt;&lt;strong&gt;Short answer: Don't.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not so short answer:&lt;/strong&gt; Κάντο μόνο αν έχεις σκοπό να χρησιμοποιήσεις καρφωτά μεγέθη πινάκων, ακόμα και αν δεν τους γεμίζεις ολόκληρους:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
#define MAX_SIZE 20

void read_array(int arr[MAX_SIZE][MAX_SIZE], int max_i, int max_j)
{
    for (int i = 0; i &amp;lt; max_i; ++i) {
        for (int j = 0; j &amp;lt; max_j; ++j) {
            scanf(&quot;%d&quot;, &amp;amp;arr[i][j]);
        }   
    }   
}

int main()
{
    int arr[MAX_SIZE][MAX_SIZE]; // είναι πολύ κακή ιδέα που τον έχω local, αλλά θέλω να δείξω ότι γίνεται.
    read_array(arr, 10, 5); 
    return 0;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Να σημειώσω πολύ έντονα ότι &lt;strong&gt;αν βγάλει warning μην το αγνοήσεις&lt;/strong&gt;, γιατί θα συμβούν πανηγυρικά πράγματα ^^.&lt;/p&gt;
&lt;p&gt;Το γιατί είναι καλό ο πίνακας να είναι global μπορεί να το δει κανείς &lt;a rel=&quot;nofollow&quot; href=&quot;https://courses.softlab.ntua.gr/q2a/7/%CE%BF%CF%81%CE%B9%CF%83%CE%BC%CF%8C%CF%82-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1-%CE%BC%CE%B5-%CE%BC%CE%AE%CE%BA%CE%BF%CF%82-%CF%80%CE%BF%CF%85-%CE%BA%CE%B1%CE%B8%CE%BF%CF%81%CE%AF%CE%B6%CE%B5%CF%84%CE%B1%CE%B9-%CE%B1%CF%80%CF%8C-%CF%84%CE%BF-input?show=13#a13&quot;&gt;εδώ&lt;/a&gt;. Βέβαια, προκύπτει το εύλογο ερώτημα, αφού έτσι κι αλλιώς θα έχεις global τους πίνακές σου για τις ασκήσεις, γιατί να θες να τους περνάς σε συναρτήσεις ως ορίσματα... :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Long answer:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Το ξέρω ότι ακούγεται πολύ περίεργη η απάντησή μου, αλλά το συγκεκριμένο πρόβλημα δεν είναι ρεαλιστικό στη C (όσο εντυπωσιακό και αν ακούγεται αυτό). Οι διδιάστατοι πίνακες στη C είναι PITA :)&lt;/p&gt;
&lt;p&gt;Υπάρχουν πολλά πράγματα που θα χρειαστεί να κάνεις μελλοντικά, στη μικρή περίπτωση που δουλέψεις σε C. Το να περάσεις διδιάστατο πίνακα σε συνάρτηση δεν είναι ψηλά στη λίστα...&lt;/p&gt;
&lt;p&gt;Δεν αποθαρρύνω όποιον θέλει να παίξει με συναρτήσεις και διδιάστατους πίνακες (π.χ. σύμφωνα με άλλες απαντήσεις στην ίδια ερώτηση) αλλά θα δει ότι έχουν πάρα πολλούς περιορισμούς που κάνουν τις συναρτήσεις να μην είναι ό,τι καλύτερο (σ.σ. δουλεύουν για συγκεκριμένα μεγέθη πινάκων στις N-1 διαστάσεις - με κάποιες έξτρα ματσακωνιές στη C99 που είναι ακόμα πιο &quot;εκτός ύλης&quot;... Για περισσότερα &quot;εκτός ύλης&quot; λοιπόν εδώ: &lt;a rel=&quot;nofollow&quot; href=&quot;https://shmmy.ntua.gr/forum/viewtopic.php?p=118841#p118841&quot;&gt;Post από nickie στο shmmy (που έφαγε timeout και γράφει &quot;Επισκέπτης&quot;)&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; href=&quot;https://stackoverflow.com/questions/14548753/passing-a-multidimensional-variable-length-array-to-a-function&quot;&gt;stackoverflow για VLA&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Αποθαρρύνω όμως όποιον νομίζει ότι κάτι τέτοιο είναι απαραίτητη γνώση για να περάσει το μάθημα :)&lt;/p&gt;
&lt;p&gt;Αν πραγματικά θες να γράψεις μία συνάρτηση που παίζει για όλα τα μεγέθη πινάκων, στο 2ο εξάμηνο θα δεις πώς φτιάχνεις την κατάλληλη συνάρτηση loc ώστε να έχεις ένα μονοδιάστατο πίνακα και να τον χρησιμοποιείς ως διδιάστατο. Αν έχεις κέφια, φτιάχνεις και μία κλάση Matrix που παίζει με αυτή τη loc, και είσαι καλυμμένος :)&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/206/2d-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B5%CF%82-%CE%BA%CE%B1%CE%B9-%CF%83%CF%85%CE%BD%CE%B1%CF%81%CF%84%CE%AE%CF%83%CE%B5%CE%B9%CF%82?show=211#a211</guid>
<pubDate>Fri, 20 Nov 2020 12:22:27 +0000</pubDate>
</item>
<item>
<title>Answered: Grader - Flags στην μεταγλώττιση</title>
<link>https://courses.softlab.ntua.gr/q2a/204/grader-flags-%CF%83%CF%84%CE%B7%CE%BD-%CE%BC%CE%B5%CF%84%CE%B1%CE%B3%CE%BB%CF%8E%CF%84%CF%84%CE%B9%CF%83%CE%B7?show=208#a208</link>
<description>&lt;p&gt;Για όλες τις γλώσσες και διαλέκτους που υποστηρίζει σήμερα, με τη σειρά που μάλλον θα σας ενδιαφέρουν:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GNU C++ 4.7.2:&lt;br&gt;
&lt;code&gt;g++ -o file.out file.cpp -std=c++11 -O2 -DCONTEST -s -static&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;GNU C 4.7.2:&lt;br&gt;
&lt;code&gt;gcc -o file.out file.c -std=c99 -O2 -DCONTEST -s -static -lm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Oracle Java 1.8.0_201:&lt;br&gt;
&lt;code&gt;javac file.java&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Haskell GHC 7.10.2:&lt;br&gt;
&lt;code&gt;ghc -o file.out --make -static -rtsopts -O2 -optc-O2 -DCONTEST file.hs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;OCaml 3.12.1:&lt;br&gt;
&lt;code&gt;ocamlopt nums.cmxa -o file.out -pp camlp5o file.hs -ccopt -static&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;SML, MLton 20100608:&lt;br&gt;
&lt;code&gt;mlton -output file.out -codegen native -link-opt -static -link-opt -s file.sml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fortran 95, GNU Fortran 4.7.2:&lt;br&gt;
&lt;code&gt;gfortran -std=f95 -o file.out file.f95 -O2 -DCONTEST -s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Fortran 03, GNU Fortran 4.7.2:&lt;br&gt;
&lt;code&gt;gfortran -std=f2003 -o file.out file.f03 -O2 -DCONTEST -s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Pascal, &lt;em&gt;δε λειτουργεί πια&lt;/em&gt;:&lt;br&gt;
&lt;code&gt;gpc -o file.out file.p -O2 -DCONTEST -s&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Pazcal: &lt;code&gt;pzc -o file.out file.pzc -O2 -DCONTEST -s -static&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;F#: &lt;em&gt;άστο καλύτερα...&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Οι περισσότερες υλοποιήσεις είναι ήδη αρκετά παλιές.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/204/grader-flags-%CF%83%CF%84%CE%B7%CE%BD-%CE%BC%CE%B5%CF%84%CE%B1%CE%B3%CE%BB%CF%8E%CF%84%CF%84%CE%B9%CF%83%CE%B7?show=208#a208</guid>
<pubDate>Fri, 20 Nov 2020 00:45:03 +0000</pubDate>
</item>
<item>
<title>Answered: Πρόβλημα σχετικά με το novice και το grader</title>
<link>https://courses.softlab.ntua.gr/q2a/199/%CF%80%CF%81%CF%8C%CE%B2%CE%BB%CE%B7%CE%BC%CE%B1-%CF%83%CF%87%CE%B5%CF%84%CE%B9%CE%BA%CE%AC-%CE%BC%CE%B5-%CF%84%CE%BF-novice-%CE%BA%CE%B1%CE%B9-%CF%84%CE%BF-grader?show=203#a203</link>
<description>&lt;p&gt;Το πιθανότερο λάθος όπως ανέφεραν και παραπάνω είναι ότι πας να προσπελάσεις κάποιο στοιχείο εκτός των ορίων του πίνακα.&lt;/p&gt;
&lt;p&gt;Αν, όμως, είσαι απόλυτα σίγουρη ότι αυτό δεν συμβαίνει, τότε ένα πιθανό πρόβλημα ίσως να είναι πως εξαντλείται η stack. Πιο συγκεκριμένα, αν έχεις δημιουργήσει έναν στατικό πίνακα αρκετά  μεγάλο ίσως αυτός να μην χωράει στην stack. Περισσότερες πληροφορίες σχετικά με το τι συμβαίνει, τι είναι η stack και πώς μπορείς να το λύσεις αυτό υπάρχουν στην απάντηση του @mstou εδώ: &lt;a rel=&quot;nofollow&quot; href=&quot;https://courses.softlab.ntua.gr/q2a/7/%CE%BF%CF%81%CE%B9%CF%83%CE%BC%CF%8C%CF%82-%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1-%CE%BC%CE%B5-%CE%BC%CE%AE%CE%BA%CE%BF%CF%82-%CF%80%CE%BF%CF%85-%CE%BA%CE%B1%CE%B8%CE%BF%CF%81%CE%AF%CE%B6%CE%B5%CF%84%CE%B1%CE%B9-%CE%B1%CF%80%CF%8C-%CF%84%CE%BF-input&quot;&gt;https://courses.softlab.ntua.gr/q2a/7/ορισμός-πίνακα-με-μήκος-που-καθορίζεται-από-το-input&lt;/a&gt;&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/199/%CF%80%CF%81%CF%8C%CE%B2%CE%BB%CE%B7%CE%BC%CE%B1-%CF%83%CF%87%CE%B5%CF%84%CE%B9%CE%BA%CE%AC-%CE%BC%CE%B5-%CF%84%CE%BF-novice-%CE%BA%CE%B1%CE%B9-%CF%84%CE%BF-grader?show=203#a203</guid>
<pubDate>Thu, 19 Nov 2020 14:21:17 +0000</pubDate>
</item>
<item>
<title>Answered: Εισακτέοι του 19 και νέοι κωδικοί</title>
<link>https://courses.softlab.ntua.gr/q2a/171/%CE%B5%CE%B9%CF%83%CE%B1%CE%BA%CF%84%CE%AD%CE%BF%CE%B9-%CF%84%CE%BF%CF%85-19-%CE%BA%CE%B1%CE%B9-%CE%BD%CE%AD%CE%BF%CE%B9-%CE%BA%CF%89%CE%B4%CE%B9%CE%BA%CE%BF%CE%AF?show=185#a185</link>
<description>&lt;p&gt;Ομολογώ ότι δεν καταλαβαίνω γιατί δεν υποβάλατε τις ασκήσεις πριν λήξει η προθεσμία, καθώς η &lt;a rel=&quot;nofollow&quot; href=&quot;https://courses.softlab.ntua.gr/get-your-account&quot;&gt;ιστοσελίδα διανομής κωδικών&lt;/a&gt; λειτουργεί για τους σπουδαστές παλιότερων ετών από τη δεύτερη εβδομάδα του εξαμήνου και υπάρχει σχετική ανακοίνωση.&lt;/p&gt;
&lt;p&gt;Εν πάση περιπτώσει, αν υπάρχει κάποιος καλός λόγος που κάποιος έχει καθυστερήσει τις ασκήσεις του (π.χ. περιπτώσεις μετεγγραφών), κάποια στιγμή προς το τέλος του εξαμήνου θα δοθεί ευκαιρία υποβολής για περασμένες ασκήσεις.  Θα υπάρξει σχετική ανακοίνωση.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/171/%CE%B5%CE%B9%CF%83%CE%B1%CE%BA%CF%84%CE%AD%CE%BF%CE%B9-%CF%84%CE%BF%CF%85-19-%CE%BA%CE%B1%CE%B9-%CE%BD%CE%AD%CE%BF%CE%B9-%CE%BA%CF%89%CE%B4%CE%B9%CE%BA%CE%BF%CE%AF?show=185#a185</guid>
<pubDate>Tue, 17 Nov 2020 20:13:43 +0000</pubDate>
</item>
<item>
<title>Answered: Διάβασμα τιμών τύπου enum</title>
<link>https://courses.softlab.ntua.gr/q2a/173/%CE%B4%CE%B9%CE%AC%CE%B2%CE%B1%CF%83%CE%BC%CE%B1-%CF%84%CE%B9%CE%BC%CF%8E%CE%BD-%CF%84%CF%8D%CF%80%CE%BF%CF%85-enum?show=174#a174</link>
<description>&lt;p&gt;Τα enums είναι αριθμοί &quot;ντυμένοι&quot; με ονόματα μόνο εντός του κώδικα.&lt;/p&gt;
&lt;p&gt;Απο εκεί και έπειτα τα προγράμματα χειρίζονται τα enums ακριβώς όπως τους αριθμούς (σαν unsigned ints στις περισσότερες περιπτώσεις).&lt;/p&gt;
&lt;p&gt;Υπάρχουν πολλοί τρόποι να τυπώνεις ονόματα enums, ο πιο απλός για εμένα είναι το να κρατάς ένα array από strings (όπου η θέση 0 αντιστοιχεί στο όνομα της πρώτης τιμής) και να κάνεις κάτι σαν:&lt;br&gt;
&lt;code&gt;cout &amp;lt;&amp;lt; arrayOfNames[blue] &amp;lt;&amp;lt; endl;&lt;/code&gt; για να τυπώσεις &quot;blue&quot;.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/173/%CE%B4%CE%B9%CE%AC%CE%B2%CE%B1%CF%83%CE%BC%CE%B1-%CF%84%CE%B9%CE%BC%CF%8E%CE%BD-%CF%84%CF%8D%CF%80%CE%BF%CF%85-enum?show=174#a174</guid>
<pubDate>Tue, 17 Nov 2020 10:36:31 +0000</pubDate>
</item>
<item>
<title>Answered: Σύγκριση πινάκων τύπου char</title>
<link>https://courses.softlab.ntua.gr/q2a/154/%CF%83%CF%8D%CE%B3%CE%BA%CF%81%CE%B9%CF%83%CE%B7-%CF%80%CE%B9%CE%BD%CE%AC%CE%BA%CF%89%CE%BD-%CF%84%CF%8D%CF%80%CE%BF%CF%85-char?show=156#a156</link>
<description>&lt;p&gt;Μπορείς να χρησιμοποιήσεις μια συνάρτηση βιβλιοθήκης όπως η &lt;code&gt;strcmp()&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.programiz.com/c-programming/library-function/string.h/strcmp&quot;&gt;C strcmp() - programiz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Παράδειγμα χρήσης:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstring&amp;gt;

using namespace std;

int main() {
        char a[4];
        char b[4];
        strcpy(a, &quot;aaa&quot;);
        strcpy(b, &quot;bbb&quot;);
        // prints &quot;aaa&quot;
        cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; endl;
        // prints &quot;bbb&quot;
        cout &amp;lt;&amp;lt; b &amp;lt;&amp;lt; endl;
        // prints -1
        cout &amp;lt;&amp;lt; strcmp(a, b) &amp;lt;&amp;lt; endl;
        return 0;
}
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/154/%CF%83%CF%8D%CE%B3%CE%BA%CF%81%CE%B9%CF%83%CE%B7-%CF%80%CE%B9%CE%BD%CE%AC%CE%BA%CF%89%CE%BD-%CF%84%CF%8D%CF%80%CE%BF%CF%85-char?show=156#a156</guid>
<pubDate>Sat, 14 Nov 2020 21:47:02 +0000</pubDate>
</item>
<item>
<title>Answered: gets() και χαρακτηρας αλλαγης γραμμης</title>
<link>https://courses.softlab.ntua.gr/q2a/147/gets-%CE%BA%CE%B1%CE%B9-%CF%87%CE%B1%CF%81%CE%B1%CE%BA%CF%84%CE%B7%CF%81%CE%B1%CF%82-%CE%B1%CE%BB%CE%BB%CE%B1%CE%B3%CE%B7%CF%82-%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B7%CF%82?show=150#a150</link>
<description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Η συνάρτηση gets ειναι &lt;em&gt;deprecated&lt;/em&gt; (κατά μία έννοια, σταμάτησαν να την υποστηρίζουν στις τελευταίες εκδόσεις C και C++), οπότε θα συνιστούσα να ακολουθήσεις κάποια άλλη εναλλακτική ( πχ &lt;code&gt;fgets&lt;/code&gt; ).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Αν και δεν το αναφέρεις, μπορώ να μαντέψω πως το πρόγραμμά σου όχι μόνο δεν τυπώνει &quot;empty&quot;, αλλά δεν τερματίζει κι'όλας. Αυτό γιατί οι πιο γνωστές τουλάχιστον συναρτήσεις που διαβάζουν συμβολοσειρά από την είσοδο δεν δέχονται ένα σκέτο &lt;code&gt;'\n'&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Αν διαβάσεις από την είσοδο &lt;code&gt;12345\n&lt;/code&gt; αυτό που θα μπεί στη συμβολοσειρά είναι το &lt;code&gt;12345\0&lt;/code&gt; (τουλάχιστον στις συμβολοσειρές C). Τα newline (&lt;code&gt;\n&lt;/code&gt;) δεν εμφανίζονται συνήθως μέσα στους χαρακτήρες των συμβολοσειρών που διαβάζεις, γι'αυτό και οι συναρτήσεις τα αγνοούν, ή τα χρησιμοποιούν για να καταλάβουν πως η ανάγνωση τελείωσε (αφού πρώτα έχουν διαβάσει κάποια έγκυρη συμβολοσειρά -- &lt;strong&gt;η δικιά σου περίπτωση&lt;/strong&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/147/gets-%CE%BA%CE%B1%CE%B9-%CF%87%CE%B1%CF%81%CE%B1%CE%BA%CF%84%CE%B7%CF%81%CE%B1%CF%82-%CE%B1%CE%BB%CE%BB%CE%B1%CE%B3%CE%B7%CF%82-%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B7%CF%82?show=150#a150</guid>
<pubDate>Sat, 14 Nov 2020 20:26:37 +0000</pubDate>
</item>
<item>
<title>4 testcases, στην άσκηση 2 της Σειράς 4, βγάζουν &quot;yes&quot; ενώ θα έπρεπε &quot;no&quot;</title>
<link>https://courses.softlab.ntua.gr/q2a/142/testcases-%CF%83%CF%84%CE%B7%CE%BD-%CE%AC%CF%83%CE%BA%CE%B7%CF%83%CE%B7-%CF%84%CE%B7%CF%82-%CF%83%CE%B5%CE%B9%CF%81%CE%AC%CF%82-%CE%B2%CE%B3%CE%AC%CE%B6%CE%BF%CF%85%CE%BD-yes-%CE%B5%CE%BD%CF%8E-%CE%B8%CE%B1-%CE%AD%CF%80%CF%81%CE%B5%CF%80%CE%B5-no</link>
<description>&lt;p&gt;Στην 4η σειρά των ασκήσεων progintro, στην 2η άσκηση:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&quot;Γράψτε ένα πρόγραμμα το οποίο θα ελέγχει αν συμβολοακολουθίες (το πολύ 20 χαρακτήρων) που εισάγονται από το πληκτρολόγιο είναι παλινδρομικές.&quot;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Όταν το υποβάλω στον grader, από τα συνολικά 292 test, μόνο 4 δεν βγάζει σωστά, δηλαδή εκτυπώνει &quot;yes&quot; (ότι είναι παλίνδρομη) ενώ θα έπρεπε &quot;no&quot; (ότι δεν είναι παλίνδρομη). Μπορώ να παραθέσω σε σχόλιο ποια είναι συγκεκριμένα.&lt;br&gt;
Ευχαριστώ πολύ εκ των προτέρων.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/142/testcases-%CF%83%CF%84%CE%B7%CE%BD-%CE%AC%CF%83%CE%BA%CE%B7%CF%83%CE%B7-%CF%84%CE%B7%CF%82-%CF%83%CE%B5%CE%B9%CF%81%CE%AC%CF%82-%CE%B2%CE%B3%CE%AC%CE%B6%CE%BF%CF%85%CE%BD-yes-%CE%B5%CE%BD%CF%8E-%CE%B8%CE%B1-%CE%AD%CF%80%CF%81%CE%B5%CF%80%CE%B5-no</guid>
<pubDate>Sat, 14 Nov 2020 16:35:48 +0000</pubDate>
</item>
<item>
<title>Answered: Πρόγραμμα ζητάει περισσότερα δεδομένα</title>
<link>https://courses.softlab.ntua.gr/q2a/137/%CF%80%CF%81%CF%8C%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1-%CE%B6%CE%B7%CF%84%CE%AC%CE%B5%CE%B9-%CF%80%CE%B5%CF%81%CE%B9%CF%83%CF%83%CF%8C%CF%84%CE%B5%CF%81%CE%B1-%CE%B4%CE%B5%CE%B4%CE%BF%CE%BC%CE%AD%CE%BD%CE%B1?show=139#a139</link>
<description>&lt;p&gt;Στο πρώτο while loop έχεις γράψει&lt;br&gt;
&lt;code&gt;while(x != '\n') { ... }&lt;/code&gt; το οποίο σημαίνει πως το &lt;code&gt;'\n'&lt;/code&gt; της πρώτης γραμμής θα διαβαστεί απο το &lt;code&gt;x&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Έπειτα ανάμεσα στα δύο while έχεις &lt;code&gt;SKIP_LINE()&lt;/code&gt;, το οποίο περιμένει να διαβάσει και να κάνει discard τα πάντα μέχρι το επόμενο &lt;code&gt;'\n'&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Τέλος στο 2ο &lt;code&gt;while(y != '\n')&lt;/code&gt; διαβάζεις από την είσοδο το κλειδί μέχρι το y να διαβάσει το &lt;code&gt;'\n'&lt;/code&gt; ξανά.&lt;/p&gt;
&lt;p&gt;Συνολικά ο κώδικάς σου απαιτεί 3 γραμμές εισόδου, το οποίο προκαλείται από το περιττό &lt;code&gt;SKIP_LINE()&lt;/code&gt; μετά το πρώτο while.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/137/%CF%80%CF%81%CF%8C%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1-%CE%B6%CE%B7%CF%84%CE%AC%CE%B5%CE%B9-%CF%80%CE%B5%CF%81%CE%B9%CF%83%CF%83%CF%8C%CF%84%CE%B5%CF%81%CE%B1-%CE%B4%CE%B5%CE%B4%CE%BF%CE%BC%CE%AD%CE%BD%CE%B1?show=139#a139</guid>
<pubDate>Sat, 14 Nov 2020 14:24:45 +0000</pubDate>
</item>
<item>
<title>Answered: askhsh 6 erwthsh</title>
<link>https://courses.softlab.ntua.gr/q2a/130/askhsh-6-erwthsh?show=138#a138</link>
<description>&lt;p&gt;Δεν μπορώ να δώσω μια απάντηση με κώδικα, οπότε απλά θα σε βοηθήσω λέγοντας:&lt;/p&gt;
&lt;p&gt;Πως θα έλεγχες ο ίδιος (με το χέρι, όχι με υπολογιστή) αν μια συμβολοσειρά είναι παλινδρομική? (έστω οτι σου έγραφα σε ένα χαρτί μια μεγάλη λέξη 1024 χαρακτήρων)&lt;/p&gt;
&lt;p&gt;Αν μπορείς να σκεφτείς μια στρατηγική για να το καταφέρεις με το χέρι, τότε μπορείς να περιγράψεις αυτά τα βήματα στον υπολογιστή, και μάλλον έχεις και την απάντηση που ψάχνεις :)&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/130/askhsh-6-erwthsh?show=138#a138</guid>
<pubDate>Sat, 14 Nov 2020 14:17:07 +0000</pubDate>
</item>
<item>
<title>Answered: Σφάλμα κατάτμησης</title>
<link>https://courses.softlab.ntua.gr/q2a/128/%CF%83%CF%86%CE%AC%CE%BB%CE%BC%CE%B1-%CE%BA%CE%B1%CF%84%CE%AC%CF%84%CE%BC%CE%B7%CF%83%CE%B7%CF%82?show=132#a132</link>
<description>&lt;p&gt;Η ερώτηση έχει απαντηθεί εδώ (κοίταξε και τα σχόλια των συναδέλφων):&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://courses.softlab.ntua.gr/q2a/109/%CF%83%CF%86%CE%AC%CE%BB%CE%BC%CE%B1-%CE%BA%CE%B1%CF%84%CE%AC%CF%84%CE%BC%CE%B7%CF%83%CE%B7%CF%82-%CF%83%CF%84%CE%BF%CE%BD-grader-%CF%83%CE%B5%CE%B9%CF%81%CE%AC-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD-3&quot;&gt;https://courses.softlab.ntua.gr/q2a/109/σφάλμα-κατάτμησης-στον-grader-σειρά-ασκήσεων-3&lt;/a&gt;&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/128/%CF%83%CF%86%CE%AC%CE%BB%CE%BC%CE%B1-%CE%BA%CE%B1%CF%84%CE%AC%CF%84%CE%BC%CE%B7%CF%83%CE%B7%CF%82?show=132#a132</guid>
<pubDate>Fri, 13 Nov 2020 21:03:06 +0000</pubDate>
</item>
<item>
<title>Answered: Χρήση των trunc, round, floor.</title>
<link>https://courses.softlab.ntua.gr/q2a/123/%CF%87%CF%81%CE%AE%CF%83%CE%B7-%CF%84%CF%89%CE%BD-trunc-round-floor?show=124#a124</link>
<description>&lt;p&gt;Για να κάνεις χρήση του trunc πρέπει να κάνεις εισαγωγή της βιβλιοθήκης math με χρήση της εντολής &lt;code&gt;#include &amp;lt;math.h&amp;gt;&lt;/code&gt;.  Αν εκτελέσεις την εντολή &lt;code&gt;double x = trunc(15.3)&lt;/code&gt; στην τιμή x αποθηκεύεται η τιμή 15.000000.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/123/%CF%87%CF%81%CE%AE%CF%83%CE%B7-%CF%84%CF%89%CE%BD-trunc-round-floor?show=124#a124</guid>
<pubDate>Fri, 13 Nov 2020 00:42:20 +0000</pubDate>
</item>
<item>
<title>Answered: Bug του getchar() μέσα σε do while loop του οποίου η συνθήκη περιλαμβάνει getchar()</title>
<link>https://courses.softlab.ntua.gr/q2a/119/getchar-%CE%BC%CE%AD%CF%83%CE%B1-while-loop-%CE%BF%CF%80%CE%BF%CE%AF%CE%BF%CF%85-%CF%83%CF%85%CE%BD%CE%B8%CE%AE%CE%BA%CE%B7-%CF%80%CE%B5%CF%81%CE%B9%CE%BB%CE%B1%CE%BC%CE%B2%CE%AC%CE%BD%CE%B5%CE%B9-getchar?show=120#a120</link>
<description>&lt;p&gt;Αυξανεις το i και μετα ελεγχεις τη θεση i του πινακα.&lt;br&gt;
Δηλαδη για την 1η επαναληψη ξεκινας με i=0, δινεις τιμη στο a[0], αυξανεις σε i=1, ελεγχεις το a[1] στη συνθήκη του while.&lt;/p&gt;
&lt;p&gt;Μια εύκολη διορθωση για παραδειγμα θα ηταν ως εξης:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;i=-1;
do {i = i+1;
  a[i] = getchar();}
while (a[i] != '\n');
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/119/getchar-%CE%BC%CE%AD%CF%83%CE%B1-while-loop-%CE%BF%CF%80%CE%BF%CE%AF%CE%BF%CF%85-%CF%83%CF%85%CE%BD%CE%B8%CE%AE%CE%BA%CE%B7-%CF%80%CE%B5%CF%81%CE%B9%CE%BB%CE%B1%CE%BC%CE%B2%CE%AC%CE%BD%CE%B5%CE%B9-getchar?show=120#a120</guid>
<pubDate>Thu, 12 Nov 2020 20:18:01 +0000</pubDate>
</item>
<item>
<title>Answered: Σφάλμα κατάτμησης στον grader (Σειρά ασκήσεων 3)</title>
<link>https://courses.softlab.ntua.gr/q2a/109/%CF%83%CF%86%CE%AC%CE%BB%CE%BC%CE%B1-%CE%BA%CE%B1%CF%84%CE%AC%CF%84%CE%BC%CE%B7%CF%83%CE%B7%CF%82-%CF%83%CF%84%CE%BF%CE%BD-grader-%CF%83%CE%B5%CE%B9%CF%81%CE%AC-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD-3?show=114#a114</link>
<description>&lt;p&gt;Από όσο έχω καταλάβει ο grader όταν βγάζει Σφάλμα Κατάτμησης, εννοεί μία ομάδα σφαλμάτων που περιλαμβάνει και άλλα σφάλματα πέραν του σφάλματος κατάτμησης. Κρίνοντας και από την είσοδο του συγκεκριμένου test case μάλλον κάπου στο πρόγραμμα σου δεν γίνεται σωστά ο ελέγχος αν θα γίνει διαίρεση με το μηδέν, οπότε κάπου διαιρεί με μηδέν μετά. (κανονικά το πρόγραμμα τερματίζει δηλαδή με floating point exception.) Θα πρότεινα να δοκιμάσεις μία-μία τις πράξεις που δίνει το συγκεκριμένο test case στο πρόγραμμα σου. Το πιθανότερο θεωρώ είναι ότι το πρόβλημα εντοπίζεται στην τελευταία πράξη.&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/109/%CF%83%CF%86%CE%AC%CE%BB%CE%BC%CE%B1-%CE%BA%CE%B1%CF%84%CE%AC%CF%84%CE%BC%CE%B7%CF%83%CE%B7%CF%82-%CF%83%CF%84%CE%BF%CE%BD-grader-%CF%83%CE%B5%CE%B9%CF%81%CE%AC-%CE%B1%CF%83%CE%BA%CE%AE%CF%83%CE%B5%CF%89%CE%BD-3?show=114#a114</guid>
<pubDate>Thu, 12 Nov 2020 12:14:53 +0000</pubDate>
</item>
<item>
<title>Μεταβλητό πλήθος εμφωλευμένων βρόχων</title>
<link>https://courses.softlab.ntua.gr/q2a/87/%CE%BC%CE%B5%CF%84%CE%B1%CE%B2%CE%BB%CE%B7%CF%84%CF%8C-%CF%80%CE%BB%CE%AE%CE%B8%CE%BF%CF%82-%CE%B5%CE%BC%CF%86%CF%89%CE%BB%CE%B5%CF%85%CE%BC%CE%AD%CE%BD%CF%89%CE%BD-%CE%B2%CF%81%CF%8C%CF%87%CF%89%CE%BD</link>
<description>&lt;p&gt;Πώς θα μπορούσα να έχω μεταβλητό πλήθος Ν εμφωλευμένων βρόχων, άγνωστο κατά τον χρόνο μεταγλώττισης;&lt;br&gt;
Για παράδειγμα για Ν=3 επιθυμώ:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;for (int i=0; i&amp;lt;someNumber; i++) {
    for (int j=0; j&amp;lt;someNumber; j++) {
        for (int k=0; k&amp;lt;someNumber; k++) {
            doSomething(i,j,k);
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/87/%CE%BC%CE%B5%CF%84%CE%B1%CE%B2%CE%BB%CE%B7%CF%84%CF%8C-%CF%80%CE%BB%CE%AE%CE%B8%CE%BF%CF%82-%CE%B5%CE%BC%CF%86%CF%89%CE%BB%CE%B5%CF%85%CE%BC%CE%AD%CE%BD%CF%89%CE%BD-%CE%B2%CF%81%CF%8C%CF%87%CF%89%CE%BD</guid>
<pubDate>Wed, 11 Nov 2020 18:01:08 +0000</pubDate>
</item>
<item>
<title>Εκτύπωση πραγματικού αριθμού με δεδομένο πλήθος δεκαδικών ψηφίων</title>
<link>https://courses.softlab.ntua.gr/q2a/80/%CE%B5%CE%BA%CF%84%CF%8D%CF%80%CF%89%CF%83%CE%B7-%CF%80%CF%81%CE%B1%CE%B3%CE%BC%CE%B1%CF%84%CE%B9%CE%BA%CE%BF%CF%8D-%CE%B1%CF%81%CE%B9%CE%B8%CE%BC%CE%BF%CF%8D-%CE%B4%CE%B5%CE%B4%CE%BF%CE%BC%CE%AD%CE%BD%CE%BF-%CF%80%CE%BB%CE%AE%CE%B8%CE%BF%CF%82-%CE%B4%CE%B5%CE%BA%CE%B1%CE%B4%CE%B9%CE%BA%CF%8E%CE%BD-%CF%88%CE%B7%CF%86%CE%AF%CF%89%CE%BD</link>
<description>&lt;p&gt;Ενώ κατά την εκτύπωση η στρογγυλοποίηση των πραγματικών αριθμών στα τρία δεκαδικά ψηφία γίνεται κανονικά, όταν το τρίτο δεκαδικό είναι το 0 δεν εμφανίζεται στο αποτέλεσμα. Τι μπορώ να κάνω ώστε να εμφανίζεται;&lt;/p&gt;
</description>
<category>progintro</category>
<guid isPermaLink="true">https://courses.softlab.ntua.gr/q2a/80/%CE%B5%CE%BA%CF%84%CF%8D%CF%80%CF%89%CF%83%CE%B7-%CF%80%CF%81%CE%B1%CE%B3%CE%BC%CE%B1%CF%84%CE%B9%CE%BA%CE%BF%CF%8D-%CE%B1%CF%81%CE%B9%CE%B8%CE%BC%CE%BF%CF%8D-%CE%B4%CE%B5%CE%B4%CE%BF%CE%BC%CE%AD%CE%BD%CE%BF-%CF%80%CE%BB%CE%AE%CE%B8%CE%BF%CF%82-%CE%B4%CE%B5%CE%BA%CE%B1%CE%B4%CE%B9%CE%BA%CF%8E%CE%BD-%CF%88%CE%B7%CF%86%CE%AF%CF%89%CE%BD</guid>
<pubDate>Wed, 11 Nov 2020 10:26:04 +0000</pubDate>
</item>
</channel>
</rss>