Page 3 of 6

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

Posted: Wed Dec 28, 2016 10:10 pm
by pgetsos
Να συμπληρώσω, αν θες να συγκρίνεις δύο string, αν δηλαδή και τα δύο είναι "τάδε", σχεδόν πάντα με equals θες

str1.equals(str2)

Αν συγκρίνεις με literal, βάζε το αριστερά (θεωρείται "καλή πρακτική", ίδιο αποτέλεσμα έχει, αλλά καλό είναι να τα μάθεις από νωρίς κάτι τέτοια)

"tade".equals(str)

Αν θες να δεις που βρίσκεται ένας μόνο χαρακτήρας-γράμμα σε ένα String βάλε μονό αυτάκι στο index of. Ελαφρώς καλύτερη απόδοση, χρήσιμο μελλοντικά σε πρόγραμμα που θα σε νοιάζει αλλά είπαμε, οι καλές πρακτικές μαθαίνονται νωρίς :)

str.indexOf('s')

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

Posted: Thu Dec 29, 2016 10:43 am
by fox0077
Γιατι ομως το

Code: Select all

int x = color3.indexOf(s);
println (x);
επιστρεφει 1??? Aφου το Red δεν εχει το γραμμα s

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

Posted: Thu Dec 29, 2016 11:11 am
by leecher
Το s είναι μεταβλητή. Δες πιο πάνω στον κώδικα σου να δεις σε τι αντιστοιχεί.

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

Posted: Mon Jan 02, 2017 3:55 pm
by Hermes
Αναζητηση και ταξινομηση πεφτουν; Ειναι σος;

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

Posted: Wed Jan 18, 2017 9:38 pm
by theofanotts
Καλησπέρα! Τι μορφή έχει η εργαστηριακή εξέταση? Τι αυστηρότητα ως προς τη βαθμολόγηση και τι δυσκολία?

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

Posted: Wed Jan 18, 2017 10:19 pm
by ShadowBlade
Μέτριας αυστηρότητας, σχετικά εύκολη σε σχέση με άλλους διδάσκοντες με αρκετές tricky ερωτήσεις και κώδικα που απαιτεί να έχεις καταλάβει τα functions, τις classes, το this κ.ο.κ.

Πρέπει να έχεις κάνει τις εργασίες και είσαι σε θέση να τις λύσεις στο χαρτί στο χρόνο που έχεις. Επίσης δες παλαιά θέματα γιατί οι tricky ερωτήσεις είναι παρόμοιες, π.χ. τι θα εμφανίσει το println(1+""+1) (εμφανίζει 11).

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

Posted: Thu Jan 19, 2017 12:18 pm
by mashua
Καλημέρα σε όλους, ερωτησούλες σχετικά με την εργαστηριακή εξέταση:

Θα μας εξετάσει στις ασκήσεις ή σε θέματα που θα εχουν ετοιμάσει εκείνη την ώρα;
Αν έχουν υπωθεί κάπου αυτα sorry αλλα είμαι παλαιότερου έτους και θα παραδώσω μόνο την τελευταια άσκηση και επίσης επειδή δεν εχω πάει σε εργαστήρια δε ξέρω τι παίζει. Η εργαστηριακή εξέταση είναι διαφορετική απο τις εξετάσεις για τις ασκήσεις;
Θενκσ προκαταβολικά.

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

Posted: Thu Jan 19, 2017 1:11 pm
by efev2014
mashua wrote:Καλημέρα σε όλους, ερωτησούλες σχετικά με την εργαστηριακή εξέταση:

Θα μας εξετάσει στις ασκήσεις ή σε θέματα που θα εχουν ετοιμάσει εκείνη την ώρα;
Αν έχουν υπωθεί κάπου αυτα sorry αλλα είμαι παλαιότερου έτους και θα παραδώσω μόνο την τελευταια άσκηση και επίσης επειδή δεν εχω πάει σε εργαστήρια δε ξέρω τι παίζει. Η εργαστηριακή εξέταση είναι διαφορετική απο τις εξετάσεις για τις ασκήσεις;
Θενκσ προκαταβολικά.
1) Θέματα εκείνης της ώρας
2) Εκτός και αν άλλαξε κάτι δεν γίνεται εξέταση στις εργασίες

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

Posted: Thu Jan 19, 2017 1:48 pm
by mashua
efev2014 wrote: 1) Θέματα εκείνης της ώρας
2) Εκτός και αν άλλαξε κάτι δεν γίνεται εξέταση στις εργασίες
Οκ, thanks mate!

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

