Python <- Ψευδογλώσσα(Δομή Επανάληψης)

Δομή Επανάληψης

Να γραφτεί αλγόριθμος που θα διαβάσει για κάθε μέρα της εβδομάδας 3 θερμοκρασίες και να υπολογίζει την ημερήσια μέση θερμοκρασία (και για τις 7 ημέρες).

Αλγόριθμος θερμοκρασίες
Για κ από 1 μέχρι 7
 Διάβασε θ1, θ2, θ3
 Μέση_θερμοκρασία <- (θ1+θ2+θ3)/3
 Εμφάνισε  Μέση_θερμοκρασία
Τέλος_επανάληψης
Τέλος θερμοκρασίες
#μέση θερμοκρασία ημέρας
for k in range(1,8):
    th1= int (input('Δώσε θερμοκρασία '))
    th2 =int (input('Δώσε θερμοκρασία '))
    th3 =int (input('Δώσε θερμοκρασία '))
    mo=(th1+th2+th3)/3
    print(mo)

Να γράψετε αλγόριθμο ώστε να εμφανίζει του άρτιους αριθμούς στο διάστημα 1-100.

Αλγόριθμος ΑΡΙΘΜΟΣ
Για Ι από 1 μέχρι 100
 Αν Ι mod 2 = 0 τότε
  Εμφάνισε Ι
  Τέλος_αν
Τέλος_επανάληψης
Τέλος ΑΡΙΘΜΟΣΑλγόριθμος ΑΡΙΘΜΟΣ
Για Ι από 2 μέχρι 100 με βήμα  2
 Εμφάνισε Ι
Τέλος_επανάληψης
Τέλος ΑΡΙΘΜΟΣ
#άρτιοι στο διάτημα 1-100
for i in range(2,102,2):
    print(i)
#άλλος τρόπος
for i in range(1,101):
    if i % 2 ==0:
        print(i)

Να γράψετε αλγόριθμο που να υπολογίζει το άθροισμα των άρτιων και το άθροισμα των περιττών στο διάστημα 1-100.

Αλγόριθμος Αθροίσματα
σ ← 0
κ ← 0
Για ι από 1 μέχρι 100 με_βήμα 2
 σ ← σ + ι
Τέλος_επανάληψης
Για λ από 2 μέχρι 100 με_βήμα 2
 κ ← κ + λ
Τέλος_επανάληψης
Εμφάνισε σ, κ
Τέλος
#άθροισμα άρτιων και περιττών στο διάστημα 1-100
s=0
k=0
for i in range(2, 102, 2):
    s=s+i
for l in range(1,101,2):
    k=k+l
print(s,k)

Να γραφτεί ένας αλγόριθμος που θα εμφανίζει τιμές της συνάρτησης   στο διάστημα -20-έως 20 με βήμα 0.1 (Υπ. χρησιμοποιήστε τη συνάρτηση Ε(x)=e^x )

Αλγόριθμος ΣΥΝΑΡΤΗΣΗ
Για χ από -20 μέχρι 20 με_βήμα 0.1
  υ ← 3*Ε(1 - χ) + 1
  Εμφάνισε χ, υ
Τέλος_επανάληψης
Τέλος ΣΥΝΑΡΤΗΣΗ
x=-20
while x<=20:
    u=3*abs(1-x)+1
    print (x, u)
    x=x+0.1

Υπολογισμός αθροισμάτων

Υπολογισμός αθροίσματος 1+2+3+…+15

Σ <- 0
Για ι από 1 μέχρι 15
  Σ <- Σ+ι
Τέλος_επανάληψης
s=0
for i in range(1,16):
    s=s+i
print(s)

Άθροισμα 15 αριθμών που διαβάζονται από το πληκτρολόγιο

Σ <- 0
Για ι από 1 μέχρι 15
 Διάβασε αριθμός
 Σ <- Σ + αριθμός
Τέλος_επανάληψης
Εμφάνισε Σ
s=0
for i in range(1,16):
    a=float(input())
     s=s+a
print(s)

