THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: Singularity on October 01, 2017, 00:02:46 am



Title: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Singularity on October 01, 2017, 00:02:46 am
Για οποιαδήποτε απορία στις ασκήσεις του μαθήματος/εργαστηρίων 2017/18
Για οποιαδήποτε απορία σε παλία θέματα σε αυτό το Τόπικ (https://www.thmmy.gr/smf/index.php?topic=58454.0)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: TaL.o5 on November 17, 2017, 01:09:35 am
Kαταλαβε κανεις αν στην δευτερη ασκηση το προγραμμα πρεπει να υπολογιζει οποιαδηποτε δυναμη του e η μονο αυτεσ που μας δινει?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Ούγκι on November 17, 2017, 01:47:12 am
Kαταλαβε κανεις αν στην δευτερη ασκηση το προγραμμα πρεπει να υπολογιζει οποιαδηποτε δυναμη του e η μονο αυτεσ που μας δινει?


"να εμφανίσετε τις τιμές της εκθετικής για τιμές του x από 0,1 μέχρι 2 με βήμα 0,1."


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: TaL.o5 on November 17, 2017, 12:17:34 pm
οκ κουλ  ;)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on November 17, 2017, 16:34:58 pm
Εχω κολλησει σε ενα σημειο,βαζω 2 φορ μια μεσα στην αλλη,αλλα κανει τον υπολογισμο μονο για το 0.1 χωρις τερματισμο.Το κοιταω ποση ωρα τωρα..Να και το κομματι που αναφερομαι.
http://prntscr.com/hbolnz


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 17, 2017, 16:49:39 pm
x+=0.1 πρεπει να βάλεις
το σκέτο + δεν κάνει τίποτα


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 17, 2017, 16:55:13 pm
επίσης σε εμένα για χ<=2.0 εκτύπωνε μέχρι και χ=1.9 (δεν ξερω γιατι)

γι'αυτό έβαλα χ<=2.1


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on November 17, 2017, 17:12:16 pm
Thanks αυτο ηταν τελικα,και εμενα μεχρι 1.9 μου εβγαλε.Και κατι ακομα,θελει να φτιαξουμε δικη μας συναρτηση και να μη χρησιμοποησουμε την pow?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: AckermanMik on November 17, 2017, 17:21:08 pm
Thanks αυτο ηταν τελικα,και εμενα μεχρι 1.9 μου εβγαλε.Και κατι ακομα,θελει να φτιαξουμε δικη μας συναρτηση και να μη χρησιμοποησουμε την pow?

Θα πρέπει να αποφεύγετε strict equalities σε floating point αριθμούς. Γι αυτό φτιάξτε συνθήκες με αυστηρές ανισότητες όπως while(x<2.1){}


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 17, 2017, 17:39:23 pm
Thanks αυτο ηταν τελικα,και εμενα μεχρι 1.9 μου εβγαλε.Και κατι ακομα,θελει να φτιαξουμε δικη μας συναρτηση και να μη χρησιμοποησουμε την pow?

όχι ρε,κάνει η pow (αρκεί να κάνεις include την math.h)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on November 17, 2017, 17:48:31 pm
απλως λεει ο υπολογισμος της δυναμης να γινει με επαναληπτικη διαδικασια


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: leukosaraphs! on November 17, 2017, 17:57:39 pm
απλως λεει ο υπολογισμος της δυναμης να γινει με επαναληπτικη διαδικασια

για να μην του λες

print exp(0.1)
print exp(0.2)
print exp(0.3)
 αλλα να κανεις μια επαναληψη πχ for


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Just Me on November 20, 2017, 16:10:59 pm
όχι ρε,κάνει η pow (αρκεί να κάνεις include την math.h)
Σίγουρα θα δουλέψει και έτσι αλλά είναι ζητούμενο της άσκησης ο υπολογισμός των δυνάμεων να γίνει με επαναληπτική διαδικασία.
Μάλιστα ρώτησα στο εργαστήριο και μου είπε ακριβώς αυτό: να μη χρησιμοποιήσω συναρτήσεις όπως η pow!!!
Άλλωστε η μία άσκηση που κάναμε στο εργαστήριο αυτή την εβδομάδα ήταν ο υπολογισμός δύναμης της μορφής x^n (όπου x: πραγματικός και n:ακέραιος) με επαναληπτική διαδικασία.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Todo on November 21, 2017, 22:08:43 pm
Το οτι για πολυ μεγαλο αριθμό επαναλήψεων 100> μου βγαζει inf ειναι λογικο?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: ElectroV on November 21, 2017, 23:29:00 pm
όχι.. κάποιο λάθος έχει ο κώδικας σου


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 21, 2017, 23:33:58 pm
Σίγουρα θα δουλέψει και έτσι αλλά είναι ζητούμενο της άσκησης ο υπολογισμός των δυνάμεων να γίνει με επαναληπτική διαδικασία.
Μάλιστα ρώτησα στο εργαστήριο και μου είπε ακριβώς αυτό: να μη χρησιμοποιήσω συναρτήσεις όπως η pow!!!
Άλλωστε η μία άσκηση που κάναμε στο εργαστήριο αυτή την εβδομάδα ήταν ο υπολογισμός δύναμης της μορφής x^n (όπου x: πραγματικός και n:ακέραιος) με επαναληπτική διαδικασία.


είναι τέρμα ηλίθιο να υπολογίζεις δυνάμεις με αναδρομή,από τη στιγμή που έχει έτοιμη συνάρτηση η γλώσσα.

ας λέει ότι θέλει ο τυπάς του εργαστηρίου, i'm too old for this shit  :D


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on November 22, 2017, 00:46:38 am
τωρα που ειδα οτι πρεπει οντως να μην χρησιμοποιησουμε τη συναρτηση,φτιαχνω τη δικη μου αλλα μου βγαζει συνεχεια error conflicting types ενω μου φαινεται σωστη,και τη μεταβλητη που κανω return την εχω και αυτην double
http://prntscr.com/hdieph


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 22, 2017, 00:59:43 am
δήλωσες το πρωτότυπο της συνάρτησης πριν την γράψεις;

αν ναι,δοκίμασε να αλλάξεις το όνομα της συνάρτησης (μπορεί να μοιάζει με κάποια άλλη συνάρτηση της βιβλιοθήκης,αλλά λίγο ακραίο)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on November 22, 2017, 01:02:53 am
ω ρε αταλαντοσυνη  :'(
Δεν ηξερα οτι ειναι απαραιτητο να τις δηλωνουμε στην αρχη,νομιζα γινεται για βοηθητικους λογους  ;D
Thank you!!!


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 22, 2017, 01:05:11 am
ω ρε αταλαντοσυνη  :'(
Δεν ηξερα οτι ειναι απαραιτητο να τις δηλωνουμε στην αρχη,νομιζα γινεται για βοηθητικους λογους  ;D
Thank you!!!

τις δηλώνεις για να δεσμεύσει το πρόγραμμα χώρο στη μνήμη (ανάλογα με το τι τύπο συνάρτησης έχεις),όπως γίνεται και με τις μεταβλητές


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 22, 2017, 03:05:32 am
Το οτι για πολυ μεγαλο αριθμό επαναλήψεων 100> μου βγαζει inf ειναι λογικο?

λογικό είναι (για ακρίβεια 33 προσεγγίζει μέχρι χ=1.6 πολύ καλά την e^x,μετά χαλάει)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Todo on November 22, 2017, 12:21:38 pm
λογικό είναι (για ακρίβεια 33 προσεγγίζει μέχρι χ=1.6 πολύ καλά την e^x,μετά χαλάει)
Ακριβός ναι...

Ευχαριστώ!


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Sarge on November 22, 2017, 20:10:33 pm
Η "μέγιστη" ακρίβεια για την συγκεκριμένη άσκηση έχει να κάνει με το μέγεθος των μεταβλητών. Κανονικά θα έπρεπε να δουλεύει για όλα τα n, αλλά η C έχει και κάποια όρια.

Απ'όσο έχω ψάξει και μόνος μου, υπάρχουν και τρόποι να την κάνεις την απεικόνιση με μεγαλύτερη ακρίβεια, αλλά αυτό ξεφεύγει αρκετά για εμάς.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Ούγκι on November 22, 2017, 23:01:15 pm
Το οτι για πολυ μεγαλο αριθμό επαναλήψεων 100> μου βγαζει inf ειναι λογικο?

Αν υπολογίζεις το παραγοντικό ή τη δύναμη ξεχωριστά τότε ναι. Δε μας είπε όμως οτί οφείλουμε να το κάνουμε να υποστηρίζει πολύ μεγάλες τιμές του Ν.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 23, 2017, 00:27:41 am
Η "μέγιστη" ακρίβεια για την συγκεκριμένη άσκηση έχει να κάνει με το μέγεθος των μεταβλητών. Κανονικά θα έπρεπε να δουλεύει για όλα τα n, αλλά η C έχει και κάποια όρια.

Απ'όσο έχω ψάξει και μόνος μου, υπάρχουν και τρόποι να την κάνεις την απεικόνιση με μεγαλύτερη ακρίβεια, αλλά αυτό ξεφεύγει αρκετά για εμάς.

νομίζω είναι θέμα των double,αλλά και για long double (64 bit) δεν έχει διαφορά.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 25, 2017, 19:21:19 pm
στην τρίτη άσκηση τι μέγεθος θα πρέπει να έχουν οι πίνακες (π.χ. εγώ έκανα define 5 το μέγεθος τους επειδή βαριέμαι να βάζω πολλές τιμές)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Sarge on November 25, 2017, 20:18:20 pm
στην τρίτη άσκηση τι μέγεθος θα πρέπει να έχουν οι πίνακες (π.χ. εγώ έκανα define 5 το μέγεθος τους επειδή βαριέμαι να βάζω πολλές τιμές)
Ότι define θέλει η ψυχούλα σου. Για το πρόγραμμα το ίδιο είναι.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 25, 2017, 20:59:25 pm
Ότι define θέλει η ψυχούλα σου. Για το πρόγραμμα το ίδιο είναι.

ρώτησα βασικά επειδή δεν το διευκρίνιζε,αν θέλει παραπάνω θέσεις στον πίνακα αλλάζει και μόνος του την define  :D

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

το \t στην scanf φέιλαρε πανηγυρικά ...


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: DEVRIM on November 26, 2017, 12:01:54 pm
Καποιός ή κάποια που μπορεί ν στείλει τον κώδικα σε pm γτ δε προλαβαίνω Eυχαριστωωωω  ;)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Ούγκι on November 26, 2017, 19:24:50 pm
ρώτησα βασικά επειδή δεν το διευκρίνιζε,αν θέλει παραπάνω θέσεις στον πίνακα αλλάζει και μόνος του την define  :D

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

το \t στην scanf φέιλαρε πανηγυρικά ...
αφηνε \t χρησιμοποιωντας printf αναμεσα στις scanf.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: GkBlue on November 26, 2017, 19:25:44 pm
Μπορεί κάποιος να ανεβάζει τις ασκήσεις για εμάς που δεν έχουμε πρόσβαση στο ethmmy (μετεγγραφή)?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Sarge on November 26, 2017, 20:47:40 pm
Μπορεί κάποιος να ανεβάζει τις ασκήσεις για εμάς που δεν έχουμε πρόσβαση στο ethmmy (μετεγγραφή)?

http://alexander.ee.auth.gr:8083/eTHMMY/archive/102/downloadFile/7042/square_matrix.pdf


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Sarge on November 26, 2017, 20:52:29 pm
ρώτησα βασικά επειδή δεν το διευκρίνιζε,αν θέλει παραπάνω θέσεις στον πίνακα αλλάζει και μόνος του την define  :D

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

το \t στην scanf φέιλαρε πανηγυρικά ...

Αυτό π προτείνω εγώ για τους πίνακες είναι να δίνεις θέσεις για την μεταβλητή στο printf. Δηλαδη, έστω έχουμε %f:
%.2f  ---> Θα σ πρινταρει τον f με δεκαδική ακρίβεια 2 ψηφίων, πχ. 3.92.
%8f  ---> Θα σ πρινταρει τον f με ακρίβεια στα ψηφεία του 8, δηλαδή θα δεσμεύσει στην απεικόνισή σου 8 θέσεις για τον f
%8.2f ---> Θα σ πρινταρει τον f για σύνολο 8 + 2 + 1(υποδιαστολή)

Οι δέσμευση θέσεων δεν σημαίνει ότι για %8f κ ο float ειναι 3, θα σ δώσει 00000003. Θα σ εμφανίσει τον 3 με τις υπόλοιπες θέσεις κενές.

Για ψάξου λίγο τι παίζει


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 26, 2017, 21:31:53 pm
Αυτό π προτείνω εγώ για τους πίνακες είναι να δίνεις θέσεις για την μεταβλητή στο printf. Δηλαδη, έστω έχουμε %f:
%.2f  ---> Θα σ πρινταρει τον f με δεκαδική ακρίβεια 2 ψηφίων, πχ. 3.92.
%8f  ---> Θα σ πρινταρει τον f με ακρίβεια στα ψηφεία του 8, δηλαδή θα δεσμεύσει στην απεικόνισή σου 8 θέσεις για τον f
%8.2f ---> Θα σ πρινταρει τον f για σύνολο 8 + 2 + 1(υποδιαστολή)

