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

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

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

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

Δημοσίευσηαπό Star_Light » 05 Αύγ 2011, 19:44

Έστω ο κώδικας

Κώδικας: Επιλογή όλων
#include<stdio.h>
void function();
int x=1234;
int y=4567;

int main()
{
int x=4321;

function();
printf("2=> Mesa sto kurio tmima: %d %d \n",x,y);
{

int y=7654;
function();
printf(" 3 => Mesa sto entheto tmima: %d %d \n",x,y);
}


return 0;
} void function()
{

printf("1=> mesa stin sunartisi : %d %d ",x,y);

return ;
}


A.Να βρεθούν οι τιμές που εκτυπώνει η printf κάθε φορα αν στην συνάρτηση function() περάσουμε τα x,y σαν παραμέτρους.
(Μην βιαστείτε να χρησιμοποιησετε μεταγλωτιστη... καντε την στο χαρτι.... αρχικά και μετα τρεξτε την για επαλήθευση.)

B. Ποια η σχέση των τιμων των μεταβλητων (κατα την αρχικοποιηση τους) σαν καθολικες και σαν τοπικες. (Παρατηρείστε τους καλυτερα)

επειδη ο προγραμματισμος ειναι και θεμα παρατηρητικοτητας εγω αν ημουν ποτε καθηγητης( ΧΑΧΑΧΑΧΑΧΑΧΑΧΑΧΑ ΑΣΤΕΙΑΚΙ) θα εβαζα μια τετοια ασκηση παντως.

ΕΠΙΣΗΜΑΝΣΗ =>
Η χρηση των καθολικων μεταβλητων οπως συζητηθηκε και με τον 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++

Δημοσίευσηαπό Qdata » 05 Αύγ 2011, 20:03

@migf1 Ευχαριστώ! :thumbup:
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/C++

Δημοσίευσηαπό stamatiou » 05 Αύγ 2011, 20:41

Δλδ τελειώσαμε από την άσκηση; Αν ναι, έχω μια πρόταση για άσκηση! Αν είναι πείτε μου να την κάνω post
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 05 Αύγ 2011, 21:11

Star_Light έγραψε:Έστω ο κώδικας

Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>
void function();
int x = 1234;
int y = 4567;

int main()
{
int x = 4321;

function();
printf("2=> Mesa sto kurio tmima: %d %d \n", x, y);
{

int y = 7654;
function();
printf(" 3 => Mesa sto entheto tmima: %d %d \n", x, y);
}

return 0;
}

void function()
{

printf("1=> mesa stin sunartisi : %d %d ",x,y);

return ;
}

A.Να βρεθούν οι τιμές που εκτυπώνει η printf κάθε φορα αν στην συνάρτηση function() περάσουμε τα x,y σαν παραμέτρους.
(Μην βιαστείτε να χρησιμοποιησετε μεταγλωτιστη... καντε την στο χαρτι.... αρχικά και μετα τρεξτε την για επαλήθευση.)

B. Ποια η σχέση των τιμων των μεταβλητων (κατα την αρχικοποιηση τους) σαν καθολικες και σαν τοπικες. (Παρατηρείστε τους καλυτερα)

επειδη ο προγραμματισμος ειναι και θεμα παρατηρητικοτητας εγω αν ημουν ποτε καθηγητης( ΧΑΧΑΧΑΧΑΧΑΧΑΧΑΧΑ ΑΣΤΕΙΑΚΙ) θα εβαζα μια τετοια ασκηση παντως.

ΕΠΙΣΗΜΑΝΣΗ =>
Η χρηση των καθολικων μεταβλητων οπως συζητηθηκε και με τον migf1 πρεπει να αποφευγεται. Εδω εμφανίζεται για τις αναγκες του συγκεκριμενου παραδειγματος.

:D


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

#include <stdio.h>

void function();

int x= 1234;
int y = 4567;

// -----------------------------------------------------------------------------------
int main()
{
int x = 4321;

function(); // 1234, 4567
printf("2=> Mesa sto kurio tmima: %d %d \n", x, y); // 4321, 4567
{
int y = 7654;
function(); // 1234, 7654
printf(" 3 => Mesa sto entheto tmima: %d %d \n", x, y); // 4321, 7654
}

return 0;
}

// -----------------------------------------------------------------------------------
void function( void )
{
printf("1=> mesa stin sunartisi : %d %d\n", x, y);
return;
}

Θερμή παράκληση, όταν γράφετε κώδικα ξεχωρίζετε τις συναρτήσεις με μια γραμμή από παύλες μέσα σε σχόλιο πριν από το όνομα της κάθε συνάρτησης, αφήνετε κενά μετά από κόμματα, πριν και μετά από = > <, κλπ και γράφετε void μέσα στις παρενθέσεις των συναρτήσεων που δεν παίρνουν ορίσματα όταν τις πρωτο-ορίζετε.

Δυσκολεύομαι πολύ να διαβάσω το κώδικά σας :(

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

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

Δημοσίευσηαπό stamatiou » 05 Αύγ 2011, 21:28

Στην άσκηση του Qdata δεν μπορώ να βρω πώς υλοποιείται η άσκηση :crazy: !
Επίσης προσπαθώ να κάνω ένα πρόγραμμα κωδικοποίησης αλλά μου βγάζει errors τα οποία δυσκολεύομαι να εντοπίσω.
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>

int main(void) {
char *p;
char inbuf[501];
int array[94] = ('Q','W','E','R','T','Y','S','D','F','G','H','J','C','V','B','N','M','U','I','O','P','A','K','L','Z','X','q','w','e','r','t','y','s','d','f','g','h','j','c','v','b','n','m','u','i','o','p','a','k','l','z','x','1','3','2','4','6','5','7','9','8','0','!','#','@','$','^','%','&','(','*',')','_','+','-','=','~','`','"',']','}',''',';',':','[','123,'\','|','<','?','>',',',',47,'.');
printf("Enter the text: ");
fgets(inbuf,500,stdin);
p = inbuf[0];
while(*p != '\0') {
array[p] = *p - 32;
array[p] = array[p];
p++;
}
for(i=0;i != '\0';i++) printf("%c",inbuf[i]);
return 0;
}

Και τα errors:
Κώδικας: Επιλογή όλων
ealgor.c: In function ‘main’:
ealgor.c:7:343: error: empty character constant
ealgor.c:7:345: error: expected ‘)’ before ','
ealgor.c:7:364: warning: multi-character character constant
ealgor.c:18:1: error: invalid initializer
ealgor.c:18:1: error: expected ‘,’ or ‘;’ before ‘}’ token
ealgor.c:18:1: error: expected declaration or statement at end of input
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 05 Αύγ 2011, 21:33

Για το error στη γραμμή 7, μάλλον σου έχει ξεφύγει ανοιχτό κάποιο '
Για το error στη γραμμή 18, το p το έχεις ορίσει δείκτη σε char αλλά του βάζεις τιμή που είναι σκέτο char (το inbuf[0] είναι σκέτο char )
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 05 Αύγ 2011, 21:35

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

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

Δημοσίευσηαπό stamatiou » 05 Αύγ 2011, 22:00

Καλά επειδή δεν το βρίσκω το λάθος είπα να κάνω μια άλλη προσπάθεια με διαφορετικό σύστημα, ωρίστε λοιπόν:

Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
char array[501];
int i,g;
int *p;

printf("Εισάγετε το κλειδί κωδικοποίησης: ");
scanf("%d",&g);
printf("Εισάγετε το κείμενο: ");
fgets(array,500,stdin);
for(p = &array[0]; *p != '\0';p++) {
printf("%c",*p + g);
}
return 0;
}

Και τα errors:
Κώδικας: Επιλογή όλων
calgor.c: In function ‘main’:
calgor.c:14:8: warning: assignment from incompatible pointer type
calgor.c:7:6: warning: unused variable ‘i’
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 05 Αύγ 2011, 22:04

εισαγετε το κλειδι κωδικοποιησης?????? ΣΤαματιου ασχολεισαι με την κρυπτογραφηση?

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

Η διαφορα της κωδικοποιησης πχ ANSI με την κρυπτογραφηση πχ ασσυμετρικη / συμμετρικη ειναι το κλειδι

@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++

Δημοσίευσηαπό stamatiou » 05 Αύγ 2011, 22:10

Star_Light έγραψε:εισαγετε το κλειδι κωδικοποιησης?????? ΣΤαματιου ασχολεισαι με την κρυπτογραφηση?

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

Η διαφορα της κωδικοποιησης πχ ANSI με την κρυπτογραφηση πχ ασσυμετρικη / συμμετρικη ειναι το κλειδι

@migf1 θα αρχισω να ενστερνιζομαι και εγω αυτη την τακτικη με το ------- στις συναρτησεις για να κανω τον κωδικα μου πιο ευανάγνωστο ;)

Όντως, λάθος μου :oops:
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

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