Κεφάλαιο 5 - Βιβλίο-Τετράδιο Εργασιών Μαθητή

You got 15 of 20 possible points.
Your score: 75%
Question 1

Για την παρακάρω λίστα με 7 αριθμούς ποια θα είναι η τιμή της λίστας μετά από τρία περάσματα, αν χρησιμοποιήσουμε τον αλγόριθμο της αύξουσας ταξινόμησης (φυσαλίδα);

[55, 34, 5, 3, 2, 1, 1]

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

[1, 1, 2, 55, 34, 5, 3]

1
Should have chosen

[1, 2, 3, 55, 34, 5, 1]

0

[1, 1, 55, 34, 5, 3, 2]

0
Question 2

Σε μια ταξινομημένη λίστα 16 στοιχείων, πόσες είναι οι περισσότερες συγκρίσεις που θα χρειαζόταν για να βρεθεί οποιοδήποτε στοιχείο χρησιμοποιοώντας τη δυαδική αναζήτηση;

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

16

0

8

0
Selected

4

1
Should have chosen

2

0
Question 3

O παρακάτω αλγόριθμος της αύξουσας ταξινόμησης Ν στοιχείων σε τι μειονεκτεί;

for i in range(N-1):

        for j in range(N-1, 0, -1):

                if A[j] < A[j-1]:

                       A[j], A[j-1] = A[j-1], A[j]

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

Σε κάθε πέρασμα, το μικρότερο στοιχείο ταξινομείται. Άρα στην εσωτερική επανάληψη είναι περιττό το να συγκρίνουμε πάντα έως και το ήδη ταξινομημένο στοιχείο, δηλαδή έως και το στοιχείο 0

1
Should have chosen

Αφού τα στοιχεία είναι N, τα περάσματα από την εξωτερική for θα πρέπει να είναι N και όχι N-1

0

Δε μειονεκτεί σε τίποτα αφού είναι η βέλτιστη ταξινόμηση....τι να κάνουμε τώρα;

0
Question 4

Τι θα συμβεί στο παρακάτω τμήμα αλγορίθμου;

students = ['Δημήτρης', 'Ευγενία', 'Ναταλία', 'Ρένια', 'Αλέξανδρος']

if students[4] < students[3]:

        students[4], students[3] = students[3], students[4]

if students[3] < students[2]:

        students[3], students[2] = students[2], students[3]

 

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

Η λίστα θα γίνει:

['Δημήτρης', 'Ευγενία', 'Αλέξανδρος', 'Ναταλία', 'Ρένια']

1
Should have chosen

Η λίστα θα γίνει:

['Δημήτρης', 'Ναταλία', 'Ευγενία', 'Αλέξανδρος', 'Ρένια']

0

['Δημήτρης', 'Αλέξανδρος', 'Ευγενία', 'Ναταλία', 'Ρένια']

0
Question 5

Δίνεται η λίστα με τους αριθμούς [60, 38, 98, 54, 32, 90, 20] . Πως θα γίνει η λίστα μετά από 3 περάσματα μιας αύξουσας ταξινόμησης;

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

1ο πέρασμα: [20, 60, 38, 98, 54, 32, 90]

2ο πέρασμα: [20, 32, 60, 38, 98, 54, 90]

3ο πέρασμα: [20, 32, 38, 60, 90, 54, 98]

0
Selected

1ο πέρασμα: [20, 60, 38, 98, 54, 32, 90]

2ο πέρασμα: [20, 32, 60, 38, 98, 54, 90]

3ο πέρασμα: [20, 32, 38, 60, 98, 54, 90]

0

1ο πέρασμα: [20, 60, 38, 98, 54, 32, 90]

2ο πέρασμα: [20, 32, 60, 38, 98, 54, 90]

3ο πέρασμα: [20, 32, 38, 60, 54, 98, 90]

0
Should have chosen
Question 6

Τι θα εμφανιστεί όταν θα γίνει η κλήση της συνάρτησης binarySearch για τη λίστα: L [7, 9, 15, 67, 77, 85];

