Προγραμματισμός σε C - Λύνουμε ασκήσεις

...ασύγχρονα μαθήματα γλώσσας C

Re: Προγραμματισμός σε C - Λύνουμε ασκήσεις

Δημοσίευσηαπό Star_Light » 30 Μάιος 2011, 20:59

Kαλησπερα και παλι... θελω να φτιαξω εναν οδηγο για τον προγραμματισμο με λειτουργικες μοναδες μιας και ειναι πολυ ωραιο θεμα για να κατανοησουμε καλυτερα τον προγραμματισμο και τα modules και να τον βαλω σε αυτην την ενοτητα αλλα ο μεταγλωτιστης μου προς το παρον εχει αλλη γνωμη :D (ΟΧΙ πως δεν το περιμενα οταν ξεκινουσα σημερα το μεσημερι να φτιαχνω το προγραμμα σε C αλλα τεσπα τι να κανουμε αυτα εχει η προγραμματιστικη ζωη)

ΛΟιπον το αρχικο module.c εχει μεσα τις 3 συναρτησεις... παραγοντικου , πρωτων αριθμων κτλπ καθως και μια για δυναμη αριθμων...
αυτες θα τις καλω αναλογα με την επιλογη του χρηστη.... εχω βαλει μεσα και μια switch δηλαδη πιο συγκεκριμενα

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

#include "module.h"
#include<math.h>

char main_interface(char ch)
{
   int n , a , b;
   double k, m;
   
   switch(ch)
   {
      case 'A':
      printf("To apotelesma einai: %d",paragontiko(n));
      break;
      case 'B':
      printf("To apotelesma einai: %d",gcd(a,b));
      case 'C':
      printf("To apotelesma einai: %f",pow(k,m));
      break;
      default:
      break;
   }
   }
   int paragontiko(int n)
   {
      printf("Dwste to n");
      scanf("%d",&n);
      if(n == 0)
         return 1;
         else
            return n*paragontiko(n-1);
         }
         int gcd(int a , int b)
         {
            printf("Dwste to a");
               scanf("%d",&a);   
                  printf("Dwste to b");
                     scanf("%d",&b);
                        if (b==0)   
                           return a;
                     else
                     return gcd(b , a%b);
            }
               double pow(double k , double m)
               {
                   printf("Dwste ton k");
                     scanf("%f",&k);
                        printf("Dwste ton m");
                           scanf("%f",&m);
                              if ( k==0)
                                 return 1;
                              else
                              return m*pow(m,k-1);
               }
            


το header οπου δηλωνω μεσα τις συναρτησεις ειναι το εξης

Κώδικας: Επιλογή όλων
#include<stdio.h>
int paragontiko(int n);
int gcd(int a, int b);
double pow(double k , double m);
char main_interface(char ch);


και τελος το module διεπαφης χρηστης ειναι το

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

#include "module.h"
#include<stdio.h>

int main(void)
{
   int ch;
   
   printf("Dwste A gia to paragontiko , B gia ton MKD kai C gia tin dunami \n");
   printf("Dwste q an thelete na bgeite apo to programma\n");
   while((ch=getchar())!='q')
   {
      main_interface(ch);
   }
   printf("Bye World");
   
   return 0;
}


Το λαθος που παιρνω ειναι το εξης

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