Αλγόριθμος που μετράει πόσοι από τους 50 αριθμούς ξεπερνούν το 18

μ <- 0
Για ι από 1 μέχρι 50
 Διάβασε χ
  Αν χ>18 τότε
   μ <- μ+1
  Τέλος_αν
Τέλος_επανάληψης
Εμφάνισε μ
m=0
for i in range(1,51):
   x=float(input())
   if x>18:
       m=m+1
print(m)

Μέτρηση των ΝΑΙ και ΟΧΙ

Αλγόριθμος ΔΗΜΟΣΚΟΠΗΣΗ
ΠΛΝΑΙ ← 0
ΠΛΟΧΙ ← 0
Για Ι από 1 μέχρι 10
 Διάβασε ΑΠΑΝΤΗΣΗ
  Αν ΑΠΑΝΤΗΣΗ = 'ΝΑΙ' τότε
   ΠΛΝΑΙ ← ΠΛΝΑΙ + 1
  αλλιώς
   ΠΛΟΧΙ ← ΠΛΟΧΙ + 1
  Τέλος_αν
 Τέλος_επανάληψης
 Εμφάνισε 'ΝΑΙ απάντησαν: ', ΠΛΝΑΙ
 Εμφάνισε 'ΝΑΙ απάντησαν: ', ΠΛΟΧΙ
Τέλος ΔΗΜΟΣΚΟΠΗΣΗ
plnai=0
ploxi=0
for i in range(1,11):
    apantisi=input()
    if apantisi=='ΝΑΙ':
        plnai=plnai+1
    else:
        ploxi=ploxi+1
print('ΝΑΙ απάντησαν: ', plnai)
print('ΟΧΙ απάντησαν: ', ploxi)
print(s)

 

Python <- Ψευδογλώσσα(Δομή Επιλογής)

Δομή Επιλογής



Λήψη αρχείου

Υπολογισμός εμβαδού τριγώνου αν γνωρίζω τα μήκη των πλευρών (Τύπος Ήρωνα).

Αλγόριθμος ΗΡΩΝΑΣ
Διάβασε Α, Β, Γ
Αν Α + Β > Γ και Α + Γ > Β και Β + Γ > Α τότε
 Τ ← (Α + Β + Γ)/ 2
 Ε1 ← Τ_Ρ(Τ*(Τ - Α)*(Τ - Β)*(Τ - Γ))
 Εμφάνισε "Το εμβαδόν είναι: ", Ε1
αλλιώς
 Εμφάνισε "Δεν υπάρχει τρίγωνο με αυτές τις πλευρές."
Τέλος_αν
Τέλος ΗΡΩΝΑΣ
a= float (input('Δώσε μήκος πλευράς a '))
b= float (input('Δώσε μήκος πλευράς b '))
c= float (input('Δώσε μήκος πλευράς c '))
if a+b>c and a+c>b and b+c>a:
    t=(a+b+c)/2
    e=(t*(t-a)*(t-b)*(t-c))**(1/2)
    print("το εμβαδό του τριγώνου είναι {:.2f}".format(e))
else:
   print("τα a,b,c δεν ειναι πλευρές τριγώνου")

Να γραφεί αλγόριθμος που να βρίσκει τις ρίζες ενός τριωνύμου. Αρχικά να ρωτά τους συντελεστές α, β και γ του τριωνύμου και κατόπιν να εμφανίζει τις ρίζες ή την ένδειξη “Αδύνατη εξίσωση” αν αυτή δεν έχει πραγματικές ρίζες.

Αλγόριθμος Δευτεροβάθμια
Διάβασε α, β, γ
δ ← β^2 - (4*α*γ)
Εμφάνισε "Η διακρίνουσα είναι: ", δ
Αν δ > 0 τότε
 ρ1 ← (-β + Τ_Ρ(δ))/(2*α)
 ρ2 ← (-β - Τ_Ρ (δ))/(2*α)
Εμφάνισε "Οι λύσεις είναι: ", ρ1, ρ2
αλλιώς_αν δ = 0 τότε
 ρ1 ← (-β)/2*α
 Εμφάνισε "Η λύση είναι: ", ρ1
