malloc for sudoku.

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
alone24
Δημοσιεύσεις: 18
Εγγραφή: 14 Οκτ 2007 21:15

malloc for sudoku.

Δημοσίευση από alone24 » 25 Νοέμ 2007 17:53

ΚΑΛΙΣΠΕΡΑ ΣΑΣ.

ΕΧΩ ΜΙΑ ΑΠΟΡΙΑ ΜΕ ΤΗΝ ΠΟΙΟ ΠΑΝΩ ΕΝΤΟΛΗ.ΠΩΣ ΜΠΟΡΩ ΝΑ ΤΗΝ ΧΡΙΣΙΜΟΠΟΙΗΣΩ ΜΕΣΑ ΣΤΟΝ ΚΩΔΙΚΑ ΜΟΥ ΓΙΑ ΤΟ SUDOKU ΕΤΣΙ ΩΣΤΕ ΝΑ ΜΠΟΡΩ ΝΑ ΛΥΝΩ ΟΠΟΙΟΔΗΠΟΤΕ ΜΕΓΕΘΟΣ SUDOKU ΧΩΡΙΣ ΝΑ ΕΠΕΜΒΑΙΝΩ ΣΤΟΝ ΚΩΔΙΚΑ ΜΟΥ ΚΑΘΕ ΛΙΓΟ ΓΙΑ ΝΑ ΑΛΛΑΖΩ ΤΟ ΜΕΓΕΘΟΣ ΣΤΟ define.

ΣΑΣ ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΩΝ ΠΡΟΤΕΡΩΝ!!!
Συνημμένα
ex3-sudoku.zip
(4.01 KiB) Μεταφορτώθηκε 327 φορές

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

malloc for sudoku.

Δημοσίευση από dva_dev » 25 Νοέμ 2007 23:47

Οταν λες διαφορετικά μεγάθη sudocu τι εννοείς; (Αυτό που ξέρω είναι 3Χ3). Ενα άλλο μέγεθος τι και μέχρι πόσο θα μπορούσε να είναι; Είδα στον κώδικα το εξής (και δεν κατάλαβα τι ήθελε να πει):

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

	if (N>99) {
		fprintf(stderr, "The maximum allowed value for N is 9!\n" \
						"Please recompile the program with a smaller value for N\n");
		exit(EXIT_FAILURE);
Η malloc δεσμεύει μνήμη δυναμικά ανάλογα το μέγεθος που ζητάς ώστε να μπορείς να την χρησιμοποιήσεις για να φτιάξεις πίνακες διαφορετικού μεγέθους στην περίπτωση σου, και φυσικά να την ελευθερώνεις με την free.

Προς το παρόν δεν πρέπει να σε απασχολούν αυτές οι εντολές ακόμα. Εχεις πιο άμεσα προβλήματα να λύσεις.
Σχεδόν σε όλον τον κώδικα σου υπάρχουν καρφωτές τιμές για τους ελέγχους (παντού 3άρια, 9άρια). Αλλαξε πρώτα αυτά ώστε να παράγονται σε σχέση με το Ν.

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

        for&#40;x=0;x<9;x++&#41;
		for&#40;y=0;y<9;y++&#41;
		for&#40;w=0;w<9;w++&#41;
		if&#40;pin&#91;x&#93;&#91;y&#93;&#91;w&#93;&#41;
		&#123;
			a=0;
			for&#40;b=&#40;x/3&#41;*3;b<=&#40;x/3&#41;*3+2;b++&#41;
			for&#40;d=&#40;y/3&#41;*3;d<=&#40;y/3&#41;*3+2;d++&#41;
Αφού τελειώσεις με αυτό πρέπει να μετατρέψεις το Ν από define σε μεταβλητή (νομίζω int είναι παραπάνω από ικανοποιητικό), και το να λύσεις το πρόβλημα που δημιουργείται από το sudoku_t το ξανασυζητάμε αργότερα (αν έχεις ακόμα όρεξη...)

PS. Αυτός κώδικας είναι δικός σου; Μου φαίνεται σαν να τον έχουν γράψει 5 διαφορετικά άτομα.

alone24
Δημοσιεύσεις: 18
Εγγραφή: 14 Οκτ 2007 21:15

malloc for sudoku.

Δημοσίευση από alone24 » 26 Νοέμ 2007 08:53

kalhmera dva_dev,ti kaneis?

o kwdikas einai dikos mou.einai i lusi tis proigoumeneis mou ergasias pou eixa pali gia to sudoku.auto me ta 9 kai 3 ta exw allaxei.ta exw valei ola N.einai swsto?twra me to megethos tou sudoku ennow to exis:me auto ton kwdika pou eftiaxa thelw na lunei ta exis megethi 4x4,9x9,16x16 kai 25X25 automata,xwris na epemvainw egw kathe ligo ston kwdika mou kai na allazw tis times.ekei pou den katalaves kanei to exis:mporeis na allaxeis to n apo to 1 mexri to 9,an valeis megaluteri timi tote to programma kanei recompile.to define twra to exw valei N.apo katw exw orisei to N ws exis: int **N,einai swsto?to sudoku_t to exw svisei.ekana swsta?


se euxaristw kai pali ek tvn protervn. :D

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

malloc for sudoku.

Δημοσίευση από dva_dev » 26 Νοέμ 2007 19:14

Κάνοντας αλλαγές όλα τα σταθερά νουμεράκια (3, 9, 10, κ.λπ) που έχεις μέσα στο πρόγραμμα σου σε κάτι που να παράγεται σε σχέση με το Ν εξακολουθεί να τρέχει σωστά;

Αφού τρέχει σωστά και αλλάξεις το Ν από define σε μεταβλητή (π.χ. int N) εξακολουθεί το πρόγραμμα σου να κάνει compile και να τρέχει; (Αν τα έχεις κάνει όλα σωστά δεν πρέπει να κάνει compile καν και να χτυπάει σε όλα τα σημεία που υπάρχει το sudoku_t, το pin).

Εχεις δύο επιλογές:
Η μία να αποφύγεις την malloc/free (που σου δίνει τη δυνατότητα να τελειώσεις πιο γρήγορα και να ικανοποιείς τον περιορισμό ταυτόχρονα ότι το Ν θα είναι από 1 μέχρι 9) ορίζοντας ότι το sudoku_t να έχει μέγεθος 9Χ9 και το pin:9x9x9 ή 9 σε κάποια σημείο που το είδα, και το πρόγραμμα σου θα παίζει χωρίς άλλες αλλαγές, αλλά έχεις τον περιορισμό ότι δεν μπορείς να ξεπεράσεις το 9, δεν μπορείς να πας σε μέγεθος 1001Χ1001.

Η άλλη είναι να αλλάξεις το sudoku_t από short[9][9] σε int* ώστε να δεσμέυεις μνήμη δυναμικά με την malloc μεγέθους Ν^2 (για το pin N^3, Ν αντίστοιχα).
Επίσης όπου χρησιμοποιείς εκφράσεις του τύπου X[a] ή X[a][c] θα πρέπει να τις αλλάξεις με αντίστοιχες functions του στύλ f1(a,b) και f2(a,b,c) που να επιστρέφουν πάλι το - αντίστοιχο - στοιχείο που διαβάζεις και του στύλ f1b(a,b,value), f2b(a,b,c,value) για τα σημεία που γράφεις στον πίνακα.

Ο λόγος είναι ο εξής:
Οταν δεσμεύεις χώρο σε μια μεταβλητή για έναν πίνακα 2 διαστάσεων (9Χ9) ο compiler ξέρει να δεσμέυσει 81 θέσεις μνήμης και ξέρει να κάνει τη μετατροπή και σε πηγαίνει για την θέση [0][0] στην πρώτη θέση της μνήμης και όταν λες [6][7] να σε πάει στην 61η θέση. Οταν όμως δεσμεύεις χώρο δυναμικά δεν ξέρει ο compiler να κάνει αυτές τις μετατροπές και πρέπει να τις κάνεις εσύ.
Οι 81 θέσεις μνήμης που έχεις ζητήσει με ένα malloc(81*sizeof(short)) δεν ξέρει ο compiler ποιό από τα παρακάτω είναι, αυτό το ξέρεις εσύ ανάλογα πως θέλεις να το ερμηνεύσεις. Θα μπορούσε να είναι οτιδήποτε από τα παρακάτω:
short p[3][3][3][3]
short p[3][3][9]
short p[3][27]
short p[81]
short p[27][3]
short p[9][3][3]
short p[3][9][3]
short p[9][9] <- αυτό χρησιμοποιείς

Οπότε θα πρέπει να φτιάξεις μια function int f1(int a, int b) ώστε να αντικαταστήσεις τις εντολές του στύλ Χ=sudoku[a], για να μπορείς να διαβάσεις τις τιμές, μια αντίστοιχη που να παίρνει επιπλέον παράμετρο την τιμή που θέλεις να καταχωρήσεις π.χ. f1b(int a, int b, short value) για να αντικαταστήσεις τα sudoku[a]=X. To αντίστοιχο για τα pin[a][c].
Αρκετά πιο πολύπλοκο αλλά δεν έχεις περιορισμό στο μέγεθος του πίνακα (μπορεις να πας και σε μέγεθος 1001Χ1001), παρά μόνο από το μέγεθος της μνήμης.

Τέλος όπως διαβάζεις από τις παραμέτρους του προγράμματος το όνομα του αρχείου θα πρέπει να βάλεις επιπλέον παράμετρο για το μέγεθος του sudoku. Κοίταξε λίγο τις functions που αποθηκεύεις/διαβάζεις το sudoku γιατί ίσως πρέπει το μέγεθος να το αποθηκεύεις μέσα στο αρχείο (και να το διαβάζεις).

alone24
Δημοσιεύσεις: 18
Εγγραφή: 14 Οκτ 2007 21:15

malloc for sudoku.

Δημοσίευση από alone24 » 26 Νοέμ 2007 20:26

geia sou dva_dev,ti kaneis;

exw allaxei kata polu ton kwdika mou apo auto pou exeis esu.tha sou to steilw sto prwsopiko sou email an thes.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

malloc for sudoku.

Δημοσίευση από dva_dev » 26 Νοέμ 2007 22:48

Η βοήθεια που δίνουμε εδώ (και είμαι σίγουρος πως αυτή είναι μόνο η δική μου τακτική) δεν αφορά μόνο και συγκεκριμένα αυτόν που θέτει το ερώτημα, αλλά και όποιον ίσως ενδιαφερθεί στο μέλλον για μια απάντηση στο ίδιο ή παρόμοιο ερώτημα.

Με το σκεπτικό αυτό δίνουμε όλοι τη βοήθεια μας και τη ζητάμε αντίστοιχα αν δεν υπάρχει ήδη απάντηση.

Οτι θέλεις να ζητήσεις (και δεν είναι κάτι προσωπικό), this is the place to post.

[edit]
geia sou dva_dev,ti kaneis;
Διαβάζω για το ECDL! Είμαι στο κεφάλαιο για τον χειρισμό των Windows. :D
[/edit]

alone24
Δημοσιεύσεις: 18
Εγγραφή: 14 Οκτ 2007 21:15

malloc for sudoku.

Δημοσίευση από alone24 » 26 Νοέμ 2007 23:08

#include <stdio.h> /* needed for printf(), scanf() getchar(),
getc(), putc() and other functions */
#include <stdlib.h> /* needed for EXIT_SUCCESS, EXIT_FAILURE */
#include <math.h> /* needed for sqrt(), abs() */

/* the size of the side of the sudoku board */
#define N 9
#define true 1
#define false 0
#define prefix "out-"
#include <stdlib.h>

/* the type of the soduko */
typedef short sudoku_t[N][N];
int pinakas[N][N];

/* function prototypes */
void errorandexit(char *);
void printLine(int);
void printNeatDot();
void printNeatValue(int);
void printNeatLockedValue(int);
char *createFilename(char *);
void revealCells(int sudoku[N][N]);
int completed(int sudoku[N][N]);
void solve(int sudoku[N][N]);
void more_solve(int sudoku[N][N]);


/*
* This function will prompt the user an error message and the exit
*/
void errorandexit(char *s) {
/* Each program upon initialization opens by default three files
* stdout (output), stderr (error), stdin (input)
* Whatever is printed to stderr, stdout appears in the console
* however in reality we can select to direct these streams
* into different files (e.g., stdout can be printed on screen and
* stderr in a log file!). stderr should be utilized for
* error messages while stdout for messages that go to the user.
* Below we print error messages to stderr
*/
fprintf(stderr,"Error: %s \n", s);
exit(EXIT_FAILURE);
}



int completed(int array[N][N])
{
int i,j;
for(i=0; i<N; i++)
for(j=0; j<N; j++)
{
if(!array[j])
return 1;
}
return 0;
}


/*
* Prints out a dot in the necessary space
*/
void printNeatDot() {

if (N<10)
printf(" . ");
else
printf(" . ");
}


/*
* Prints out a value in the necessary space
*/
void printNeatValue(int value) {

if (N<10)
printf(" %d ",value);
else
printf(" %2d ",value);
}


/*
* Prints out (value) in the necessary space
*/
void printNeatLockedValue(int value) {

if (N<10)
printf("(%d)",value);
else
printf("(%2d)", value);
}

/*
* This is an auxiliary function for displayPuzzle().
* It prints a horizonal line that divides the subtables
*/
void printLine(int subsize) {

int i,j;

printf("+");
for (i=0; i<subsize; i++) {
for (j=0; j<subsize; j++) {
if (N<10)
printf("---");
else
printf("----");
}
printf("+");
}
printf("\n");
}


void revealCells(int sudoku[N][N])
{

int i,j, k, l, subsize;

subsize = sqrt(N); /* the N of a box (subtable) */

/* for every row */
for (i=0; i<N; i++) {

if ((i % subsize) == 0){
/* print horizontal line */
printLine(subsize);
}

/* for every column */
for (j=0; j<N; j++){

if (j % subsize == 0) {
printf("|");
}

if (sudoku[j] == 0) { // this is an empty cell
printNeatDot();
}
else if (sudoku[j]<0) { // this is a locked cell
printNeatLockedValue(-sudoku[j]);
}
else { // this is a occupied cell
printNeatValue(sudoku[j]);
}
}
printf("|\n");
}

printLine(subsize);
}


void solve(int array[N][N])
{
int i,j,z=1,w=0,x,pin[N],y,v;
do{
z=0;
for(i=0; i<N; i++)
for(j=0; j<N; j++)
{
if(!array[j])
{


for(x=0; x<N; x++)
{
pin[x]=0;
}

for(x=0; x<N; x++)
{
if(array[x])
pin[array[x]-1]=1;
}


for(x=0; x<N; x++)
{
if(array[x][j])
pin[array[x][j]-1]=1;
}



for(x=(i/3)*3; x<=(i/3)*3+2; x++)
for(y=(j/3)*3; y<=(j/3)*3+2; y++)
{
if(array[x][y])
pin[array[x][y]-1]=1;
}

w=0;
v=0;
for(x=0; x<N; x++)
{
if(pin[x])
w=w+1;
else v=x+1;
}


if(w==8)
{
array[j]=v;
z=1;
system("cls");
printf("thinking depth 1...\n\n");
revealCells(array);

}

}
}
}while(z);
}

void more_solve(int array[N][N])
{
int z=1,x,y,w,pin[N][N][N],a,b,d;

do{
z=0;

for(x=0; x<N; x++)
for(y=0; y<N; y++)
for(w=0; w<N; w++)
pin[x][y][w]=1;

for(x=0; x<N; x++)
for(y=0; y<N; y++)
{
if(array[x][y])
{
for(w=0; w<N; w++)
pin[x][y][w]=0;
}
else
{
for(w=0; w<N; w++) if(array[w][y]) pin[x][y][array[w][y]-1]=0;

for(w=0; w<N; w++) if(array[x][w]) pin[x][y][array[x][w]-1]=0;

for(a=(x/3)*3; a<=(x/3)*3+2; a++) for(w=(y/3)*3; w<=(y/3)*3+2; w++) if(array[a][w]) pin[x][y][array[a][w]-1]=0;
}
}


for(x=0; x<N; x++)
for(y=0; y<N; y++)
for(w=0; w<N; w++)
if(pin[x][y][w])
{
a=0;
for(b=0; b<N; b++)
{
if(pin[x][w]) a++;
}
if(a==1)
{
array[x][y]=w+1;
z=1;
system("cls");
printf("thinking depth 2...\n\n");
revealCells(array);
}
}


for(x=0; x<N; x++)
for(y=0; y<N; y++)
for(w=0; w<N; w++)
if(pin[x][y][w])
{
a=0;
for(b=0; b<N; b++)
{
if(pin[y][w]) a++;
}
if(a==1)
{
array[x][y]=w+1;
z=1;
system("cls");
printf("thinking depth 2...\n\n");
revealCells(array);
}
}





for(x=0; x<N; x++)
for(y=0; y<N; y++)
for(w=0; w<N; w++)
if(pin[x][y][w])
{
a=0;
for(b=(x/3)*3; b<=(x/3)*3 + 2; b++)
for(d=(y/3)*3; d<=(y/3)*3 + 2; d++)
{
if(pin[d][w]) a++;
}
if(a==1)
{
array[x][y]=w+1;
z=1;
system("cls");
printf("thinking depth 2...\n\n");
revealCells(array);
}
}

}while(z);
}

int main(int argc, char *argv[])
{
int t,i;
char string[10];
FILE *fl = fopen ("Sudoku.txt","r");
if (fl==NULL) return 1;
for (t=0;t<=8;t++)
{
fscanf (fl,"%s",&string);
for (i=0;i<N;i++) pinakas[t]=string[i]-48;

}
fclose(fl);

solve(pinakas);
if(!completed(pinakas))
{
printf("Sudoku Completed!!!\n\n");
printf("Press ENTER to exit");
getchar();
return 0;
}
else
{
more_solve(pinakas);
if(!completed(pinakas)) printf("Sudoku Completed!!!\n\n");
else printf("Can't solve more\n\n");
printf("Press ENTER to exit");
getchar();
return 0;
}
}

auto einai o kwdikas mou meta apo allages.lunei mono to ena eithos sudoku,kai auto einai to 9x9.ti prepei na kanw gia na lunei kai ta upoloipa eithi sudoku(4x4,16x16,25x25).exw allaksei panw apo deka fores ton kwdika mou alla den leitourgei.ti prepei na kanw?

se euxaristw!!

Programmer
Δημοσιεύσεις: 67
Εγγραφή: 22 Σεπ 2007 06:55

malloc for sudoku.

Δημοσίευση από Programmer » 26 Νοέμ 2007 23:58

Θα σου πω τι πρεπει να κάνεις.. αλλά όχι πως ακριβώς να το κάνεις επειδη είναι άσκηση.

πρέπει να αλλάξεις τα
1) #define N 9 και να βάλεις στην θέση του μια μεταβλητή π,χ. int diastasi n = 9;
2) να φτιάξεις ένα μενου από όπου ο χρήστης θα επιλέγει το μέγεθος της διάστασης
3) να προχωρήσεις σε δυναμική δέσμευση μνήμης με την malloc ή την calloc ανάλογα με την διάσταση που έδωσε ο χρήστης.
π.χ.
int *ptrToarray, diastasiX = 9, diastasiY = 9;
...
if (NULL == (ptrToarray = (int*) malloc(sizeof(int) * diastasiX * diastasiY)) )
//ERROR
...

