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

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

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

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

Δημοσίευσηαπό stamatiou » 27 Ιούλ 2011, 20:47

To atoi(*array) είναι λάθος;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 27 Ιούλ 2011, 22:19

stamatiou έγραψε:To atoi(*array) είναι λάθος;

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

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

Δημοσίευσηαπό Star_Light » 27 Ιούλ 2011, 22:56

ΠΙΣΤΕΥω παντως πως μια καλη ασκησουλα που θα συνδυαζε και εντολες απο το τερματικο αλλα και στοιχεια προγραμματισμου θα ηταν να παρουμε τον κωδικα της τριλιζας που εχει δωσει ο migf1 και να τον μεταγλωττισουμε ωστε να τρεχει στο δικο μας μηχανημα... εχεις βαλει καποιο αρχειο make μεσα migf1?????
Γνώσεις ⇛ 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++

Δημοσίευσηαπό migf1 » 27 Ιούλ 2011, 23:17

Star_Light έγραψε:ΠΙΣΤΕΥω παντως πως μια καλη ασκησουλα που θα συνδυαζε και εντολες απο το τερματικο αλλα και στοιχεια προγραμματισμου θα ηταν να παρουμε τον κωδικα της τριλιζας που εχει δωσει ο migf1 και να τον μεταγλωττισουμε ωστε να τρεχει στο δικο μας μηχανημα... εχεις βαλει καποιο αρχειο make μεσα migf1?????

Εδώ βρε συ δεν καταφέρατε να βγάλετε το δεντράκι με τα for-loops :lol:

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

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

Δημοσίευσηαπό Star_Light » 27 Ιούλ 2011, 23:19

migf1 έγραψε:
Star_Light έγραψε:ΠΙΣΤΕΥω παντως πως μια καλη ασκησουλα που θα συνδυαζε και εντολες απο το τερματικο αλλα και στοιχεια προγραμματισμου θα ηταν να παρουμε τον κωδικα της τριλιζας που εχει δωσει ο migf1 και να τον μεταγλωττισουμε ωστε να τρεχει στο δικο μας μηχανημα... εχεις βαλει καποιο αρχειο make μεσα migf1?????

Εδώ βρε συ δεν καταφέρατε να βγάλετε το δεντράκι με τα for-loops :lol:

Την έλυσες αυτή την τελευταία άσκηση εσύ;


Βασικα οχι να φτιαξουμε το αρχειο make εμεις!!!!!!!!! Μπα οχι δεν την ελυσα γιατι λυνω άλλες....
ξεκινησα απο χθες απο πολυ βασικα πραγματα παλι για να κανω μια επαναληψη!
και εχω κολλησει τωρα στην δυαδικη προσθεση. Εχει πολλα που πρεπει να ξερεις τελικα.

Να ριξω σαν απορια την δυαδικη προσθεση?
Γνώσεις ⇛ 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++

Δημοσίευσηαπό migf1 » 27 Ιούλ 2011, 23:21

Για δοκίμασε να τη λύσεις και πόσταρε κώδικα αν είναι.

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

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

Δημοσίευσηαπό Star_Light » 27 Ιούλ 2011, 23:27

migf1 έγραψε:Για δοκίμασε να τη λύσεις και πόσταρε κώδικα αν είναι.

ΥΓ. Τι να την κάνουμε την δυαδική πρόσθεση, εδώ είμαστε πολύυυυυ πίσω ακόμα!


Οκ... παω να δοκιμασω την τυχη μου. :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/C++

Δημοσίευσηαπό migf1 » 27 Ιούλ 2011, 23:31

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

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

Δημοσίευσηαπό Star_Light » 28 Ιούλ 2011, 00:19

Κώδικας: Επιλογή όλων
#include<stdio.h>
#define BUFFER_SIZE 255
#define INT_LEN 1
char *s_get(char *s, size_t len)
{
char *cp;
for (cp=s; (*cp=getc(stdin)) != '\n' && (cp-s) < len-1; cp++ )
; // for-loop with empty body
*cp = '\0'; // null-terminate last character

return s;
}