αλλιώς
 Εμφάνισε "Δεν έχει πραγματικές ρίζες"
Τέλος_αν
Τέλος Δευτεροβάθμια

Η χρέωση σε ένα ξενοδοχείο της Καλαμπάκας γίνεται με βάση τον παρακάτω πίνακα. Να γράψετε ένα αλγόριθμο που θα διαβάζει για ένα πελάτη το είδος του δωματίου που επιθυμεί και τις ημέρες διαμονής του και να υπολογίζει το κόστος της διαμονής.

Είδος Δωματίου   Κόστος / ημέρα
Μονόκλινο (Μ)          30
Δίκλινο                        40
Τρίκλινο                      50
Τετράκλινο                60

Αλγόριθμος ΧΡΕΩΣΗ
Εμφάνισε "Πόσες ημέρες θα μείνετε;"
Διάβασε ΗΜΕΡΕΣ
Εμφάνισε "Θέλετε μονόκλινο, δίκλινο, τρίκλινο ή τετράκλινο;"
Διάβασε Δ
Αν Δ = "μονόκλινο" τότε
 τ ← 30
αλλιώς_αν Δ = "δίκλινο" τότε
 τ ← 40
αλλιώς_αν Δ = "τρίκλινο" τότε
 τ ← 50
αλλιώς
 τ ← 60
Τέλος_αν
κόστος <- ΗΜΕΡΕΣ*τ
Εμφάνισε "Το κόστος είναι ", κόστος
Τέλος ΧΡΕΩΣΗ
#χρέωση δωματίου
imeres= int (input('Πόσες ημέρες θα μείνετε; '))
d = input('Θέλετε μονόκλινο, δίκλινο, τρίκλινο ή τετράκλινο; ')
if d=="μονόκλινο":
    t = 30
elif d=="δίκλινο":
    t = 40
elif d=="τρίκλινο":
    t = 50
else:
    t = 60
kostos = imeres*t
print ("Το κόστος είναι ", kostos)

Να γραφτεί  αλγόριθμος που θα βρίσκει τον μικρότερο από 3 αριθμούς.

 

Αλγόριθμος μικ
Διάβασε α, β, γ
 μιν ← α
Αν β < μιν τότε
μιν ← β
Τέλος_αν

Αν γ < μιν τότε
 μιν ← γ
Τέλος_αν
Εμφάνισε "Μικρότερος των ", α, β, γ, " είναι ο ", μιν

Τέλος μικ
#μικρότερος από 3 αριθμούς
a= float (input('Δώσε αριθμό '))
b= float (input('Δώσε αριθμό '))
c= float (input('Δώσε αριθμό '))
mikroteros=a
if b < mikroteros:
    mikroteros=b
if c < mikroteros:
    mikroteros=c
print('Ο μικρότερος αριθμός είναι:', mikroteros)

Το πρόβλημα αυτό είναι γνωστό ως δίλημμα του φυλακισμένου. Η αστυνομία έχει συλλάβει δύο συνεργούς σε αδίκημα. Στον καθένα προτείνεται ο εξής συμβιβασμός:

a. Ομολόγησε και πρόδωσε τον συνεργάτη σου όσο αυτός δεν έχει ομολογήσει ακόμη. Αν συμβεί αυτό εσύ θα αφεθείς ελεύθερος, ενώ ο συνεργός σου θα φυλακιστεί για 20 χρόνια.
b. Αν ομολογήσει και σε προδώσει αυτός τότε θα αφεθεί αυτός ελεύθερος και θα φυλακιστείς εσύ για 20 χρόνια.
c. Αν ομολογήσετε και προδώσετε και οι δύο ταυτόχρονα, τότε θα φυλακιστείτε και οι δύο για 5 χρόνια ο καθένας.
d. Αν δεν ομολογήσει κανείς από τους δύο τότε, λόγω έλλειψης στοιχείων, θα καταδικαστείτε και οι δύο για ελαφρύτερα αδικήματα, σε 1 χρόνο ο καθένας.
e. Το πρόβλημα είναι τι πρέπει να κάνει ο κάθε φυλακισμένος, χωρίς να γνωρίζει τι θα κάνει ο άλλος. Αν μπορούσαν να συνεννοηθούν θα προτιμούσαν να μην προδώσει κανένας και να γλιτώσουν με μικρότερη ποινή. Να γραφεί αλγόριθμος σε ψευδογλώσσα ο οποίος να διαβάζει αν ομολόγησαν ή όχι οι δύο συνεργοί ρωτώντας για τον καθένα χωριστά και έπειτα να εμφανίζει τα χρόνια φυλακής που καταδικάστηκε ο καθένας.

