2.6 Οι boolean τιμές στην γλώσσα C

τη γλώσσα C, οι boolean τιμές δεν υποστηρίζονται απευθείας όπως σε άλλες γλώσσες προγραμματισμού. Αντίθετα, χρησιμοποιούνται οι ακέραιες τιμές 0 και 1 για να αναπαρασταθούν οι λογικές τιμές false και true αντίστοιχα.

Για παράδειγμα, όταν μια μεταβλητή έχει την τιμή 0, θεωρείται ψευδής (false), ενώ όταν έχει μια μη μηδενική τιμή, θεωρείται αληθής (true).

Στην C, οι boolean τιμές αναπαρίστανται με τον τύπο δεδομένων bool, ο οποίος μπορεί να πάρει μια από τις δύο τιμές: true (αληθής) ή false (ψευδής). Η τιμή true αντιπροσωπεύει την αλήθεια, ενώ η τιμή false αντιπροσωπεύει το ψεύδος.

Για παράδειγμα, μπορούμε να δηλώσουμε μια μεταβλητή bool με την τιμή true ή false και να την χρησιμοποιήσουμε για τον έλεγχο μιας συνθήκης:

#include <stdbool.h>
#include <stdio.h>

int main() {
  bool isCodingFun = true; // Ορισμός μεταβλητής isCodingFun ως αληθής (true)

  if (isCodingFun) { // Έλεγχος αν η μεταβλητή isCodingFun είναι αληθής
    printf("Coding is fun!"); // Εκτύπωση του μηνύματος "Coding is fun!"
  } else {
    printf("Coding is not fun."); // Εκτύπωση του μηνύματος "Coding is not fun."
  }

  return 0;
}

Ο παραπάνω κώδικας σε C περιέχει σχόλια για να εξηγήσουν τη λειτουργία του. Η γραμμή #include <stdbool.h> εισάγει τη βιβλιοθήκη stdbool.h, η οποία παρέχει τη δυνατότητα χρήσης του τύπου δεδομένων bool (αληθής ή ψευδής).

Στο κύριο μέρος του προγράμματος, ορίζεται η μεταβλητή isCodingFun και τίθεται σε true, υποδηλώνοντας ότι το να προγραμματίζεις είναι διασκεδαστικό.

Ακολουθεί ένας έλεγχος με την εντολή if, όπου ελέγχεται εάν η μεταβλητή isCodingFun είναι αληθής. Αν ναι, εκτυπώνεται το μήνυμα “Coding is fun!” με τη χρήση της συνάρτησης printf(). Αν η μεταβλητή δεν είναι αληθής, τότε εκτυπώνεται το μήνυμα “Coding is not fun.”.

Τέλος, το πρόγραμμα επιστρέφει την τιμή 0, υποδηλώνοντας ότι ολοκλήρωσε την εκτέλεσή του χωρίς σφάλματα.

Το παραπάνω πρόγραμμα εκτυπώνει το ακόλουθο αποτέλεσμα στην οθόνη:

Coding is fun!

Αυτό συμβαίνει επειδή η μεταβλητή isCodingFun έχει τιμή true, και συνεπώς η συνθήκη if (isCodingFun) είναι αληθής. Έτσι, εκτελείται η εντολή printf("Coding is fun!\n"), η οποία εκτυπώνει το μήνυμα “Coding is fun!” στην οθόνη.

Στη C, οι τιμές boolean αναπαρίστανται ως ακέραιοι:

Το 1 (ή οποιοδήποτε άλλο μη μηδενικό ακέραιο) αντιστοιχεί στην τιμή true. Το 0 αντιστοιχεί στην τιμή false. Για να εκτυπώσετε μια τιμή boolean, χρησιμοποιείτε τον format specifier %d

[adinserter block=”2″]

Παράδειγμα κώδικα:

#include <stdio.h>
#include <stdbool.h>

int main() {
  bool isProgrammingFun = true;
  bool isFishTasty = false;#include <stdio.h>
#include <stdbool.h>

int main() {
  bool isProgrammingFun = true; // Μεταβλητή που αποθηκεύει την τιμή true για το αν το προγραμματισμός είναι διασκεδαστικός
  bool isFishTasty = false; // Μεταβλητή που αποθηκεύει την τιμή false για το αν το ψάρι είναι νόστιμο

  printf("Programming is fun: %d\n", isProgrammingFun); // Εκτύπωση του κειμένου "Programming is fun:" και της τιμής της μεταβλητής isProgrammingFun
  printf("Fish is tasty: %d\n", isFishTasty); // Εκτύπωση του κειμένου "Fish is tasty:" και της τιμής της μεταβλητής isFishTasty

  return 0; // Επιστροφή της τιμής 0 για να υποδηλώσει την ομαλή ολοκλήρωση του προγράμματος
}


  printf("Programming is fun: %d\n", isProgrammingFun);
  printf("Fish is tasty: %d\n", isFishTasty);

  return 0;
}

Ο παραπάνω κώδικας σε C πραγματοποιεί τις εξής ενέργειες:

  1. Συμπεριλαμβάνει δύο βιβλιοθήκες, τη <stdio.h> και τη <stdbool.h>, που περιέχουν απαραίτητες συναρτήσεις και τύπους δεδομένων για το πρόγραμμα.
  2. Ορίζει τη συνάρτηση main(), η οποία είναι η κύρια συνάρτηση εκτέλεσης του προγράμματος.
  3. Δηλώνει και αρχικοποιεί δύο μεταβλητές τύπου bool (boolean), την isProgrammingFun με την τιμή true και την isFishTasty με την τιμή false.
  4. Χρησιμοποιεί τη συνάρτηση printf() για να εκτυπώσει δύο γραμμές κειμένου. Η πρώτη γραμμή εκτυπώνει το κείμενο “Programming is fun:” ακολουθούμενο από την τιμή της μεταβλητής isProgrammingFun. Η δεύτερη γραμμή εκτυπώνει το κείμενο “Fish is tasty:” ακολουθούμενο από την τιμή της μεταβλητής isFishTasty. Οι τιμές true και false αντιστοιχίζονται αριθμητικά σε 1 και 0 αντίστοιχα, οπότε η printf() χρησιμοποιεί τον μετατροπέα %d για να εμφανίσει την τιμή ως ακέραιο αριθμό.
  5. Επιστρέφει την τιμή 0 με την εντολή return 0;, υποδηλώνοντας την ομαλή ολοκλήρωση του προγράμματος.

Το αποτέλεσμα της εκτέλεσης του παραπάνω κώδικα θα είναι:

Programming is fun: 1
Fish is tasty: 0

Αυτό συμβαίνει διότι η μεταβλητή isProgrammingFun έχει τιμή true, η οποία αντιστοιχεί στον ακέραιο 1, ενώ η μεταβλητή isFishTasty έχει τιμή false, η οποία αντιστοιχεί στον ακέραιο 0.

Το παρακάτω παράδειγμα χρησιμοποιεί τον τελεστή μεγαλύτερο από (>) για να συγκρίνει δύο αριθμούς και να εκτυπώσει αν ο πρώτος αριθμός είναι μεγαλύτερος από τον δεύτερο:

#include <stdio.h>

int main() {
  int x = 5;  // Δήλωση και αρχικοποίηση της μεταβλητής x με την τιμή 5
  int y = 3;  // Δήλωση και αρχικοποίηση της μεταβλητής y με την τιμή 3

  if (x > y) {  // Έλεγχος αν η μεταβλητή x είναι μεγαλύτερη από τη μεταβλητή y
    printf("x is greater than y\n");  // Εκτύπωση μηνύματος στην οθόνη αν η συνθήκη είναι αληθής
  }

  return 0;  // Επιστροφή της τιμής 0 για ολοκλήρωση του προγράμματος
}

Ο παραπάνω κώδικας σε C πραγματοποιεί τις ακόλουθες ενέργειες:

  1. Συμπεριλαμβάνει τη βιβλιοθήκη <stdio.h>, η οποία παρέχει τις απαραίτητες συναρτήσεις για την επεξεργασία εισόδου/εξόδου.
  2. Ορίζει τη συνάρτηση main ως την κύρια συνάρτηση του προγράμματος.
  3. Δηλώνει και αρχικοποιεί δύο ακέραιες μεταβλητές x και y με τιμές 5 και 3 αντίστοιχα.
  4. Χρησιμοποιεί μια συνθήκη if για να ελέγξει αν η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y.
  5. Αν η συνθήκη είναι αληθής, εκτελείται η εντολή printf που εμφανίζει το μήνυμα “x is greater than y” στην οθόνη.
  6. Το πρόγραμμα επιστρέφει την τιμή 0 με την εντολή return 0, υποδηλώνοντας ότι ολοκλήρωσε την εκτέλεσή του με επιτυχία.

Συνολικά, ο κώδικας ελέγχει αν η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y και εμφανίζει ένα μήνυμα ανάλογα με το αποτέλεσμα του ελέγχου.

Αν εκτελέσετε τον παραπάνω κώδικα σε ένα περιβάλλον εκτέλεσης της γλώσσας C, το αποτέλεσμα που θα εμφανιστεί στην οθόνη θα είναι:

x is greater than y

Αυτό συμβαίνει επειδή η συνθήκη x > y είναι αληθής, αφού η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y. Ως αποτέλεσμα, η εντολή printf εκτελείται και εμφανίζει το μήνυμα “x is greater than y” στην οθόνη.

[adinserter block=”3″]

Στο παρακάτω παράδειγμα, χρησιμοποιούμε τον τελεστή ισότητας (==) για να συγκρίνουμε διαφορετικές τιμές:

#include <stdio.h>

int main() {
  int x = 10;
  int y = 5;
  int z = 10;

  printf("%d\n", x == y); // Εκτύπωση 0 (όχι αληθές) επειδή το x δεν είναι ίσο με το y
  printf("%d\n", x == z); // Εκτύπωση 1 (αληθές) επειδή το x είναι ίσο με το z

  return 0;
}

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

Αρχικά, δηλώνονται τρεις μεταβλητές: x, y και z, με τιμές 10, 5 και 10 αντίστοιχα.

Στη συνέχεια, χρησιμοποιείται η συνάρτηση printf() για να εκτυπωθούν αποτελέσματα στην οθόνη. Η μορφή εκτύπωσης %d χρησιμοποιείται για την εκτύπωση ακεραίων αριθμών.

Τα δύο printf() εκτυπώνουν τα αποτελέσματα των συγκρίσεων x == y και x == z. Η συγκρίση x == y ελέγχει αν οι δύο μεταβλητές έχουν την ίδια τιμή, ενώ η συγκρίση x == z ελέγχει αν οι μεταβλητές x και z έχουν την ίδια τιμή.

Το αποτέλεσμα κάθε σύγκρισης εκτυπώνεται στην οθόνη. Αν η σύγκριση είναι αληθής, το αποτέλεσμα είναι 1, ενώ αν είναι ψευδής, το αποτέλεσμα είναι 0.

Στην περίπτωση του δοθέντος κώδικα, το αποτέλεσμα που εκτυπώνεται είναι 0 για την πρώτη σύγκριση x == y (διότι οι μεταβλητές έχουν διαφορετικές τιμές

) και 1 για τη δεύτερη σύγκριση x == z (διότι οι μεταβλητές έχουν την ίδια τιμή).

[adinserter block=”3″]

Στη γλώσσα C, δεν περιορίζεστε μόνο στη σύγκριση αριθμών. Μπορείτε επίσης να συγκρίνετε μεταβλητές τύπου boolean ή ακόμη και ειδικές δομές, όπως οι πίνακες.

Για παράδειγμα, μπορείτε να χρησιμοποιήσετε τους τελεστέους σύγκρισης, όπως ο ==, ο !=, ο <, ο >, ο <= και ο >=, για να συγκρίνετε δύο μεταβλητές boolean και να ελέγξετε αν είναι αληθείς ή ψευδείς.

Επίσης, μπορείτε να συγκρίνετε τα περιεχόμενα δύο πινάκων για να ελέγξετε αν είναι ίδιοι ή διαφορετικοί. Αυτό μπορεί να γίνει με τη χρήση συναρτήσεων όπως η memcmp() ή με τη χρήση επαναλήψεων για τη σύγκριση κάθε στοιχείου των πινάκων.

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

Παράδειγμα:

Εδώ είναι ένα παράδειγμα που συγκρίνει δύο μεταβλητές boolean με τον τελεστή ==:

#include <stdio.h>
#include <stdbool.h>

int main() {
  bool a = true;
  bool b = false;
  if (a == b) {
    printf("a equals b\n"); // Εκτυπώνει το μήνυμα "a equals b" αν η μεταβλητή a είναι ίση με τη μεταβλητή b
  } else {
    printf("a does not equal b\n"); // Εκτυπώνει το μήνυμα "a does not equal b" αν η μεταβλητή a δεν είναι ίση με τη μεταβλητή b
  }
  return 0;
}

