Παραδείγματα & Ασκήσεις στην C

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

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό migf1 » 10 Ιούλ 2011, 20:41

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

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό Qdata » 10 Ιούλ 2011, 21:05

migf1 έγραψε:Πολύ περιοριστικό μου ακούγεται εμένα.


Συμφωνώ, γιατί αν πχ ο migf1 έχει διάφορες ασκήσεις, τι;Να μην τις postάρει; :P
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό linuxs » 10 Ιούλ 2011, 21:38

Οκ! Άκυρο... ;)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό migf1 » 11 Ιούλ 2011, 09:35

Πρόγραμμα που διαβάζει ένα string, το αντιστρέφει και το τυπώνει...
Κώδικας: Επιλογή όλων

/* --------------------------------------------------------------
* Από: migf1
* Διάβασμα ενός string, αντιστροφή του και τύπωμά του στην οθόνη
* --------------------------------------------------------------
*/

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

// ------------------------------------------------------------------------------------
// Διαβάζει έως len-1 χαρακτήρες ή μέχρι να πατηθεί ENTER και τους αποθηκεύει στο string
// s. Επιστρέφει το s χωρίς το ENTER και με μηδενισμένο τον τελικό χαρακτήρα
//
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;
}

// ------------------------------------------------------------------------------------
// Αντιστρέφει το string s. Βάζει από έναν δείκτην στην αρχή και το τέλος του s, κι
// εναλλάσει τους χαρακτήρες τους μέχρι να συναντηθούν οι δυο δείκτες στη μέση του s
// ΣΗΜΑΝΤΙΚΟ: το s πρέπει να είναι ήδη δημιουργημένο.
//
char *s_reverse(char *s)
{
if ( !s ) // early exit
return NULL;

char *cp1, *cp2, dummy;

cp2 = s + strlen(s) - 1; // set cp2 at end of s
for (cp1=s; cp1 < cp2; cp1++, cp2--) {
dummy = *cp1;
*cp1 = *cp2;
*cp2 = dummy;
}

return s;
}

// ----------------------------------------------------------------------------------------
int main( void )
{
char s[255+1];

printf("Enter a string: ");
s_get(s, 256);
printf("Your string revesred is:\n\t%s", s_reverse(s) );

fflush(stdin); getchar();
exit( EXIT_SUCCESS );
}



Έχω μια ακόμα άσκηση, την οποία μάλιστα την ζητούσαν πολλοί σε job-interviews: γράψτε ένα πρόγραμμα που διαβάζει μια πρόταση και αντιστρέφει τις λέξεις της. Π.χ. η πρόταση "γειά σου κόσμε" γίνεται: "κόσμε σου γεια".

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

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό maenolis » 11 Ιούλ 2011, 09:41

migf1 έγραψε:Έχω μια ακόμα άσκηση, την οποία μάλιστα την ζητούσαν πολλοί σε job-interviews: γράψτε ένα πρόγραμμα που διαβάζει μια πρόταση και αντιστρέφει τις λέξεις της. Π.χ. η πρόταση "γειά σου κόσμε" γίνεται: "κόσμε σου γεια".

Στην Ελλάδα αυτό;
1 Γνώσεις → Linux: Αρχάριος ┃ Προγραμματισμός: c,c++,sql,html,css ┃ Αγγλικά: Μέτριος
2 Λειτουργικό →Dual boot Ubuntu 12.04 64-bit (en_US.UTF-8) & Windows 7 Professional 64-bit
3 Προδιαγραφές → Intel® Core™ i3-2330M CPU @ 2.20GHz × 4 ‖ RAM 7.7 Gb
4 Κάρτες γραφικών: Intel® HD3000
5 Σκληρός Δίσκος: → OCZ Vertex4 Sata III 128Gb
Άβαταρ μέλους
maenolis
punkTUX
punkTUX
 
Δημοσιεύσεις: 261
Εγγραφή: 12 Μάιος 2011, 09:56
Τοποθεσία: Ν.Κόσμος
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό migf1 » 11 Ιούλ 2011, 09:47

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

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό maenolis » 11 Ιούλ 2011, 09:55

Α γιατί χάρηκα ότι έγινε εδώ αυτό!! Επειδή εδώ το μέσο μπακάλικο δεν αρκείται στην C αλλά τα θέλει όλα...
1 Γνώσεις → Linux: Αρχάριος ┃ Προγραμματισμός: c,c++,sql,html,css ┃ Αγγλικά: Μέτριος
2 Λειτουργικό →Dual boot Ubuntu 12.04 64-bit (en_US.UTF-8) & Windows 7 Professional 64-bit
3 Προδιαγραφές → Intel® Core™ i3-2330M CPU @ 2.20GHz × 4 ‖ RAM 7.7 Gb
4 Κάρτες γραφικών: Intel® HD3000
5 Σκληρός Δίσκος: → OCZ Vertex4 Sata III 128Gb
Άβαταρ μέλους
maenolis
punkTUX
punkTUX
 
Δημοσιεύσεις: 261
Εγγραφή: 12 Μάιος 2011, 09:56
Τοποθεσία: Ν.Κόσμος
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

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

maenolis έγραψε:Α γιατί χάρηκα ότι έγινε εδώ αυτό!! Επειδή εδώ το μέσο μπακάλικο δεν αρκείται στην C αλλά τα θέλει όλα...

Δεν ξέρω καθόλου αν σε γλώσσες τύπου Ruby και Python λύνεται πιο εύκολα αυτή η άσκηση. Σε C πάντως δεν θα την χαρακτήριζα εύκολη. Ειδικά αν θελήσουμε να διατηρήσουμε απείραχτα τα κενά διαστήματα μεταξύ των λέξεων.

Αν δηλαδή, το: "γεια___σου__ρε______κόσμε_άπονε" θελήσουμε να το κάνουμε: "άπονε_κόσμε______ρε__σου_γεια" είναι ολίγον παλουκάκι (όπου _ κενό διάστημα). Εγώ αν είναι θα σας δείξω έναν τρόπο που ναι μεν αντιστρέφει τις λέξεις, αλλά στο αποτέλεσμα τις διαχωρίζει με ένα μόνο κενό ανάμεσα στη κάθεμιά τους (κι ας έχει περισσότερα η αυθεντική πρόταση).

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

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό linuxs » 11 Ιούλ 2011, 12:44

Να την δοκιμάσω τουλάχιστον εγώ μόνος? ;/ thx
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Παραδείγματα & Ασκήσεις στην C

Δημοσίευσηαπό maenolis » 11 Ιούλ 2011, 12:45

Και εγώ λέω να δοκιμάσω ..2-3 μέρες διορία οκ;
1 Γνώσεις → Linux: Αρχάριος ┃ Προγραμματισμός: c,c++,sql,html,css ┃ Αγγλικά: Μέτριος
2 Λειτουργικό →Dual boot Ubuntu 12.04 64-bit (en_US.UTF-8) & Windows 7 Professional 64-bit
3 Προδιαγραφές → Intel® Core™ i3-2330M CPU @ 2.20GHz × 4 ‖ RAM 7.7 Gb
4 Κάρτες γραφικών: Intel® HD3000
5 Σκληρός Δίσκος: → OCZ Vertex4 Sata III 128Gb
Άβαταρ μέλους
maenolis
punkTUX
punkTUX
 
Δημοσιεύσεις: 261
Εγγραφή: 12 Μάιος 2011, 09:56
Τοποθεσία: Ν.Κόσμος
Εκτύπωση

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

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

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

cron