Οι δέσμευση θέσεων δεν σημαίνει ότι για %8f κ ο float ειναι 3, θα σ δώσει 00000003. Θα σ εμφανίσει τον 3 με τις υπόλοιπες θέσεις κενές.

Για ψάξου λίγο τι παίζει


ούτε έτσι βγάζει κάτι

για να καταλάβεις,έτσι όπως διαβάζει τα στοιχεία του πίνακα κατα στήλη,θέλω να πηγαίνει στην επόμενη στήλη (με \t) και κάπως να κάνω το αντίθετο του newline για να ξαναρχίζω στην πρώτη γραμμή


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 26, 2017, 21:34:31 pm
αυτό δε δουλεύει γιατί σε πάει στη θέση (2,2) ενώ θα έπρεπε να ήταν στην (1,2) (η scanf διαβάζει κατα στηλη τα στοιχεια)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Sarge on November 27, 2017, 00:29:23 am
αυτό δε δουλεύει γιατί σε πάει στη θέση (2,2) ενώ θα έπρεπε να ήταν στην (1,2) (η scanf διαβάζει κατα στηλη τα στοιχεια)
(https://i.imgur.com/t5TGBxb.png)
Worked fine for me, εκτός αν ρωτάς κάτι άλλο και εγώ δεν καταλαβαίνω.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 27, 2017, 00:58:12 am
(https://i.imgur.com/t5TGBxb.png)
Worked fine for me, εκτός αν ρωτάς κάτι άλλο και εγώ δεν καταλαβαίνω.

αυτό είναι οκ.εγώ ρωτάω για το γέμισμα του πίνακα Μ (που γίνεται από το πληκτρολόγιο) αν μπορούμε να κάνουμε καλύτερη παρουσία (και να μην μπαίνουν τα στοιχεία το ένα κάτω από το άλλο)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on November 27, 2017, 20:27:49 pm
Δηλωνω της εξης συναρτηση για να κανω την προσθεση void athroisma(int A[N][N]) και μου το βγαζει σωστα,αλλα μετα οταν δηλωνω την αντιστοιχη για τη διαφορα,προφανως στο Μ εχει αποθηκευτει ο τελευταιος πινακας του αθροισματος κι ετσι το αποτελεσμα ειναι παντα 0.Πως γινεται να μην αποθηκευεται μονιμα το αποτελεσμα της συναρτησης?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on November 27, 2017, 21:27:07 pm
Δηλωνω της εξης συναρτηση για να κανω την προσθεση void athroisma(int A[N][N]) και μου το βγαζει σωστα,αλλα μετα οταν δηλωνω την αντιστοιχη για τη διαφορα,προφανως στο Μ εχει αποθηκευτει ο τελευταιος πινακας του αθροισματος κι ετσι το αποτελεσμα ειναι παντα 0.Πως γινεται να μην αποθηκευεται μονιμα το αποτελεσμα της συναρτησης?

γιατί αποθηκεύεται το άθροισμα στον πινακα Μ; κράτα τον πίνακα Μ,έναν άλλον πίνακα για τον ανάστροφο του,έναν άλλον για το άθροισμα και έναν για τη διαφορά.

δηλαδή δημιούργησε απλά 3 νέους πίνακες


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on November 27, 2017, 22:49:54 pm
ειπα να το προσπαθησω με το δικο μου τροπο επειδη μου φαινεται πιο σωστο προγραμματιστικα,αλλα βλεπω οτι δε μπορω να το βγαλω


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: kos_tzax on December 02, 2017, 01:58:55 am
Στην ασκηση 3 οι πινακες ειναι int ή float? Επισης το Ν το βαζουμε οσο θελουμε εμεις?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Sarge on December 02, 2017, 19:59:20 pm
Στην ασκηση 3 οι πινακες ειναι int ή float? Επισης το Ν το βαζουμε οσο θελουμε εμεις?
Όλα τα βάζεις όπως θες εσύ.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 02, 2017, 20:26:18 pm
Δε μπορω να υποβαλλω την ασκηση 4,να φανταστω σε ολους το ιδιο βγαζει?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 02, 2017, 20:52:47 pm
Δε μπορω να υποβαλλω την ασκηση 4,να φανταστω σε ολους το ιδιο βγαζει?

ναι ναι,κοιμούνται τα παιδιά από χθες  :D


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: DEVRIM on December 03, 2017, 00:08:26 am
καποιος την ασκηση 3 pm pleaseeee


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: DEVRIM on December 03, 2017, 15:46:59 pm
kapoios re paiadia?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις
Post by: Just Me on December 03, 2017, 23:56:22 pm
Η 4η άσκηση σας δίνει αποτέλεσμα 1.116268 έτσι δεν είναι;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις
Post by: Sarge on December 04, 2017, 14:24:06 pm
Η 4η άσκηση σας δίνει αποτέλεσμα 1.116268 έτσι δεν είναι;
Yes


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: maria21 on December 04, 2017, 22:29:08 pm
Στην άσκηση 4 μήπως υπάρχει λάθος στο όριο; Δεν θα έπρεπε να είναι f(x)/f'(x) < ε ;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 04, 2017, 22:52:02 pm
Στην άσκηση 4 μήπως υπάρχει λάθος στο όριο; Δεν θα έπρεπε να είναι f(x)/f'(x) < ε ;


το ίδιο είναι (σαν συνθήκη),σκέψου ότι στη ρίζα μηδενίζεται η f'(x).δοκίμασε και την σχέση που λες και αυτή που ζητάει,θα δεις ότι σου βγάζει πάλι τα ίδια


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: maria21 on December 04, 2017, 22:58:43 pm
το ίδιο είναι (σαν συνθήκη),σκέψου ότι στη ρίζα μηδενίζεται η f'(x).δοκίμασε και την σχέση που λες και αυτή που ζητάει,θα δεις ότι σου βγάζει πάλι τα ίδια

Ευχαριστώ


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις
Post by: ElectroV on December 05, 2017, 01:40:29 am
Η 4η άσκηση σας δίνει αποτέλεσμα 1.116268 έτσι δεν είναι;
για συγκεκριμένες τιμές x0 και e ή για οποιαδήποτε?
κάτι λάθος έχω κάνει


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις
Post by: mpraskafoutas on December 05, 2017, 02:15:15 am
για συγκεκριμένες τιμές x0 και e ή για οποιαδήποτε?
κάτι λάθος έχω κάνει

o,τι να ναι το χ0 και το e πολυ μικρό (π.χ. 0.0002)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Sarge on December 05, 2017, 15:26:26 pm
Πρεπει χ>1 αναγκαστικά, λόγω της συναρτήσεως, και το όριο όσο θες εσύ. Όσο μικρότερο είναι, τόσο μεγαλύτερη ακρίβεια. ( π.χ. για 0.00001, θα βγει το ~= που λέει η άσκηση)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: northmc on December 05, 2017, 16:02:49 pm
Το x0 δεν πρέπει να είναι 1.0 γιατί θα βγάλει nan.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: northmc on December 05, 2017, 19:42:29 pm
Όπως το λέει ο viserys.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 05, 2017, 20:53:58 pm
Το x0 δεν πρέπει να είναι 1.0 γιατί θα βγάλει nan.

αν σου βγάζει NaN πάει να πει ότι έχεις κάνει κάτι λάθος και υπερχειλίζει η μνήμη


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: ElectroV on December 06, 2017, 13:29:58 pm
Παιδιά επειδή δεν μπορώ άλλο με την εργασία αν θέλει κάποιος να με βοηθήσει παρακαλώ. Του στέλνω το κώδικα που έχω γράψει και να μου πει το λάθος


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: AckermanMik on December 06, 2017, 14:18:39 pm
Παιδιά επειδή δεν μπορώ άλλο με την εργασία αν θέλει κάποιος να με βοηθήσει παρακαλώ. Του στέλνω το κώδικα που έχω γράψει και να μου πει το λάθος
Στειλε


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 06, 2017, 18:08:53 pm
Παιδιά επειδή δεν μπορώ άλλο με την εργασία αν θέλει κάποιος να με βοηθήσει παρακαλώ. Του στέλνω το κώδικα που έχω γράψει και να μου πει το λάθος

ανέβασε εδώ τον κώδικα σου αν θες,αλλιώς pm


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Φαροφύλακας on December 06, 2017, 21:33:57 pm
Εχω βρει αλλο τροπο να κανω αυτο που θελει η ασκηση αλλα το εχω απορια γιατι δε δουλευει(σε μενα τουλαχιστον) με do while καπως ετσι πχ ;


Code:
  do { x1=x0-f( x0 )/g( x0 ) ;
                   x0=x1 ; }

             while  (abs(f(x0)) > = e) ;                 


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 06, 2017, 21:51:36 pm
Εχω βρει αλλο τροπο να κανω αυτο που θελει η ασκηση αλλα το εχω απορια γιατι δε δουλευει(σε μενα τουλαχιστον) με do while καπως ετσι πχ ;


Code:
  do { x1=x0-f( x0 )/g( x0 ) ;
                   x0=x1 ; }

             while  (abs(f(x0)) > = e) ;                  

χρειάζεσαι την fabs(f(x0)) για float/double ορίσματα


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Φαροφύλακας on December 06, 2017, 22:12:32 pm
χρειάζεσαι την fabs(f(x0)) για float/double ορίσματα

fair enough αλλα και παλι το θεμα μου ειναι οτι μου εμφανιζει ως λυση ενα νουμερο μερικα βηματα πριν την ακριβη λυση


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 06, 2017, 22:15:18 pm
fair enough αλλα και παλι το θεμα μου ειναι οτι μου εμφανιζει ως λυση ενα νουμερο μερικα βηματα πριν την ακριβη λυση

αυτό το κομμάτι που ανέβασες μια χαρά είναι,τώρα ο υπόλοιπος κώδικας σου δεν ξέρω τι έχει.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Φαροφύλακας on December 06, 2017, 22:21:52 pm
Ε τωρα τον εχω διαγραψει κιολας, thanks anyway


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: kos_tzax on December 06, 2017, 23:32:40 pm
Πειραζει αν η προσεγγιση ριζας που δινω απο το πληκτρολογιο ειναι τυπου float?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 08, 2017, 21:27:08 pm
στην 5η ασκηση παλι θελει στατικη δεσμευση μνημης για τον πινακα;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Just Me on December 08, 2017, 22:46:56 pm
Στην 5η άσκηση πρέπει να φτιάξουμε main ή όχι;;;;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: TaL.o5 on December 08, 2017, 23:43:50 pm
Στην 5η άσκηση πρέπει να φτιάξουμε main ή όχι;;;;

σε καθε προγραμμα πρεπει να εχεις main απο εκει ξεκιναει ο compiler, αλλιως δεν θα εκτελεσειι τπτ


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Ashley Spinelli on December 09, 2017, 16:38:33 pm
4η ασκ μου βγαζει αποτελεσμα 0.0000 ρε γαμωτο τι παιζει?????


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Ashley Spinelli on December 09, 2017, 17:19:05 pm
εν τελει δεν ειχε προβλημα το προγραμμα μου αλλα το codeblocks μου δεν λειτουργει σωστα απο οτι φανερωσε ενας online compiler ...


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Todo on December 09, 2017, 18:02:27 pm
εν τελει δεν ειχε προβλημα το προγραμμα μου αλλα το codeblocks μου δεν λειτουργει σωστα απο οτι φανερωσε ενας online compiler ...
σπασε το λαπτοπ ;D ;D


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 09, 2017, 19:39:34 pm
Τη διασταση του πινακα την οριζουμε κατ'επιλογη μας, ειτε με define ειτε με scanf?Επισης τα στοιχεια του πινακα θα ειναι random?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 09, 2017, 20:30:37 pm
Και κατι ακομα που δεν εχω ξεκαθαρισει,απο το παρακατω παραδειγμα ζηταει  μονο το L η και το Q?
http://prntscr.com/hl9cfl


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 09, 2017, 20:44:16 pm
Τη διασταση του πινακα την οριζουμε κατ'επιλογη μας, ειτε με define ειτε με scanf?Επισης τα στοιχεια του πινακα θα ειναι random?

μάλλον ναι και στα 2

Και κατι ακομα που δεν εχω ξεκαθαρισει,απο το παρακατω παραδειγμα ζηταει  μονο το L η και το Q?
http://prntscr.com/hl9cfl

και γω με βάση αυτό έγραψα το πρόγραμμα (σίγουρα θέλει και L και Q).λίγο που το έψαξα,όλοι λένε ότι η θέση του percentile είναι ίση με (Ν+1)*p/100 και όχι N*p/100,οπότε κάτι θα τους ξέφυγε στην εκφώνηση


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Ούγκι on December 10, 2017, 12:40:50 pm
Και κατι ακομα που δεν εχω ξεκαθαρισει,απο το παρακατω παραδειγμα ζηταει  μονο το L η και το Q?
http://prntscr.com/hl9cfl

Η άσκηση, δεν χρησιμοποιεί καλό ορισμό του εκατοστημορίου (δεν μπορεί να ισχύει αυτό που λέει σε κάθε μέγεθος πίνακα). Όμως, αφού λέει οτί το κάθε εκατοστημόριο είναι τιμή του πίνακα, ας χρησιμοποιήσουμε τον ορισμό της βικιπαίδιας:

"the P-th percentile ( 0 < P ≤ 100 ) of a list of N ordered values (sorted from least to greatest) is the smallest value in the list such that no more than P percent of the data is strictly less than the value and at least P percent of the data is less than or equal to that value."

Και πάλι ο τύπος που μας δίνει για τον υπολογισμό της θέσης (n(P)=ceil(N*P/100)) δεν είναι σωστός γιατί πολύ απλά n([1, 100])=[1,N] ενώ ο πίνακας έχει θέσεις [0, N-1] . Έβαλα ένα σωστό τύπο για τη θέση, αν θέλει κάποιος τον βλέπει, αλλά προκύπτει πολύ εύκολα.

@mods/admins Δε μπορώ να χρησιμοποιήσω το spoiler tag αυτού του φόρουμ... Μήπως θέλει update ή κάτι τέτοιο; https://www.simplemachines.org/community/index.php?topic=50261.0




n(P)=ceil(N*P/100)-1


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Just Me on December 10, 2017, 17:16:06 pm
ο ψευδοκώδικας της bubble sort δουλεύει;;;;
μπορεί κάποιος να ανεβάσει μια συνάρτηση bubble sort  ^beg^


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: AckermanMik on December 10, 2017, 17:16:47 pm
ο ψευδοκώδικας της bubble sort δουλεύει;;;;
μπορεί κάποιος να ανεβάσει μια συνάρτηση bubble sort  ^beg^

Μήπως στα πλαίσια της εκπαιδευτικής διαδικασίας πρέπει να το ψάξεις και να το καταλάβεις λίγο μόνος;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Just Me on December 10, 2017, 17:36:10 pm
Μήπως στα πλαίσια της εκπαιδευτικής διαδικασίας πρέπει να το ψάξεις και να το καταλάβεις λίγο μόνος;

Δεκτό  ^victory^


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: TaL.o5 on December 10, 2017, 19:20:18 pm
ο ψευδοκώδικας της bubble sort δουλεύει;;;;
μπορεί κάποιος να ανεβάσει μια συνάρτηση bubble sort  ^beg^
παιζει να ειναι λαθος γτ μου τα βαζει ολα στην σειρα εκτος απο το πρωτο


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Todo on December 10, 2017, 22:17:40 pm
http://prntscr.com/hl9cfl
Το 0.5 ειναι το δεκαδικο μερος του L;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 11, 2017, 12:43:06 pm
Ναι


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις
Post by: Sarge on December 11, 2017, 15:55:47 pm
Η εκφώνηση δίνει λάθος τύπο για την θέση του εκατοστημόριου.

Αντί για  n=(P/100)*N, πρέπει να είναι

n=[(P+1)/100]*N - 1

Ο δεύτερος τύπος θα δώσει το σωστό n. Το (-1) είναι αυτό που το κάνει "σωστό" για εμφάνιση σε πίνακα, διότι π.χ. η θέση 3 για έναν πίνακα table είναι το table[2].

Προσοχή: Το n ΔΕΝ είναι int, άρα δεν μπορείς πάντα να γράψεις table[n]. Στις περισσότερες περιπτώσεις έχει δεκαδικά ψηφία.

EDIT: Το παραπάνω ισχύει για τον ακριβή τρόπο εύρεσης εκατοστημορίου. Δείτε το reply μου στην 7η σελίδα για να εκτελέσετε αυτό που ζητάει η άσκηση.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 11, 2017, 16:14:27 pm
Η εκφώνηση δίνει λάθος τύπο για την θέση του εκατοστημόριου.

Αντί για  n=(P/100)*N, πρέπει να είναι

n=[(P+1)/100]*N - 1

Ο δεύτερος τύπος θα δώσει το σωστό n. Το (-1) είναι αυτό που το κάνει "σωστό" για εμφάνιση σε πίνακα, διότι π.χ. η θέση 3 για έναν πίνακα table είναι το table[2].

Προσοχή: Το n ΔΕΝ είναι int, άρα δεν μπορείς πάντα να γράψεις table[n]. Στις περισσότερες περιπτώσεις έχει δεκαδικά ψηφία.

δίκιο έχεις,αλλά το n θα είναι int αν έχεις δηλώσει τις P και N ως ακέραιες.δηλαδή η πράξη (Ρ+1)/100 θα σου δώσει το div.αυτό βέβαια βολεύει για να έχεις το n σαν δείκτη του πίνακα για να βρεις το Q.

εγώ απλά έκανα την ίδια πράξη με typecasting σε float και την εκχώρησα σε μια άλλη μεταβλητή,για να έχω και το δεκαδικό αριθμό.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 11, 2017, 16:28:37 pm
ο τυπος (Ν+1)*Ρ/100 απο την εικονα που ανεβασα δεν ειναι ο σωστος?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 11, 2017, 16:35:01 pm
ο τυπος (Ν+1)*Ρ/100 απο την εικονα που ανεβασα δεν ειναι ο σωστος?

σωστός είναι,απλά να έχεις υπόψη σου ότι τα στοιχεία του πίνακα ξεκινάνε από το 0,οπότε στον υπολογισμό του Q όπου n βάζεις n-1


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 11, 2017, 16:40:05 pm
Ναι εκανα καποιες τροποποιησεις και βγηκε σωστο
Κατι αλλο θελω να ρωτησω που το προσεξα τωρα,το Ν που το εκανα define πχ 10,αποθηκευτηκε σαν ακεραιος?Και αν το κανω define 10.0 θα ειναι float?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: ElectroV on December 11, 2017, 17:07:44 pm
Παιδιά ωραία τα λέτε αλλά στην wikipedia (https://en.m.wikipedia.org/wiki/Percentile)
τα παραδείγματα έχουν άλλο αποτέλεσμα.. Συγκεκριμένα στρογγυλοποιούν τη θέση κατά μία μονάδα προς τα πάνω.. Δείτε τα examples...
Εγώ τι να ακολουθήσω; Αυτό που είπατε ή της wiki?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 11, 2017, 17:20:30 pm
Ναι εκανα καποιες τροποποιησεις και βγηκε σωστο
Κατι αλλο θελω να ρωτησω που το προσεξα τωρα,το Ν που το εκανα define πχ 10,αποθηκευτηκε σαν ακεραιος?Και αν το κανω define 10.0 θα ειναι float?

η define αποθηκεύει αριθμούς και strings και δεν εχει τύπο.αν σου βγάζει error,είναι επειδή έχεις βάλει μάλλον σαν όρισμα μιας συνάρτησης το Ν με int.βάλε άλλο όνομα  μεταβλητής στο σωμα της συναρτησης (αντί για Ν) και κάλεσε την από την main με Ν.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 11, 2017, 17:30:58 pm
Παιδιά ωραία τα λέτε αλλά στην wikipedia (https://en.m.wikipedia.org/wiki/Percentile)
τα παραδείγματα έχουν άλλο αποτέλεσμα.. Συγκεκριμένα στρογγυλοποιούν τη θέση κατά μία μονάδα προς τα πάνω.. Δείτε τα examples...
Εγώ τι να ακολουθήσω; Αυτό που είπατε ή της wiki?

και τα 2 σωστά είναι,εγώ προσωπικά δεν βρήκα πουθενά αλλού (εκτος απο βικιπαιδεια) τον τρόπο με τη στρογγυλοποίηση,οπότε το έκανα αλλιώς.το θέμα του μαθήματος είναι ο προγραμματισμός και όχι η στατιστική  :D


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: DEVRIM on December 13, 2017, 14:46:29 pm
παιδια καποιος/α την 5 εργασια σε pm please


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Sarge on December 13, 2017, 18:17:22 pm
Ο τύπος που δίνει για την θέση χρησιμοποιείται στην "nearest-rank" μέθοδο, οπότε αναγκαστικά αυτός είναι που πρέπει να χρησιμοποιηθεί. Δεν υπάρχει κάποιο λάθος, απλά είναι απλούστευση του προβλήματος που θα είχαμε αν έδινε τον κανονικό τύπο για τη θέση.
Ό,τι n δώσει ο τύπος, στρογγυλοποιείται προς τα πάνω και μετα εκτυπώνεται εντός του πίνακα.

π.χ. n=...=[2.25]=3 -> print array[2]    //διότι array 0,1,2,3,...


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 16, 2017, 21:30:14 pm
Ο τύπος που δίνει για την θέση χρησιμοποιείται στην "nearest-rank" μέθοδο, οπότε αναγκαστικά αυτός είναι που πρέπει να χρησιμοποιηθεί. Δεν υπάρχει κάποιο λάθος, απλά είναι απλούστευση του προβλήματος που θα είχαμε αν έδινε τον κανονικό τύπο για τη θέση.
Ό,τι n δώσει ο τύπος, στρογγυλοποιείται προς τα πάνω και μετα εκτυπώνεται εντός του πίνακα.

π.χ. n=...=[2.25]=3 -> print array[2]    //διότι array 0,1,2,3,...


Αυτο σας το ειπε ο καθηγητης?Δηλαδη οσοι χρησιμοποιησαμε το (η+1) πρεπει να το αλλαξουμε η δε θα το παρει για λαθος?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 17, 2017, 04:49:52 am
Δεν μπορώ να καταλάβω ποιες εντολές πρέπει να έχω μέσα στη συνάρτηση της 6ης άσκησης για να λειτουργήσει (http://alexander.ee.auth.gr:8083/eTHMMY/archive/102/downloadFile/7089/eight_queens.pdf), και το γεγονός ότι είναι παλαιότερο θέμα με ανησυχεί για το κόψιμο που το βλέπω να πλησιάζει... Ας βοηθήσει κάποιος σε απλά ελληνικά βρε παιδιά :P

στην main θα ζητάς από τον χρήστη να σου δίνει τις θέσεις των 8 βασιλισσών.η συνάρτηση σου θα παίρνει σαν όρισμα 8 θέσεις του πίνακα (εκεί που είναι οι βασίλισσες) και με βάση τις αποδεκτές λύσεις της wikipedia για το πρόβλημα αυτό θα ελέγχεις απλά αν οι θέσεις που έδωσε ο χρήστης είναι κομπλέ και καμιά βασίλισσα δεν τρώει την άλλη


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 17, 2017, 05:01:11 am
το θέμα είναι: αρκεί η explicit λύση της βικιπαιδειας για ν=8 (άρα χρησιμοποιείται ο τύπος (i, 1 + ((2i + n/2 - 3 )(mod n))) and (n + 1 - i, n - ((2i + n/2 - 3 )(mod n))) for i = 1, 2, ..., n / 2 για τις σωστές θέσεις.)

ή πρέπει να ελέγχουμε τις 12 διαφορετικές λύσεις (που είναι βαρετό);


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Ούγκι on December 17, 2017, 13:34:38 pm
Προφανώς δεν πρέπει να ελέγχουμε αν ο πίνακας ταυτίζεται με έναν από τις λύσεις της βικιπαίδιας αλλά να βρούμε μόνοι μας αν είναι λύση ή όχι...

Κατ'αρχάς, σε προβλήματα που σε δυσκολεύουν θα προσπαθείς ΠΑΝΤΑ να τα σπας σε υποπροβλήματα. Για να σε βοηθήσω χωρλις να σου κάνω σπόιλ, θα σου δώσω τα διαιρέσω το πρόβλημα σε μικρότερα

1)Διάβασμα ττης σκακιέρας. Παρατήρησε οτί η θέση κάθε βασσίλισας μπορεί να συμβολιστεί με δύο συντεταγμένες. Άρα διάβασε ένα ζευγάρι 8 φορές.

2)Στον 8χ8 πίνακά σου, πρέπει κάπως να συμβολίσεις την ύπαρξη ή μη βασσίλισας σε κάθε κελί.

3)Ανίχνευσε τις βασσίλισες μέσα στο πίνακα και

4)Έλεγξε αν απείλουν/απειλούνται από κάποια άλλη. Έδω είναι το "δύσκολο" της άσκησης. Τι ενοούμε "απειλεί" και πως το ελέγχουμε; Έμας αν μας έδιναν στο άκυρο μια σκακιέρα πως θα την ελέγχαμε; Θα παίρναμε κάθε βασσίλισα και θα κοιτούσαμε τι έχει, στα δεξια αριστερα, πανω, κάτω και διαγώνια.
Σκέψου όμως, αν μια βασσίλισσα βρίσκεται στη θέση i, j τι συμβολίζει η θέση i+1, j ή η i, j+1; Τι είναι το "διαγωνια" σε 'ενα πίνακα στη c;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Arcade on December 17, 2017, 17:17:18 pm
Προφανώς δεν πρέπει να ελέγχουμε αν ο πίνακας ταυτίζεται με έναν από τις λύσεις της βικιπαίδιας αλλά να βρούμε μόνοι μας αν είναι λύση ή όχι...

Κατ'αρχάς, σε προβλήματα που σε δυσκολεύουν θα προσπαθείς ΠΑΝΤΑ να τα σπας σε υποπροβλήματα. Για να σε βοηθήσω χωρλις να σου κάνω σπόιλ, θα σου δώσω τα διαιρέσω το πρόβλημα σε μικρότερα

1)Διάβασμα ττης σκακιέρας. Παρατήρησε οτί η θέση κάθε βασσίλισας μπορεί να συμβολιστεί με δύο συντεταγμένες. Άρα διάβασε ένα ζευγάρι 8 φορές.

2)Στον 8χ8 πίνακά σου, πρέπει κάπως να συμβολίσεις την ύπαρξη ή μη βασσίλισας σε κάθε κελί.

3)Ανίχνευσε τις βασσίλισες μέσα στο πίνακα και

4)Έλεγξε αν απείλουν/απειλούνται από κάποια άλλη. Έδω είναι το "δύσκολο" της άσκησης. Τι ενοούμε "απειλεί" και πως το ελέγχουμε; Έμας αν μας έδιναν στο άκυρο μια σκακιέρα πως θα την ελέγχαμε; Θα παίρναμε κάθε βασσίλισα και θα κοιτούσαμε τι έχει, στα δεξια αριστερα, πανω, κάτω και διαγώνια.
Σκέψου όμως, αν μια βασσίλισσα βρίσκεται στη θέση i, j τι συμβολίζει η θέση i+1, j ή η i, j+1; Τι είναι το "διαγωνια" σε 'ενα πίνακα στη c;

Έχω καταφέρει να βρω τις συνθήκες για να ελέγχει οριζόντια και κάθετα, το μόνο που με δυσκολεύει είναι οι διαγώνιοι γιατί είναι πολλές περιπτώσεις... αυτό που σίγουρα καταλαβαίνω είναι ότι στα i,j θα προσθαφαιρειται ο ιδιος αριθμος χ ωστε τα στοιχεια να ειναι διαγωνια μεταξυ τους, αλλα και παλι..


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Ούγκι on December 17, 2017, 17:37:38 pm
Σωστό είναι αυτο που λες, που είναι το πρόβλημα;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: ElectroV on December 19, 2017, 02:08:07 am
Κάπου κάνω λάθος στο τρόπο που υπολογίζω αν απειλείται διαγώνια..
Κάποιος να του στείλω πμ  τον κώδικα πλζ ::)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 23, 2017, 00:57:47 am
έχω κολλήσει στη δυναμική δέσμευση
μου φαίνεται ότι το έχω κάνει σωστά και αφού διαβάσει τις γραμμές και τις στήλες κρασάρει.
το κομμάτι του κώδικα είναι αυτό,αν βλέπετε κάτι λάθος πείτε το.
    
    int m,n;
    int** x;
    printf("Eisagete arithmo grammwn ths skakieras: ");
   scanf("%d",&m);
   
    printf("Eisagete arithmo sthlwn ths skakieras: ");
   scanf("%d",&n);

    x = malloc(m * sizeof(int*));
    if(!x) {
      
      printf("\nAdunamia desmeushs mnhmhs!");
      exit(0);
      
       }
    for (int i = 0; i < m; i++) {
        x = malloc(n * sizeof(int));
        if(!x) {
      
      printf("\nAdunamia desmeushs mnhmhs!");
      exit(0);
      
       }
    }

