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

Τα posts που έγιναν κατά την διάρκεια του Ακαδημαϊκού Έτους 2016-2017 για τα προπτυχιακά μαθήματα.
User avatar
pgetsos
Venus Former Team Member
Posts: 1192
Joined: Sun Oct 13, 2013 1:29 am
Academic status: MSc
Gender:

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

Post by pgetsos » Wed Dec 28, 2016 10:10 pm

Να συμπληρώσω, αν θες να συγκρίνεις δύο string, αν δηλαδή και τα δύο είναι "τάδε", σχεδόν πάντα με equals θες

str1.equals(str2)

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

"tade".equals(str)

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

str.indexOf('s')
Όταν μια μαύρη γάτα περάσει από μπροστά σου, σημαίνει ότι το ζώο πάει κάπου.

Μην αφήνεις τα μικρά μυαλά να σε πείσουν ότι τα όνειρα σου είναι πολύ μεγάλα.
fox0077
byte level
byte level
Posts: 117
Joined: Sun Oct 09, 2016 2:19 pm
Academic status: 4th year

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

Post by fox0077 » Thu Dec 29, 2016 10:43 am

Γιατι ομως το

Code: Select all

int x = color3.indexOf(s);
println (x);
επιστρεφει 1??? Aφου το Red δεν εχει το γραμμα s
User avatar
leecher
Venus Former Team Member
Posts: 139
Joined: Fri Jan 23, 2015 9:47 pm
Academic status: N>4
Gender:

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

Post by leecher » Thu Dec 29, 2016 11:11 am

Το s είναι μεταβλητή. Δες πιο πάνω στον κώδικα σου να δεις σε τι αντιστοιχεί.
User avatar
Hermes
bit level
bit level
Posts: 30
Joined: Thu Dec 15, 2016 6:17 pm
Academic status: 1st year
Gender:

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

Post by Hermes » Mon Jan 02, 2017 3:55 pm

Αναζητηση και ταξινομηση πεφτουν; Ειναι σος;
theofanotts
Buffer underflow exception
Buffer underflow exception
Posts: 2
Joined: Mon Oct 14, 2013 5:33 pm

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

Post by theofanotts » Wed Jan 18, 2017 9:38 pm

Καλησπέρα! Τι μορφή έχει η εργαστηριακή εξέταση? Τι αυστηρότητα ως προς τη βαθμολόγηση και τι δυσκολία?
ShadowBlade
bit level
bit level
Posts: 14
Joined: Sun Apr 26, 2015 5:27 pm
Gender:

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

Post by ShadowBlade » Wed Jan 18, 2017 10:19 pm

Μέτριας αυστηρότητας, σχετικά εύκολη σε σχέση με άλλους διδάσκοντες με αρκετές tricky ερωτήσεις και κώδικα που απαιτεί να έχεις καταλάβει τα functions, τις classes, το this κ.ο.κ.

Πρέπει να έχεις κάνει τις εργασίες και είσαι σε θέση να τις λύσεις στο χαρτί στο χρόνο που έχεις. Επίσης δες παλαιά θέματα γιατί οι tricky ερωτήσεις είναι παρόμοιες, π.χ. τι θα εμφανίσει το println(1+""+1) (εμφανίζει 11).
User avatar
mashua
bit level
bit level
Posts: 18
Joined: Wed Mar 11, 2015 10:56 pm
Academic status: 1st year
Gender:
Location: @th3n$
Contact:

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

Post by mashua » Thu Jan 19, 2017 12:18 pm

Καλημέρα σε όλους, ερωτησούλες σχετικά με την εργαστηριακή εξέταση:

Θα μας εξετάσει στις ασκήσεις ή σε θέματα που θα εχουν ετοιμάσει εκείνη την ώρα;
Αν έχουν υπωθεί κάπου αυτα sorry αλλα είμαι παλαιότερου έτους και θα παραδώσω μόνο την τελευταια άσκηση και επίσης επειδή δεν εχω πάει σε εργαστήρια δε ξέρω τι παίζει. Η εργαστηριακή εξέταση είναι διαφορετική απο τις εξετάσεις για τις ασκήσεις;
Θενκσ προκαταβολικά.
--
--A.D Masiakos
--KeyId: 0x48D84811
---http://recodestuff.wordpress.com
efev2014
byte level
byte level
Posts: 120
Joined: Tue Oct 07, 2014 8:17 pm
Academic status: Alumnus/a
Gender:

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

Post by efev2014 » Thu Jan 19, 2017 1:11 pm

mashua wrote:Καλημέρα σε όλους, ερωτησούλες σχετικά με την εργαστηριακή εξέταση:

Θα μας εξετάσει στις ασκήσεις ή σε θέματα που θα εχουν ετοιμάσει εκείνη την ώρα;
Αν έχουν υπωθεί κάπου αυτα sorry αλλα είμαι παλαιότερου έτους και θα παραδώσω μόνο την τελευταια άσκηση και επίσης επειδή δεν εχω πάει σε εργαστήρια δε ξέρω τι παίζει. Η εργαστηριακή εξέταση είναι διαφορετική απο τις εξετάσεις για τις ασκήσεις;
Θενκσ προκαταβολικά.
1) Θέματα εκείνης της ώρας
2) Εκτός και αν άλλαξε κάτι δεν γίνεται εξέταση στις εργασίες
User avatar
mashua
bit level
bit level
Posts: 18
Joined: Wed Mar 11, 2015 10:56 pm
Academic status: 1st year
Gender:
Location: @th3n$
Contact:

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

Post by mashua » Thu Jan 19, 2017 1:48 pm

