[C] Άσκηση στην οποία θα ήθελα βοήθεια...

borat

Επιφανές μέλος

Ο Γιάννης.- αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών, επαγγέλεται Μαθηματικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 15,323 μηνύματα.
Πάνε χρόνια που άσχολήθηκα με επιτυχία στη C, και πλέον έχω ξεχάσει τα βασικά.

Έχω αυτή την άσκηση:

Ερώτημα Α.
Να γραφεί μια βιβλιοθήκη που θα περιέχει συναρτήσεις που θα υλοποιούν τις γνωστές πράξεις για διανύσματα και πίνακες διάστασης*mxn:

1.Εσωτερικό Γινόμενο διανυσμάτων

2.Εξωτερικό Γινόμενο

3.Συνάρτηση που θα δημιουργεί ένα μοναδιαίο πίνακα

4.Συνάρτηση που θα δημιουργεί ένα πίνακα μηδενικό

5.Συνάρτηση που θα δημιουργεί ένα πίνακα με όλα τα στοιχεία ένα σταθερό αριθμό*π.χ. 1

6.Συνάρτηση που θα δημιουργεί ένα διαγώνιο πίνακα συμμετρικό δεδομένου δύο διανυσμάτων της κύριας διαγωνίου και της
υπερδιαγωνίου

7.Πρόσθεση πινάκων

8.Αφαίρεση πινάκων

9.Πολλαπλασιασμός πίνακα με αριθμό

10.Πολλαπλασιασμός πίνακα με διάνυσμα

11.Πολλαπλασιασμός πίνακα με πίνακα

12.Συνάρτηση που θα διαβάζει τη διάσταση ενός πίνακα ή διανύσματος και θα τον δημιουργεί από στοιχεία που θα διαβάζει από το πληκτρολόγιο

13.Συνάρτηση που θα διαβάζει τη διάσταση ενός πίνακα ή διανύσματος και θα τον δημιουργεί από στοιχεία που θα διαβάζει από το αρχείο

14.Συνάρτηση που θα παίρνει ένα πίνακα και θα μας επιστρέφει τον ανάστροφο του

15.Συνάρτηση που θα παίρνει ένα πίνακα και θα μας επιστρέφει ένα διάνυσμα*
[α11,α21,…,αm1,α12,…,αm2,…,…,αmn]

16.Να δημιουργηθεί υπορουτίνα που θα τυπώνει στη οθόνη ή σε αρχείο ένα πίνακα
*
Ερώτημα Β.

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

πως μπορώ να την υλοποιήσω;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Τελευταία επεξεργασία:

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 30,791 μηνύματα.
Well, κυρίως το mxn με προβληματίζει εμένα. Ξέρεις αν θα δίνεται από τον χρήστη στα ορίσματα της συνάρτησης;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Bill

Επιφανές μέλος

Ο Bill αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 10,408 μηνύματα.
Αρχικά υλοποίησε σε αρχεία τις συναρτήσεις που θέλεις.Σε ενα header βαλει τα προτοτυπα των συναρτήσεων σου.
Σε κανενα αρχειο δεν θα υλοποιήσεις τη main.

Αυτο που θα βαλω γινεται με τον gcc compiler.

Kανεις compile καθε αρχειο σου.
gcc -c file1.o file1.c
gcc -c file2.o file2.c
...
Mετα με το προγραμμα ar θα γινει δημιουργια ενος archive αρχειου με ολα τα object code
ar qv mylib.a file1.o file2.o ...
και με
καταλογογραφεις τη βιβλιοθηκη σου.

Tωρα για καθε αρχειο που θες το κανεις compile με τον παρακατω τροπο.
gcc -o my_filename my_file.c -lmylib -L.


Με αυτον τον τροπο δημιουργεις τη βιβλιοθηκη σου.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Chimera

Δραστήριο μέλος

Η Chimera αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 723 μηνύματα.
Γίνε πιο συγκεκριμένος στις απορίες που έχεις :) ώστε να βοηθήσουμε κι εμείς.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

borat

Επιφανές μέλος

Ο Γιάννης.- αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών, επαγγέλεται Μαθηματικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 15,323 μηνύματα.
Γίνε πιο συγκεκριμένος στις απορίες που έχεις :) ώστε να βοηθήσουμε κι εμείς.