4) να μάθεις τις μετατροπές που πρεπει να κάνεις σε μονοδιάστατους πίνακες ώστε να συμπεριφέρονται σαν να ήταν δισδυάστατοι.
πχ το array [12] σε έναν πίνακα 81 στοιχέιων απέχει το ίδιο από το την αρχή του πίνακα με το matrix[1][2] σε έναν άλλο πίνακα 9Χ9.
Και να συνηθίσεις την λογική που χρειάζεται για κώδικα όπως τον παρακάτω.

int *ptrToArray, matrix[9][9];
int column = 0, row = 0, rows = 9, columns = 9;
...
ptrToArray = &matrix[0][0];

row = 1;
column = 2;

ptrToArray [row * columns + column] = 12; //το ίδιο με το matrix[1][2]

5)να περνάς στις συναρτήσεις σου τους δiσδυάστατους πίνακες σαν δέικτες μονοδιάστατου πίνακα και τό μέγεθος των διαστάσεων.
π.χ.
void func(int* ptr, int rows, int columns)
(
int i, j;
for(i =0 ; i< rows; i++)
for(j =0 ; j< columns; j++)
ptr[i * columns + j] = //κ.τ.λ....
)

6) και τέλος να μην γράφεις σε greeklish, και να σέβεσαι περισσότερο αυτούς που ζητάς να σε βοηθήσουν (δεν είναι υπηρέτες σου να σου φτιάχνουν τις εργασίες σου χωρίς να προσπαθέις εσύ όσο θα έπρεπε).

alone24
Δημοσιεύσεις: 18
Εγγραφή: 14 Οκτ 2007 21:15

malloc for sudoku.

Δημοσίευση από alone24 » 27 Νοέμ 2007 11:42

σέβομαι παρα πολυ αυτούς που ζητω να με βοηθήσουν ετσι και εγω προσπαθω να λυνω τις εργασιες μου και οταν εχω προβλημα σοβαρο το βαζω στο φορουμ.εχει τωρα τρεις νυχτες που προσπαθω να βρω τι πρεπει να κανω ετσι ωστε ο κωδικας μου να λυνει ολα τα μεγεθοι αυτου του παιγνιδιου χωρις να κανω κατι το επιστιμονικο.το μενου που μου λες να βαλω το σκεφτηκα και εγω ως μια λυση αλλα δεν το χρησιμοιησα ακομα.θελω ο κωδικας μου να λειτουργει χωρις μενου.ο κωδικας που εβαλα χθες λυνει μονο το 9Χ9.
ζητω συγνωμη αν δεν τηρησα τους νομους του φορουμ.Συγνωμη :wink:

Programmer
Δημοσιεύσεις: 67
Εγγραφή: 22 Σεπ 2007 06:55

malloc for sudoku.

Δημοσίευση από Programmer » 27 Νοέμ 2007 14:52

