Το τελευταίο γιατί 28; Μόνο την τιμή του c1 δεν αλλάξαμε;Georgilakis Antonios wrote:(A) Console Output:
Code: Select all
25 0 25 25 28 28
Εισαγωγή στον Προγραμματισμό Υπολογιστών
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
- Georgilakis Antonios
- Mbyte level
- Posts: 548
- Joined: Mon Dec 02, 2013 11:10 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Straight into your Mind
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Πρόσεχε:chris- wrote:Το τελευταίο γιατί 28; Μόνο την τιμή του c1 δεν αλλάξαμε;
Code: Select all
c2 = c1;
"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
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Σωστός, σωστός.Georgilakis Antonios wrote: Πρόσεχε:
Code: Select all
c2 = c1;
Τα κοιτούσα σαν μεταβλητές αντί για αντικείμενα, τώρα κατάλαβα.
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
@Georgilakis Antonios σε ευχαριστω πολυ!!! Για καποιο λογο οταν τρεχω προγραμματα με arrays μου βγαζει διαφορα error... :/ Στην ερωτηση:
Τι εμφανίζει το παρακάτω απόσπασμα προγράμματος και γιατί;
Η απαντηση μηπως ειναι true επειδη τα στοιχεια του πινακα ειναι ιδια;
Τι εμφανίζει το παρακάτω απόσπασμα προγράμματος και γιατί;
Code: Select all
int[] a = { 1, 2, 3 };
int[] b = { 1, 2, 3 };
println(a == b);
Last edited by leecher on Tue Jan 31, 2017 7:02 pm, edited 1 time in total.
Reason: code tags
Reason: code tags
- leecher
- Venus Former Team Member
- Posts: 139
- Joined: Fri Jan 23, 2015 9:47 pm
- Academic status: N>4
- Gender: ♂
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Θα τυπώσει false γιατί αν και έχουν ίδια περιεχόμενα, είναι διαφορετικά αντικείμενα που βρίσκονται σε διαφορετικές θέσεις μνήμης.fox0077 wrote:@Georgilakis Antonios σε ευχαριστω πολυ!!! Για καποιο λογο οταν τρεχω προγραμματα με arrays μου βγαζει διαφορα error... :/ Στην ερωτηση:
Τι εμφανίζει το παρακάτω απόσπασμα προγράμματος και γιατί;
int[] a = { 1, 2, 3 };
int[] b = { 1, 2, 3 };
println(a == b);
Η απαντηση μηπως ειναι true επειδη τα στοιχεια του πινακα ειναι ιδια;
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Ευχαριστω! Αν σε αυτη τη περιπτωση ομως χρησιμοποιουσαμε την equals τοτε θα εβγαζε true, σωστα;
- Georgilakis Antonios
- Mbyte level
- Posts: 548
- Joined: Mon Dec 02, 2013 11:10 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Straight into your Mind
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Αυτό που λέει ο @leecher είναι σωστό. Σαν συνέχεια θα παραθέσω το εξής:
Δες αυτό για περισσότερες λεπτομέρειες: http://stackoverflow.com/questions/8777 ... ls-in-java
Code: Select all
println(a == b); // Τυπώνει 'false'.
println(a.equals(b)); // Τυπώνει και αυτό 'false'.
===================================================================================================
import java.util.Arrays;
// ...
println(Arrays.equals(a, b)); // Τυπώνει 'true', δεν λειτουργεί για arrays 2 διαστάσεων και πάνω.
"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
-
- bit level
- Posts: 16
- Joined: Wed Sep 17, 2014 1:18 pm
- Academic status: N>4
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Ξέρουμε αν επιτρέπεται κόλλα Α4?
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Παιδια δεν εχω καταλαβει καποια πραγματα. Ευχαριστω εκ των προτερων σε αυτον που θα με βοηθησει. Εχουμε δυο προγραμματα:
Στο παραπανω προγραμμα η έξοδος ειναι:
Σε ενα αλλο προγραμμα ομως:
Στο παραπανω προγραμμα η εξοδος ειναι:
Στο πρωτο προγραμμα, η α εχει την τιμη της x, δεν ειναι η x. Αυξανεται η τιμη της α, οχι αυτη της x. Στο δευτερο προγραμμα ομως γιατι αυξανεται και της x και της α;;; Αφου ειναι ιδια λογικη με το πρωτο προγραμμα
Code: Select all
import acm.program.*;
public class ask1 extends Program {
public void run() {
int x = 1;
incr(x);
println(x);
}
void incr(int a) {
a++;
println(a);
}
}
Code: Select all
2
1
Code: Select all
import acm.program.*;
public class ask2 extends Program {
public void run() {
int[] x= {1, -1}
incr(x);
println(x[0]);
}
void incr(int[a]) {
a[0]++;
println(a[0]);
}
}
Code: Select all
2
2
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Στην Java τα arrays είναι αντικείμενα. Όταν περνάς σαν παράμετρο τη x στο δεύτερο πρόγραμμα, περνάς μια αναφορά προς τον πίνακα x.
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
ευχαριστω! ξερετε κανενα λινκ που να τα λεει ολα σχετικα με τους τελεστες προσαυξησης γιατι με μπερδευουν ολες οι συναφεις διαφοροποιησεις;kras wrote:Στην Java τα arrays είναι αντικείμενα. Όταν περνάς σαν παράμετρο τη x στο δεύτερο πρόγραμμα, περνάς μια αναφορά προς τον πίνακα x.
- Georgilakis Antonios
- Mbyte level
- Posts: 548
- Joined: Mon Dec 02, 2013 11:10 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Straight into your Mind
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
https://docs.oracle.com/javase/tutorial ... s/op1.htmlHermes wrote:ξερετε κανενα λινκ που να τα λεει ολα σχετικα με τους τελεστες προσαυξησης γιατι με μπερδευουν ολες οι συναφεις διαφοροποιησεις;
Βοηθάει ?
"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
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
οχι, ψαχνω κατι που να εξηγει τα πιο περιπλοκα, οπως αυτο
int x = 5, y = 10;
x-=--y;
int a = y++*y--%y;
println(x);
println("msg"+x+y);
println(a);
ετσι περιπλοκα που εχει τους τελεστες και παρολο που μου εξηγησες δεν καταλαβα :/
int x = 5, y = 10;
x-=--y;
int a = y++*y--%y;
println(x);
println("msg"+x+y);
println(a);
ετσι περιπλοκα που εχει τους τελεστες και παρολο που μου εξηγησες δεν καταλαβα :/
- Georgilakis Antonios
- Mbyte level
- Posts: 548
- Joined: Mon Dec 02, 2013 11:10 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Straight into your Mind
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Σου φαίνεται περίπλοκο επειδή πρέπει πρώτα να μάθεις την προτεραιότητα των τελεστών πριν προχωρίσεις παρακάτω. Δεν υπάρχει υπολογιστής που να υπολογίζει παραστάσεις όπως οι παραπάνω σε ένα βήμα, αλλά παράγονται εντολές που υπολογίζουν ενδιάμεσα αποτελέσματα πρώτα, και στο τέλος υπολογίζεται το final result. Ο τρόπος που θα παραχθούν τα ενδιάμεσα αποτελέσματα καθορίζεται από τους τελεστές που θα εκτελεστούν πρώτοι, κατόπιν οι επόμενοι... κ.λπ., ώστε να συντεθεί το αποτέλεσμα.Hermes wrote:οχι, ψαχνω κατι που να εξηγει τα πιο περιπλοκα, οπως αυτο
int x = 5, y = 10;
x-=--y;
int a = y++*y--%y;
println(x);
println("msg"+x+y);
println(a);
ετσι περιπλοκα που εχει τους τελεστες και παρολο που μου εξηγησες δεν καταλαβα :/
Σε προηγούμενο post δίνω σε βήματα την εκτέλεση των πράξεων, και των σύνθεση του τελικού αποτελέσματος, που θα παράγει ένας υπολογιστής όταν εκτελέσει τις παραπάνω αριθμητικές παραστάσεις, σύμφωνα με τους κανονισμούς προτεραιότητας των πράξεων στην JAVA.
Αν δοθεί τέτοιο θέμα, θα πρέπει να εκτελέσετε τις πράξεις σύμφωνα με αυτούς τους κανονισμούς και να παρουσιάσετε το αποτέλεσμα - κάτι παρόμοιο με αυτό που παρουσίασα (όπως είπα προηγουμένως) σε προηγούμενο post.
Νομίζω κάποια πιο "έτοιμη" συνταγή δεν υπάρχει, παρά μόνο να απλοποιήσεις όσο μπορείς την αριθμητική παράσταση. Το θέμα δίνεται με αυτό τον τρόπο για να εξεταστείτε στο κατά πόσο μπορείτε να χρησιμοποιήσετε σωστά τους τελεστές - και με την σωστή σειρά - για να πάρετε σωστό αποτέλεσμα.
=========================================================================================================
Μια επιπλέον σημείωση σχετικά με τους τελεστές ++ / --:
Έστω μεταβλητή y = 10.
Code: Select all
int a = y++ * y-- % y;
Code: Select all
int a = 10 * y-- % y; // Το y τώρα είναι 11.
Code: Select all
int a = 10 * 11 % y; // Το y τώρα είναι 10.
Code: Select all
int a = 110 % 10;
Code: Select all
int a = 0;
Το άλλο παράδειγμα: Έστω μεταβλητές χ = 30 & y = 11.
Code: Select all
int x -= --y;
Code: Select all
int x -= 10;
Code: Select all
int x = 30 - 10; // int x -= 10;
Πραγματικά δεν μπορώ να το εξηγήσω πιο απλά. Αν μπορεί κάποιος άλλος και θέλει, ας το κάνει.
Last edited by Georgilakis Antonios on Wed Feb 01, 2017 3:49 pm, edited 3 times 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
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Τι θα συμβει αν βγαλουμε τα breaks;
Και δευτερον, (ανεξαρτητο ερωτημα), τι θα συμβει στον παρακατω κωδικα;
Code: Select all
public void run() {
println(This program shows the number of days in a month.");
int month = readInt("Enter numeric month (Jan=1): ");
switch (month) {
case 2:
println("28 days (29 in leap years)");
break;
case 4: case 6: case 9: case 12:
println("30 days");
break;
case 1: case 3: case 5: case 7: case 8: case 11:
println("31 days");
break;
default:
println("Illegal month number");
break;
}
}
Code: Select all
for( ; ;)
;
println(“hello”);
- Georgilakis Antonios
- Mbyte level
- Posts: 548
- Joined: Mon Dec 02, 2013 11:10 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Straight into your Mind
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
(A) Θα εκτυπωθεί το ανάλογο κείμενο σύμφωνα και με το case που εμπίπτει ο αριθμός, συν όλα τα υπόλοιπα από εκεί και κάτω μέχρι το τέλος του switch statement.fox0077 wrote:Τι θα συμβει αν βγαλουμε τα breaks;
Και δευτερον, (ανεξαρτητο ερωτημα), τι θα συμβει στον παρακατω κωδικα;Code: Select all
public void run() { println(This program shows the number of days in a month."); int month = readInt("Enter numeric month (Jan=1): "); switch (month) { case 2: println("28 days (29 in leap years)"); break; case 4: case 6: case 9: case 12: println("30 days"); break; case 1: case 3: case 5: case 7: case 8: case 11: println("31 days"); break; default: println("Illegal month number"); break; } }
Code: Select all
for( ; ;) ; println(“hello”);
(B) Το πρόγραμμα δεν τερματίζει ποτέ. Με λίγα λόγια, θα "παγιδευτεί" στο for statement, χωρίς ποτέ να "βγει" από αυτό και να συνεχίσει παρακάτω. Ισοδύναμο με:
Code: Select all
while (true) // while (true);
{ }
println(“hello”);
"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
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Μέχρι στιγμής τουλάχιστον, δεν έχει πει κάτι τέτοιο. Στην εργαστηριακή εξέταση, ωστόσο, επιτρέπεται βιβλίο.Everett Lake wrote:Ξέρουμε αν επιτρέπεται κόλλα Α4?
-
- bit level
- Posts: 12
- Joined: Tue Apr 19, 2016 6:50 pm
- Academic status: 4th year
- Gender: ♂
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Αυτό το γράφει κάπου στο eclass σε ανακοίνωση ή σε εγγραφο ή το έχουν πει οι καθηγητές;chris- wrote:Μέχρι στιγμής τουλάχιστον, δεν έχει πει κάτι τέτοιο. Στην εργαστηριακή εξέταση, ωστόσο, επιτρέπεται βιβλίο.Everett Lake wrote:Ξέρουμε αν επιτρέπεται κόλλα Α4?
- leecher
- Venus Former Team Member
- Posts: 139
- Joined: Fri Jan 23, 2015 9:47 pm
- Academic status: N>4
- Gender: ♂
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
alex_matthes wrote:Αυτό το γράφει κάπου στο eclass σε ανακοίνωση ή σε εγγραφο ή το έχουν πει οι καθηγητές;chris- wrote:Μέχρι στιγμής τουλάχιστον, δεν έχει πει κάτι τέτοιο. Στην εργαστηριακή εξέταση, ωστόσο, επιτρέπεται βιβλίο.Everett Lake wrote:Ξέρουμε αν επιτρέπεται κόλλα Α4?
Ημερομηνία: 2017-01-20 18:56:18
Το πρόγραμμα της εξέτασης εργαστηρίου έχει αναρτηθεί στα έγγραφα του μαθήματος. Στη συγκεκριμένη εξέταση μπορείτε να έχετε μαζί σας μόνο το βιβλίο.
-
- bit level
- Posts: 12
- Joined: Tue Apr 19, 2016 6:50 pm
- Academic status: 4th year
- Gender: ♂
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Δεν το είχα δει, ευχαριστώ!
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
Οσον αφορα τις tricky ερωτησεις, οταν εχουμε: println("a result is "+1+1) εμφανίζει δύο ή έντεκα;
- leecher
- Venus Former Team Member
- Posts: 139
- Joined: Fri Jan 23, 2015 9:47 pm
- Academic status: N>4
- Gender: ♂
Re: Εισαγωγή στον Προγραμματισμό Υπολογιστών
11Mickey wrote:Οσον αφορα τις tricky ερωτησεις, οταν εχουμε: println("a result is "+1+1) εμφανίζει δύο ή έντεκα;