Πες μου τι θες να ξέρεις και θα το μάθεις.:D
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

fandago

Διακεκριμένο μέλος

Ο Ә□⌂щяңš αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 6,876 μηνύματα.
Πες μου τι θες να ξέρεις και θα το μάθεις.:D
Να σου δώσουμε την άσκηση λυμένη αποκλείεται. Αν κολλήσεις κάπου, εδώ είναι πολλοί ;)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 30,791 μηνύματα.
Για τις διαστάσεις μποράτιε: Τις δίνει ο χρήστης; :)
Επίσης πού ακριβώς έχεις κολλήσει; Έχεις υλοποιήσει κάτι;




And google! ;)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

borat

Επιφανές μέλος

Ο Γιάννης.- αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών, επαγγέλεται Μαθηματικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 15,323 μηνύματα.
Ναι ρε, προφανώς, δε θέλω λυμένη την άσκηση. ;)

Λυμένη την έχω ήδη. :P Αλλά δε θέλω να χρησιμοποιήσω τη λυμένη.

Κατ' αρχάς -για αυτό ρώτησα πως θα την υλοποιήσω, μάλλον δεν ήμουν σαφής:sorry:- θέλω ένα compiler και έναν editor ε; Ποιούς να κατεβάσω;

υγ1: για τις βιβλιοθήκες με βοήθησε ο Bill, αλλά θα τον ξαναχρειαστώ.
υγ2: τον αλγόριθμο τον έχω έτοιμο, στη γραφή θα έχω πρόβλημα.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Τελευταία επεξεργασία:

Chimera

Δραστήριο μέλος

Η Chimera αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 723 μηνύματα.
Ναι ρε, προφανώς, δε θέλω λυμένη την άσκηση. ;)

Λυμένη την έχω ήδη. :P Αλλά δε θέλω να χρησιμοποιήσω τη λυμένη.

Κατ' αρχάς -για αυτό ρώτησα πως θα την υλοποιήσω, μάλλον δεν ήμουν σαφής:sorry:- θέλω ένα compiler και έναν editor ε; Ποιούς να κατεβάσω;

υγ1: για τις βιβλιοθήκες με βοήθησε ο Bill, αλλάθα τον ξαναχρειαστώ.
υγ2: τον αλγόριθμο τον έχω έτοιμο, στη γραφή θα έχω πρόβλημα.

Για compiler και editor μαζί μια επιλογή ελαφριά σχετικά είναι DevC++. Αν είσαι σε Unix λειτουργικό τότε μπορείς να χρησιμοποιήσεις τον g++ που θα είναι λογικά μέσα πακέτο.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

borat

Επιφανές μέλος

Ο Γιάννης.- αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών, επαγγέλεται Μαθηματικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 15,323 μηνύματα.
Όχι, είμαι σε xp.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Chimera

Δραστήριο μέλος

Η Chimera αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 723 μηνύματα.

borat

Επιφανές μέλος

Ο Γιάννης.- αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών, επαγγέλεται Μαθηματικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 15,323 μηνύματα.
Επειδή το ψάχνω για κατέβασμα, έχεις να δώσεις κανένα link.


υγ: https://www.bloodshed.net/devcpp.html ?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Chimera

Δραστήριο μέλος

Η Chimera αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 723 μηνύματα.

borat

Επιφανές μέλος

Ο Γιάννης.- αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών, επαγγέλεται Μαθηματικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 15,323 μηνύματα.
Οκ! Κατέβασα αυτή τη διανομή: Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2
Dev-C++ version 4.9.9.2, includes full Mingw compiler system with GCC 3.4.2 and GDB 5.2.1


Κάτσε να περάσω σε φάση install και θα επανέλθω. :)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

borat

Επιφανές μέλος

Ο Γιάννης.- αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών, επαγγέλεται Μαθηματικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 15,323 μηνύματα.
Επανήλθα, κάτσε να κάνουμε ένα review για να θυμηθώ και εγώ και ταυρόχρονα να μάθω...

Θέλω να γράψω σε C, οπότε πάω Αρχείο->Νέο->Πηγαίο Αρχείο. Έτσι;:confused:

Και φαντάζομαι είμαι στον editor όπου και ξεκινάω να προγραμματίζω σε γλώσσα C, ok;