Ο παραπάνω κώδικας σε C ελέγχει αν η μεταβλητή a είναι ίση με τη μεταβλητή b. Χρησιμοποιεί τον τελεστή σύγκρισης == για να εκτελέσει τη σύγκριση. Αν η συνθήκη είναι αληθής, δηλαδή αν οι δύο μεταβλητές έχουν την ίδια τιμή, τότε εκτυπώνει το μήνυμα “a equals b”. Αν η συνθήκη είναι ψευδής, δηλαδή αν οι δύο μεταβλητές έχουν διαφορετική τιμή, τότε εκτυπώνει το μήνυμα “a does not equal b”.

Ο κώδικας χρησιμοποιεί τη συνάρτηση printf() από τη βιβλιοθήκη <stdio.h> για να εκτυπώσει τα μηνύματα στην οθόνη. Τέλος, η main() συνάρτηση επιστρέφει την τιμή 0 για να υποδηλώσει ότι η εκτέλεση του προγράμματος ολοκληρώθηκε επιτυχώς.

[adinserter block=”4″]

Αν εκτελέσετε τον παραπάνω κώδικα στο C, το αποτέλεσμα που θα εμφανιστεί στην οθόνη θα εξαρτηθεί από την τιμή των μεταβλητών a και b. Συγκεκριμένα, αν η τιμή της a είναι ίδια με την τιμή της b, τότε θα εμφανιστεί το μήνυμα “a equals b”. Αν η τιμή της a διαφέρει από την τιμή της b, τότε θα εμφανιστεί το μήνυμα “a does not equal b”.

Σε αυτήν την περίπτωση, μιας και η τιμή της a είναι true και η τιμή της b είναι false, το αποτέλεσμα που θα εμφανιστεί στην οθόνη θα είναι: “a does not equal b”.

Εδώ είναι ένα παράδειγμα που χρησιμοποιεί τον τελεστή >= για να ελέγξει αν ένα άτομο είναι αρκετά μεγάλο για να ψηφίσει:

#include <stdio.h>

int main() {
  int age = 25; // Ηλικία του χρήστη
  int votingAge = 18; // Ηλικία επιλέξιμης ψήφου
  
  if (age >= votingAge) {
    printf("You are old enough to vote.\n"); // Εκτύπωση μηνύματος αν είναι επιλέξιμος ψήφος
  } else {
    printf("You are not old enough to vote.\n"); // Εκτύπωση μηνύματος αν δεν είναι επιλέξιμος ψήφος
  }
  
  return 0;
}

Ο παραπάνω κώδικας σε γλώσσα C ελέγχει αν ο χρήστης είναι επιλέξιμος για ψήφο. Πιο συγκεκριμένα, ο κώδικας πραγματοποιεί τις εξής ενέργειες:

  1. Δημιουργεί δύο μεταβλητές: τη μεταβλητή age που αντιπροσωπεύει την ηλικία του χρήστη και τη μεταβλητή votingAge που αντιπροσωπεύει την ηλικία επιλέξιμης ψήφου.
  2. Χρησιμοποιεί μια δομή ελέγχου if-else για να ελέγξει αν η τιμή της μεταβλητής age είναι μεγαλύτερη ή ίση με την τιμή της μεταβλητής votingAge.
  3. Αν η συνθήκη είναι αληθής, εκτυπώνει το μήνυμα “You are old enough to vote.” που υποδηλώνει ότι ο χρήστης είναι επιλέξιμος ψήφος.
  4. Αν η συνθήκη είναι ψευδής, εκτυπώνει το μήνυμα “You are not old enough to vote.” που υποδηλώνει ότι ο χρήστης δεν είναι επιλέξιμος ψήφος.
  5. Το πρόγραμμα ολοκληρώνεται με την επιστροφή της τιμής 0, υποδηλώνοντας ότι η εκτέλεση ολοκληρώθηκε επιτυχώς.

Ουσιαστικά, ο κώδικας ελέγχει αν ένας χρήστης έχει φτάσει στην ηλικία επιλέξιμης ψήφου και εκτυπώνει ανάλογο μήνυμα ανάλογα με την ηλικία του.

Όταν εκτελέσετε τον παραπάνω κώδικα, το αποτέλεσμα που θα εμφανιστεί στην οθόνη είναι:

You are old enough to vote.

Αυτό συμβαίνει επειδή η τιμή της μεταβλητής age είναι 25, που είναι μεγαλύτερη από την τιμή της μεταβλητής votingAge που είναι 18. Έτσι, η συνθήκη age >= votingAge είναι αληθής και εκτελείται η πρώτη δήλωση printf που εκτυπώνει το μήνυμα “You are old enough to vote.”.

19 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων