Latest topics
Similar topics
week8 full
+5
haidang001
Woodyx
xlKD
myname2
chikclik
9 posters
Trang 1 trong tổng số 1 trang
Re: week8 full
Thành thật xin lỗi Chikclik, edit bài, xóa nhầm mất bài 1. Khi nào onl thì edit lại hộ Koltec nhé.
By Koltec
=====================
===================
========================
mình chỉ test trên codeblock.chưa test tren ubuntu.có ji góp ý nhé!
Edited by Koltec.
PS: edit bài thôi, đừng post nhiều thế Chikclik nhé. S_have fun!
By Koltec
=====================
- Code:
#include
int main()
{int a,b,d,dem1;
char c,tong;
while(1)
{
printf("\t\tTen tac gia : Nguyen Trung Lam\n");
printf("\t\tTen chuong trinh chuyen co so\n\n");
printf("\t 1.Nhap so\n");
printf("\t 2.chuyen sang he nhi phan\n");
printf("\t 3.chuyen sang he 16\n");
printf("\t 4.chuyen sang he 8\n");
printf("\t 5.thoat\n");
scanf("%d",&a);
switch (a) {
case 1:printf("nhap so\n");
scanf("%d",&b);d=b;continue;
case 2:/*chuyen sang he nhi phan*/
if(b>=0) { tong=1;
while(b>=2){b=b/2;tong =tong+1;}
int A[tong];
for(dem1 =1;dem1<=tong;dem1++){A[dem1]=d%2;d=d/2;}
for(dem1 =1;dem1<=tong;dem1++){printf("%d",A[tong-dem1+1]);}
printf("\n");}
else printf("dung nhap so am chu\n");continue;
case 3:printf("%x\n",b);continue;
case 4:printf("%o\n",b);continue;
case 5:printf("thoat that a Yes(y) No(N):");c=getch();printf("%c\n",c);getch();break;
}
printf("Chuc quy vi mot buoi toi that thu vi \n\n");
if (c=='Y'||c=='y') break;
}
return 0;
}
===================
- Code:
#include
#include
//nkiem tra so truoc
int nhaptruoc(int truoc,int m)
{
while (1)
{
scanf("%d",&truoc);
if (m%2==1) {if
((truoc%2==0)&&(truoc<6)&&(truoc>0)) break; else
printf("sai luat!hay~~nhap lai!");} else
{if ((truoc%2==1)&&(truoc<6)&&(truoc>0)) break; else printf("sai luat!hay~~nhap lai!");}
}
return truoc;
}
//kiem tra so sau
int nhapsau(int truoc,int sau)
{
while (1)
{
scanf("%d",&sau);
if (truoc%2==1) {if
((sau%2==0)&&(sau<6)&&(sau>0)) break; else
printf("sai luat!hay~~nhap lai\n");} else
{if ((sau%2==1)&&(sau<6)&&(sau>0)) break;else printf("sai luat!hay~~nhap lai\n");}
}
return sau;
}
typedef struct
{
char ten1[40],ten2[40];
int diem1,diem2,turn1,turn2,LUOT;
} thongtin;
//in thong tin
void inthongtin(thongtin s)
{
printf("\t\t\t\tGAME TUNG SUC XAC\n");
printf("\t\t\t\tTURN THU %d\n",s.LUOT);
printf("\tPlayer1\t\t\t\t|\tPlayer2 \n");
printf("Nick name:\t%-20.20s\t|Nick name:\t%-20.20s\n",s.ten1,s.ten2);
printf("Diem:\t\t%-d\t\t\t|Diem:\t\t%-d\n",s.diem1,s.diem2);
//printf("turn thu:%d\t\t\t|turn thu:%d\n",s.turn1,s.turn2);
printf("\n\n");
}
int main()
{
int m,n,dem=0,truoc,sau,demluot,dich;
thongtin tt,s;
demluot=0;
tt.diem1=0;
tt.diem2=0;
srand((unsigned)time(NULL));
printf("PLAYER1's name:");gets(tt.ten1);
printf("PLAYER2's name:");gets(tt.ten2);
printf("\n");
printf("Enter numbers win:");scanf("%d",&dich);
printf("Nguoi choi 1 di truoc!\n");
while (1)
{
//test nguoi choi 1
printf("\tPLAY1's turn:\n");
printf("So ban chon:");
truoc=nhaptruoc(truoc,dem);
m=rand()%(truoc)+1;printf("So random la:%d\n",m);
tt.diem1+=m;
if (tt.diem1==dich) {printf("GAME OVER!PLAYER 1 WON\a\a\a\a\a\a\a"); break;} else
{if (tt.diem1>dich) {tt.diem1-=dich;printf("Ban phai quay ve vi tri so %d",tt.diem1);}}
//test nguoi choi 2
printf("\tPLAYER2's turn:\n");
printf("So ban chon:");
dem=nhapsau(truoc,sau);
n=rand()%(dem)+1;printf("So random la:%d\n",n);
tt.diem2+=n;
if (tt.diem2==dich) {printf("GAME OVER!PLAYER 2 WON\a\a\a\a\a\a\a"); break;} else
{if (tt.diem2>dich) {tt.diem2-=dich;printf("Ban phai quay ve vi tri so %d",tt.diem2);}}
//in ra turn
++demluot;
tt.LUOT=demluot;
s=tt;
inthongtin(s);
if (demluot==2*dich) {printf("Da qua luot choi!\n");printf("KET QUA HOA\\n\a\a\a\a\a\a");break;}
}
return 0;
}
========================
mình chỉ test trên codeblock.chưa test tren ubuntu.có ji góp ý nhé!
Edited by Koltec.
PS: edit bài thôi, đừng post nhiều thế Chikclik nhé. S_have fun!
chikclik- Tổng số bài gửi : 12
Points : 20
Join date : 21/03/2011
Re: week8 full
Tg? se-ri CIntro nay la cua anh Sang giu~ ban quyen =))
xlKD- Tổng số bài gửi : 53
Points : 62
Join date : 27/09/2010
Age : 32
Re: week8 full
Em cũng theo dõi seri của anh sáng hàng tuần.
Tuần này nghe lâu quá hen.
Siêu nhân nào mới nổi zậy?
Tuần này nghe lâu quá hen.
Siêu nhân nào mới nổi zậy?
Woodyx- Tổng số bài gửi : 26
Points : 35
Join date : 27/09/2010
Age : 32
Đến từ : Hà nội pro
Re: week8 full
bạn Sáng đi công tác tại Phú Thọ rồi.chắc là đang vui vẻ trên đấy rồi.
chikclik- Tổng số bài gửi : 12
Points : 20
Join date : 21/03/2011
Re: week8 full
Đang cày cuốc trò gì gì trên face của myname2 vs mấy đứa em, quên hết cả ae.
Thank chikclik lâp hộ threat.
Koltec bổ sung vài phần còn thiếu:
Đề bài: gồm 3 bài
Bài 1: acb (anh có bồ )
Bài 2: basen
Bài 3: smallgame
Phần 2: Solution
Tham khảo bài Chikclik.
Phần 3: (bonus)
Đây là phiên bản tự xướng của Koltec.
Bài 2': basen v2.0
Bài 3': smallgame v2.0
Cứ vào solo vs insane thì biết ).
Tự compile rồi tự xướng luôn nhé.
smallgame v2.0
3 thư viện sử dụng trong bài (đề phòng lỗi html)
Thank for reading .
Thank chikclik lâp hộ threat.
Koltec bổ sung vài phần còn thiếu:
Đề bài: gồm 3 bài
Bài 1: acb (anh có bồ )
- Code:
Cai tieng chuong trinh tinh lai suat tiet kiem. Viet lai chuong trinh do voi menu sau:
TAI KHOAN TIEN GUI ACB.
1. Gui tien
2. Lai suat
3. Chi tiet lai suat
4. Thoat.
Bài 2: basen
- Code:
Viet chuong trinh chuyen doi he co so voi menu sau:
CT Chuyen doi he co so.
Tac gia: ABC.
1. Nhap so (he 10).
2. So o he nhi phan.
3. So o he thap luc phan.
4. So o he tam.
5. Thoat.
Bài 3: smallgame
- Code:
You are requested to write a game for 2 player. The goal is to reach to a given number (exp 100 - inputted from users) from the a starting number (inputted).
Who play first is determined by a random number is even or not. The game is play by turn, in each turn players can choose a positive number less than 5 - and depend on number selected by the other in previous turn. If the previous is odd then the next is even and inversely.
Who reach the destination first.
Interface expected.
ICT GAME CENTER - SMART STRATEGY
start: 5 <-
destination: 100 <-
who play first (randomly): 2
P2 - turn
Choose a number: 4
Now the value is 9
P1 - turn
Choose a number: 6 <invalid - greater than 5>
Choose a number: 2<invalid - even as previous slected>
Choose a number: 3
Now the value is 12 . . .
. . .
P1 has won the game.! Congratulation.
Phần 2: Solution
Tham khảo bài Chikclik.
Phần 3: (bonus)
Đây là phiên bản tự xướng của Koltec.
Bài 2': basen v2.0
- Code:
/*Base converter v2.0*/
/*Copyright (c) haidang001 (tm) (@yahoo.com)*/
/*S_have fun! :)*/
/*Viet chuong trinh chuyen doi he co so voi menu sau:
CT Chuyen doi he co so.
Tac gia: ABC.
1. Nhap so (he 10).
2. So o he nhi phan.
3. So o he thap luc phan.
4. So o he tam.
5. Thoat.*/
#include <stdio.h>
char ans[100], bin[100];
int bquit = 0, t, i, inpbase = 0, outbase = 0, inp[1000], out[1000], x, success;
void init()
{
ans[0] = 'a';
inp[0] = 0;
} //End init
void mainmenu()
{
printf("\n\t\tBase converter v2.0\n");
printf("\tCopyright (c) haidang001 (tm) (@yahoo.com)\n");
printf("\t\t S_have fun! :)\n\n");
printf("1: Input number\n");
printf("2: Show result\n");
printf("3: Setting\n");
printf("4: Show Decimal\n");
printf("5: Quit\n\n");
} //End mainmenu
void printinp()
{
for (i = inp[0]; i >= 1; i--)
printf("%d ", inp[i]);
} //End printinp()
void printout()
{
for (i = out[0]; i >= 1; i--)
printf("%d ", out[i]);
}//End printout()
void input() //Input number
{
if (inpbase < 2)
{
printf("Base of input number is not set\n");
return;
};
inp[0] = -1;
while (inp[0] <= 0)
{
printf("Number of digit of input number: ");
scanf("%d", &inp[0]);
getchar();
};
while (1)
{
printf("Now, enter %d digit of input number as base %d number(each digit seperated by at least one space or one enter character.\n", inp[0], inpbase);
success = 1;
for (i = inp[0]; i >= 1; i--)
{
scanf("%d", &inp[i]);
getchar();
if ((inp[i] < 0) || (inp[i] >= inpbase))
success = 0;
};
if (success == 1)
break;
};
while ((inp[0] > 0) && (inp[inp[0]] == 0))
inp[0]--;
printf("\nYour input number is (base %d): ", inpbase);
printinp();
printf("\n");
} //End input
void getx()
{
x = 0;
for (i = inp[0]; i >= 1; i--)
x = x * inpbase + inp[i];
}//End getx()
void getout()
{
printf("x = %d\n", x);
t = x;
out[0] = 0;
while (t > 0)
{
out[++out[0]] = t % outbase;
t = t / outbase;
};
}//End getout()
void decimal() // Quick show Decimal
{
if (inpbase < 2)
{
printf("Base of input number is not set\n");
return;
};
if (inp[0] <= 0)
{
printf("Input number is not set\n");
return;
};
getx();
printf("Your inputed number show as Decimal number: %d\n", x);
return;
};
void show() //Show result
{
if (inpbase < 2)
{
printf("Base of input number is not set\n");
return;
};
if (inp[0] <= 0)
{
printf("Input number is not set\n");
return;
};
if (outbase < 2)
{
printf("Base of output number is not set\n");
return;
};
getx();
getout();
printf("%-25s: %d\n", "Base of input number", inpbase);
printf("%-25s: ", "Input number");
printinp();
printf("\n%-25s: %d\n", "Base of output number", outbase);
printf("%-25s: ", "Output number");
printout();
printf("\n");
} //End show();
void setting() //Setting
{
ans[0] = 'a';
while (ans[0] != '3')
{
printf("1: Set base of input number. Current value: %d\n", inpbase);
printf("2: Set base of ouput number. Current value: %d\n", outbase);
printf("3: Return to main menu\n\n");
ans[0] = 'a';
while ((ans[0] < '1') || (ans[0] > '3'))
{
printf("Enter your choose: ");
gets(ans);
};
printf("\n");
switch (ans[0])
{
case '1': //Base of input number
inpbase = 0;
while (inpbase < 2)
{
printf("Input base of input number: ");
scanf("%d", &inpbase);
getchar();
};
break;
case '2': //Base of ouput number
outbase = 0;
while (outbase < 2)
{
printf("Input base of ouput number: ");
scanf("%d", &outbase);
getchar();
};
break;
};
};
} //End setting
int quit()
{
ans[0] = 'a';
while ((ans[0] != 'Y') && (ans[0] != 'N'))
{
printf("Are you sure want to Quit program? (Y/N)");
gets(ans);
ans[0] = toupper(ans[0]);
};
if (ans[0] == 'Y')
return 1;
else
return 0;
} //End quit
main()
{
init();
while (1)
{
mainmenu();
ans[0] = 'a';
while ((ans[0] < '1') || (ans[0] > '5'))
{
printf("Enter your choose: ");
gets(ans);
};
printf("\n");
switch (ans[0])
{
case '1': //Input number; Positive only
input();
break;
case '2': //Show result
show();
break;
case '3': //Setting
setting();
break;
case '4': //Quick Decimal
decimal();
break;
case '5': //Quit
bquit = quit();
break;
};
if (bquit)
break;
printf("\nPress Enter to return to main menu . . .");
gets(ans);
};
printf("\nThank for using program!\n");
printf("S_have fun! :)\n");
return 0;
};//End main()
Bài 3': smallgame v2.0
Cứ vào solo vs insane thì biết ).
Tự compile rồi tự xướng luôn nhé.
smallgame v2.0
- Code:
/*Copyright (c) haidang001 (tm) (@yahoo.com)*/
/*S_have fun! :)*/
/*You are requested to write a game for 2 player. The goal is to reach to a given number (exp 100 - inputted from users) from the a starting number (inputted).
Who play first is determined by a random number is even or not. The game is play by turn, in each turn players can choose a positive number less than 5 - and depend on number selected by the other in previous turn. If the previous is odd then the next is even and inversely.
Who reach the destination first.
Interface expected.
ICT GAME CENTER - SMART STRATEGY
start: 5 <-
destination: 100 <-
who play first (randomly): 2
P2 - turn
Choose a number: 4
Now the value is 9
P1 - turn
Choose a number: 6
Choose a number: 2
Choose a number: 3
Now the value is 12 . . .
. . .
P1 has won the game.! Congratulation.*/
#include
#include
#include
#define targetmax 1000
int start = 5, finish = 30, mode = 2, bquit = 0, v[2][3] = {{0, 2, 4}, {1, 3, 5}}, f[targetmax + 1][2], s[targetmax + 1][2];
char ans[100], *who[3];
void init()
{
who[1] = "Computer";
who[2] = "Human";
int i, j;
for (i = start; i <= finish; i++)
for (j = 0; j <= 1; j ++)
f[i][j] = -1;
for (i = 0; i <= 5; i++)
for (j = 0; j <= 1; j++)
{
f[finish + i][j] = 0;
s[finish + i][j] = 0;
};
}//End init()
int getf(int x, int y)
{
int i, nx, ny;
if (f[x][y] > -1)
return f[x][y];
f[x][y] = 0;
s[x][y] = 0;
for (i = 0; i <= 2; i++)
if (x + v[y][i] <= finish)
{
s[x][y]++;
nx = x + v[y][i];
ny = 1 - y;
getf(nx, ny);
if (f[nx][ny] < s[nx][ny])
f[x][y]++;
};
return f[x][y];
}
void mainmenu()
{
printf("\n\t\tSMALL GAME v2.0\n");
printf("\tCopyright (c) haidang001 (tm) (@yahoo.com)\n");
printf("\t\t S_have fun! :)\n\n");
printf("1: Human Vs Human\n");
printf("2: Human Vs Computer\n");
printf("3: Computer Vs Human\n");
printf("4: Setting\n");
printf("5: Quit\n\n");
}//End mainmenu()
void hvh()
{
int p, x, value, prev;
printf("Start number: %d\n", start);
printf("Target number: %d\n", finish);
srand((unsigned)time(NULL));
p = rand() % 2 + 1;
printf("P%d plays first\n", p);
printf("\nP%d-turn\n", p);
while (1)
{
printf("Choose a number: ");
scanf("%d", &prev);
getchar();
if ((prev < 0) || (prev > 5))
continue;
else
break;
};
value = start + prev;
printf("Now value is %d\n", value);
while (value < finish)
{
p = 3 - p;
printf("\nP%d-turn\n", p);
while (1)
{
printf("Choose a number: ");
scanf("%d", &x);
getchar();
if ((x < 0) || (x > 5))
continue;
if ((x - prev) % 2 == 0)
continue;
if (value + x > finish)
continue;
break;
};
value += x;
printf("Now value is %d\n", value);
prev = x;
};
printf("\nP%d win!! Conratulation . . .", p);
getchar();
} //End hvh()
void setting() //Setting
{
printf("Computer mode 's setting: \n");
printf("\t1: Easy\n");
printf("\t2: Normal (default)\n");
printf("\t3: Insane\n\n");
ans[0] = 'a';
while ((ans[0] < '1') || (ans[0] > '3'))
{
printf("Enter your choose (current %d): ", mode);
gets(ans);
};
switch (ans[0])
{
case '1':
mode = 1;
break;
case '2':
mode = 2;
break;
default:
mode = 3;
break;
};
} //End setting
int quit()
{
ans[0] = 'a';
while ((ans[0] != 'Y') && (ans[0] != 'N'))
{
printf("Do you really want to quit game? (Y/N)");
gets(ans);
ans[0] = toupper(ans[0]);
};
if (ans[0] == 'Y')
return 1;
else
return 0;
} //Quit
void easy(int p) //p = 1 => computer turns first
{
int x, value, prev;
printf("Start number: %d\n", start);
printf("Target number: %d\n", finish);
srand((unsigned)time(NULL));
printf("%s turns first\n", who[p]);
printf("\n%s-turn\n", who[p]);
if (p == 1)
{
prev = rand() % 5 + 1;
printf("Choose a number: %d\n", prev);
}
else
{
while (1)
{
printf("Choose a number: ");
scanf("%d", &prev);
getchar();
if ((prev < 0) || (prev > 5))
continue;
else
break;
};
};
value = start + prev;
printf("Now value is %d\n", value);
while (value < finish)
{
p = 3 - p;
printf("\n%s-turn\n", who[p]);
if (p == 1) //Computer
{
if ((finish - value <= 5) && (((finish - value - prev) % 2 + 2) % 2 == 1))
x = finish - value;
else
{
x = v[prev % 2 == 0][rand() % 3];
if (value + x > finish)
x = v[prev % 2 == 0][0];
};
printf("Choose a number: %d\n", x);
}
else
while (1)
{
printf("Choose a number: ");
scanf("%d", &x);
getchar();
if ((x < 0) || (x > 5))
continue;
if ((x - prev) % 2 == 0)
continue;
if (value + x > finish)
continue;
break;
};
value += x;
printf("Now value is %d\n", value);
prev = x;
};
printf("\n%s win!! Conratulation . . .", who[p]);
getchar();
} //End easy()
void normal(int p) //p = 1 => computer turns first
{
int i, nv, x, y, value, prev, t, max;
printf("Start number: %d\n", start);
printf("Target number: %d\n", finish);
srand((unsigned)time(NULL));
printf("%s turns first\n", who[p]);
printf("\n%s-turn\n", who[p]);
if (p == 1)//First turn
{
max = 0;
for (i = 0; i <= 5; i++)
if (start + i <= finish)
{
t = getf(start + i, i % 2 == 0);
if (t >= max)
{
max = t;
prev = i;
};
};
printf("Choose a number: %d\n", prev);
}
else
{
while (1)
{
printf("Choose a number: ");
scanf("%d", &prev);
getchar();
if ((prev < 0) || (prev > 5))
continue;
else
break;
};
};
value = start + prev;
printf("Now value is %d\n", value);//End firstturn
while (value < finish) //Turn repeation
{
p = 3 - p;
printf("\n%s-turn\n", who[p]);
if (p == 1) //Computer
{
if ((finish - value <= 5) && (((finish - value - prev) % 2 + 2) % 2== 1))
x = finish - value;
else
{
max = 0;
y = (prev % 2 == 0);
for (i = 0; i <= 2; i++)
{
nv = value + v[y][i];
if (nv <= finish)
{
getf(nv, 1 - y);
if (f[nv][1-y] >= max)
{
max = f[nv][1-y];
x = v[y][i];
};
};
};
};
printf("Choose a number: %d\n", x);
}
else
while (1)
{
printf("Choose a number: ");
scanf("%d", &x);
getchar();
if ((x < 0) || (x > 5))
continue;
if ((x - prev) % 2 == 0)
continue;
if (value + x > finish)
continue;
break;
};
value += x;
printf("Now value is %d\n", value);
prev = x;
};
printf("\n%s win!! Conratulation . . .", who[p]);
getchar();
} //End normal()
void insane(int p) //p = 1 => computer turns first
{
int i, nv, y, x, value, prev, nx, ny;
float fmax;
printf("Start number: %d\n", start);
printf("Target number: %d\n", finish);
srand((unsigned)time(NULL));
printf("%s turns first\n", who[p]);
printf("\n%s-turn\n", who[p]);
if (p == 1)//First turn
{
fmax = 0;
for (i = 0; i <= 5; i++)
if (start + i <= finish)
{
nx = start + i;
ny = (i % 2 == 0);
getf(nx, ny);
if ((fmax == 0) || (s[nx][ny] == 0) || (fmax < ((float)f[nx][ny] / s[nx][ny])))
{
fmax = (s[nx][ny] == 0) ? 0 : ((float)f[nx][ny] / s[nx][ny]);
prev = i;
};
};
printf("Choose a number: %d\n", prev);
}
else
{
while (1)
{
printf("Choose a number: ");
scanf("%d", &prev);
getchar();
if ((prev < 0) || (prev > 5))
continue;
else
break;
};
};
value = start + prev;
printf("Now value is %d\n", value);//End firstturn
while (value < finish) //Turn repeation
{
p = 3 - p;
printf("\n%s-turn\n", who[p]);
if (p == 1) //Computer
{
if ((finish - value <= 5) && (((finish - value - prev) % 2 + 2) % 2== 1))
x = finish - value;
else
{
fmax = 0;
y = (prev % 2 == 0);
for (i = 0; i <= 2; i++)
{
nv = value + v[y][i];
if (nv <= finish)
{
nx = nv;
ny = 1 - y;
getf(nx, ny);
if ((fmax == 0) || (s[nx][ny] == 0) || (fmax < ((float)f[nx][ny] / s[nx][ny])))
{
fmax = (s[nx][ny] == 0) ? 0 : ((float)f[nx][ny] / s[nx][ny]);
x = v[y][i];
};
};
};
};
printf("Choose a number: %d\n", x);
}
else
while (1)
{
printf("Choose a number: ");
scanf("%d", &x);
getchar();
if ((x < 0) || (x > 5))
continue;
if ((x - prev) % 2 == 0)
continue;
if (value + x > finish)
continue;
break;
};
value += x;
printf("Now value is %d\n", value);
prev = x;
};
printf("\n%s win!! Conratulation . . .", who[p]);
getchar();
} //End insane()
main()
{
init();
while (1)
{
mainmenu();
ans[0] = 'a';
while ((ans[0] < '1') || (ans[0] > '5'))
{
printf("Select a number: ");
gets(ans);
};
printf("\n");
switch (ans[0])
{
case '1': //Human Vs Human
hvh();
break;
case '2': //Human Vs Computer
switch (mode)
{
case 1:
easy(2);
break;
case 2:
normal(2);
break;
default:
insane(2);
break;
};
break;
case '3': //Com vs human
switch (mode)
{
case 1:
easy(1);
break;
case 2:
normal(1);
break;
case 3:
insane(1);
break;
};
break;
case '4': //Setting
setting();
break;
case '5': //Quit
bquit = quit();
break;
};
if (bquit)
break;
};
printf("\nThank for playing!\n");
printf("S_have fun! :)\n");
return 0;
}
3 thư viện sử dụng trong bài (đề phòng lỗi html)
- Code:
stdio.h
time.h
stdlib.h
Thank for reading .
Re: week8 full
HIX! Toàn cái chưa học. Đọc cũng chẳng hiểu mấy.
Tuần này die òy
Tuần này die òy
Woodyx- Tổng số bài gửi : 26
Points : 35
Join date : 27/09/2010
Age : 32
Đến từ : Hà nội pro
Re: week8 full
học hành vất vả.kết quả chẳng ra ji.chán
chikclik- Tổng số bài gửi : 12
Points : 20
Join date : 21/03/2011
Re: week8 full
Bài 3 code của Lâm với Sáng cao siêu quá :-S Tớ chỉ nông dân thôi, mọi người góp ý nhé
Bai3.c
Chú thích: Có thể dùng chương trình con nhưng chưa học nên dài ra thế đây :">
@Anh em: Còn bai2 đổi cơ số, tó có thắc mắc là có phải đổi cơ số cho số âm và số thập phân hay không, đầu bài hình như chí nói là số :-S Và đổi theo cách của Lâm có được ko? Túc đỏi cơ số 8 và 16 thì dùng luôn tham số cảu lệnh printf, và đổi nhị phân có nhất thiết phải dùng mảng ko :-S
Bai3.c
- Code:
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int dice, xuatphat, dich, diem, luot, so, sotruoc;
printf("Tro choi voi con so v1.0\n");//introduction
printf("Tac gia: myname2\n\n");
printf("Nhap so bat dau: ");//input
scanf("%d", &xuatphat);
printf("Nhap so dich: ");
scanf("%d", &dich);
diem = xuatphat;
luot = 1;
srand ( time ( NULL ));
dice = 1 + rand () % 2;
printf("\nChuong trinh se chon ngau nhien nguoi choi truoc...\n");
switch(dice)//game
{
case '1'://player 1 first
{
printf("Ban so 1 se choi truoc!\n\n");
printf("Luot 1, moi ban so 1 nhap so: ");
while (1)
{
scanf("%d", &so);
if ((so > 0) && (so < 5)) break;
else printf("Nhap sai luat, moi nhap lai: ");
}
diem = diem + so;
sotruoc = so;
luot++;
printf("Diem hien tai la: %d\n\n", diem);
while (diem < dich)
{
printf("Luot %d, moi ban so %d nhap so: ", luot, (luot % 2 == 1)? 1: 2);
while (1)
{
scanf("%d", &so);
if ((so >= 0) && (so < 5) && ((so + sotruoc) % 2 == 1)) break;
else printf("Nhap sai luat, moi nhap lai: ");
}
sotruoc = so;
diem = diem + so;
luot++;
printf("Diem hien tai la: %d\n\n", diem);
}
printf("Ban so %d da thang!!!\n", (luot % 2 == 0)?1:2);
}
default://player 2 first
{
printf("Ban so 2 se choi truoc!\n\n");
printf("Luot 1, moi ban so 2 nhap so: ");
while (1)
{
scanf("%d", &so);
if ((so > 0) && (so < 5)) break;
else printf("Nhap sai luat, moi nhap lai: ");
}
diem = diem + so;
sotruoc = so;
luot++;
printf("Diem hien tai la: %d\n\n", diem);
while (diem < dich)
{
printf("Luot %d, moi ban so %d nhap so: ", luot, (luot % 2 == 1)? 2: 1);
while (1)
{
scanf("%d", &so);
if ((so >= 0) && (so < 5) && ((so + sotruoc) % 2 == 1)) break;
else printf("Nhap sai luat, moi nhap lai: ");
}
sotruoc = so;
diem = diem + so;
luot++;
printf("Diem hien tai la: %d\n\n", diem);
}
printf("Ban so %d da thang!!!\n", (luot % 2 == 0)?2:1);
}
}
return 0;
}
Chú thích: Có thể dùng chương trình con nhưng chưa học nên dài ra thế đây :">
@Anh em: Còn bai2 đổi cơ số, tó có thắc mắc là có phải đổi cơ số cho số âm và số thập phân hay không, đầu bài hình như chí nói là số :-S Và đổi theo cách của Lâm có được ko? Túc đỏi cơ số 8 và 16 thì dùng luôn tham số cảu lệnh printf, và đổi nhị phân có nhất thiết phải dùng mảng ko :-S
Re: week8 full
Mấy cái bài trên dùng mảng à? :shock:
==============
Hey! Hải xồm. Bài chuyển đổi cơ số cậu có cách nào khác ngoài dùng mảng ko?
============
....
Edited by koltec. S_have fun!
==============
Hey! Hải xồm. Bài chuyển đổi cơ số cậu có cách nào khác ngoài dùng mảng ko?
============
....
Edited by koltec. S_have fun!
Woodyx- Tổng số bài gửi : 26
Points : 35
Join date : 27/09/2010
Age : 32
Đến từ : Hà nội pro
Re: week8 full
bai2 ko phải do mình làm.ông lớp B làm thôi.theo mình thì dùng mảng là hợp lý.
chikclik- Tổng số bài gửi : 12
Points : 20
Join date : 21/03/2011
Re: week8 full
a e xem ho bai t voi nhe
y tuong rat don gian
chu yeu la copy paste nen co ve tiet kiem thoi gian (^_^)
con dung va du chua thi chua biet!
======================
#include
#include
int main()
{
printf("Bai tap: Game don gian \n\n ");
int xuatphat,dich,a,b,l;
int tong=0,c;
printf("Nhap diem xuat phat: ");
scanf("%d",&xuatphat);
printf(" Nhap dich: ");
scanf("%d",&dich);
printf("chon nguoi choi truoc: \n");
tong=tong+xuatphat;
do{
srand((unsigned) time(NULL));
a=rand()%3;
}while(a==0);
printf("Nguoi %d choi truoc\n ",a);
l=fabs(a-3);
printf("**P%d - turn \n",a);
do {
printf(" Chon mot so:");
scanf("%d",&b);
}while(b<=0 || b>5);
tong=tong+b;
printf("Now value: %d\n",tong);
while(1)
{
printf("**P%d - turn\n",l);
do {
printf(" Chon mot so:");
scanf("%d",&c);
}while(c<=0 || c>5 ||(b+c)%2==0);
tong=tong+c;
printf("Now value: %d\n",tong);
if (tong==dich)
{
printf("nguoi choi %d thang\n",l);
break;
}
if ((100-tong)>0 && (100-tong)<=5)
{
printf("Nguoi choi %d thang",a);
break;;
}
printf("**P%d - turn \n",a);
do{
printf(" Chon 1 so:");
scanf("%d",&b);
}while(b<=0 || b>5 || (b+c)%2==0);
tong=tong+b;
printf("Now value: %d\n",tong);
if (tong==dich)
{
printf("nguoi choi %d thang\n",a);
break;
}
if ((100-tong)>0 && (100-tong)<=5)
{
printf("Nguoi choi %d thang",l);
break;;
}
}
return 0;
}
[code]
Edited by koltec. S_have fun!
y tuong rat don gian
chu yeu la copy paste nen co ve tiet kiem thoi gian (^_^)
con dung va du chua thi chua biet!
======================
#include
#include
int main()
{
printf("Bai tap: Game don gian \n\n ");
int xuatphat,dich,a,b,l;
int tong=0,c;
printf("Nhap diem xuat phat: ");
scanf("%d",&xuatphat);
printf(" Nhap dich: ");
scanf("%d",&dich);
printf("chon nguoi choi truoc: \n");
tong=tong+xuatphat;
do{
srand((unsigned) time(NULL));
a=rand()%3;
}while(a==0);
printf("Nguoi %d choi truoc\n ",a);
l=fabs(a-3);
printf("**P%d - turn \n",a);
do {
printf(" Chon mot so:");
scanf("%d",&b);
}while(b<=0 || b>5);
tong=tong+b;
printf("Now value: %d\n",tong);
while(1)
{
printf("**P%d - turn\n",l);
do {
printf(" Chon mot so:");
scanf("%d",&c);
}while(c<=0 || c>5 ||(b+c)%2==0);
tong=tong+c;
printf("Now value: %d\n",tong);
if (tong==dich)
{
printf("nguoi choi %d thang\n",l);
break;
}
if ((100-tong)>0 && (100-tong)<=5)
{
printf("Nguoi choi %d thang",a);
break;;
}
printf("**P%d - turn \n",a);
do{
printf(" Chon 1 so:");
scanf("%d",&b);
}while(b<=0 || b>5 || (b+c)%2==0);
tong=tong+b;
printf("Now value: %d\n",tong);
if (tong==dich)
{
printf("nguoi choi %d thang\n",a);
break;
}
if ((100-tong)>0 && (100-tong)<=5)
{
printf("Nguoi choi %d thang",l);
break;;
}
}
return 0;
}
[code]
Edited by koltec. S_have fun!
truonggiang.bka- Tổng số bài gửi : 5
Points : 6
Join date : 04/10/2010
Re: week8 full
Woodyx đã viết:Mấy cái bài trên dùng mảng à? :shock:
==============
Hey! Hải xồm. Bài chuyển đổi cơ số cậu có cách nào khác ngoài dùng mảng ko?
myname2 đã viết:Theo tớ trinh sát mấy hôm nay thì chả có cách nào mà ko dùng mảng cả :-<
Đây là cách không dùng đến mảng của bài 2. Ae tham khảo qua rồi cho ý kiến.
basenv1.1
- Code:
/*Copyright (c) haidang001 (tm) (@yahoo.com)*/
/*S_have fun! :)*/
/*Viet chuong trinh chuyen doi he co so voi menu sau:
CT Chuyen doi he co so.
Tac gia: ABC.
1. Nhap so (he 10).
2. So o he nhi phan.
3. So o he thap luc phan.
4. So o he tam.
5. Thoat.*/
#include <stdio.h>
main()
{
char ans[100];
int x, quit = 0, neg = 0, t, i, j;
ans[0] = 'a';
while (1)
{
printf("\n\t\tBase converter v1.0\n");
printf("\tCopyright (c) haidang001 (tm) (@yahoo.com)\n");
printf("\t\t S_have fun! :)\n\n");
printf("1: Input number (decimal)\n");
printf("2: Show Binary\n");
printf("3: Show Hexadecimal\n");
printf("4: Show Octal\n");
printf("5: Show Decimal\n");
printf("6: Quit\n\n");
ans[0] = 'a';
while ((ans[0] < '1') || (ans[0] > '6'))
{
printf("Enter your choose: ");
gets(ans);
};
printf("\n");
switch (ans[0])
{
case '1': //Input number;
printf("Enter number: ");
scanf("%d", &x);
getchar();
neg = 0;
if (x < 0)
{
neg = 1;
x = -x;
};
break;
case '2': //Binary
if (x == 0)
{
printf("Number shows as Binary number: 0\n");
break;
};
printf("Number shows as Binary number: %c", neg?'-':' ');
t = x;
i = 30;
while ((1 << i) > t)
i--;
t -= (1 << i);
printf("1");
for (j = i - 1; j >= 0; j--)
if (1 << j <= t)
{
t -= (1 << j);
printf("1");
}
else
printf("0");
printf("\n");
break;
case '3': //Hexadecimal
printf("Number shows as Hexadecimal number: %c%X\n", neg?'-':' ', x);
break;
case '4': //Octal
printf("Number shows as Octal number: %c%o\n", neg?'-':' ', x);
break;
case '5': //Decimal
printf("Orginal entered number is (Decimal): %c%d\n",neg?'-':' ', x);
break;
case '6': //Quit
ans[0] = 'a';
while ((ans[0] != 'Y') && (ans[0] != 'N'))
{
printf("Are you sure want to Quit program? (Y/N)");
gets(ans);
ans[0] = toupper(ans[0]);
};
if (ans[0] == 'Y')
quit = 1;
else
quit = 0;
};
if (quit)
break;
printf("\nPress Enter to return to main menu . . .");
gets(ans);
};
printf("\nS_have fun! :)\n");
return 0;
}
Re: week8 full
bai chuyen co so con mot cach nua ko can dung mang
chi khoang 5 - 6 thoi
thao tac tren bit
nhung hoi kho hieu mot chut
chi khoang 5 - 6 thoi
thao tac tren bit
nhung hoi kho hieu mot chut
truonggiang.bka- Tổng số bài gửi : 5
Points : 6
Join date : 04/10/2010
Re: week8 full
chuyen sang he nhi phan co 1 cach ko dung mang, nhung phai dung ct con de quy :-S
huy_d_t- Tổng số bài gửi : 112
Points : 142
Join date : 26/09/2010
Đến từ : Đại dâm tặc
Re: week8 full
Uk, đúng là có cách ko dùng mảng, xử lý bit, có cả cách ko dùng mảng cũng k xử lý bit, cũng ko cần ct đệ quy (chỉ nhân chia thông thường ).truonggiang.bka đã viết:bai chuyen co so con mot cach nua ko can dung mang
chi khoang 5 - 6 thoi
thao tac tren bit
nhung hoi kho hieu mot chut
Code day:
dec2bin
- Code:
/*dec2bin*/
/*Quick Decimal to Binary converter*/
/*Copyright (c) haidang001 (tm) (@yahoo.com)*/
/*S_have fun! :)*/
#include <stdio.h>
main()
{
int x, s = 1;
printf("Decimal input: ");
scanf("%d", &x);
printf("Binary output: ");
if (x == 0) printf("0");
while (s <= x)
s = s * 2;
s = s / 2;
while (s > 0)
{
if (s <= x)
{
x -= s;
printf("1");
}
else
printf("0");
s = s / 2;
};
printf("\n\nS_have fun! :)\n");
return 0;
}
Re: week8 full
<< là dịch bit phải ko?
@Huy: ct con thì ai chả biết, nhưng mà còn vượt khung hơn cả mảng, nhất là xài đệ quy
@Sáng: thuật toán cuối cùng là thuật toán gì vậy :-S
@Huy: ct con thì ai chả biết, nhưng mà còn vượt khung hơn cả mảng, nhất là xài đệ quy
@Sáng: thuật toán cuối cùng là thuật toán gì vậy :-S
Re: week8 full
Hơhơ cái chuyển từ thập sang nhị chả hiểu j hết @@
Tung_tobe- Tổng số bài gửi : 100
Points : 124
Join date : 27/09/2010
Re: week8 full
oạch.cái bài chuyển cơ số lằng nhằng thế.
chikclik- Tổng số bài gửi : 12
Points : 20
Join date : 21/03/2011
Re: week8 full
Đọc đi đọc lại thấy cách dùng mảng vẫn là hay và dễ hiểu nhất!!!
Woodyx- Tổng số bài gửi : 26
Points : 35
Join date : 27/09/2010
Age : 32
Đến từ : Hà nội pro
Re: week8 full
Đây là cách của mình,sử dụng những gì đã học
Cốt yếu trong cách này là mã "\r",trong bảng mã ASCII nó là mã lùi con trỏ về đầu dòng.(Cái này trong môn thầy Khánh ))
Thuật toán rất đơn giản nhưng do trình bày kém nên nhìn hơi rối,anh em thông cảm,đây là code nháp nên làm ko cẩn thận .
Cốt yếu trong cách này là mã "\r",trong bảng mã ASCII nó là mã lùi con trỏ về đầu dòng.(Cái này trong môn thầy Khánh ))
Thuật toán rất đơn giản nhưng do trình bày kém nên nhìn hơi rối,anh em thông cảm,đây là code nháp nên làm ko cẩn thận .
- Code:
#include
void main()
{
int i,t,a,so,du,nguyen=1,tmp;
printf("enter:");
scanf("%d",&so);
tmp=so;
for (;nguyen!=0;)
{
nguyen=tmp/2;
du=tmp%2;
tmp=nguyen;i++; //xac dinh so ki tu cua so nhi phan
}
t=i;tmp=so;
for (;t!=0;t--)
{
nguyen=tmp/2;
du=tmp%2;
tmp=nguyen;
a=t;
printf("\r"); // \r trong bang ma ASCII la ma lui ve dau dong
for(;a>0;a--) printf(" ");
printf("%d",du);
}
}
hieupro1269- Tổng số bài gửi : 31
Points : 37
Join date : 04/10/2010
Age : 32
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
06/02/14, 11:10 am by sshin_conan
» các bạn/anh/chị cho hỏi đề thi giải tích 1
03/05/13, 09:47 pm by ictk56
» Đề nghị sát nhập 2 diễn đàn
18/02/12, 11:01 am by ngoanhtuan_hn
» Hội nghị sinh viên Việt Nam Nhật Bản tuyển thành viên
17/02/12, 11:43 pm by michiosatoo
» mình có câu này, mong các bạn dịch giúp!!!
16/11/11, 06:17 pm by asakurayo
» nho forum chut
15/11/11, 11:29 am by asakurayo
» CS 1.6 MAP MAKER
15/11/11, 07:55 am by asakurayo
» ubuntu-win
12/10/11, 05:46 pm by darklord226
» diễn đàn hedspi k56
11/10/11, 09:41 pm by lakazai