Page 5 of 6

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Sun Feb 05, 2017 2:43 pm
by Μ123
εχει νοημα να κοιταξουμε παλια θεματα? επειδη ο καθηγητης ειναι καινουργιος..η οι ασκησεις δνε μπορουν να διαφοροποιηθουν επειδη ειναι συγκεκριμενες?

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Mon Feb 06, 2017 4:27 pm
by SteliosA
ΘΕΜΑ 2:
Να φτιάξετε μια μέθοδο που να παίρνει ως είσοδο ένα array με ακέραιους αριθμούς και να βρίσκει πόσοι διαφορετικοί αριθμοί υπάρχουν. Για παράδειγμα ο πίνακας {2,3,5,3,7,2} θα επιστρέφει 4
ΘΕΜΑ 3:
Να φτιάξετε μια μέθοδο που να παίρνει ως είσοδο ένα array με ακέραιους αριθμούς και επιστρέφει τον δεύτερο πιο μικρό αριθμό. Μπορείτε να χρησιμοποιήσετε μόνο μια επανάληψη( if η while) και ΔΕΝ μπορείτε να ταξινομίσετε τον πίνακα. Για παράδειγμα ένας πίνακας {-9,1,1,0} θα επιστρέφει 0. Ένας πίνακας {-6,5,3,2,-6,7} θα επιστρέφει -6

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Mon Feb 06, 2017 4:50 pm
by fox0077
SteliosA wrote:ΘΕΜΑ 2:
Να φτιάξετε μια μέθοδο που να παίρνει ως είσοδο ένα array με ακέραιους αριθμούς και να βρίσκει πόσοι διαφορετικοί αριθμοί υπάρχουν. Για παράδειγμα ο πίνακας {2,3,5,3,7,2} θα επιστρέφει 4
ΘΕΜΑ 3:
Να φτιάξετε μια μέθοδο που να παίρνει ως είσοδο ένα array με ακέραιους αριθμούς και επιστρέφει τον δεύτερο πιο μικρό αριθμό. Μπορείτε να χρησιμοποιήσετε μόνο μια επανάληψη( if η while) και ΔΕΝ μπορείτε να ταξινομίσετε τον πίνακα. Για παράδειγμα ένας πίνακας {-9,1,1,0} θα επιστρέφει 0. Ένας πίνακας {-6,5,3,2,-6,7} θα επιστρέφει -6
Στο θέμα 2 τι γράψατε;

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Mon Feb 06, 2017 5:34 pm
by Georgilakis Antonios
fox0077 wrote:Στο θέμα 2 τι γράψατε;
Μια λύση είναι αυτή:

Code: Select all

import java.util.ArrayList;

// ...

// 'p': Πίνακας αριθμών != NULL.

[public/private/-] [static] int countDistinctNumbers([final] int[ ] p)
{
	// Το παρακάτω block μπορεί να παραλειφθεί εάν η άσκηση
	// αναφέρει ότι ο πίνακας θεωρείται ότι δεν είναι ποτέ NULL.
	
	// Εναλλακτικά:
	//     if (p == null) return -1;
	
	if (p == null)
	{
		throw new IllegalArgumentException("\'p\' parameter is NULL.");
	}
	
	// Βοηθητική λίστα που κρατά μόνο τους αριθμούς που συναντώνται
	// για πρώτη φορά.
	
	[final] ArrayList<Integer> list = new ArrayList<Integer>();
	
	// Περνάμε πάνω από όλο τον πίνακα.
	// (δεν εκτελείται αν 'p.length == 0')
	
	for (int i = 0; i < p.length; i++)
	{
		// Τρέχων αριθμός.
		
		[final] int number = p[i];
		
		// Έλεγχος αν ο αριθμός είναι διπλότυπος.
		
		if (!list.contains(number))
		{
			// Δεν έχουμε ξαναδεί τον αριθμό πιο πριν.
			
			list.add(number);
		}
	}
	
	// Επιστροφή συνολικού πλήθους μοναδικών αριθμών.
	
	return list.size();	// '0' αν πίνακας αριθμών κενός.
}

