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

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

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

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

Δημοσίευσηαπό stamatiou » 17 Φεβ 2012, 23:16

Τι έγινε βρε παιδιά; Λίγο έλλειψα και χάθηκα! :D Τι άσκηση κάνουμε τώρα;
1Γνώσεις→Linux: Αρχάριος┃Προγραμματισμός:Αρχάριος┃Αγγλικά:Μέτριος
2Λειτουργικό→Arch Linxu 32bit
3Προδιαγραφές→2x AMD AthlonX2 DualCore QL-66 ‖ RAM 1751 MiB ‖ Hewlett-Packard 308C - Hewlett-Packard Compaq 615
4Κάρτες γραφικών:ATI RS780M/RS780MN [Radeon HD 3200 Graphics][1002:9612]
5Δίκτυα:eth0:Marvell 88E8042 PCI-E Fast Ethernet Controller [11ab:4357] (rev 10)⋮eth1: Broadcom BCM4312 802.11b/g LP-PHY [14e4:4315](rev 01)
Πρωσοπική Ιστοσελίδα: http://giwrg98.co.cc
Άβαταρ μέλους
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 17 Φεβ 2012, 23:22

stamatiou έγραψε:Τι έγινε βρε παιδιά; Λίγο έλλειψα και χάθηκα! :D Τι άσκηση κάνουμε τώρα;


:lol: :lol: :lol:

κάναμε ενα διαλλειμα απο τις κρυπτογραφησεις (βασικα εγω εκανα γιατι ο αλλος ριχνει κωδικες με τη σέσολα :lol: )
για να δουμε τα strings. Κάναμε δυναμική δέσμευση μνήμης.
Γνώσεις ⇛ 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 » 17 Φεβ 2012, 23:25

σταματιου αν εχεις καμια απορια... ριξτην να την συζητησουμε φιλε μου. :)
Γνώσεις ⇛ 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

Δημοσίευσηαπό stamatiou » 17 Φεβ 2012, 23:47

Δοκίμασα να κάνω υλοποίηση και με τη συνάρτηση αλλά δεν ξέρω κατά πόσο είναι ο αλγόριθμος σωστός... :/
http://ideone.com/FPUnS
1Γνώσεις→Linux: Αρχάριος┃Προγραμματισμός:Αρχάριος┃Αγγλικά:Μέτριος
2Λειτουργικό→Arch Linxu 32bit
3Προδιαγραφές→2x AMD AthlonX2 DualCore QL-66 ‖ RAM 1751 MiB ‖ Hewlett-Packard 308C - Hewlett-Packard Compaq 615
4Κάρτες γραφικών:ATI RS780M/RS780MN [Radeon HD 3200 Graphics][1002:9612]
5Δίκτυα:eth0:Marvell 88E8042 PCI-E Fast Ethernet Controller [11ab:4357] (rev 10)⋮eth1: Broadcom BCM4312 802.11b/g LP-PHY [14e4:4315](rev 01)
Πρωσοπική Ιστοσελίδα: http://giwrg98.co.cc
Άβαταρ μέλους
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 18 Φεβ 2012, 00:16

stamatiou έγραψε:Δοκίμασα να κάνω υλοποίηση και με τη συνάρτηση αλλά δεν ξέρω κατά πόσο είναι ο αλγόριθμος σωστός... :/
http://ideone.com/FPUnS


Ποιον αλγοριθμο θες να υλοποιήσεις του Καισαρα ή αυτον με την απλη μετατοπιση ?
Γνώσεις ⇛ 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

Δημοσίευσηαπό stamatiou » 18 Φεβ 2012, 00:17

Star_Light έγραψε:
stamatiou έγραψε:Δοκίμασα να κάνω υλοποίηση και με τη συνάρτηση αλλά δεν ξέρω κατά πόσο είναι ο αλγόριθμος σωστός... :/
http://ideone.com/FPUnS


Ποιον αλγοριθμο θες να υλοποιήσεις του Καισαρα ή αυτον με την απλη μετατοπιση ?

Τώρα προσπάθησα να κάνω του Καίσαρα αλλά ουσιαστικά και αυτός δεν κάνει απλή μετατόπιση;
1Γνώσεις→Linux: Αρχάριος┃Προγραμματισμός:Αρχάριος┃Αγγλικά:Μέτριος
2Λειτουργικό→Arch Linxu 32bit
3Προδιαγραφές→2x AMD AthlonX2 DualCore QL-66 ‖ RAM 1751 MiB ‖ Hewlett-Packard 308C - Hewlett-Packard Compaq 615
4Κάρτες γραφικών:ATI RS780M/RS780MN [Radeon HD 3200 Graphics][1002:9612]
5Δίκτυα:eth0:Marvell 88E8042 PCI-E Fast Ethernet Controller [11ab:4357] (rev 10)⋮eth1: Broadcom BCM4312 802.11b/g LP-PHY [14e4:4315](rev 01)
Πρωσοπική Ιστοσελίδα: http://giwrg98.co.cc
Άβαταρ μέλους
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 18 Φεβ 2012, 00:20

stamatiou έγραψε:
Τώρα προσπάθησα να κάνω του Καίσαρα αλλά ουσιαστικά και αυτός δεν κάνει απλή μετατόπιση;


Απλη μετατόπιση κανει ναι. Βασικα κάνει την εξής μετατόπιση .

Παίρνει κάθε φορα το υπόλοιπο της διαίρεσης του πλήθους των γραμματών του αλφαβητου με το άθροισμα του κλειδιού και του εκάστοτε χαρακτήρα την φορά στο αρχικό κειμενο το οποιο το λεμε plaintext.

Δηλαδη :

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


En = (p + k) mod 26


mod -> υπολοιπο διαίρεσης
(p+k) -> άθροισμα του κλειδιού και του εκάστοτε χαρακτήρα την φορά στο αρχικό κειμενο

26 για αγγλικο , 24 για ελληνικο αφλάβητο.
Γνώσεις ⇛ 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

Δημοσίευσηαπό migf1 » 18 Φεβ 2012, 15:13

Star_Light έγραψε:
Spoiler: show
Κώδικας: Επιλογή όλων

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXSLEN (80+1)
void Display_reverse(char *s);

int main()
{

char *s = NULL;
int maxlen;
char input[MAXSLEN]={'\0'};

printf(" Give the len : ");
fgets(input , MAXSLEN , stdin);
maxlen = atoi(input);

s= calloc( maxlen , sizeof(char));

printf(" Give a string : ");
fgets( s , maxlen , stdin);


if( s == NULL)
puts("Calloc failed");

Display_reverse(s);

printf("%s" , s);

free(s);

return 0;
}
//----------------------------------------------------------------------
void Display_reverse(char *s)
{
char *cp;

for(cp = s; *cp!='\0' && *cp!='\n'; cp++)

putchar(*cp);

puts("\n");

return;
}

Ειναι λιγο περιττή εδω η Display_reverse ή ειναι η ιδέα μου? :D

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

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

Δημοσίευσηαπό migf1 » 18 Φεβ 2012, 15:18

stamatiou έγραψε:Τι έγινε βρε παιδιά; Λίγο έλλειψα και χάθηκα! :D Τι άσκηση κάνουμε τώρα;

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

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

Δημοσίευσηαπό migf1 » 18 Φεβ 2012, 15:22

stamatiou έγραψε:Τώρα προσπάθησα να κάνω του Καίσαρα αλλά ουσιαστικά και αυτός δεν κάνει απλή μετατόπιση;

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

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

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