def binarySearch(array, key):

        first = 0

       last = len(array) - 1

        pos = 'Δεν υπάρχει'

        while first <= last and pos == -1:

                mid = (first + last) / 2

                if array[mid] == key:

                        pos = mid

                elif array[mid] < key:

                        first = mid + 1

               else:

                       last = mid - 1

        return pos

print binarySearch(L, 5):

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

Δεν υπάρχει

(Το βιβλίο αναφέρει αν δε το βρει  pos = -1, αλλά είναι λάθος γιατί η θέση -1 είναι η τελευταία)

 

1
Should have chosen

5

0

2

0
Question 7

Η δυαδική αναζήτηση βρίσκει το ζητούμενο πολύ πιο αργά από ότι η σειριακή αναζήτηση

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
True0
Selected
False1
Should have chosen
Question 8

Ο παρακάτω αλγόριθμος δυαδικής αναζήτησης χρησιμοποιείται σε λίστες με αύξουσα ταξινόμηση:

def binarySearch(lista, key):

        first = 0

        last = len(lista) - 1

        found = False

        while not found and first <= last:

                mid = (first + last) / 2

                if  key == lista[mid] :

                      found = True

                elif key > lista[mid]  :

                      last = mid - 1

                else:

                    first  = mid +1

        return found

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected
True0
False0
Should have chosen
Question 9

Ο αλγόριθμος αυθείας ανταλλαγής, αν και θεωρείται από τους πιο αργούς αλγορίθμους ταξινόμησης, έχει ένα πολύ σημαντικό πλεονέκτημα: ότι μπορεί να τροποποιηθεί, ώστε να τερματίσει μόλις διαπιστώσει ότι η λίστα έχει ταξινομηθεί

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected
True1
Should have chosen
False0
Question 10

Σε μια ταξινομημένη λίστα 1000 στοιχείων, πόσες είναι οι περισσότερες συγκρίσεις που θα χρειαζόταν για να βρεθεί οποιοδήποτε στοιχείο χρησιμοποιοώντας τη δυαδική αναζήτηση;

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

10
 

1
Should have chosen

20

0

50
 

0

5

0
Question 11

Πόσα περάσματα θα γίνουν για την αύξηση ταξινόμηση της λίστας:

[28, 28, 28, 6, 6, 6, 6, 6, 6, 6, 6]

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

7

0
Selected

8

1
Should have chosen

3

0

10

0
Question 12

Ο παρακάτω αλγόριθμος δυαδικής αναζήτησης χρησιμοποιείται σε λίστες με φθίνουσα ταξινόμηση:

def binarySearch(lista, key):

        first = 0

        last = len(lista) - 1

        found = False

        while not found and first <= last:

                mid = (first + last) / 2

                if lista[mid] == key:

                      found = True

                elif lista[mid] > key:

                      first = mid + 1

                else:

                     last = mid - 1

        return found

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
True0
Should have chosen
Selected
False0
Question 13

Ο παρακάτω αλγόριθμος δυαδικής αναζήτησης χρησιμοποιείται σε λίστες με αύξουσα ταξινόμηση:

def binarySearch(lista, key):

        first = 0

        last = len(lista) - 1

        found = False

        while not found and first <= last:

                mid = (first + last) / 2

                if  key == lista[mid] :

                      found = True

                elif key <lista[mid]  :

                      last = mid - 1

                else:

                    first  = mid +1

        return found

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected
True1
Should have chosen
False0
Question 14

Στην παρακάτω αύξουσα ταξινομημένη λίστα  L ψάχνουμε το 45.

0 1 2 3 4 5 6 7 8 9 10 11 12 13
5 10 17 23 28 30 35 40 45 50 60 63 68 70

η πρώτη σύγκριση για τον αριθμό 45 θα είναι με το στοιχείο στο δείκτη: (0+13)/2 =6 άρα με τον L[6] άρα με το 35.

επειδή 45>35 θα ελέγξει από το δείκτη 6+1 = 7 έως το τέλος της λίστας.

Άρα ο επόμενος έλεγχος θα είναι με το στοιχείο στο δείκτη: (7 + 13) / 2 = 10, άρα με το 60

Με ποιο στοιχείο θα ελεγχθεί μετά;

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

50 και θα κάνει και άλλον έλεγχο

0

68 και θα κάνει και άλλον έλεγχο

0

40 και θα κάνει και άλλον έλεγχο

0
Selected

45 και θα το βρει

1
Should have chosen
Question 15

Πόσα περάσματα θα γίνουν για την αύξηση ταξινόμηση της λίστας:

[28, 28, 28, 28, 28, 28, 28, 30, 30, 30, 30]

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

0

1
Should have chosen

4

0

2

0

1

0
Question 16

Η παρακάτω συνάρτηση υπολογίζει σωστά το πλήθος των True σε μια λίστα; Τι θα εμφανίσει το πρόγραμμα;

def count_True(lista):

        pl_true=0

        for item in lista:

                if item:

                        pl_true + = item

        return pl_true

L = [True, True, True, False, False]

print count_True(L)

 

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

rue+True+True θα δώσει ΤrueTrueTrue, άρα θα εμφανίσει: ΤrueTrueTrue

0
Selected

Τα υπολογίζει σωστώ, αφού η τιμή True που προσθέτει έχει αριθμητική αξία 1

Δηλαδή  True+True+True = 3

Άρα θα εμφανίσει 3
 

1
Should have chosen

True+True+True θα δώσει μήνυμα λάθους

0
Question 17

Ο παρακάτω αλγόριθμος επιλέγει έναν αριθμό από το 1 έως και το 1000 και ο χρήστης προσπαθεί να τον μαντέψει με τη βοήθεια μηνυμάτων από το Η/Υ (αν ο αριθμός που έδωσε ο χρήστης είναι μικρότερος ή μεγαλύτερος). Βελτιώστε τον αλγόριθμο στην  while ώστε ο χρήστης να σκεφτεί με καλύτερη στρατηγική και να μειώσει τις προσπάθειές του για να βρει τον κρυφό αριθμό. Οι προσπάθειες που θα μπορεί να δώσει είναι 10

import random

secret_number = random.randint(1, 1000)  # ο αριθμός που επιλέγει τυχαίο ο Η/Υ

guesses = 0   #προσπάθειες

found = False

while not found:

        guess = input(' Μάντεψε τον αριθμό')  # Ο αριθμός που δίνει ο χρήστης

        guesses + = 1

        if guess == secret_number:

                print 'Μπράβο το βρήκες με', guesses, 'προσπάθειες'

                found = True

        else:

                if guess < secrtet_number:

                        print ' Ο αριθμός σου είναι μικρότερος από τον ζητούμενο'

                else:

                        print ' Ο αριθμός σου είναι μεγαλύτερος από τον ζητούμενο'  

#Τέλος της while

if  found :  # αφού αν είναι True αρκεί (μπορούμε και found == True:)

        print 'Μπράβο το βρήκες με ', guesses, ' προσπάθειες'

else:

        print 'Δυστυχώς δεν το βρήκες'

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

while not found or guesses < 10:

0
Selected

while not found and guesses > 10:

0

while not found or guesses > 10:

0

while not found and guesses < 10:

0
Should have chosen
Question 18

Πόσα περάσματα θα γίνουν για την αύξηση ταξινόμηση της λίστας:

[55, 46, 44, 34, 28, 18, 14, 12, 10, 8, 4]

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

8

0

10

0
Should have chosen
Selected

11

0

9

0
Question 19

Η αντιμετάθεση (αμοιβαία αλλαγή τιμών των μεταβλητών α, β) γίνεται στην Pyhton με την απλή εντολή:

a, b = b, a

Πως μπορεί να γίνει με επιπλέον μεταβλητή;

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

temp = a

b = a

a = temp

0
Selected

temp = b

b = a

a = temp

1
Should have chosen

temp = a

a = b

a = temp

0
Question 20

Η σειριακή αναζήτηση σαρώνει όλα τα στοιχεία μιας ταξινομημένης λίστας χωρίς να εκμεταλλεύεται τη διάταξη των στοιχείων

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected
True1
Should have chosen
False0