Ο φίλος καθηγητής ζητάει :"Να γραφεί μια βιβλιοθήκη που θα περιέχει συναρτήσεις που θα υλοποιούν τις γνωστές πράξεις για διανύσματα και πίνακες διάστασης*mxn", που σημαίνει -μάλλον- πως θα έχει κάποια άλλη δομή πέραν της main ε;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Τελευταία επεξεργασία:

Bill

Επιφανές μέλος

Ο Bill αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 10,408 μηνύματα.
Η βιβλιοθήκη δεν έχει main.Θες ουσιαστικα να δημιουργησεις ενα πακετο που περιεχει συναρτησεις τις οποιες θα καλεις κανωντας include τη βιβλιοθηκη που θα υλοποιήσεις.
Προσωρινες main μπορεις να δημιουργεις για να τεσταρεις τους κωδικες που γραφεις.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

borat

Επιφανές μέλος

Ο Γιάννης.- αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών, επαγγέλεται Μαθηματικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 15,323 μηνύματα.
Η βιβλιοθήκη δεν έχει main.Θες ουσιαστικα να δημιουργησεις ενα πακετο που περιεχει συναρτησεις τις οποιες θα καλεις κανωντας include τη βιβλιοθηκη που θα υλοποιήσεις.
Προσωρινες main μπορεις να δημιουργεις για να τεσταρεις τους κωδικες που γραφεις.

ΟΚ. Αλλά με τι δομή γράφεις μία βιβλιοθήκη; :hmm:

Κανένα link για να δω πως είναι γραμμένες οι βασικές βιβλιοθήκες;


υγ: πάνε 4 χρόνια από τότε που πέρασα τη C...:P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Bill

Επιφανές μέλος

Ο Bill αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 10,408 μηνύματα.
Mια δομη θα μπορουσε να ειναι η παρακατω:

Θα εχεις ενα header αρχειο με ονομα my_functions.h ,που περιεχει τα προτοτυπα των συναρτησεων, που θα εχει δομη
PHP:
/*prototypa sunartisewn*/
int eswteriko_ginomeno(int *vector1 , int *vector2);
int e3wteriko_ginomeno(int *vector1 , int *vector2);
...
και μετα σε αρχεια θα εχεις τις συναρτησεις σου.Για παραδειγμα,εστω οτι υλοποιείς την καθε συναρτηση σε ενα αρχειο, το αρχειο που θα εχει την υλοποιηση του εσωτερικου γινομενου θα εχει τη μορφη:
PHP:
#include "my_functions.h"

int eswteriko_ginomeno(int *vector1 , int *vector2){

int  eswteriko_ginomeno; /*metavliti apo8ikeysis apotelesmatos eswterikou ginomenou*/

/*function body*/

return eswteriko_ginomeno;
}

υγ: πάνε 4 χρόνια από τότε που πέρασα τη C...:P
Ώρα να την θυμηθείς:P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

borat

Επιφανές μέλος

Ο Γιάννης.- αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 40 ετών, επαγγέλεται Μαθηματικός και μας γράφει απο Ηνωμένο Βασίλειο (Ευρώπη). Έχει γράψει 15,323 μηνύματα.
Τότε με DevC++ είσαι κομπλέ :).


Aς πούμε πως γράφω αυτό σε C στο DevC++


#include <stdio.h>

main(int argc, char *argv[])
{ FILE *ifp, *ofp;
int n;
char buf[1024];
if (argc != 3) {
fprintf(stderr,
"Usage: %s <soure-file> <target-file>\n", argv[0]);
return 1;
}
if ((ifp = fopen(argv[1], "rb")) == NULL) { /* Open source file */
perror("fopen source-file");
return 1;
}
if ((ofp = fopen(argv[2], "wb")) == NULL) { /* Open target file */
perror("fopen target-file");
return 1;
}
while (!feof(ifp)) { /* While we don't reach the end of source */
/* Read characters from source file to fill buffer */
n = fread(buf, sizeof(char), sizeof(buf), ifp);
/* Write characters read to target file */
fwrite(buf, sizeof(char), n, ofp);
}
fclose(ifp);
fclose(ofp);
return 0;
}


πως τρέχω το πρόγραμμα; :hmm:
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 30,791 μηνύματα.
F9 : compile && run :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 0 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top