/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
:(:(:(:(

τι ειναι???? Γιατι δεν εχει οριστει η main δεν καταλαβαινω.... εψαξα και σε ξενες σελιδες για το θεμα μου
αλλα αυτοι που ποσταριζαν δεν εβαζαν μεσα καποιο αλλο αρχειο αν ειδα καλα οποτε τους ελεγαν να φτιαξουν πρωτα την main
και μετα..... μπορει κανεις να βοηθησει??!
Γνώσεις ⇛ 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 - Λύνουμε ασκήσεις

Δημοσίευσηαπό M.Jackson » 30 Μάιος 2011, 21:05

τα κομμάτια είναι σε ξεχωριστά αρχεία ή σε ένα;
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Re: Προγραμματισμός σε C - Λύνουμε ασκήσεις

Δημοσίευσηαπό Star_Light » 30 Μάιος 2011, 21:19

M.Jackson έγραψε:τα κομμάτια είναι σε ξεχωριστά αρχεία ή σε ένα;


Καλησπερα. Ξεχωριστα ειναι!
Τα εχω δηλαδη ξεχωριστα μεσα στον καταλογο
που εχω για τα προγραμματα σε C.
Γνώσεις ⇛ 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 - Λύνουμε ασκήσεις

Δημοσίευσηαπό Star_Light » 30 Μάιος 2011, 21:27

Ελπιζω να βρω λυση αποψε... για να προλαβω να ανεβασω και τον οδηγο. Σε αυτο το σφαλμα κολλαω!
Την λογικη την εχω καταλαβει καθως και την ροη του προγραμματος... εκτος και αν ετσι νομιζω...
δεν ξερω.... θα δουμε. Παντως καιγομαι για βοηθεια οποιος μπορει θα με υποχρεωσει!!! Θελω οπωσδηποτε να το κανω να τρεξει!!!!!!!!!!!!!
Καλα νταξει αν ετρεχε εξαρχης χωρις να ποσταριζα εδω θα ενιωθα χακερ λοοοοοοοοοοοολ
Γνώσεις ⇛ 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 - Λύνουμε ασκήσεις

Δημοσίευσηαπό M.Jackson » 30 Μάιος 2011, 22:08

δοκίμασε να τα ρίξεις όλα σε ένα αρχείο με όνομα main.c και καν το compile.
Παλιά όταν εφτιαχνα ενα τεραστιο πρόγραμμα σε Java είχα κάποια προβλήματα με το Compile και τα ερειξα ολα σε ενα. Το ιδιο εκανα και σε ενα με C++.
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Re: Προγραμματισμός σε C - Λύνουμε ασκήσεις

Δημοσίευσηαπό simosx » 30 Μάιος 2011, 22:15

Star_Light έγραψε:Ελπιζω να βρω λυση αποψε... για να προλαβω να ανεβασω και τον οδηγο. Σε αυτο το σφαλμα κολλαω!
Την λογικη την εχω καταλαβει καθως και την ροη του προγραμματος... εκτος και αν ετσι νομιζω...
δεν ξερω.... θα δουμε. Παντως καιγομαι για βοηθεια οποιος μπορει θα με υποχρεωσει!!! Θελω οπωσδηποτε να το κανω να τρεξει!!!!!!!!!!!!!
Καλα νταξει αν ετρεχε εξαρχης χωρις να ποσταριζα εδω θα ενιωθα χακερ λοοοοοοοοοοοολ


Θα μπορούσα να βοηθήσω. Ωστόσο μπορείς να τα βάλεις τα αρχεία σε ένα αποθετήριο;
Ξέρεις από github.com; Δες viewtopic.php?f=6&t=5424&start=0
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Προγραμματισμός σε C - Λύνουμε ασκήσεις

Δημοσίευσηαπό Star_Light » 30 Μάιος 2011, 22:16

M.Jackson έγραψε:δοκίμασε να τα ρίξεις όλα σε ένα αρχείο με όνομα main.c και καν το compile.
Παλιά όταν εφτιαχνα ενα τεραστιο πρόγραμμα σε Java είχα κάποια προβλήματα με το Compile και τα ερειξα ολα σε ενα. Το ιδιο εκανα και σε ενα με C++.


ΚΟιτα αν το εκανα αυτο εξαρχης το προγραμμα θα ετρεχε μια χαρα... ουσιαστικα μια switch θα εβαζα και 3 ετικετες

σε καθεμια ετικετα θα γινοταν κληση και της αντιστοιχης συναρτησης η οποια θα επεστρεφε στην main() το αποτελεσμα και αυτη

θα το εκτυπωνε μεσω της printf . Αλλα ο σκοπος μου ειναι αλλος... θελω να δω αν μπορω να υλοποιησω τον προγραμματισμο

με λειτουργικες μοναδες διοτι σιγουρα θα το βρω μπροστα μου .... Παρολαυτα σε ευχαριστω που ασχοληθηκες και ελπιζω να βρω την λυση αν ειναι και καποιος αλλος που μπορει να βοηθησει θα με υποχρεωσει ;D
Γνώσεις ⇛ 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 - Λύνουμε ασκήσεις

Δημοσίευσηαπό Star_Light » 30 Μάιος 2011, 22:19

simosx έγραψε:
Θα μπορούσα να βοηθήσω. Ωστόσο μπορείς να τα βάλεις τα αρχεία σε ένα αποθετήριο;
Ξέρεις από github.com; Δες viewtopic.php?f=6&t=5424&start=0


Δεν εχω ιδεα απο αυτο που μου λες :D
δυστυχως.
Γνώσεις ⇛ 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 - Λύνουμε ασκήσεις

Δημοσίευσηαπό simosx » 30 Μάιος 2011, 22:49

@Star_Light: είδα τον κώδικα σου και κάτι με έσπρωξε να φτιάξω αποθετήριο.

Τρέξε
Κώδικας: Επιλογή όλων
sudo apt-get install git


και μετά
Κώδικας: Επιλογή όλων
git clone git://github.com/simos/starlight.git


Μπαίνεις στον υποκατάλογο starlight και γράφεις make. Αυτό ήταν! Μεταγλώττιση!
Το πρόγραμμα φαίνεται να μη δουλεύει σωστά, οπότε θέλει παραπάνω δουλειά.
Αν διαβάζεις το περιοδικό LinuxInside, στο δεύτερο τεύχος υπάρχει άρθρο μου για το Git
και το πως βοηθάει στο να προγραμματίζεις.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Προγραμματισμός σε C - Λύνουμε ασκήσεις

Δημοσίευσηαπό Star_Light » 30 Μάιος 2011, 22:54

linuxinside πηρα τωρα το τευχος μαιου - ιουνιου... το τελευταιο οχι το καινουργιο.

Απλα δεν καταλαβαινω ποια η διαφορα αν το βαλω στο αποθετηριο πχ????

ειμαι λιγο ασχετος με το θεμα για αυτο ρωταω....
Γνώσεις ⇛ 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
Εκτύπωση

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

Επιστροφή στο Μαθήματα C