efev2014 wrote: 1) Θέματα εκείνης της ώρας
2) Εκτός και αν άλλαξε κάτι δεν γίνεται εξέταση στις εργασίες
Οκ, thanks mate!
--
--A.D Masiakos
--KeyId: 0x48D84811
---http://recodestuff.wordpress.com
fox0077
byte level
byte level
Posts: 117
Joined: Sun Oct 09, 2016 2:19 pm
Academic status: 4th year

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

Post by fox0077 » Fri Jan 27, 2017 6:01 pm

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

Το Α ειναι και για τις 3 ασκησεις ή για εστω μια;
Εχω δωσει 2 προγραμματιστικες ασκησεις. Πρεπει να γραψω βαθμο τουλαχιστον 2 στα γραπτα;
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Fri Jan 27, 2017 6:34 pm

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

Το Α ειναι και για τις 3 ασκησεις ή για εστω μια;
Εχω δωσει 2 προγραμματιστικες ασκησεις. Πρεπει να γραψω βαθμο τουλαχιστον 2 στα γραπτα;
Το "Α" είναι και για τις τρεις ασκήσεις όλες μαζί. (~0.6 μονάδες η κάθε μία)
Θα πρέπει στο τέλος να γράψεις τουλάχιστον 2/6 μονάδες, και η συνάρτηση Τ = Δ + Α + Ε να δίνει αποτέλεσμα >= 5 για να επιτύχεις στο μάθημα.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
fox0077
byte level
byte level
Posts: 117
Joined: Sun Oct 09, 2016 2:19 pm
Academic status: 4th year

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

Post by fox0077 » Fri Jan 27, 2017 6:40 pm

Δηλαδη 1 εργασια στην αριστη μορφη της δινει 0.6 μοναδες;
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Fri Jan 27, 2017 7:23 pm

fox0077 wrote:Δηλαδη 1 εργασια στην αριστη μορφη της δινει 0.6 μοναδες;
Ναι. (Ή όσο δίνει τελοσπάντων)
Γενικά το άθροισμα των μονάδων των εργασιών είναι <= 2. (εκτός αν υπάρχει κάποιο bonus βέβαια)
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
User avatar
chris-
bit level
bit level
Posts: 33
Joined: Sun Aug 28, 2016 8:45 pm

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

Post by chris- » Sat Jan 28, 2017 3:10 am

Αν από διαφάνειες και εργαστηριακά είμαστε εντάξει, χρειάζεται περαιτέρω διάβασμα από βιβλίο ή κάτι;
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Sat Jan 28, 2017 5:28 am

chris- wrote:Αν από διαφάνειες και εργαστηριακά είμαστε εντάξει, χρειάζεται περαιτέρω διάβασμα από βιβλίο ή κάτι;
Practice για περισσότερη εξοικείωση. (Αν αυτό χρειάζεται)
Αν θες μπορείς να δεις και τα παραδείγματα του βιβλίου, και ειδικά τα κεφάλαια που απευθύνονται στα ACM graphics.
Προσωπικά θα έλεγα να μην αγνοηθούν ούτε τα εύκολα, γιατί από τα εύκολα μπορεί να χάσει κανείς μονάδες σε συνδυαστικά θέματα.
Last edited by Georgilakis Antonios on Sat Jan 28, 2017 5:30 am, edited 1 time in total.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
User avatar
chris-
bit level
bit level
Posts: 33
Joined: Sun Aug 28, 2016 8:45 pm

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

Post by chris- » Sat Jan 28, 2017 5:30 am

Georgilakis Antonios wrote:Όχι, μόνο practice για περισσότερη εξοικείωση. (Αν αυτό χρειάζεται)
Οκ, ευχαριστώ! ^_^
Georgy
Buffer underflow exception
Buffer underflow exception
Posts: 1
Joined: Mon Jan 30, 2017 6:58 pm
Academic status: 1st year

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

Post by Georgy » Mon Jan 30, 2017 7:00 pm

Καλησπερα σας, ειμαι πρωτοετης και θα δωσω το μαθημα για πρωτη φορα. Εχω κανει μια αναγνωση ολο το βιβλιο και τις διαφανειες και ξερω τα βασικα, ωστοσο αισθανομαι ανασφαλεια για το αν θα περασω το μαθημα. Μπορειτε να μου πειτε που να δωσω προσοχη τοσο για την εργαστηριακη εξεταση οσο και για την γραπτη;
fox0077
byte level
byte level
Posts: 117
Joined: Sun Oct 09, 2016 2:19 pm
Academic status: 4th year

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

Post by fox0077 » Mon Jan 30, 2017 8:47 pm

Μπορει καποιος να μου πει τις απαντησεις σε αυτα τα ερωτηματα; Εχω αρχισει να ανησυχω για την 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);
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Mon Jan 30, 2017 9:28 pm

(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
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
fox0077
byte level
byte level
Posts: 117
Joined: Sun Oct 09, 2016 2:19 pm
Academic status: 4th year

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

Post by fox0077 » Mon Jan 30, 2017 10:14 pm

μου εξηγεις λιγο το γ) ερωτημα; αυτο
x-=--y; και αυτο
int a = y++*y--%y;
κατα τα αλλα σε ευχαριστω παρα πολυ που μου απαντησες!
Mickey
bit level
bit level
Posts: 38
Joined: Sat Dec 10, 2016 11:07 am
Academic status: 1st year

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

Post by Mickey » Mon Jan 30, 2017 10:33 pm

Καλησπερα, τι να κανουμε επαναληψη για την εργαστηριακη εξεταση; Να διαβασουμε οτι καναμε στα εργαστηρια του εξαμηνου ή θα ειναι κατι ανεξαρτητο απο αυτα; Περυσι τι σας εβαλαν εργαστηριακη εξεταση;
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Mon Jan 30, 2017 10:41 pm

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
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
Locked

Return to “Ακαδημαϊκό Έτος 2016-2017”