το λάθος είναι σίγουρα εδώ,γιατί αν παραλείψω αυτό το κομμάτι τρέχει κανονικά το υπόλοιπο πρόγραμμα


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: leukosaraphs! on December 23, 2017, 01:16:40 am
...

Code:
for (int i = 0; i < m; i++) {
        x = malloc(n * sizeof(int));
        if(!x) {
      
      printf("\nAdunamia desmeushs mnhmhs!");
      exit(0);
      
       }
    }
πρεπει να γινει
Code:
for (int i = 0; i < m; i++) {
        x[i] = malloc(n * sizeof(int));
        if(!x[i]) {
      
      printf("\nAdunamia desmeushs mnhmhs!");
      exit(0);
      
       }
    }

υποθετω :Ρ


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 23, 2017, 01:26:57 am
Code:
for (int i = 0; i < m; i++) {
        x = malloc(n * sizeof(int));
        if(!x) {
      
      printf("\nAdunamia desmeushs mnhmhs!");
      exit(0);
      
       }
    }
πρεπει να γινει
Code:
for (int i = 0; i < m; i++) {
        x[i] = malloc(n * sizeof(int));
        if(!x[i]) {
      
      printf("\nAdunamia desmeushs mnhmhs!");
      exit(0);
      
       }
    }

