====== Μάθημα 6 ======
* Κείμενα
* Εμβέλεια μεταβλητών
* Δομές (structs)
===== Προετοιμασία =====
{{ :qna:hw:c-programming-l06-a.pdf | Διαφάνειες }}\\
[[https://youtube.com/playlist?list=PLKr1MzPLfrfelm7eV9IcbQ5BeFxzTzNRQ | Βίντεο]]
===== Εργαστηριακή διάλεξη =====
{{ :qna:hw:c-programming-l06-b.pdf | Διαφάνειες }} \\
{{ :qna:hw:c-programming-exercise-6.pdf | Εκφώνηση }} \\
{{ :qna:hw:smproject-has-suffix.zip | smProject-HAS-SUFFIX}} \\
{{ :qna:hw:live-06.zip | Κώδικες }}
===== Εργασία 6.1 =====
==== Ερώτημα 6.1.1 ====
Συνάρτηση ''hasSuffix''
=== Έλεγχοι ===
Τα μηνύματα λάθους εμφανίζονται με τη μορφή:
!hasSuffix("text", "suf", true/false) FAILED : μηνυμα
όπου:
* ''!'' σημαίνει ότι αναμενόταν ψευδές αποτέλεσμα, αλλά ήρθε αληθές, φυσικά εάν δεν υπάρχει σημαίνει το αντίθετο.
* ''text'' είναι το κείμενο στο οποίο ψάχνουμε την κατάληξη
* ''suf'' είναι η κατάληξη η οποία ψάχνουμε
* ''true/false'' είναι το κατά πόσο η σύγκριση θα πρέπει να είναι ''caseSensitive'', δηλαδή για ''true'' θα είναι ''caseSensitive'', άρα το ίδιο γράμμα της αλφαβήτου σε πεζά και τα κεφαλαία θεωρείται διαφορετικό.\\ **Προσοχή! Αυτό είναι το αντίθετο από το παράδειγμα της τάξης που η παράμετρος ήταν ''caseInsensitive''**
* ''μηνυμα'' είναι το συνοπτικό μήνυμα του λάθους, όπου ''CS'' σημαίνει Case Sensitive και το ''CI'' σημαίνει Case Insensitive.
== Test 6-1-1-a ==
**Δεν εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ υπήρχε και θα έπρεπε να έχει εντοπιστεί__. Ο εντοπισμός μπορεί να ήταν case sensitive ή insensitive. Επίσης το κείμενο και η κατάληξη μπορεί να έχουν το ίδιο μήκος.\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.
== Test 6-1-1-b ==
**Εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ δεν υπήρχε ή δεν ταίριαζαν τα πεζά/κεφαλαία και **δεν θα έπρεπε να έχει εντοπιστεί**__. Ο εντοπισμός μπορεί να ήταν case sensitive ή insensitive. Επίσης το κείμενο και η κατάληξη μπορεί να έχουν το ίδιο μήκος.\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.
== Test 6-1-1-c ==
**Δεν εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ υπήρχε και θα έπρεπε να έχει εντοπιστεί__. Ο εντοπισμός ήταν **case insensitive**.\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.
== Test 6-1-1-d ==
**Εντοπίστηκε** η κατάληξη στο κείμενο, __**δεν θα έπρεπε να έχει εντοπιστεί**__. Ο εντοπισμός μπορεί να ήταν case sensitive ή insensitive.\\ Προσοχή! το κείμενο **ξεκινούσε** από την κατάληξη. Μήπως συγκρίνατε λάθος περιοχή των κειμένων;\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.
== Test 6-1-1-f ==
**Εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ δεν υπήρχε ή δεν ταίριαζαν τα πεζά/κεφαλαία και **δεν θα έπρεπε να έχει εντοπιστεί**__. Ο εντοπισμός μπορεί να ήταν case sensitive ή insensitive.\\ Προσοχή! το κείμενο **περιείχε** την κατάληξη, αλλά όχι στο τέλος, ούτε και στην αρχή. Μήπως συγκρίνατε λάθος περιοχή των κειμένων;\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.
== Test 6-1-1-g ==
**Δεν εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ υπήρχε και θα έπρεπε να έχει εντοπιστεί__. Ο εντοπισμός μπορεί να ήταν case sensitive ή insensitive. Επίσης το κείμενο και η κατάληξη μπορεί να έχουν το ίδιο μήκος.\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.\\ Προσοχή! το κείμενο **περιείχε** την κατάληξη και ενδιάμεσα και ως κατάληξη.
== Test 6-1-1-h ==
**Εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ η κατάληξη ήταν **μεγαλύτερη** από το κείμενο και **δεν θα έπρεπε να έχει εντοπιστεί**__. Ο εντοπισμός μπορεί να ήταν case sensitive ή insensitive.\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.
== Test 6-1-1-i ==
**Εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ το κείμενο ήταν κενό (''""'') αλλά η κατάληξη **δεν** ήταν και έτσι **δεν θα έπρεπε να έχει εντοπιστεί**__. Ο εντοπισμός μπορεί να ήταν case sensitive ή insensitive.\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.
== Test 6-1-1-j ==
**Δεν εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ θα έπρεπε να έχει εντοπιστεί__.\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.\\ Προσοχή! η κατάληξη ήταν μία __κενή συμβολοσειρά__, άρα πάντα υπάρχει στο κείμενο.
== Test 6-1-1-k ==
**Δεν εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ θα έπρεπε να έχει εντοπιστεί__.\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.\\ Προσοχή! η κατάληξη ήταν μία __κενή συμβολοσειρά__, άρα πάντα υπάρχει στο κείμενο, __ακόμα και αν αυτό είναι κενό__.
== Test 6-1-1-l ==
**Εντοπίστηκε** η κατάληξη στο κείμενο, __ενώ **δεν** θα έπρεπε να έχει εντοπιστεί__.\\ //Δείτε το μήνυμα για τα ακριβή κείμενα που αφορούσε η δοκιμή//.\\ Προσοχή! η κατάληξη ξεκινούσε από την κατάληξη του κειμένου αλλά δεν ήταν η ίδια λέξη.