// ...

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Mon Feb 06, 2017 6:59 pm
by Μ123
επρεπε να γραψουμε και σχολια?? εγω μονο το προγραμμα εγραψα..εκανα ταξινομιση και μετα εβαλα εναν μετρητη για καθε φοραπου εβλεπε διαφορετικο στοιχειο..

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Mon Feb 06, 2017 7:09 pm
by Georgilakis Antonios
Μ123 wrote:επρεπε να γραψουμε και σχολια?? εγω μονο το προγραμμα εγραψα..εκανα ταξινομιση και μετα εβαλα εναν μετρητη για καθε φοραπου εβλεπε διαφορετικο στοιχειο..
Προφανώς και τα σχόλια ΔΕΝ είναι απαραίτητα, αρκεί ο διορθωτής να καταλάβει πως έχεις προσεγγίσει το πρόβλημα.
Και επίσης προφανώς ΔΕΝ υπάρχει μια λύση.

Οπότε γιατί αγχώνεσαι ? :-D

EDIT: Αν η λύση σου δεν προσεγγίζει το πρόβλημα, τότε μόνο ίσως πρέπει να αγχωθείς... λιγάκι. :-D

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Mon Feb 06, 2017 8:44 pm
by pgetsos
Παντως να συμπληρωσω πως οποτε μπορεις, γεμιζε το με σχολια. Ψαξε και πως πρεπει να γραφονται τα Javadoc σχολια, ευκολο ειναι

1) Ειναι μια ΕΞΑΙΡΕΤΙΚΑ σημαντικη συνηθεια που θα πρεπει να σου μεινει, οσο νωριτερα, τοσο το καλυτερα
2) Μελλοντικα σιγουρα θα χανετε βαθμους αν δε βαζετε σχολια, ειδικα 3-4ο ετος. Και αμα μαθεις χωρις, θα τα ξεχνας

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Tue Feb 07, 2017 5:09 pm
by Μ123
Georgilakis Antonios wrote:
Μ123 wrote:επρεπε να γραψουμε και σχολια?? εγω μονο το προγραμμα εγραψα..εκανα ταξινομιση και μετα εβαλα εναν μετρητη για καθε φοραπου εβλεπε διαφορετικο στοιχειο..
Προφανώς και τα σχόλια ΔΕΝ είναι απαραίτητα, αρκεί ο διορθωτής να καταλάβει πως έχεις προσεγγίσει το πρόβλημα.
Και επίσης προφανώς ΔΕΝ υπάρχει μια λύση.

Οπότε γιατί αγχώνεσαι ? :-D

EDIT: Αν η λύση σου δεν προσεγγίζει το πρόβλημα, τότε μόνο ίσως πρέπει να αγχωθείς... λιγάκι. :-D
νομιζω οτι σωστα την ελυσα..με τοση σιγουρια η πολυ καλα τα εχω παει η πολυ χαλια :roll: θα δειξει :smt005
=========================================================
pgetsos wrote:Παντως να συμπληρωσω πως οποτε μπορεις, γεμιζε το με σχολια. Ψαξε και πως πρεπει να γραφονται τα Javadoc σχολια, ευκολο ειναι

1) Ειναι μια ΕΞΑΙΡΕΤΙΚΑ σημαντικη συνηθεια που θα πρεπει να σου μεινει, οσο νωριτερα, τοσο το καλυτερα
2) Μελλοντικα σιγουρα θα χανετε βαθμους αν δε βαζετε σχολια, ειδικα 3-4ο ετος. Και αμα μαθεις χωρις, θα τα ξεχνας
η αληθεια ειναι οτι μου φαινοτναι ασημαντα προς το παρων.αλλα μαλλον νοσο δυσκολευουν τα προγραμματα θα μου φανουν χρησιμοτερα

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Tue Feb 07, 2017 5:15 pm
by pgetsos
Όταν θα γράψετε ένα πρόγραμμα των 10 αρχείων από 300-800+ γραμμές ανά αρχείο, μόλις αφήσετε για ένα μήνα το πρόγραμμα και γυρίσετε πίσω ούτε εσείς δε θα θυμάστε τι κάνατε και γιατί ;)

+ όταν δουλεύεις σε ομάδα, ο άλλος θα πρέπει να ξέρει τι κάνει το πρόγραμμα και γιατί σε κάθε σημείο

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Tue Feb 07, 2017 7:09 pm
by Mickey
Προσωπικα το θεωρω αδικο που ηταν μονο 3 ασκησεις και μαλιστα ολες με arrays...

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Tue Feb 07, 2017 8:26 pm
by Georgilakis Antonios
Mickey wrote:Προσωπικα το θεωρω αδικο που ηταν μονο 3 ασκησεις και μαλιστα ολες με arrays...
Κουράγιο, τα πάντα είναι δύσκολα και challenging σε αυτή την ζωή... :)

=====================================================================================

Παραθέτω εδώ by the way μια ενδεικτική λύση για το θέμα 3, σε περίπτωση που κάποιος την χρειαστεί:

Code: Select all

// ...

// 'p': Πίνακας αριθμών != NULL.

[public/private/-] [static] int findSecondMinValue([final] int[ ] p)
{
	// Το παρακάτω block μπορεί να παραλειφθεί εάν η άσκηση
	// αναφέρει ότι ο πίνακας θεωρείται ότι δεν είναι ποτέ NULL.
	
	if (p == null)
	{
		throw new IllegalArgumentException("\'p\' parameter is NULL.");
	}
	
	// Έλεγχος αν πίνακας 'p' κενός.
	
	if (p.length == 0)
	{
		// Επιστροφή της πιο αρνητικής τιμής, μιας και δεν υπάρχουν
		// στοιχεία στον πίνακα.
		
		return Integer.MIN_VALUE;
	}
	
	// Ξεκινάμε με 'Integer.MAX_VALUE' γιατί δεν γνωρίζουμε πόσο
	// μικρή είναι η ζητούμενη τιμή.
	
	int x = Integer.MAX_VALUE;	// Θα κρατά τον πρώτο μικρότερο
										  // αριθμό.
	
	int y = Integer.MAX_VALUE;	// Θα κρατά τον δεύτερο μικρότερο
										  // αριθμό.
	
	// Περνάμε πάνω από όλο τον πίνακα.
	// ('p.length != 0', διότι έχουμε κάνει έλεγχο πιο πριν)
   
	for (int i = 0; i < p.length; i++)
	{
		// Τρέχων αριθμός.
		
		[final] int number = p[i];
		
		// Έλεγχος αριθμού.
		
		if (number < x)
		{
			// 1η περίπτωση: αριθμός πιο μικρός από τον πρώτο μικρότερο
			// αριθμό που έχει βρεθεί μέχρι τώρα.
			
			// Θεωρούμε τον μικρότερο έως τώρα αριθμό ως τον δεύτερο
			// μικρότερο αριθμό.
			
			y = x;
			
			// Ενημερώνουμε τον πρώτο μικρότερο αριθμό που έχουμε βρει
			// με την νέα τιμή.
			
			x = number;
		}
		else if (number < y)
		{
			// 2η περίπτωση: αριθμός πιο μικρός από τον δεύτερο μικρότερο
			// αριθμό που έχει βρεθεί μέχρι τώρα, αλλά μεγαλύτερος από την
			// τιμή του πρώτου μικρότερου αριθμού.
			
			// Απλώς ενημερώνουμε τον δεύτερο μικρότερο αριθμό με την νέα
			// τιμή.
			
			y = number;
		}
	}
	
	// Επιστροφή του δεύτερου μικρότερου αριθμού.
	
	return y;
}

// ...

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 5:43 pm
by soreyil
Καποιος που εγραψε 2/6 στα γραπτα σημαινει οτι το περασε;

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 5:51 pm
by Georgilakis Antonios
soreyil wrote:Καποιος που εγραψε 2/6 στα γραπτα σημαινει οτι το περασε;
Μάλλον όχι, χωρίς να είμαι και πολύ σίγουρος.

EDIT: Αν εννοείς 2/6 θέματα, το πράγμα αλλάζει. :-D

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 6:03 pm
by soreyil
Georgilakis Antonios wrote:
soreyil wrote:Καποιος που εγραψε 2/6 στα γραπτα σημαινει οτι το περασε;
Μάλλον όχι, χωρίς να είμαι και πολύ σίγουρος.

