ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

Σχετικά έγγραφα
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ-ΓΛΩΣΣΑ C ΑΤΕΙ (ΝΑ ΕΚΤΕΛΕΣΤΟΥΝ ΤΑ ΠΑΡΑΚΑΤΩ ΜΕ ΧΡΗΣΗ ΤΟΥ LCC COMPILER)

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

Προγραμματισμός I (Θ)

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

B. Ενσωμάτωση Ιθαγενών Μεθόδων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

8. Μέθοδοι (Methods)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

EE512: Error Control Coding

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

HY150a Φροντιστήριο 3 24/11/2017

Homework 3 Solutions

Αντικειμενοστρεφής Προγραμματισμός

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραμματισμό

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Εισαγωγή στον Προγραμματισμό

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΕΠΛ131 Αρχές Προγραμματισμού

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Section 8.3 Trigonometric Equations

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

ιαδικτυακές Εφαρµογές

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Διάλεξη 5: Δείκτες και Συναρτήσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

the total number of electrons passing through the lamp.

Approximation of distance between locations on earth given by latitude and longitude

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Ει αγωγή η Fortran.

Βασικές Έννοιες Δοµών Δεδοµένων

bits and bytes q Ο υπολογιστής χρησιμοποιεί τη κύρια μνήμη για αποθήκευση δεδομένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Αντικειµενοστρεφής Προγραµµατισµός

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5

Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, :00-10:00 π.μ.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

Προγραμματισμός Δομές Δεδομένων

Code Breaker. TEACHER s NOTES

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

10/3/ revolution = 360 = 2 π radians = = x. 2π = x = 360 = : Measures of Angles and Rotations

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning

Εισαγωγή στον Προγραμματισμό

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED)

Φροντιςτήριο. Linked-List

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

(C) 2010 Pearson Education, Inc. All rights reserved.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και αντικείμενα στην Java Strings Πίνακες

Inverse trigonometric functions & General Solution of Trigonometric Equations

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

4. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Η λέξη κλειδί this. Γαβαλάς Δαμιανός

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Δομημένος Προγραμματισμός (ΤΛ1006)

Εξοικ Εξ ε οικ ίωση ε με το το πρόγ ραμμα πρόγ DEV C++ Επικοι Επικ νωνία οι Χρήσ Χρήστη τη Υπολ Υπο ογισ λ τή

Αντικειμενοστραφής Προγραμματισμός

Μηχανική Μάθηση Hypothesis Testing

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

Αντικειμενοστρεφής Προγραμματισμός

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Αντικειμενοστρεφής Προγραμματισμός

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

Υπολογισμός - Εντολές Επανάληψης

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Transcript:

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ ΕΡΓΑΣΤΗΡΙΟ Κωδικός Θ: ΤΠ3001, Κωδικός Ε: ΤΠ3101 (ΜΕΥ/Υ) Ώρες (Θ - Ε): 4-2 Προαπαιτούμενα: Δρ. ΒΙΔΑΚΗΣ ΝΙΚΟΣ

ΕΡΓΑΣΤΗΡΙΟ 2 Data Structures Introduction

Θεωρία Θεωρία Έννοιες Κανόνες Παραδείγματα Ασκήσεις Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 3

Έννοιες Θεωρία Έννοιες Κανόνες Παραδείγματα Ασκήσεις Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 4

Κανόνες Θεωρία Έννοιες Κανόνες Παραδείγματα Ασκήσεις Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 5

#include <stdio.h> Παραδείγματα σε C structs in a C program /* User defined types */ enum deptcode {sales,personnel,packing,engineering; typedef enum deptcode DEPT; struct person { int age, salary; DEPT department; char name[12]; char address[6][20]; ; typedef struct person EMPLOYEE; void read_line(char Str[]) { int i = 0; char next; while ((next=getchar())!='\n') { Str[i] = next; i++; Str[i] = 0; /* Set the null char at the end */ void print_employee(employee Emp) { int i; printf(" %d %d %d\n",emp.age,emp.salary,emp.department); printf("%s\n",emp.name); for (i=0;i<=5;i++) printf("%s\n",emp.address[i]); Question 1.Take the example and adapt it to read in a series of records typed in at the keyboard and print each record to the screen in turn. After it has read each record it should prompt the user whether to continue, asking then to type a 'y' to continue or a 'n' to stop there. When accepting input for a record, the program should prompt for the input required for each line or field. This requires you to wrap a while loop around the input part of the program. The loop should terminate when the user types anything other than 'y' at the end of a record. The prompting for input merely requires the addition of suitable printf statements. Copyright: http://www.macs.hw.ac.uk/~rjp/coursewww/cwww/exercises/structexans.html void main () { EMPLOYEE This_Employee; int i; scanf("%d",&this_employee.age); scanf("%d",&this_employee.salary); scanf("%d\n",&this_employee.department); read_line(this_employee.name); for (i=0; i<=5; i++) read_line(this_employee.address[i]); print_employee(this_employee); Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 6

Παραδείγματα σε Java public class MathLibraryExample { public static void main(string[] args) { int i = 7; int j = -9; double x = 72.3; double y = 0.34; public class MathLibraryExample { public static void main(string[] args) { int i = 7; int j = -9; double x = 72.3; double y = 0.34; System.out.println("i is " + i); System.out.println("j is " + j); System.out.println("x is " + x); System.out.println("y is " + y); // The absolute value of a number is equal to // the number if the number is positive or // zero and equal to the negative of the number // if the number is negative. System.out.println(" " + i + " is " + Math.abs(i)); System.out.println(" " + j + " is " + Math.abs(j)); System.out.println(" " + x + " is " + Math.abs(x)); System.out.println(" " + y + " is " + Math.abs(y)); // Truncating and Rounding functions // You can round off a floating point number // to the nearest integer with round() System.out.println(x + " is approximately " + Math.round(x)); System.out.println(y + " is approximately " + Math.round(y)); // The "ceiling" of a number is the // smallest integer greater than or equal to // the number. Every integer is its own // ceiling. System.out.println("The ceiling of " + i + " is " + Math.ceil(i)); System.out.println("The ceiling of " + j + " is " + Math.ceil(j)); System.out.println("The ceiling of " + x + " is " + Math.ceil(x)); System.out.println("The ceiling of " + y + " is " + Math.ceil(y)); Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 7

Παραδείγματα σε Java public class MathLibraryExample { public static void main(string[] args) { int i = 7; int j = -9; double x = 72.3; double y = 0.34; // The "floor" of a number is the largest // integer less than or equal to the number. // Every integer is its own floor. System.out.println("The floor of " + i + " is " + Math.floor(i)); System.out.println("The floor of " + j + " is " + Math.floor(j)); System.out.println("The floor of " + x + " is " + Math.floor(x)); System.out.println("The floor of " + y + " is " + Math.floor(y)); // Comparison operators // min() returns the smaller of the two arguments you pass it System.out.println("min(" + i + "," + j + ") is " + Math.min(i,j)); System.out.println("min(" + x + "," + y + ") is " + Math.min(x,y)); System.out.println("min(" + i + "," + x + ") is " + Math.min(i,x)); System.out.println("min(" + y + "," + j + ") is " + Math.min(y,j)); public class MathLibraryExample { public static void main(string[] args) { int i = 7; int j = -9; double x = 72.3; double y = 0.34; // There's a corresponding max() method // that returns the larger of two numbers System.out.println("max(" + i + "," + j + ") is " + Math.max(i,j)); System.out.println("max(" + x + "," + y + ") is " + Math.max(x,y)); System.out.println("max(" + i + "," + x + ") is " + Math.max(i,x)); System.out.println("max(" + y + "," + j + ") is " + Math.max(y,j)); // The Math library defines a couple // of useful constants: System.out.println("Pi is " + Math.PI); System.out.println("e is " + Math.E); // Trigonometric methods // All arguments are given in radians // Convert a 45 degree angle to radians double angle = 45.0 * 2.0 * Math.PI/360.0; System.out.println("cos(" + angle + ") is " + Math.cos(angle)); System.out.println("sin(" + angle + ") is " + Math.sin(angle)); // Inverse Trigonometric methods // All values are returned as radians double value = 0.707; System.out.println("acos(" + value + ") is " + Math.acos(value)); System.out.println("asin(" + value + ") is " + Math.asin(value)); System.out.println("atan(" + value + ") is " + Math.atan(value)); Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 8

Παραδείγματα σε Java public class MathLibraryExample { public static void main(string[] args) { int i = 7; int j = -9; double x = 72.3; double y = 0.34; // Exponential and Logarithmic Methods // exp(a) returns e (2.71828...) raised // to the power of a. System.out.println("exp(1.0) is " + Math.exp(1.0)); System.out.println("exp(10.0) is " + Math.exp(10.0)); System.out.println("exp(0.0) is " + Math.exp(0.0)); // log(a) returns the natural // logarithm (base e) of a. System.out.println("log(1.0) is " + Math.log(1.0)); System.out.println("log(10.0) is " + Math.log(10.0)); System.out.println("log(Math.E) is " + Math.log(Math.E)); // pow(x, y) returns the x raised // to the yth power. System.out.println("pow(2.0, 2.0) is " + Math.pow(2.0,2.0)); System.out.println("pow(10.0, 3.5) is " + Math.pow(10.0,3.5)); System.out.println("pow(8, -1) is " + Math.pow(8,-1)); // sqrt(x) returns the square root of x. for (i=0; i < 10; i++) { System.out.println( "The square root of " + i + " is " + Math.sqrt(i)); // Finally there's one Random method // that returns a pseudo-random number // between 0.0 and 1.0; System.out.println("Here's one random number: " + Math.random()); System.out.println("Here's another random number: " + Math.random()); Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 9

Ασκήσεις σε Java Δημιουργείστε 2 πίνακες, 1 τύπου Integer μεγέθους 5 και 1 τύπου double μεγέθους 5 Βάλτε τις παρακάτω τιμές 7, -9, 5, -3, 27 και -72.23, 0.34, 13.76, -45.23, 56.98 αντίστοιχα Αλλάξτε τον κώδικα έτσι ώστε να λειτουργεί με τους πίνακες και όχι με τις μεταβλητές. Δημιουργήστε έναν τρίτο πίνακα 2 διαστάσεων που να κρατάει τις τιμές του ceiling και του floor. Γεμίστε τον με ένα for loop που να κάνει χρήση του μήκους (length) του πίνακα και εμφανίστε τα περιεχόμενα του στην οθόνη. Μετά κάντε sort τα στοιχεία του πίνακα 3 και εμφανίστε τα στην οθόνη. Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 10

Ασκήσεις σε C Άσκηση1 Θα υλοποιήσετε ένα απλό τηλεφωνικό ευρετήριο, με την χρήση ενός στατικού πίνακα 100 θέσεων. Κάθε εγγραφή στον πίνακα θα είναι μια C δομή (struct) της μορφής: struct Entry { char name[50]; int nr; Οι λειτουργίες που πρέπει να υλοποιηθούν είναι οι εξής: int insert(char name[], int nr) Εισαγάγει τα δεδομένα στην πρώτη άδεια θέση του πίνακα, επιστρέφει 1 ή 0 αν ο πίνακας είναι γεμάτος. int remove(char name[]) Αφαιρεί την εισαγωγή με το αντίστοιχο όνομα από το ευρετήριο. Επιστρέφει 1 για επιτυχή διαγραφή ή 0 αν δεν βρέθηκε η εισαγωγή. int find (char name[]) Επιστρέφει το νούμερο που αντιστοιχεί στο όνομα που δίνεται σαν όρισμα αν υπάρχει μέσα στο ευρετήριο, αλλιώς επιστρέφει 0/ Θα γράψετε επίσης και μια main συνάρτηση για να δοκιμάσετε τις παραπάνω συναρτήσεις Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 11

Ασκήσεις σε C Άσκηση2 Να αναπτυχθεί ένα πρόγραμμα το οποίο θα δημιουργεί στη μνήμη του υπολογιστή ένα πίνακα ακεραίων δύο διαστάσεων και στη συνέχεια θα ζητάει από το χρήστη να πληκτρολογήσει ένα ακέραιο αριθμό. Αμέσως μετά θα καλείται μια συνάρτηση η οποία θα λαμβάνει ως ορίσματα ένα pointer ακεραίων που θα δείχνει στον πίνακα, την ακέραια τιμή που πληκτρολόγησε ο χρήστης καθώς επίσης και τις διαστάσεις του πίνακα και θα γεμίζει τον πίνακα με την τιμή που πληκτρολόγησε ο χρήστης. Το γέμισμα του πίνακα θα πρέπει να γίνει χρησιμοποιώντας pointer σε ακέραιο και όχι τη μορφή table[i][j]. Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 12

Ασκήσεις σε C Άσκηση3 Δίνεται η δομή: struct customer { int code; char name[15]; char surname[15]; char phone[15]; Να αναπτυχθεί ένα πρόγραμμα το οποίο θα δημιουργεί στη μνήμη του υπολογιστή ένα μονοδιάστατο πίνακα με στοιχεία struct customer. Το πρόγραμμα θα χρησιμοποιεί ένα αλγόριθμο επανάληψης σε κάθε κύκλο του οποίου θα ζητούνται τα στοιχεία μιας δομής struct customer και θα αποθηκεύει τη δομή στον πίνακα μέχρις ότου γεμίσει ο πίνακας. Τέλος χρησιμοποιώντας ένα ακόμη αλγόριθμο επανάληψης θα εμφανίζει όλα τα στοιχεία του πίνακα. Μάθημα: Δομές Δεδομένων & Αλγόριθμοι (Εργαστήριο) Καθηγητής: Δρ. Βιδάκης Νίκος Slide 13