Posted: Fri Jan 27, 2017 6:01 pm
by fox0077
Slide 7, από powerpoint "Εισαγωγή":
Αν είστε πρωτοετείς:
3 σειρές προγραμματιστικών ασκήσεων
Α = βαθμός ασκήσεων (άριστα =2)
Ε = βαθμός εργαστηρίου (άριστα =2)
Δ = βαθμός τελικής εξέτασης (άριστα=6)
Τελικός βαθμός Τ= Δ + Α+Ε, εάν Δ>=2
= Δ, εάν Δ<2
Προβιβάσιμος βαθμός: T>= βάση = 5

Το Α ειναι και για τις 3 ασκησεις ή για εστω μια;
Εχω δωσει 2 προγραμματιστικες ασκησεις. Πρεπει να γραψω βαθμο τουλαχιστον 2 στα γραπτα;

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

Posted: Fri Jan 27, 2017 6:34 pm
by Georgilakis Antonios
fox0077 wrote:Slide 7, από powerpoint "Εισαγωγή":
Αν είστε πρωτοετείς:
3 σειρές προγραμματιστικών ασκήσεων
Α = βαθμός ασκήσεων (άριστα =2)
Ε = βαθμός εργαστηρίου (άριστα =2)
Δ = βαθμός τελικής εξέτασης (άριστα=6)
Τελικός βαθμός Τ= Δ + Α+Ε, εάν Δ>=2
= Δ, εάν Δ<2
Προβιβάσιμος βαθμός: T>= βάση = 5

Το Α ειναι και για τις 3 ασκησεις ή για εστω μια;
Εχω δωσει 2 προγραμματιστικες ασκησεις. Πρεπει να γραψω βαθμο τουλαχιστον 2 στα γραπτα;
Το "Α" είναι και για τις τρεις ασκήσεις όλες μαζί. (~0.6 μονάδες η κάθε μία)
Θα πρέπει στο τέλος να γράψεις τουλάχιστον 2/6 μονάδες, και η συνάρτηση Τ = Δ + Α + Ε να δίνει αποτέλεσμα >= 5 για να επιτύχεις στο μάθημα.

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

Posted: Fri Jan 27, 2017 6:40 pm
by fox0077
Δηλαδη 1 εργασια στην αριστη μορφη της δινει 0.6 μοναδες;

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

Posted: Fri Jan 27, 2017 7:23 pm
by Georgilakis Antonios
fox0077 wrote:Δηλαδη 1 εργασια στην αριστη μορφη της δινει 0.6 μοναδες;
Ναι. (Ή όσο δίνει τελοσπάντων)
Γενικά το άθροισμα των μονάδων των εργασιών είναι <= 2. (εκτός αν υπάρχει κάποιο bonus βέβαια)

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

Posted: Sat Jan 28, 2017 3:10 am
by chris-
Αν από διαφάνειες και εργαστηριακά είμαστε εντάξει, χρειάζεται περαιτέρω διάβασμα από βιβλίο ή κάτι;

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

Posted: Sat Jan 28, 2017 5:28 am
by Georgilakis Antonios
chris- wrote:Αν από διαφάνειες και εργαστηριακά είμαστε εντάξει, χρειάζεται περαιτέρω διάβασμα από βιβλίο ή κάτι;
Practice για περισσότερη εξοικείωση. (Αν αυτό χρειάζεται)
Αν θες μπορείς να δεις και τα παραδείγματα του βιβλίου, και ειδικά τα κεφάλαια που απευθύνονται στα ACM graphics.
Προσωπικά θα έλεγα να μην αγνοηθούν ούτε τα εύκολα, γιατί από τα εύκολα μπορεί να χάσει κανείς μονάδες σε συνδυαστικά θέματα.

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

Posted: Sat Jan 28, 2017 5:30 am
by chris-
Georgilakis Antonios wrote:Όχι, μόνο practice για περισσότερη εξοικείωση. (Αν αυτό χρειάζεται)
Οκ, ευχαριστώ! ^_^

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

Posted: Mon Jan 30, 2017 7:00 pm
by Georgy
Καλησπερα σας, ειμαι πρωτοετης και θα δωσω το μαθημα για πρωτη φορα. Εχω κανει μια αναγνωση ολο το βιβλιο και τις διαφανειες και ξερω τα βασικα, ωστοσο αισθανομαι ανασφαλεια για το αν θα περασω το μαθημα. Μπορειτε να μου πειτε που να δωσω προσοχη τοσο για την εργαστηριακη εξεταση οσο και για την γραπτη;

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

Posted: Mon Jan 30, 2017 8:47 pm
by fox0077
Μπορει καποιος να μου πει τις απαντησεις σε αυτα τα ερωτηματα; Εχω αρχισει να ανησυχω για την java...
α) Εστω οτι εχουμε ορισει την ακολουθη ταξη με ονομα Counter.

Code: Select all

public class Counter {
	public int value;
	public int getValue() {
		return value;
	}
	public void increase() {
		value++;
	}
	public Counter(int start){
		value = start;
	}
	public Counter(int start) {
		value = start;
	}
	public Counter() {
		value = 0;
	}
}
Εξηγηστε τι θα εμφανιστει στην κονσολα κατα την εκτελεση της παρακατω κυριας μεθοδου:

Code: Select all

public void run() {
	Counter c1 = new Counter(25);
	Counter c2 = new Counter();
	println(c1.value);
	println(c2.value);
	c2 = c1;
	println(c1.value);
	println(c2.value):
	c1.increase();
	c1.increase();
	c1.increase();
	println(c1.value);
	println(c2.value);
}
β) Εστω οτι εχουμε ορισει μια υπερ-ταξη η οποια μεταξυ αλλων περιλαμβανει και τις ακολουθες δηλωσεις μεταβλητων στιγμιοτυπου

Code: Select all

private static final int x = 5;
private int y;
Εστω οτι στην συνεχεια οριζουμε μια υπο-ταξη της παραπανω ταξης οπου σε μια απο τις μεθοδους της εμφανιζεται η δηλωση

Code: Select all

int n1 = this.x*5;
Εξηγηστε αν αυτη η δηλωση θα οδηγησει σε σφαλμα ή οχι.

γ) Εξηγηστε τι θα εμφανιστει στην κονσολα κατα την εκτελεση του κωδικα (εμενα δεν μου το τρεχει καν)

Code: Select all

int x = 5, y = 10;
x-=--y;
int a = y++*y--%y;
println(x);
println("msg"+x+y);
println(a);

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

Posted: Mon Jan 30, 2017 9:28 pm
by Georgilakis Antonios
(A) Console Output:

Code: Select all

25
0
25
25
28
28
ΣΗΜΕΙΩΣΗ: Πρέπει να αφαιρεθεί ο διπλός constructor (αυτός που είναι ίδιος δύο φορές), διαφορετικά έχουμε compile error.

(B) Η δήλωση δεν οδηγεί σε σφάλμα.

(Γ) Console Output:

Code: Select all

-4
msg-49
0

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

Posted: Mon Jan 30, 2017 10:14 pm
by fox0077
μου εξηγεις λιγο το γ) ερωτημα; αυτο
x-=--y; και αυτο
int a = y++*y--%y;
κατα τα αλλα σε ευχαριστω παρα πολυ που μου απαντησες!

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

Posted: Mon Jan 30, 2017 10:33 pm
by Mickey
Καλησπερα, τι να κανουμε επαναληψη για την εργαστηριακη εξεταση; Να διαβασουμε οτι καναμε στα εργαστηρια του εξαμηνου ή θα ειναι κατι ανεξαρτητο απο αυτα; Περυσι τι σας εβαλαν εργαστηριακη εξεταση;

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

Posted: Mon Jan 30, 2017 10:41 pm
by Georgilakis Antonios
fox0077 wrote:μου εξηγεις λιγο το γ) ερωτημα; αυτο
x-=--y; και αυτο
int a = y++*y--%y;
κατα τα αλλα σε ευχαριστω παρα πολυ που μου απαντησες!
Στην γραμμή:

Code: Select all

x -= --y;
Αρχικά εκτελείται το --y. Αυτό σημαίνει ότι πρώτα θα γίνει η αφαίρεση 1 μονάδας από την μεταβλητή y, και μετά θα επιστραφεί η νέα τιμή.
Προσοχή μεγάλη, δεν είναι ίδιο με y--.

Στην συνέχεια, ο τελεστής -= υποδεικνύει ότι το δεξί μέρος πρέπει να αφαιρεθεί από το αριστερό, και το αποτέλεσμα να αποθηκευτεί κατόπιν στο αριστερό μέρος. Ισοδύναμο με:

Code: Select all

x = x - (--y);	// Παρενθέσεις όχι απαραίτητες.

ή

y = y - 1;
x = x - y;
Τώρα, η γραμμή:

Code: Select all

int a = y++ * y-- % y;
Είναι ισοδύναμη με αυτή:

Code: Select all

int u = y++;      // Επιστροφή τιμής y και κατόπιν προσαύξηση.
int v = y--;      // Επιστροφή τιμής y (έχει προηγουμένως προσαυξηθεί) και κατόπιν αφαίρεση 1 μονάδας από αυτό.

int w = u * v;    // Εκτέλεση πολλαπλασιασμού.

int a = w % y;	 // Εύρεση υπολοίπου του w με την τελική τιμή του y και αποθήκευση του αποτελέσματος στην μεταβλητή a.
Η εκτέλεση των πράξεων γίνεται από αριστερά προς τα δεξιά σε αυτή την περίπτωση.
Προσοχή στους postfix τελεστές (++/--), που εκτελούνται κατά αναλογία με το προηγούμενο πρόγραμμα.

Δες και το παρακάτω έγγραφο: https://docs.oracle.com/javase/tutorial ... ators.html