υποθετω :Ρ

μπα δεν άλλαξε κάτι...
μήπως είναι θέμα του compiler?παιζει κατι τετοιο?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: leukosaraphs! on December 23, 2017, 01:34:56 am
Code:
int **p; 
int i,j,M,N;


printf("Dwse to plithos twn grammwn tou pinaka: ");
scanf("%d",&M);
printf("Dwse to plithos twn stilwn tou pinaka: ");
scanf("%d",&N);


p=malloc(sizeof(int*)*M);
if (!p)
{
printf("Adynamia desmeusis mnimis");
exit(0);
}
for (i=0; i<M; i++)
{
p[i]=malloc(sizeof(int)*N);
if (!p[i])
{
printf("Adynamia desmeusis mnimis");
exit(0);
}
}




for (i=0; i<M; i++)
free (p[i]);
free(p);

γενικα ο κωδικας αυτος ειναι, αν δεν τρεχει τοτε εχεις θεμα καπου αλλου...


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 23, 2017, 01:38:45 am
Code:
int **p; 
int i,j,M,N;


printf("Dwse to plithos twn grammwn tou pinaka: ");
scanf("%d",&M);
printf("Dwse to plithos twn stilwn tou pinaka: ");
scanf("%d",&N);


p=malloc(sizeof(int*)*M);
if (!p)
{
printf("Adynamia desmeusis mnimis");
exit(0);
}
for (i=0; i<M; i++)
{
p[i]=malloc(sizeof(int)*N);
if (!p[i])
{
printf("Adynamia desmeusis mnimis");
exit(0);
}
}




