Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους αριθμούς, η πρώτη εκ των οποίων καταγράφει όλες τις θέσεις της S στις οποίες εμφανίζεται η ελάχιστη τιμή ενώ η δεύτερη καταγράφει όλες τις θέσεις στις οποίες εμφανίζεται η μέγιστη τιμή. Οι θέσεις αριθμούνται ξεκινόντας από το ένα (1). Είσοδος Η πρώτη γραμμή εισόδου αποτελείται από ένα θετικό ακέραιο αριθμό n (n 40) που αντιπροσωπεύει το μήκος (δηλ., τον αριθμό των τιμών) της ακολουθίας ενώ η δεύτερη γραμμή περιέχει τις ακέραιες τιμές (δηλ. τα στοιχεία) της ακολουθίας χωρισμένες με κενό διάστημα. Έξοδος Το πρόγραμμα πρέπει να επιστρέφει δύο γραμμές εξόδου. Η πρώτη γραμμή αποτελείται από όλες τις θέσεις όπου εμφανίζεται η ελάχιστη τιμή της ακολουθίας. Η δεύτερη γραμμή αποτελείται από όλες τις θέσεις όπου εμφανίζεται η μέγιστη τιμή της ακολουθίας. Παράδειγμα Εισόδου 10 3 9 2 9 7 8 1 1 9 5 Παράδειγμα Εξόδου 7 8 2 4 9 Επεξήγηση: Στις θέσεις 7 και 8 βρίσκεται ο αριθμός 1 ο οποίος είναι και ο μικρότερος της ακολουθίας. Στις θέσεις 2, 4 και 9 βρίσκεται ο μεγαλύτερος αριθμός της ακολουθίας, ο αριθμός 9.
Problem 1: Min/Max Search Write a program that, given a sequence S of integers as input, produces as output two sequences of positive integers, the first of which indicates all those positions in S at which S's minimum value occurs and the second of which indicates with all those positions at which S's maximum value occurs. Positions are numbered starting at one (1). Input The first line of input contains a positive integer n (n 40) indicating the length of (i.e., number of values in) the sequence, and the second line contains the values in the sequence. Each such value is separated from the next by at least one space. Output There should be two two lines of output. The first line indicates the positions at which the minimum value occurs. The second line indicates the positions at which the maximum value occurs. Sample Input 10 3 9 2 9 7 8 1 1 9 5 Sample Output 7 8 2 4 9 Explanation: At positions 7 and 8 number 1 occurs (which is the smallest number in the sequence). At positions 2, 4 and 9 number 9 occurs (the biggest number in the sequence).
Πρόβλημα 2: Ανάστροφος Πίνακα Να γραφεί πρόγραμμα που να δέχεται ως είσοδο ένα ορθογώνιο πίνακα από ακέραιους αριθμούς A διαστάσεων ΝxM και επιστρέφει τον ανάστροφο πίνακα T μετατρέποντας δηλαδή, τις γραμμές σε στήλες και τις στήλες σε γραμμές. Για κάθε στοιχείο του πίνακα Α και του ανάστροφου πίνακα Τ ισχύει Αij = Tji. Είσοδος Η πρώτη γραμμή εισόδου αποτελείται από δύο θετικούς ακέραιους αριθμούς Ν και Μ που αντιπροσωπεύουν τις διαστάσεις του πίνακα (όπου, Ν 40 και Μ 40). Οι επόμενες Ν γραμμές αποτελούνται από Μ θετικούς ακέραιους αριθμούς η κάθε μια, οι οποίοι διαχωρίζονται με κενό διάστημα και έχουν τιμές μικρότερες του 10. Αυτά είναι τα στοιχεία του πίνακα εισόδου. Έξοδος Το πρόγραμμα επιστρέφει τις Μ γραμμές του ανάστροφου πίνακα με Ν στοιχεία η κάθε μια. Παράδειγμα Εισόδου 2 3 1 2 3 4 5 6 Παράδειγμα Εξόδου 1 4 2 5 3 6
Problem 2: Matrix Transpose Write a program that accepts as input a two dimensional NxM orthogonal matrix A as an argument and returns the transposed matrix T, i.e. converts the rows to columns and the columns to rows. For each element of matrix A and the transposed matrix T the relationship Aij = Tji holds for all i,j. Input The first line of input contains two positive integers N and M indicating the dimensions of the matrix (where, N 40 and M 40). The subsequent N lines contain M positive integers each, separated by space and having value less than 10. These represent the elements of the input matrix. Output The program returns M lines with N elements each. These represent the elements of the transposed matrix Sample Input 2 3 1 2 3 4 5 6 Sample Output 1 4 2 5 3 6
Πρόβλημα 3: Επαναλήψεις Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια συμβολοσειρά που δεν ξεπερνά τους 10000 χαρακτήρες. Για κάθε χαρακτήρα εισόδου, το πρόγραμμα τυπώνει τον χαρακτήρα i φορές (όπου i η θέση του χαρακτήρα στη συμβολοσειρά εισόδου). Είσοδος Η συμβολοσειρά εισόδου περιέχει μόνο χαρακτήρες από το λατινικό αλφάβητο (δηλαδή, a z και A Z) Έξοδος Μια συμβολοσειρά που να τηρεί τις προδιαγραφές του προβλήματος. Παράδειγμα Εισόδου asdf Παράδειγμα Εξόδου assdddffff
Problem 3: Loops Write a program that accepts as input a string of characters (max length 10000 characters). For each input character the program prints the character i times (where i is the position of the character in the input string). Input The input string consists only of characters of the latin alphabet (i.e. a z and A Z). Output A string of characters that complies with the requirements of the problem. Sample Input asdf Sample Output assdddffff
Πρόβλημα 4: Συχνότητα Να γράφεί ένα πρόγραμμα το όποιο διαβάζει μια συμβολοσειρά από ένα αρχείο εισόδου και την αναλύει υπολογίζοντας: 1) την συχνότητα εμφάνισης όλων των χαρακτήρων που την αποτελούν. 2) την συχνότητα όλων των διγράμμων που εμφανίζονται σ'αυτη (Δίγραμμο = Δύο διαδοχικοί χαρακτήρες της συμβολοσειράς). Είσοδος Η πρώτη γραμμή εισόδου αποτελείται από ένα θετικό ακέραιο αριθμό n (n 100) που αντιπροσωπεύει το μήκος (δηλ. το πλήθος των χαρακτήρων) της συμβολοσειράς ενώ η δεύτερη γραμμή περιέχει τους χαρακτήρες που την αποτελούν(δηλ. τα στοιχεία) της ακολουθίας. Έξοδος Για κάθε χαρακτήρα, το πρόγραμμα επιστρέφει μια γραμμή που αποτελείται από το χαρακτήρα και την συχνότητα του και για κάθε δίγραμμο, το δίγραμμο και τη συχνότητα του. Παράδειγμα Εισόδου 7 abecabd Παράδειγμα Εξόδου a 2 b 2 c 1 d 1 e 1 ab 2 be 1 ec 1 ca 1 bd 1
Problem 4: Occurrences Write a program that accepts as input a string of characters from a text file and calculates: 1) the occurrence of all characters in the string. 2) the occurrences of all bi grams that appear in it (bi grams = Two consecutive characters of the string). Input The first line of input contains a positive integer n (n 40) indicating the length of (i.e., number of values in) the sequence, and the second line contains the values in the sequence. Output m lines, containing the number being processed and the number of times that it has appeared in the text. Sample Input 7 abecabd Sample Output a 2 b 2 c 1 d 1 e 1 ab 2 be 1 ec 1 ca 1 bd 1
Πρόβλημα 5: Μέρος Α. Με την μέθοδο της προκαταρκτικής εκτέλεσης (dry run) του πιο κάτω ψευδοκώδικα, καταγράψετε βήμα προς βήμα τις τιμές των μεταβλητών i και j μέχρι τέλους. Χρησιμοποιείστε τις αρχικές τιμές i =1 και j = 5. Function F(i, j) { if ( i < j ) { return ( i * F(i+1,j) ); else { return i; Μέρος Β. Περιγράψτε την λειτουργία του πιο κάτω ψευδοκώδικα με τη βοήθεια παραδείγματος, χρησιμοποιώντας τις αρχικές τιμές { 5,6,7,8,9,8,7,6,5 για τον πίνακα p και κλήση f(0), MAX=9. p = array[max] of integer; Function f(i){ if (i >= MAX i 1) return 1 else if (p[i] == p[max i 1]) return f(i+1) else return 0
Problem 5: Part Α. Using the dry run method, write step by step the values of the variables i and j until termination. Use initial values i =1 and j = 5. Function F(i, j) { if ( i < j ) { return ( i * F(i+1,j) ); else { return i; Part Β. Describe the functionality of the following pseudocode using an example with initial values { 5,6,7,8,9,8,7,6,5 for array p and the function call f(0) and MAX=9. p = array[max] of integer; Function f(i){ if (i >= MAX i 1) return 1 else if (p[i] == p[max i 1]) return f(i+1) else return 0