Αλγόριθμος φυλακη
Διάβασε ο1, ο2
Αν ο1 = "ναι" και ο2 = "ναι" τότε
 Εμφάνισε "5 χρόνια ο καθένας"
αλλιώς_αν ο1 = "ναι" και ο2 = "οχι" τότε
 Εμφάνισε "20 χρόνια ο 2ος"
αλλιώς_αν ο1 = "οχι" και ο2 = "ναι" τότε
 Εμφάνισε "20 χρόνια ο 1ος"
αλλιώς_αν ο1 = "οχι" και ο2 = "οχι" τότε
 Εμφάνισε "1 χρόνο ο καθένας"
Τέλος_αν
Τέλος φυλακη

-Ερωτήσεις_Ιστορίας

Να γραφτεί ένας αλγόριθμος που να ελέγχει τις γνώσεις μας πάνω  στην Ιστορία. Πιο συγκεκριμένα θα υλοποιεί τα παρακάτω:

  • Θα εμφανίζει την ερώτηση “Πότε π.χ. έγινε η μάχη του Μαραθώνα;”
  • Θα διαβάζει την απάντηση του χρήστη
  • Θα ελέγχει αν είναι σωστή,
    • και θα εμφανίζει “Μπράβο” αν είναι σωστή.
    • διαφορετικά θα εμφανίζει “Λάθος” καθώς και πόσα χρόνια απέχει η λάθος απάντηση από την σωστή που είναι 490.
  • Στη συνέχεια θα εμφανίζει την δεύτερη ερώτηση “Πότε π.χ. έγινε η μάχη στις Θερμοπύλες;”
  • Θα διαβάζει την απάντηση του χρήστη
  • Θα ελέγχει αν είναι σωστή,
      • και θα εμφανίζει “Μπράβο” αν είναι σωστή.
      • διαφορετικά θα εμφανίζει “Λάθος” καθώς και πόσα χρόνια απέχει η λάθος απάντηση από την σωστή που είναι 480.
  • Στη συνέχεια θα εμφανίζει την τρίτη ερώτηση “Πότε π.χ. έγινε η μάχη στις Πλατείες;”
  • Θα διαβάζει την απάντηση του χρήστη
  • Θα ελέγχει αν είναι σωστή,
    • και θα εμφανίζει “Μπράβο” αν είναι σωστή.
    • διαφορετικά θα εμφανίζει “Λάθος” καθώς και πόσα χρόνια απέχει η λάθος απάντηση από την σωστή που είναι 479.

Επεκτάσεις:
Ο αλγόριθμος θα έχει μια μεταβλητή σκορ την οποία θα αυξάνει κάθε φορά που μια ερώτηση είναι σωστή (σκορ ← σκορ + 1), ενώ θα είναι αρχικοποιημένη στην τιμή 0 πριν αρχίσουν οι ερωτήσεις (σκορ ← 0). Στο τέλος θα εμφανίζει το σκορ και το μηνυμα “Είσαι πολύ καλός γνώστης των ιστορικών γεγονότων”, αν απαντηθούν σωστά όλες οι ερωτήσεις.

-Να γράψετε του συγκριτικούς τελεστές______________________________________________