EDIT: Αν εννοείς 2/6 θέματα, το πράγμα αλλάζει. :-D
Τα θεματα 3 ηταν. Ο βαθμος στα 6 ειναι 2. Ελεγε οτι ο ελαχιστος προβιβασιμος ειναι 2...

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 6:06 pm
by Georgilakis Antonios
soreyil wrote:Τα θεματα 3 ηταν. Ο βαθμος στα 6 ειναι 2. Ελεγε οτι ο ελαχιστος προβιβασιμος ειναι 2...
Ε ωραία, αφού ειπώθηκε ρητώς, υποθέτω ότι ισχύει. :-D
Που σημαίνει ότι με 2/6 κάποιος μπορεί να περάσει το μάθημα. (Δηλαδή πέρασε)

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 6:08 pm
by soreyil
Georgilakis Antonios wrote:
soreyil wrote:Τα θεματα 3 ηταν. Ο βαθμος στα 6 ειναι 2. Ελεγε οτι ο ελαχιστος προβιβασιμος ειναι 2...
Ε ωραία, αφού ειπώθηκε ρητώς, υποθέτω ότι ισχύει. :-D
Που σημαίνει ότι με 2/6 κάποιος μπορεί να περάσει το μάθημα. (Δηλαδή πέρασε)
Ναι αλλα, στο τελικο γραφει 4. 5 δεν επρεπε;

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 6:18 pm
by Georgilakis Antonios
soreyil wrote:Ναι αλλα, στο τελικο γραφει 4. 5 δεν επρεπε;
Όχι απαραίτητα. Επειδή το "5" είναι η καθιερωμένη βάση δεν σημαίνει ότι όλα τα μαθήματα το ακολουθούν κατά κανόνα.
Το ακολουθούν όμως στην πλειοψηφία.

EDIT: Ενδέχεται για το "2/6" να πρέπει να κάνεις και κάποιους extra υπολογισμούς (συμπεριλαμβάνοντας και τον βαθμό των εργασιών) για να δεις αν τελικά πέρασες ή όχι. Συνήθως οι καθηγητές δίνουν στην έναρξη των μαθημάτων τον τρόπο υπολογισμού του τελικού βαθμού για το εκάστοτε μάθημα.

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 6:20 pm
by soreyil
Georgilakis Antonios wrote:
soreyil wrote:Ναι αλλα, στο τελικο γραφει 4. 5 δεν επρεπε;
Όχι απαραίτητα. Επειδή το "5" είναι η καθιερωμένη βάση δεν σημαίνει ότι όλα τα μαθήματα το ακολουθούν κατά κανόνα.
Το ακολουθούν όμως στην πλειοψηφία.
ΟΟΟΟΟοοοο ωπα ωπα, θες να μου πεις οτι με 4 τελικο γι αυτο το μαθημα, το ΠΕΡΑΣΑ; :shock:

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 6:22 pm
by Georgilakis Antonios
soreyil wrote:ΟΟΟΟΟοοοο ωπα ωπα, θες να μου πεις οτι με 4 τελικο γι αυτο το μαθημα, το ΠΕΡΑΣΑ; :shock:
Μην βιάζεσαι ακόμα, δες από πάνω το edit.
Αν αυτό ισχύει (η βάση είναι το 4), I'm afraid the answer is YES.

Διαφορετικά ΝΟ. :-D

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 6:39 pm
by pgetsos
2/6 είναι 3.3/10. Η εργασία σου Πόσο έπιανε;

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Thu Mar 16, 2017 6:50 pm
by soreyil
pgetsos wrote:2/6 είναι 3.3/10. Η εργασία σου Πόσο έπιανε;
Sent via personal message

Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών

Posted: Fri Jun 23, 2017 9:14 pm
by calmen
καλησπερα και καλως σας βρηκα,
αποφασισα να δωσω κατατακτηριες για την σχολη σας και θα ηθελα μια μικρη βοηθεια;)
καταρχας συγνωμη για τις χαζες μου ερωτησεις,
εχω αρχισει και διαβαζω αυτο το μαθημα απο eclass ,
εχω προβλημα με το GLabel..τα πρωτα προγραμματα τα τρεξα με το να τα γραφω στο Notepad++ να κανω compile στην γραμμη εντoλων και να τα τρεχω στην γραμμη εντολων, εκει ολα αυτα με το acm.program οπως ελεγαν οι οδηγιες του καθηγητη.
τωρα στο GLabel πιστευω οτι πρεπει να καταβασω κατι για να μου βγουν τα σχηματα ή να αλλαξω χρωμμα ,γραμ κλπ
και εκει το χανω ..ισως ειναι κατι με το προγραμμα Eclipse (?)
πιστευω οτι πρεπει να κατεβασω κατι ακομα για να τρεξω τα παρακατω προγραμματα..
αν μπορει καποιος να βοηθησει ..σαν να μιλαει στο χαζο του ανιψακι που θελει να μαθει...:)
ευχαριστω για το χρονο σας