Κάθε εγχείρημα έχει κάποιες απαιτήσεις γνώσεων. Αυτό σημαίνει ότι δεν μπορούμε να κάνουμε κάποια πράγματα απλά επειδή τα κάνουν κάποιοι άλλοι. Πρεπει να έχουμε τις γνωσεις και τις δεξιότητες που έχουν αυτοί που τα καταφέρνουν. Και εσύ μου δίνεις την εντύπωση ότι δεν τις έχεις. Μου φάινεται ότι δεν ξέρεις καλά για δέικτες, συναρτήσεις, πίνακες, απαραίτητες για την εφαρμογή σου. Η βοήθεια που μας ζητάς θα σου είναι ουσιαστικά άχρηστη. Κάθησε και μελέτησε τα θέματα και θα δεις ότι θα φτιάξεις μόνος σου την εφαρμογή σου. Φυσικά δεν θα προλάβεις να παραδώσεις την εργασία σου αλλά τί να κάνουμε... ας φρόντιζες για την απόκτηση των γνώσεων νωρίτερα.

alone24
Δημοσιεύσεις: 18
Εγγραφή: 14 Οκτ 2007 21:15

malloc for sudoku.

Δημοσίευση από alone24 » 27 Νοέμ 2007 15:26

το ξερω οτι το καθε εγχειρημα θελει τις γνωσεις του.μου αρεσει παρα πολυ να προγραμματιζω σε visual basic αντι σε C.δεν μου αρεσει η C,και γι'αυτο τον λογο την αφησα στο περιθωριο.και τωρα που κανω μεταπτυχιακο ηρθε παλι η C.δεν μας δινουν το περιθωριο και το χρονο για να μελετησουμε πριν να παραδωσουμε την εργασια μας.