int main(void)
{

char table_characters[BUFFER_SIZE]="";
int table_integers[INT_LEN];
int i;


char x;

while( x != 'K')
{
printf("\nenter a character: \n\n");
s_get(table_characters, BUFFER_SIZE); // διάβασμα γραμμής εισόδου στο BUFFER_SIZE
x = *table_characters;
printf("You entered: \n");
putchar( x );
}
for(i=0; i<INT_LEN; i++)
{
printf("Dwste ton prwto akeraio: \n");
scanf("%d",&table_integers[i]);
printf("Dwste ton deutero akeraio: \n");
scanf("%d",&table_integers[i+1]);
printf("To apotelesma einai %d",table_integers[i]*table_integers[i+1]);
}
return 0;
}



τα 2 πρωτα ερωτηματα. Απλα δεν καταφερα να εμφανιζω και το αν δινει ο χρηστης 2 ακεραιους ας πουμε 2 και 7 το 2*7 δεν καταφερα να το βγαλω.... :/

Αργησα περιπου 48 λεπτα... και με ετοιμη συναρτηση! Ε νταξει ναι θελουμε δουλεια ακομη αρκετη. :D

Π.Σ Για το 2ο ερωτημα δεν μπορεσα να χρησιμοποιησω καθολου την συναρτηση που δινεις μιας και ο τυπος που επιστρεφει ειναι char. Περα απο τις char παραμετρους.
Γνώσεις ⇛ 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++

Δημοσίευσηαπό migf1 » 28 Ιούλ 2011, 00:54

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

Σας δίνω τη λύση της άσκησης, την οποία για να είμαι ειλικρινής πίστευα πως θα σας φαινόταν πολύ απλή. Γράψτε αν είναι τι δεν καταλαβαίνετε (αν υπάρχουν σημεία που δεν καταλαβαίνετε) για να τα ξεδιαλύνουμε αν είναι, διότι αυτά είναι πάρα πολύ βασικά πράγματα.

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

Για δείτε τη λύση και γράψτε απορίες να τις επιλύσουμε αν είναι:

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

#include <stdio.h>
#include <stdlib.h>

#define MAXINBUF 255+1

// ***********************************************************
char *s_get(char *s, size_t len)
{
char *cp;

for (cp=s; (*cp=getc(stdin)) != '\n' && (cp-s) < len-1; cp++ )
; // for-loop with empty body
*cp = '\0'; // null-terminate last character

return s;
}

// ***********************************************************
int main( void )
{
char inbuf[ MAXINBUF ];
char c;
int n1, n2;
long l1, l2;
float f1, f2;

printf("Enter a character: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
c = *inbuf; // απομόνωση του 1ου χαρακτήρα
printf("\tyou entered: %c\n\n", c); // τύπωμα του χαρακτήρα

printf("Integer #1: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
n1 = atoi( inbuf ); // μετατροπή της σε int (n1)
printf("Integer #2: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
n2 = atoi( inbuf ); // μετατροπή της σε int (n2)
printf("\t%d * %d = %d\n\n", n1, n2, n1*n2); // τύπωμα του γινομένου: n1*n2

printf("Long #1: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
l1 = atol( inbuf ); // μετατροπή της σε long (l1)
printf("Long #2: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
l2 = atol( inbuf ); // μετατροπή της σε long (l2)
printf("\t%ld + %ld = %d\n\n", l1, l2, l1+l2); // τύπωμα του αθροίσματος: l1+l2

printf("Float #1: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
f1 = atof( inbuf ); // μετατροπή της σε float (f1)
printf("Float #2: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
f2 = atof( inbuf ); // μετατροπή της σε float (f2)
printf("\t%f / %f = %f\n\n", f1, f2, f1/f2); // τύπωμα της διαίρεσης: f1/f2

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

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

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