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

You got 10 of 20 possible points.
Your score: 50%
Question 1

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

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

5

0
Selected

10
 

1
Should have chosen

50
 

0

20

0
Question 2

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

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

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

11

0

9

0

10

0
Should have chosen

8

0
Question 3

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

a, b = b, a

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

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

temp = a

b = a

a = temp

0

temp = a

a = b

a = temp

0
Selected

temp = b

b = a

a = temp

1
Should have chosen
Question 4

Τι θα εμφανίσει το παρακάτω πρόγραμμα;

 def check_D(mylist):

        d = True

        i = 0

        N = len(mylist)

        while d and i < N-1:

                if myList[i] < myList[i + 1]:

                        d = False

                i = i + 1

        return d

L = [20, 12, 4, 2]

print check_D(L)

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

True

0
Should have chosen
Selected

False

0

None

0

[2, 4, 12, 20]

0
Question 5

Ο αλγόριθμος της σειριακή αναζήτησης μπορεί να χρησιμοποιηθεί μόνο σε ταξινομημένες λίστες

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

Ο παρακάτω αλγόριθμος επιλέγει έναν αριθμό από το 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

while not found and guesses < 10:

0
Should have chosen

while not found or guesses < 10:

0
Selected

while not found and guesses > 10:

0
Question 7

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

Score: 1 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, 98, 54, 90]

0
Selected

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

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

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

1
Should have chosen

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
Question 8

Στην παρακάτω αύξουσα ταξινομημένη λίστα  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;

 

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

17

0
Selected

50

0

63

0

60

0
Should have chosen
Question 9

Η δυαδική αναζήτηση μπορεί να χρησιμοποιηθεί τόσο σε αύξουσα ταξινομημένη λίστα, όσο και σε φθίνουσα

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

Η δυαδική αναζήτηση μπορεί να γίνει μόνο σε ταξινομημένες λίστες με αριθμούς, όχι σε λίστες με συμβολοσειρές

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

Επιλέξτε έναν πιο συνοπτικό τρόπο εκτέλεσης των παρακάτω εντολών, που δηλώνουν το πρώτο πέρασμα της αύξουσας ταξινόμησης σε μια λίστα 5 στοιχείων:

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]

if students[2] < students[1]:

        students[2], students[1] = students[1], students[2]

if students[1] < students[0]:

        students[1], students[0] = students[0], students[1]

 

 

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

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

        if studnets[j-1] < students[j-2]:

                students[j-1], students[j-2] = students[j-2], students[j-1]

0

for j in range( 4, -1, -1):

        if studnets[j] < students[j-1]:

                students[j], students[j-1] = students[j-1], students[j]

0

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

        if studnets[j] < students[j-1]:

                students[j], students[j-1] = students[j-1], students[j]

0
Should have chosen

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

        if studnets[j] < students[j-1]:

                students[j], students[j-1] = students[j-1], students[j]

0
Question 12

Ο παρακάτω αλγόριθμος βελτιστοποιεί την ταξινόμηση, ώστε όταν η λίστα ταξινομηθεί να μην κάνει άσκοπα περάσματα

def optimizedBubbleSort(A):

        N = len(A)

        isSorted = False

        i = 0

       while i < N-1  and not isSorted:

                isSorted = True

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

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

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

                               isSorted = False

                i + = 1

πόσα περάσματα θα γίνουν για τη λίστα [7, 8, 9, 12, 4, 5, 11] χρησιμοποιώντας τη βελτιστοποιημένη ταξινόμηση και πόσα άσκοπα θα γινόταν με τον απλό αλγόριθμο ταξινόμησης;

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
  • 2 περάσματα με το βελτιστοποιημένο αλγόριθμο ταξινόμησης
  • και Ν-1 = 7 - 1 = 6 συνολικά περάσματα ή 6 - 2 = 4 άσκοπα περάσματα με τον απλό αλγόριθμο
0
Selected
  • 3 περάσματα με το βελτιστοποιημένο αλγόριθμο ταξινόμησης
  • και Ν-1 = 7 - 1 = 6 συνολικά περάσματα ή 6 - 3 = 3 άσκοπα περάσματα με τον απλό αλγόριθμο
1
Should have chosen
  • 4 περάσματα με το βελτιστοποιημένο αλγόριθμο ταξινόμησης
  • και Ν-1 = 7 - 1 = 6 συνολικά περάσματα ή 6 - 4 = 2 άσκοπα περάσματα με τον απλό αλγόριθμο
0
Question 13

Η δυαδική αναζήτηση ισχύει για όλους τους τύπους δεδομένων για τους οποίους έχουμε ορίσει του συγκριτικούς τελεστές. Αυτό το χαρακτηριστικό ονομάζεται πολυμορφισμός και είναι από το βασικά πλεονεκτήματα της Python

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

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

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

Τι θα εμφανιστεί όταν θα γίνει η κλήση της συνάρτησης 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

2

0
Selected

Δεν υπάρχει

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

 

1
Should have chosen

5

0
Question 16

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

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

Επιλέξτε το σωστό πρόγραμμα που θα εμφανίζει σε φθίνουσα σειρά ως προς τους βαθμούς, τα ονόματα των μαθητών της τάξης

Θεωρήστε ότι η λίστα nameL με τα ονόματα και η λίστα gradeL με τους βαθμούς είναι γεμάτες

 

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

for i in range(N-1):

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

                if gradeL[j] > gradeL[j-1]: 

                       gradeL[j], gradeL[j-1] = gradeL[j-1], gradeL[j]

                       nameL[j], nameL[j-1] = nameL[j-1], nameL[j]

for i in range(N):

        print nameL[i]

 

0
Should have chosen

for i in range(N-1):

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

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

                       gradeL[j], gradeL[j-1] = gradeL[j-1], gradeL[j]

for i in range(N-1,-1,-1):

        print nameL[i]

 

0

for i in range(N-1):

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

                if gradeL[j] > gradeL[j-1]: 

                       gradeL[j], gradeL[j-1] = gradeL[j-1], gradeL[j]

                       nameL[j], nameL[j-1] = nameL[j-1], nameL[j]

for i in range(N-1, -1, -1):

        print nameL[i]

 

0
Selected

for i in range(N-1):

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

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

                       gradeL[j], gradeL[j-1] = gradeL[j-1], gradeL[j]

                       nameL[j], nameL[j-1] = nameL[j-1], nameL[j]

for i in range(N):

        print nameL[i]

 

0
Question 18

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

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

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

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

0

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

0
Should have chosen
Selected

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

0
Question 19

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

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

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

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

0
Should have chosen
Selected

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

0

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

0
Question 20

Η σειριακή αναζήτηση είναι πιο αργή από τη δυαδική αναζήτηση, αλλά έχει το πλεονέκτημα ότι χρησιμοποιείται και σε μη ταξινομένους πίνακες

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