for (i=0; i<M; i++)
free (p[i]);
free(p);

γενικα ο κωδικας αυτος ειναι, αν δεν τρεχει τοτε εχεις θεμα καπου αλλου...

το ίδιο έχω και γω ακριβώς.
στη malloc() κατι παει στραβα,γιατι αν κανω στατικη δεσμευση πινακα τρεχει κανονικα


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 23, 2017, 01:42:58 am
solved,ψήθηκε να τρέξει τώρα  :D


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 23, 2017, 17:51:44 pm
Εγω επειδη ειναι συγκεκριμενη η σκακιερα που ζηταει το εχω βαλει κατευθειαν 8,πρεπει να το γενικοποιησω?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 23, 2017, 17:56:55 pm
Εγω επειδη ειναι συγκεκριμενη η σκακιερα που ζηταει το εχω βαλει κατευθειαν 8,πρεπει να το γενικοποιησω?

ναι γιατί ζητάει δυναμικη δεσμευση της σκακιερας.
ουσιαστικα δημιουργεις 2 μεταβλητες (δείκτες γραμμής και στήλης) και παίρνεις από το πληκτρολογιο τις τιμες


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 23, 2017, 18:06:10 pm
Οκ,τοτε σε αυτην την περιπτωση ο πινακας δε πρεπει να ειναι παντα τετραγωνικος?Δηλαδη να κανω μια μονο scanf?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 23, 2017, 18:39:20 pm
Οκ,τοτε σε αυτην την περιπτωση ο πινακας δε πρεπει να ειναι παντα τετραγωνικος?Δηλαδη να κανω μια μονο scanf?

τετραγωνικός θα είναι,εγώ π.χ. έκανα 2 scanf,μπορείς και με μια


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 23, 2017, 19:52:34 pm
Δε θα ανεβει εργασια στις γιορτες?Και γενικα ποσες εμειναν ξερει κανεις?


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: katerinap99 on December 26, 2017, 01:09:39 am
στην main θα ζητάς από τον χρήστη να σου δίνει τις θέσεις των 8 βασιλισσών.η συνάρτηση σου θα παίρνει σαν όρισμα 8 θέσεις του πίνακα (εκεί που είναι οι βασίλισσες) και με βάση τις αποδεκτές λύσεις της wikipedia για το πρόβλημα αυτό θα ελέγχεις απλά αν οι θέσεις που έδωσε ο χρήστης είναι κομπλέ και καμιά βασίλισσα δεν τρώει την άλλη
πως γινεται η συναρτηση να παιρνει σαν ορισμα μονο τις θεσεις των βασιλισσων; ολο τον πινακα-σκακιερα δεν πρεπει να παιρνει;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 26, 2017, 03:11:46 am
πως γινεται η συναρτηση να παιρνει σαν ορισμα μονο τις θεσεις των βασιλισσων; ολο τον πινακα-σκακιερα δεν πρεπει να παιρνει;

ναι ναι,αλλιώς το είχα καταλάβει τότε.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 29, 2017, 05:13:13 am
ανέβηκε η 7η άσκηση για όποιον δεν το είδε (προθεσμία μέχρι 09/01)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 30, 2017, 22:09:24 pm
Υπαρχει κανα hint για το πως θα βρουμε τη θεση του πινακα με το μεγαλυτερο μετρο?Βρισκω τη διευθυνση,αλλα με μπερδευει πως θα το αναγω στο p(i)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: mpraskafoutas on December 30, 2017, 22:25:15 pm
Υπαρχει κανα hint για το πως θα βρουμε τη θεση του πινακα με το μεγαλυτερο μετρο?Βρισκω τη διευθυνση,αλλα με μπερδευει πως θα το αναγω στο p(i)

παίρνεις για κάθε στοιχείο του πίνακα το μέτρο του και μετά με μια μεταβλητή max (αρχικοποίηση σε μικρή τιμή) τσεκάρεις αν είναι μεγαλύτερο από τα προηγούμενα/


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on December 30, 2017, 22:29:25 pm
Ναι το κανω αυτο,αλλα πχ στα 10 στοιχεια το μαξ ειναι στο p[5].Οταν ομως τελειωνω την for,to i εχει γινει 10.Και βαζοντας στην printf &max δινει την διευθυνση,πχ 6564708

Οκ μολις το ελυσα


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Todo on December 30, 2017, 23:08:52 pm
Ναι το κανω αυτο,αλλα πχ στα 10 στοιχεια το μαξ ειναι στο p[5].Οταν ομως τελειωνω την for,to i εχει γινει 10.Και βαζοντας στην printf &max δινει την διευθυνση,πχ 6564708

Οκ μολις το ελυσα

Οταν στην φορ αναθέσεις τη μεγιστη τιμη τοτε το i εχει την τιμη που θες αρα την αποθηκεύεισε μια αλλη μεταβλητή και την κανεις printf με +1 γιατι η αρίθμηση ξεκιναει απο το 0


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Just Me on January 02, 2018, 20:02:51 pm
Τι εννοεί στην 7η άσκηση όταν λέει:
"να δεσμεύετε δυναμικά μνήμη για ένα πίνακα από Ν στοιχεία τύπου Complex."


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Sarge on January 02, 2018, 20:06:04 pm
Τι εννοεί στην 7η άσκηση όταν λέει:
"να δεσμεύετε δυναμικά μνήμη για ένα πίνακα από Ν στοιχεία τύπου Complex."

Πώς κάναμε εμείς sizeof(int), αυτός τα θέλει sizeof(struct Complex)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Just Me on January 02, 2018, 20:09:55 pm
Ευχαριστώ!!! :)


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Just Me on January 02, 2018, 21:56:13 pm
Προσπαθώ να δώσω τυχαίες τιμές στο [-1,1] στα πραγματικά και φανταστικά μέρη των μιγαδικών αλλά δεν λαμβάνει υπόψιν το διάστημα [-1,1] και μου παράγει πολύ μεγαλύτερους αριθμούς

    struct complex* array=malloc(N*sizeof(struct complex));
    srand(time(NULL));
    for(i=0; i<N; i++)
    {
    array.real=-1+(double)rand()/RAND_MAX*2;
    array.imaginary=-1+(double)rand()/RAND_MAX*2;
    }


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: s0r0n on January 02, 2018, 22:15:32 pm
Για βαλε σε παρενθεση το (double)rand()/RAND_MAX


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: Ούγκι on January 03, 2018, 14:22:23 pm
Προσπαθώ να δώσω τυχαίες τιμές στο [-1,1] στα πραγματικά και φανταστικά μέρη των μιγαδικών αλλά δεν λαμβάνει υπόψιν το διάστημα [-1,1] και μου παράγει πολύ μεγαλύτερους αριθμούς

    struct complex* array=malloc(N*sizeof(struct complex));
    srand(time(NULL));
    for(i=0; i<N; i++)
    {
    array.real=-1+(double)rand()/RAND_MAX*2;
    array.imaginary=-1+(double)rand()/RAND_MAX*2;
    }
Άλλαξε το *2 σε *2.0
Code:
array[i].real = -1.0+(double)rand()/RAND_MAX*2.0;


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: northmc on January 11, 2018, 14:59:59 pm
Το μοναδικό λάθος στο παραπάνω είναι ότι γράφεις array, αντί για array. Το conversion με το (double) επαρκεί.


Title: Re: [Δομημένος Προγραμματισμός] Απορίες σε ασκήσεις 2017/2018
Post by: northmc on January 11, 2018, 15:00:51 pm
Δεν γράφτηκε καλά :
Code:
array[i]
  εννοώ