Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 02 Οκτ 2011, 09:46

migf1 έγραψε:Γίνεται να μετακινήσεις όπου θέλεις με την memmove()... π.χ. το αριστερά θα σου χρειαστεί για την table_delete_element(table, element);

Για debugging, εγώ πάω στα Windows και χρησιμοποιώ τον ενσωματωμένο debugger της Pelles-C... στα Project Options, ενεργοποιείς το debug-info στον compiler, assembler και linker (έχει σχετικές επιλογές για το καθένα από αυτά) και μετά απλά κάνεις compile. Κατόπιν βάζεις με δεξί κλικ breakpoints στα σημεία που θες να σταματάει το πρόγραμμά σου για να εξετάζεις τις τιμές των μεταβλητών, και αντί για Run διαλέγεις Go Debug.

Ναι, πως το κανω ομως; Βαζω αναποδα το προορισμο και την πηγη;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 02 Οκτ 2011, 10:52

Μάλλον δεν έχω πιάσει ακριβώς τι ρωτάς.

Για παράδειγμα, για να σβήσεις το 6 από τον πίνακα: 12 45 6 78 3 12, με ένα memmove() μετακινείς τα στοιχεία από το 78 και μετά μια θέση προς τα αριστερά.

Αν π.χ. pos είναι η θέση που βρίσκεται το 6, τότε..

Κώδικας: Επιλογή όλων

memmove( &table->buffer[ pos ], &table->buffer[ pos+1 ], (table->bufmaxlen - pos - 1) * sizeof(int) )

Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 02 Οκτ 2011, 14:40

Προσπάθησα να κάνω την delete num αλλά κάπου έχω πρόβλημα, κάνει compile μια χαρά αλλά όταν εκτελείται η συνάρτηση μου εκτυπώνει διάφορα παράξενα. Όταν κάνω backtrace στο gdb μου λέει κάτι για την table cleanup :problem:
http://ideone.com/MEQW0
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 02 Οκτ 2011, 21:03

Τι σου λέει για την cleanup ο gdb?
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 02 Οκτ 2011, 21:13

migf1 έγραψε:Τι σου λέει για την cleanup ο gdb?
Μου βγάζει αυτό εδώ:
http://pastebin.ubuntu-gr.org/mdace0e4
Επίσης μήπως ξέρεις τι είναι στο περίπου τα frames και το backtrace; Έχουν να κάνουν με debugging....
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 02 Οκτ 2011, 22:05

Που λέει για το table_cleanup()? δεν το βλέπω.

ΥΓ1. Ναι, για debugging είναι.
ΥΓ2. Δοκίμασες τον debugger της Pelles-C? Εκεί είναι πολύ πιο ξεκάθαρα τα πράγματα!
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό stamatiou » 03 Οκτ 2011, 20:58

migf1 έγραψε:Που λέει για το table_cleanup()? δεν το βλέπω.

ΥΓ1. Ναι, για debugging είναι.
ΥΓ2. Δοκίμασες τον debugger της Pelles-C? Εκεί είναι πολύ πιο ξεκάθαρα τα πράγματα!

Το Table_Cleanup μου το λέει στον gdb.
ΥΓ2. Όχι, μαθαίνω από τον gdb γιατί τον χρησιμοποιεί ένα βιβλίο που διαβάζω αυτόν το καιρό, αλλά τα frames και το backtrace τι είναι;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 04 Οκτ 2011, 03:42

stamatiou έγραψε:
Εντάξει, δεν μαθαίνεις κιόλας με αυτά! Αυτά είναι για επίπεδο migf1 που λέει ο λόγος! Πάντως για C δεν βλέπω τίποτα, μόνο C# :(


Ε ναι.

Ουτε εγω ειδα για C πολλα πραγματα :/ αλλα δεν πειραζει.... αμα ξερεις καλη C ή εχεις καταλαβει καποιες δυσκολες
εννοιες στην C μπορεις μετα να πας και σε αλλες γλωσσες πχ Python και να σου φαινονται πολυ ευκολοτερα και κατ' επεκτασην
να αρχισεις κανα προτζεκτακι μπας και μπει και κανα ρημαδι φράγκο στην τσέπη μας επιτέλους. Αλλα εχει και για network administrators / ή για υπηρεσιες σε λειτουργικα συστηματα κτλπ. ... εδω ρε συ πληρωνονται ολοι οι αχρηστοι
ή πληρωνοντουσαν τοσα χρονια και εμεις που ξερουμε 1-2 πραγματακια εστω δεν μπορουμε να παρουμε εστω τα μισα? Ασε με σε παρακαλω για αυτο βουλιαξαμε σαν χωρα. Επομενως
Μπορουμε!

ΕΓω εδωσα το σαιτ για οποιον θελει μια διεξοδο γιατι φαινεται πολυ καλο! Θα κανω προφιλ συντομα... και ελπιζω να μην με κλεψουν απο ... αποσταση :lol: :lol:
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 04 Οκτ 2011, 03:52

Στο μεταξυ επειδη ανακαλυψα καποια κενα σε ροες απλων εντολών
αρχισα να κοιταξω ξανα αυτες τις εντολες και να κανω πρακτικη μαζι τους πιο βαθεια.
πχ
Κώδικας: Επιλογή όλων

#include<stdio.h>
int main()
{
int i , j ,z, c=0 ;

for(i=0; i<8; i++)
{

for(j=0; j<7; j++)
{

for(z=0; z<6; z++)
{
c++;
printf("%d",c);
printf("\n blabla");
printf("\n");

}
}
}
return 0;
}


Θελω εδω να ρωτησω και την δικη σας γνωμη τι παιζει απο αποψη υπολογιστικης πολυπλοκοτητας
Φανταζομαι οι 2 βρογχοι θα ηταν ταχυτεροι απο τους 3 που εχω συνολικα παραπανω ετσι?
ΣΤην C μπορεις να χρησιμοποιησεις οσους ενθετους θες , η πολυπλοκοτητα στο παραπανω
(χρονική) ειναι (ξεκινωντας απο μεσα προς τα εξω) 6 * 7 * 8 = 336
βεβαια η μεταβλητη c που έχω βαλει να αυξανεται καθε φορα μεσα στην τελευταια for ενω την εχω αρχικοποιησει σε 0
δειχνει και τον αριθμο των βηματων που απαιτουνται.

Βεβαια μιλωντας αυστηρα πιο πανω δεν πιστευω οτι υφίσταται ο ορος της πολυπλοκοτητας γιατι καταρχην δεν υπαρχει
καποιος αλγοριθμος που να υπολογιζεται παρα μονο 2 printf που εκτυπωνουν. Απλα το εβαλα ετσι για να το δω αρχικα.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 04 Οκτ 2011, 03:55

http://einstein.drexel.edu/courses/Comp ... /C_basics/

και ενα καλο τουτοριαλ που βρηκα στο ιντερνετ :)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι