【程序51】
题目:学习使用按位与 & 。
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
2.程序源代码:
#include "stdio.h"
main()
{
int a, b;
a = 077;
b = a & 3;
printf("/40: The a & b(decimal) is %d /n", b);
b &= 7;
printf("/40: The a & b(decimal) is %d /n", b);
}
【程序52】
题目:学习使用按位或 | 。
1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
2.程序源代码:
#include "stdio.h"
/* 欢迎访问 C++Builder研究 - www.ccrun.com */
main()
{
int a, b;
a = 077;
b = a | 3;
printf("/40: The a & b(decimal) is %d /n", b);
b |= 7;
printf("/40: The a & b(decimal) is %d /n", b);
}
【程序53】
题目:学习使用按位异或 ^ 。
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
2.程序源代码:
#include "stdio.h"
main()
{
int a, b;
a = 077;
b = a ^ 3;
printf("/40: The a & b(decimal) is %d /n", b);
b ^= 7;
printf("/40: The a & b(decimal) is %d /n", b);
}
【程序54】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1, 其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
2.程序源代码:
main()
{
unsigned a, b, c, d;
scanf("%o", &a);
b = a >> 4;
c = ~(~0 << 4);
d = b & c;
printf("%o/n%o/n", a, d);
}
【程序55】
题目:学习使用按位取反~。
1.程序分析:~0=1; ~1=0;
2.程序源代码:
#include "stdio.h"
/* 63 63 72 75 6E 2E 63 6F 6D */
main()
{
int a, b;
a = 234;
b = ~a;
printf("/40: The a's 1 complement(decimal) is %d /n", b);
a = ~a;
printf("/40: The a's 1 complement(hexidecimal) is %x /n", a);
}
【程序56】
题目:画图,学用circle画圆形。
1.程序分析:
2.程序源代码:
/* circle */
#include "graphics.h"
main()
{
int driver, mode, i;
float j = 1, k = 1;
driver = VGA; mode = VGAHI;
initgraph(&driver, &mode, "");
setbkcolor(YELLOW);
for(i=0; i<=25; i++)
{
setcolor(8);
circle(310, 250, k);
k = k + j;
j = j + 0.3;
}
}
【程序57】
题目:画图,学用line画直线。
1.程序分析:
2.程序源代码:
#include "graphics.h"
// 本文转自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=649&d=63xtli
main()
{
int driver, mode, i;
float x0, y0, y1, x1;
float j = 12, k;
driver = VGA; mode = VGAHI;
initgraph(&driver, &mode, "");
setbkcolor(GREEN);
x0 = 263; y0 = 263; y1 = 275; x1 = 275;
for(i=0; i<=18; i++)
{
setcolor(5);
line(x0, y0, x0, y1);
x0 = x0 - 5;
y0 = y0 - 5;
x1 = x1 + 5;
y1 = y1 + 5;
j = j + 10;
}
x0 = 263; y1 = 275; y0 = 263;
for(i=0; i<=20; i++)
{
setcolor(5);
line(x0, y0, x0, y1);
x0 = x0 + 5;
y0 = y0 + 5;
y1 = y1 - 5;
}
}
【程序58】
题目:画图,学用rectangle画方形。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2.程序源代码:
#include "graphics.h"
main()
{
int x0, y0, y1, x1, driver, mode, i;
driver = VGA; mode = VGAHI;
initgraph(&driver, &mode, "");
setbkcolor(YELLOW);
x0 = 263; y0 = 263; y1 = 275; x1 = 275;
for(i=0; i<=18; i++)
{
setcolor(1);
rectangle(x0, y0, x1, y1);
x0 = x0 - 5;
y0 = y0 - 5;
x1 = x1 + 5;
/*
<script type=text/javascript></script> <script src="C程序开发经典实例之6 - C++Builder 研究 - http--www_ccrun_com.files/show_ads.js" type=text/javascript></script>
*/
y1 = y1 + 5;
}
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy(150, 40, "How beautiful it is!");
line(130, 60, 480, 60);
setcolor(2);
circle(269, 269, 137);
}
【程序59】
题目:画图,综合例子。
1.程序分析:
2.程序源代码:
#define PAI 3.1415926
#define B 0.809
#include "graphics.h"
#include "math.h"
/* 欢迎访问 C++Builder研究 - www.ccrun.com */
main()
{
int i, j, k, x0, y0, x, y, driver, mode;
float a;
driver = CGA; mode = CGAC0;
initgraph(&driver, &mode, "");
setcolor(3);
setbkcolor(GREEN);
x0 = 150; y0 = 100;
circle(x0, y0, 10);
circle(x0, y0, 20);
circle(x0, y0, 50);
for(i=0; i<16; i++)
{
a = (2 * PAI / 16) * i;
x = ceil(x0 + 48 * cos(a));
y = ceil(y0 + 48 * sin(a) * B);
setcolor(2);
line(x0, y0, x, y);
}
setcolor(3);
circle(x0, y0, 60);
/* Make 0 time normal size letters */
settextstyle(DEFAULT_FONT, HORIZ_DIR, 0);
outtextxy(10, 170, "press a key");
getch();
setfillstyle(HATCH_FILL, YELLOW);
floodfill(202, 100, WHITE);
getch();
for(k=0; k<=500; k++)
{
setcolor(3);
for(i=0; i<=16; i++)
{
a = (2 * PAI / 16) * i + (2 * PAI / 180) * k;
x = ceil(x0 + 48 * cos(a));
y = ceil(y0 + 48 + sin(a) * B);
setcolor(2);
line(x0, y0, x, y);
}
for(j=1; j<=50; j++)
{
a = (2 * PAI / 16) * i + (2 * PAI / 180) * k - 1;
x = ceil(x0 + 48 * cos(a));
y = ceil(y0 + 48 * sin(a) * B);
line(x0, y0, x, y);
}
}
restorecrtmode();
}
【程序60】
题目:画图,综合例子。
1.程序分析:
2.程序源代码:
#include "graphics.h"
#define LEFT 0
#define TOP 0
#define RIGHT 639
#define BOTTOM 479
#define LINES 400
#define MAXCOLOR 15
main()
{
int driver, mode, error;
int x1, y1;
int x2, y2;
int dx1, dy1, dx2, dy2, i = 1;
int count = 0;
int color = 0;
driver = VGA;
mode = VGAHI;
initgraph(&driver, &mode, "");
x1 = x2 = y1 = y2 = 10;
dx1 = dy1 = 2;
dx2 = dy2 = 3;
while(!kbhit())
{
line(x1, y1, x2, y2);
x1 += dx1; y1 += dy1;
x2 += dx2; y2 += dy2;
if(x1 <= LEFT || x1 >= RIGHT)
dx1 = -dx1;
if(y1 <= TOP || y1 >= BOTTOM)
dy1 = -dy1;
if(x2 <= LEFT || x2 >= RIGHT)
dx2 = -dx2;
if(y2 <= TOP || y2 >= BOTTOM)
dy2 = -dy2;
if(++count > LINES)
{
setcolor(color);
color = (color >= MAXCOLOR)? 0: ++color;
}
}
closegraph();
}
题目:学习使用按位与 & 。
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
2.程序源代码:
#include "stdio.h"
main()
{
int a, b;
a = 077;
b = a & 3;
printf("/40: The a & b(decimal) is %d /n", b);
b &= 7;
printf("/40: The a & b(decimal) is %d /n", b);
}
【程序52】
题目:学习使用按位或 | 。
1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
2.程序源代码:
#include "stdio.h"
/* 欢迎访问 C++Builder研究 - www.ccrun.com */
main()
{
int a, b;
a = 077;
b = a | 3;
printf("/40: The a & b(decimal) is %d /n", b);
b |= 7;
printf("/40: The a & b(decimal) is %d /n", b);
}
【程序53】
题目:学习使用按位异或 ^ 。
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
2.程序源代码:
#include "stdio.h"
main()
{
int a, b;
a = 077;
b = a ^ 3;
printf("/40: The a & b(decimal) is %d /n", b);
b ^= 7;
printf("/40: The a & b(decimal) is %d /n", b);
}
【程序54】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1, 其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
2.程序源代码:
main()
{
unsigned a, b, c, d;
scanf("%o", &a);
b = a >> 4;
c = ~(~0 << 4);
d = b & c;
printf("%o/n%o/n", a, d);
}
【程序55】
题目:学习使用按位取反~。
1.程序分析:~0=1; ~1=0;
2.程序源代码:
#include "stdio.h"
/* 63 63 72 75 6E 2E 63 6F 6D */
main()
{
int a, b;
a = 234;
b = ~a;
printf("/40: The a's 1 complement(decimal) is %d /n", b);
a = ~a;
printf("/40: The a's 1 complement(hexidecimal) is %x /n", a);
}
【程序56】
题目:画图,学用circle画圆形。
1.程序分析:
2.程序源代码:
/* circle */
#include "graphics.h"
main()
{
int driver, mode, i;
float j = 1, k = 1;
driver = VGA; mode = VGAHI;
initgraph(&driver, &mode, "");
setbkcolor(YELLOW);
for(i=0; i<=25; i++)
{
setcolor(8);
circle(310, 250, k);
k = k + j;
j = j + 0.3;
}
}
【程序57】
题目:画图,学用line画直线。
1.程序分析:
2.程序源代码:
#include "graphics.h"
// 本文转自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=649&d=63xtli
main()
{
int driver, mode, i;
float x0, y0, y1, x1;
float j = 12, k;
driver = VGA; mode = VGAHI;
initgraph(&driver, &mode, "");
setbkcolor(GREEN);
x0 = 263; y0 = 263; y1 = 275; x1 = 275;
for(i=0; i<=18; i++)
{
setcolor(5);
line(x0, y0, x0, y1);
x0 = x0 - 5;
y0 = y0 - 5;
x1 = x1 + 5;
y1 = y1 + 5;
j = j + 10;
}
x0 = 263; y1 = 275; y0 = 263;
for(i=0; i<=20; i++)
{
setcolor(5);
line(x0, y0, x0, y1);
x0 = x0 + 5;
y0 = y0 + 5;
y1 = y1 - 5;
}
}
【程序58】
题目:画图,学用rectangle画方形。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2.程序源代码:
#include "graphics.h"
main()
{
int x0, y0, y1, x1, driver, mode, i;
driver = VGA; mode = VGAHI;
initgraph(&driver, &mode, "");
setbkcolor(YELLOW);
x0 = 263; y0 = 263; y1 = 275; x1 = 275;
for(i=0; i<=18; i++)
{
setcolor(1);
rectangle(x0, y0, x1, y1);
x0 = x0 - 5;
y0 = y0 - 5;
x1 = x1 + 5;
/*
<script type=text/javascript></script> <script src="C程序开发经典实例之6 - C++Builder 研究 - http--www_ccrun_com.files/show_ads.js" type=text/javascript></script>
*/
y1 = y1 + 5;
}
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy(150, 40, "How beautiful it is!");
line(130, 60, 480, 60);
setcolor(2);
circle(269, 269, 137);
}
【程序59】
题目:画图,综合例子。
1.程序分析:
2.程序源代码:
#define PAI 3.1415926
#define B 0.809
#include "graphics.h"
#include "math.h"
/* 欢迎访问 C++Builder研究 - www.ccrun.com */
main()
{
int i, j, k, x0, y0, x, y, driver, mode;
float a;
driver = CGA; mode = CGAC0;
initgraph(&driver, &mode, "");
setcolor(3);
setbkcolor(GREEN);
x0 = 150; y0 = 100;
circle(x0, y0, 10);
circle(x0, y0, 20);
circle(x0, y0, 50);
for(i=0; i<16; i++)
{
a = (2 * PAI / 16) * i;
x = ceil(x0 + 48 * cos(a));
y = ceil(y0 + 48 * sin(a) * B);
setcolor(2);
line(x0, y0, x, y);
}
setcolor(3);
circle(x0, y0, 60);
/* Make 0 time normal size letters */
settextstyle(DEFAULT_FONT, HORIZ_DIR, 0);
outtextxy(10, 170, "press a key");
getch();
setfillstyle(HATCH_FILL, YELLOW);
floodfill(202, 100, WHITE);
getch();
for(k=0; k<=500; k++)
{
setcolor(3);
for(i=0; i<=16; i++)
{
a = (2 * PAI / 16) * i + (2 * PAI / 180) * k;
x = ceil(x0 + 48 * cos(a));
y = ceil(y0 + 48 + sin(a) * B);
setcolor(2);
line(x0, y0, x, y);
}
for(j=1; j<=50; j++)
{
a = (2 * PAI / 16) * i + (2 * PAI / 180) * k - 1;
x = ceil(x0 + 48 * cos(a));
y = ceil(y0 + 48 * sin(a) * B);
line(x0, y0, x, y);
}
}
restorecrtmode();
}
【程序60】
题目:画图,综合例子。
1.程序分析:
2.程序源代码:
#include "graphics.h"
#define LEFT 0
#define TOP 0
#define RIGHT 639
#define BOTTOM 479
#define LINES 400
#define MAXCOLOR 15
main()
{
int driver, mode, error;
int x1, y1;
int x2, y2;
int dx1, dy1, dx2, dy2, i = 1;
int count = 0;
int color = 0;
driver = VGA;
mode = VGAHI;
initgraph(&driver, &mode, "");
x1 = x2 = y1 = y2 = 10;
dx1 = dy1 = 2;
dx2 = dy2 = 3;
while(!kbhit())
{
line(x1, y1, x2, y2);
x1 += dx1; y1 += dy1;
x2 += dx2; y2 += dy2;
if(x1 <= LEFT || x1 >= RIGHT)
dx1 = -dx1;
if(y1 <= TOP || y1 >= BOTTOM)
dy1 = -dy1;
if(x2 <= LEFT || x2 >= RIGHT)
dx2 = -dx2;
if(y2 <= TOP || y2 >= BOTTOM)
dy2 = -dy2;
if(++count > LINES)
{
setcolor(color);
color = (color >= MAXCOLOR)? 0: ++color;
}
}
closegraph();
}