-Αν οι μεταβλητές χ,ψ και Όνομα έχουν τις τιμές 6, 8 και ‘Νίκος’ αντίστοιχα τότε οι παρακάτω λογικές προτάσεις είναι αληθείς ή ψευδείς;

χ>ψ                χ+2>ψ                    (χ+ψ)/2=5              Όνομα= ‘Γιώργος’

*Σε μία Λογική έκφραση πρώτα γίνονται οι αριθμητικές πράξεις, μετά οι συγκρίσεις και όπως θα δούμε μετά οι λογικές (ΌΧΙ, ΚΑΙ, Η).

-Ο υπάλληλος μιας εταιρίας πώλησης οικοδομικών υλικών χρησιμοποιεί ένα πρόγραμμα στον υπολογιστή για να υπολογίζει το κόστος μιας παραγγελίας. Σε κάθε παραγγελία εισάγει το πλήθος των κεραμιδιών και των σακιών τσιμέντο που αγοράζει ο πελάτης. Η χρέωση των υλικών είναι 5 ευρώ το κεραμίδι και 30 ευρώ το σακί τσιμέντο. Επιπλέον σε κάθε παραγγελία χρεώνει 5€ για μεταφορικά αν το κόστος της παραγγελίας είναι μικρότερο των 100€.  Να γράψετε σε ψευδογλώσσα και διάγραμμα ροής, αλγόριθμο για τον υπολογισμό του κόστους μια παραγγελίας.

-Ένας πελάτης έχει το εξής συμβόλαιο με εταιρία κινητής τηλεφωνίας. Με πάγιο 10 ευρώ το μηνά έχει 300 λεπτά ομιλίας και 50 sms. Αν όμως ξεπεράσει τα προηγούμενα όρια έχει επιπλέον χρεώσεις. Πιο συγκεκριμένα τα επιπλέον λεπτά ομιλίας χρεώνονται με 0,12 ευρώ/λεπτό, ενώ τα επιπλέον SMS με 0,15ευρώ/sms. Να γράψετε αλγόριθμο που

  • Να διαβάζει τα λεπτά ομιλίας και τα sms του πελάτη σε ένα μήνα
  • Να υπολογίζει και να εμφανίζει πιθανό επιπλέον κόστος για την ομιλία.
  • Να υπολογίζει και να εμφανίζει πιθανό επιπλέον κόστος για τα SMS.
  • Να υπολογίζει και να εμφανίζει την συνολική μηνιαία χρέωση.

– Μία αεροπορική εταιρεία κάνει έκπτωση στους πελάτες της ανάλογα με τα μίλια που έχουν ταξιδέψει στο παρελθόν. Η έκπτωση είναι 10% αν έχουν ξεπεραστεί τα 5000 μίλια.Να αναπτύξετε αλγόριθμο ο οποίος:

  • Να διαβάζει την αρχική τιμή του εισιτηρίου και τα συνολικά μίλια που έχει ταξιδέψει στο παρελθόν ο πελάτης.
  • Να υπολογίζει την έκπτωση και να την εμφανίζει είτε είναι μηδέν είτε όχι.
  • Να υπολογίζει την τελική τιμή του εισιτηρίου μετά την έκπτωση. Να τυπώνει το μήνυμα “ Η τελική τιμή του εισιτηρίου είναι:” και την τελική τιμή.

– Το όζον (Ο3) αποτελεί έναν από τους ρύπους που προκαλούν μόλυνση στην ατμόσφαιρα. Σε περιπτώσεις που ο ρύπος αυτός ξεπεράσει τα 300 μg/m3 τότε πρέπει να ληφθούν μέτρα. Να αναπτυχθεί αλγόριθμος ο οποίος θα διαβάζει την τιμή του Ο3 και θα εκτυπώνει το αντίστοιχο μήνυμα σύμφωνα με τον πίνακα:

Τιμές Ο3 (μg/m3) Μήνυμα
Τιμή > 600 Μέτρα Β
Τιμή > 300 Μέτρα Α
Τιμή > 280 Προειδοποίηση
Αλλαγή μεγέθους γραμματοσειράς
Αντίθεση