Programmer
Δημοσιεύσεις: 67
Εγγραφή: 22 Σεπ 2007 06:55

malloc for sudoku.

Δημοσίευση από Programmer » 27 Νοέμ 2007 18:58

alone24 έγραψε:το ξερω οτι το καθε εγχειρημα θελει τις γνωσεις του.μου αρεσει παρα πολυ να προγραμματιζω σε visual basic αντι σε C.δεν μου αρεσει η C,και γι'αυτο τον λογο την αφησα στο περιθωριο.και τωρα που κανω μεταπτυχιακο ηρθε παλι η C.δεν μας δινουν το περιθωριο και το χρονο για να μελετησουμε πριν να παραδωσουμε την εργασια μας.
Αν μας δημοσιεύσεις το πρόγραμμα της άσκησης sudocu σε vb6 και σε ψευδογλώσσα, που σημαίνει ότι ξέριες να προγραμματίζεις αλλά δεν ξέρεις την γλώσσα C, εγώ θα στο μετατρέψω σε C. (Σημ. Ξέρω άριστα C/C++, vb6, vb .NET, και καλά java και C#). Η απαίτηση για vb 6 και ψευδοκώδικα είναι για να μας πείσεις ότι έχεις σχέση με τον προγραμματισμό και όχι ότι βρήκες τον κώδικα σε vb6 και τον αναδημοσιεύεις. Το πρόγραμμα σε vb6 πρέπει να τρέχει χωρίς λάθη και να κάνει όλα όσα ζητάει η άσκηση και όχι παρακάτω ή παραπάνω....

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

Σημ. κάνεις σοβαρότατα λάθη στον κώδικά σου σε C.

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27617
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

malloc for sudoku.

Δημοσίευση από cordis » 27 Νοέμ 2007 20:03

καλά.. ας αφήσουμε τα άλλα στο παρών θέμα (τα αναπτύσσουμε έτσι κι αλλιώς σε άλλο ;) ) και ας συνεχίσουμε το sudoku που με ενδιαφέρει κι εμένα.. :P
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Programmer
Δημοσιεύσεις: 67
Εγγραφή: 22 Σεπ 2007 06:55

malloc for sudoku.

Δημοσίευση από Programmer » 27 Νοέμ 2007 23:40

cordis έγραψε:καλά.. ας αφήσουμε τα άλλα στο παρών θέμα (τα αναπτύσσουμε έτσι κι αλλιώς σε άλλο ;) ) και ας συνεχίσουμε το sudoku που με ενδιαφέρει κι εμένα.. :P
Αν σε ενδιαφέρει το sudoku να φτιάξω ένα και να δημοσιεύσω τον κώδικα... Αυτο πού δεν θέλω όμως είναι να πάρουν τον κώδικα αυτοί που τον έχουν άσκηση και να τον παρουσιάσουν σαν δικό τους...

Ίσως τον φτιάξω και σε C για εφαρμογή windows (αν και δεν νομίζω να τον καταλάβετε πολλοί τέτοιο κώδικα)...

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27617
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

malloc for sudoku.

Δημοσίευση από cordis » 29 Νοέμ 2007 01:30

θέλω να τον κάνω σε PHP, και φυσική γλώσσα να τον βάλεις θα το κάνω.. ;)
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης