当前位置:首页 » 编程软件 » 涂色编程题

涂色编程题

发布时间: 2022-05-21 22:42:21

‘壹’ 涂色的问题

你的第一种做法正确为4410种,按你的第一种方法就可以得第二三图为21840种,109410种。

‘贰’ 急求一道用c语言编程题!!!

main()
{
int color[]={1,2,3,4};
int blank[8][8];
int i,j,count=0;

for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
blank[i][j]=0;
}
}

for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
if(i==0)
{blank[i][j]=color[count%4];count++;}

else
{
if(blank[i-1][j]!=color[count%4])
{blank[i][j]=color[count%4];count++;}
else
{blank[i][j]=color[(count+1)%4];count++;}
}//else

}//inner for
}//outter for
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{printf(blank[i][j]);}//inner for
printf('\n');

}//outter for
}//main
以上程序,是用java写的,在jdk中调试通过,
运行结果正确。
改成c程序后,调试通过,但运行结果不对,可能是我得
tc有问题,你用你的c环境运行看看。

‘叁’ 编程求一笔画五角星问题

1、如图的五角星。从A点出发,不重复任何路径,也不漏去任何路径,走完一同回
到A(即一笔画)。试编程打印出所有可行方案。
2、如图所示的一个七巧板,现利用四种不同的颜色对每一块进行涂色,
要求相邻
区域的颜色不能相同。试编程找出所有可能的涂色方案。
3、以下列方式向5×5矩阵中填入数字。若该数字i(1≤i≤25)已被置于坐标位
置(x,y),则数字i+1的坐标位置应为(z,w)。(z,w)可按下列关系由(x,
y)算出:
┌┬┬┬┬┐
(1):(z,w)=(x±3,y)
├┼┼┼┼┤
(2):(z,w)=(x,y±3)
├┼┼┼┼┤
(3):(z,w)=(x±2,y±2)
├┼┼┼┼┤
求解问题如下:
├┼┼┼┼┤
└┴┴┴┴┘
(1)编写一个程序,当数字1被指定于某个位置时,列举出其它24个数字应放
在的位置,列举出该条件下所有可能方案,输出方式如图所示。
(2)使数字1的起始位置坐标分别处于矩阵的含主对线的右上三角的每一个位
置,计算出每一种情况下所有可能的方案?
举例:如数字1的起始位置坐标被定为(2,2)则数字2的可能位置坐标应为
(2,5),(5,2)或(4,4)上述位置在图中用“*”号表示。

‘肆’ 关于Java编程计算n个小球排成一线涂色的问题

最后答案是多少呢?需不需要输出每一种涂色的具体方案。
如果只输出方案数的话那么:
根据乘法原则
第一个球涂色有3种方案,最后一个球有2种方案,中间每个球从第二个都有2种方案所以最终方案数即:
3*2*2^(n-2) = 3*2^(n-1)

‘伍’ C语言 编程题目 程序设计题目 高中信息科技竞赛编程题目 【100分】

【第一道】
#include <iostream>
using namespace std;
#define pi 3.14159265
double maxvolume(double a,double b)
{
double v1,v2,r;
r=b/(2*pi+2);
v1=pi*r*r*a;
r=a/(2*pi+2);
v2=pi*r*r*b;
if(v1>v2)
return v1;
else
return v2;
}
int main()
{
double a,b;
cout<<"请输入矩形的长宽:";
cin>>a;
cin>>b;
cout<<"最大圆柱体积:"<<maxvolume(a,b)<<endl;
return 0;
}

【第二道】
//事实上,涂色方案不止样例上的一种,我把所有的可行方案都输出了一下
#include <iostream>
using namespace std;
int data[][8]={ {0},
{0,0,1,0,0,0,1,1},
{0,1,0,1,1,1,1,0},
{0,0,1,0,1,0,0,0},
{0,0,1,1,0,1,0,0},
{0,0,1,0,1,0,1,0},
{0,1,1,0,0,1,0,1},
{0,1,0,0,0,0,1,0}
};
int total;
int color[8];
char COLOR[5]={' ','R','Y','B','W'};
void output()
{
total++;
cout<<"["<<total<<"]\t";
for(int i=1;i<=7;i++)
{
cout.width(2);
cout<<COLOR[color[i]];
}
cout<<endl;
}
bool checkcolor(int s)
{
for(int i=1;i<=7;i++)
{
if(data[i][s]==1&&color[i]==color[s])
return false;
}
return true;
}
void drawcolor(int s)
{
if(s>7)
output();
else
for(int i=1;i<=4;i++)
{
color[s]=i;
if(checkcolor(s))
drawcolor(s+1);
}
}
int main()
{
cout<<" \t";
for(int i=1;i<=7;i++)
{
cout.width(2);
cout<<i;
}
cout<<endl;
drawcolor(1);
cout<<endl<<" \t涂色方案总数:"<<total<<endl<<endl;
return 0;
}

‘陆’ 做数控加工的学徒,图纸中的20°度角度的长怎么计算出来锥度部分的长是多少谢谢!

计算公式: 大径-小径/长度=锥度比,可以用三角函数。
锥度塞规主要用于检验产品的大径、锥度和接触率,属于专用综合检具。锥度塞规可分为尺寸塞规和涂色塞规两种。由于涂色锥度塞规的设计和检测都比较简单,故在工件测量中得到普遍使用。

‘柒’ 九宫格填数字有什么技巧!

1

一、凭借眼力查看那个九宫格数字多且相邻数字多

二、数字排除法(如上图)左下九宫格缺数字:1、4、5、7,横向纵向排除,只能9上面一格填1

‘捌’ 本人17了。 不想读书了。对电脑很感兴趣,不过以前只是玩游戏,基本的都懂。现在想学电脑。不知道从何起步

有的技术非常赚钱,学什么事都要下功夫,你有没有这样的毅力与恒心?

你可以学技术高级点,比如学造船套图,或学装配,管道,这一类,我在船厂

工作,我是套图主要是CAD,一月7000多元!学了四个月吧,跟别人混了几个

月,现在自己能独立工作了!

还有就是学编程IT,不过要学的深才有大的发展。

你也可以学机械,模具,数控,汽修,.销售,方案,会计这一类有精的话,一月可达3000-4000元,

如果你觉的这些比较累,脏,那么建议你学广告设计,这个很简单,但要在于

自己下努力,要经常练习,做题目!

平面设计我也学过,主要是PS,大街上广告,影楼图片制作之类,这个的话跟别人学个半年,那么自
己就可以开店了,好的话,一年赚个10万不成问题。

还有就是建筑。装潢电脑设计之类!

祝你好运,所谓行行出状元,只要学的精!!

‘玖’ 画点函数

WINDOWS图像编程

--------------------------------------------------------------------------------

图形设备接口(GDI,Graphics Device Interface)的主要目标之一是支持在输出设备(如视频显示器、打印机和绘图仪)上的与设备无关的图形。 GDI通过将应用程序与不同输出设备特性相隔离,使Windows应用程序能够毫无问题地在Windows支持的任何图形输出设备上运行。
Windows中的图形基本上是由从GDI.EXE模块中输出的函数处理的(尽管一些绘制函数实际上具有USER.EXE的入口点),GDI.EXE模块调用在不同驱动程序文件中的例程,其中有一个.DRV驱动程序文件用于控制显示屏幕,并且可能有一个或多个其他的.DRV驱动程序文件用来控制打印机或绘图仪。
Windows GDI使用两种坐标系统。使用虚拟坐标系统可以使程序不依赖于具体的硬件,使用设备坐标系统可以使程序和硬件紧密相联。
GDI含有在Windows应用程序内部执行、且与设备无关的图形操作函数,这些函数可产生各种各样的线、正文和位图,它们可以输出到许多不同的输出设备上。GDI允许一个应用程序产生笔、刷子、字体和位图,以供特定的输出操作使用。下面列出GDI中几组比较常用的函数:
·设备上下文函数
·椭圆和多边形函数
·绘图工具函数
·位图函数
·绘图属性函数
·正文函救
·映射函数。
·坐标函数
·元文件(metafile)函数
·区域函数
·裁剪(clipping)函数·
窗口应用程序输出图形的操作步骤如下:
①取得指定窗口的当前显示设备上下丈,显示设备上下文实际上是一个数据结构,它包括该窗口的参数及各种图形、文字属性的现行设定值,它们对以后的图形、文字输 出命令起控制作用。
②选择用户坐标系及映射方式。
③设定用户坐标系中的观察窗口和设备坐标系中的显示视区。
④输出图形、文字和图象。
⑤释放所使用的显示设备上下文。

当想要在图形输出设备(例如屏幕或打印机)上绘制图形时,必须首先获得设备上下文的句柄。先给出这个句柄,Windows才允许程序使用设备,在GDI函数中将句柄作为一个参数传入,向Windows标明需要使用的设备。
设备上下文中包含许多属性,当GDI在不同的设备上工作时都要用到这些属性。使用这些属性可使GDI只关心起始和终止坐标的大小,而不必关心有关对象的其他属性,如颜色、背景等等,因为这些都是设备上下文的一部分。当需要修改这些属性时,只需调用一个修改设备上下文中属性的参数,以后的程序中都使用修改后的设备上下文属性。设备上下文是连接Windows应用程序、设备驱动程序以及输出设备的纽带。
获取设备上下文句柄有多种方法。最一般的方法是当处理一条消息时获得了设备上下文、并在退出窗口之前释放它。一般的处理方法如下:
在处理WM_PAINT消息时
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps)
EndPaint (hwnd,&ps);
其数据结构为:
HDC hWnd;
PAINTSTRUCT ps;
而在windows.h中定义了PAINTSTRUCT的数据结构。
type struct tagPAINTSTRUCT {
HDC hdC;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL flncUpdate;
BYTE rgbReserved[16];
}PAINTSTRUCT;
其中,hdc用于标识显式上下文,fErase指出背景是否重画,rcPaint是涂色矩形,其余的域均为保留。这里的hdc是BeginPaint返回的设备上下文句柄,有了从DeginPaint获取的设备上下文句柄,就可以也只能在ps指出的rcPaint的矩形内绘图,EndPaint调用使这一区域有效。
第二种方法如下所示,使用这种方法获取和释放设备上下文可以在整个用户区内画图,图形在整个用户区域内都有效:
hdC=GetDc (hwnd );
…画图操作…
ReleaseDC (hwnd , hdc );
使用下面第三种方法获取和释放设备上下文,可以在整个窗口内画图,图形在整个窗口内有效:
hdC=GetWindowDc(hwnd);
…画图操作…
ReleaseDc(hwnd,hdc);
使用下面第四种方法获取和释放设备上下文,可以在整个显示器区域内画图,图形在整个显示器区域内部有效:
hdc=CreateDC (lpszDriver ,lpszDevice ,lpszOutput , lpData);
…画图操作…
ReleaseDC(hdc);
其中lpszDriver指向设备驱动程序的DOS文件名(不带扩展名),lpszDevice指向专用设备名(例如Epson Fx-80),lpszOutput指向物理输出介质(文件或输出端口)的DOS文件名或设备名,lpData指向含有设备驱动程序的设备专用的初始化数据的DEVMODE数据结构。例如:
hdc=CreateDC("DISPLAY",NULL,NULL,NULL);
使用屏幕画图,而:
hdc= CreateDC ("IBMGRX","IBM Graphics","LPT1",NULL );
在打印机上输出图形,这里的lpData置为默认值,可以在WIN.INI中找到初始化值。
如果不需要获取设备上下文,即不需要在设备上下文中操作,只需了解有关设备上下文的信息,可以用如下语句:
hdcInfo = CreateDC (lpszDriver, lpszDevice,lpszOutput, lpData );
……
DeteteDC (hdcInfo);
另外,还可以使用设备上下文来对位图的内存进行控制,如下所示:
hdcMem = CreateCompatibleDC (hdc)
OeleteDc(hdcMem );
一个元文件是以二进制形式编码的GDI调用集合,可通过获取一个元文件设备上下文来建立一个文件:
hdcMeta=CreateMetaFile(lpszFilename);
……
hmf=CloseMetaFile(hdCMeta);
在元文件设备上下文有效期间,使用hdcMeta所进行的任何GDI调用都成为元文件的一部分,当调用CloseMetaFile时,设备上下文句柄变化无效,函数返回元文件(hmf)的句柄。
一个设备上下文通常涉及物理设备,如视频显示器、打印机等,所以需要获取有关该设备的信息,如显示器大小和彩色能力等。可以通过调用GetDeviceCaps函数来获取这样的信息:
nValue=GetDeviceCaps (hdc,nIndex);
这里的hdc标识设备上下文,nIndex确定返回值,它可以是window.h中所定义的28个标识符中的一个,例如nIndex=DRIVEVERSION,则该函数返回的是版本号。

真正影响在用户区域上绘制过程的设备上下文属性是“映射方式”,与映射方式属性密切相关的还有如下四个设备上下义属性:窗口原点、视窗原点、窗口范围和视窗范围。
Windows定义了八种映射方式,即:

这里的TWIP指的是1/1440英寸,in.代表英寸。
可以调用函数setMapMode(hdc,MapMode)来设置这八种映射方式中的一种。hdc用来标识设备上下文,nMapMode可以取MM_TEXT、MM_LOMETRIC、MM_HIMETRIC等八个值中的一个。在设置了映射方式之后,到下一次设置映射方式之前,Windows一直使用这种映射方式。如果想要获取当前的映射方式,可用:
nMapMode= GetMapMode (hdc)
在设置了映射方式之后,就规定了逻辑单位的大小和增量的方式,在GDI画图函数中,可以不必考虑这些内容而直接使用逻辑数字,如:
SetMapMode(hdc ,MM_TEXT);
TextOut(hdc,8 ,16,szBuffer ,nLength)
即正文从用户区域左起第八个象素,顶边起第16个象素的位置开始写操作。不管映射方式如何,Windows函数中所有坐标规定为-32768 到 32767之间的带符号短整救。
注意映射方式只是一个设备上下文属性,因此映射方式唯一起作用的是将映射方式作为设备上下文句柄属性,而将该句柄当作参数的GDI函数,因此象GetSystemMetrics这样的非GDI函数,将继续以设备单位(象素值)返回尺寸值。

用GDI的SetPixel函数可以绘制一特定颜色的象素:
rgbActualColor =SetPixel (hdc,x,y,rgbColor);
这里hdc标识设备上下文,x ,y表示点坐标,rgbColor为一无符号的长整数,其结构为:
COLORREF rgbColor;
其中低位字节为红基色的相对亮度值,第二个字节包含绿基色的相对亮度值,第三个字节包含蓝基色的相对亮度值,高位字节必须为零。可以使用RGB函数来获取rgbColor。
rgbColor =RGB(byRed ,byGreen,byBlue);
这里的byRed、byGreen、byBlue取值范围为0~255,分别代表红色、绿色、蓝色的亮度。给出正确的参数之后,SetPixel返回的是调色板中最靠近所需彩色的颜色。还可以使用如下方法来取得一个特定象素的颜色:
rgbCotor= GetPixel(hdc,x,y);

画线函数主要有三种, LineTo、Polyline 和 Arc。还有五个设备上下文属性会影响这些函数画出的线的外观:笔的当前位置(仅对LineTo有影响)、笔、背景方式(对非实心笔有影响)、背景颜色(对 OPAQUE背景方式)以及绘制方式。
在这些设备上下文的属性中,笔的当前位置影响画线的起点,笔影响线的粗细等形状,背景方式影响非实心笔画出的线的模板图形,背景颜色影响线模板背景色,绘制方式影响实心线、虚线等线属性。
以下是典型的画线操作步骤:
MoveTo(hdc,xStart,yStart);
LineTo(hdc ,xEnd ,yEnd);
上面两句画出一条从(xStart,yStart)到(xEnd,yEnd)的直线。
可以使用语句:
dwPoint = GetCurrentPosition (hdc);
获得笔的当前位置。这里,dwPoint返回值是一个无符号长整数(或双倍长字),其中低位字含有X坐标,高位字含有Y坐标。
可以使用MAKEPOINT函数将dwPoint转换为POINT结构;
point = MAKEPOINT (dwPoint);
point的类型为POINT:
typedef struct togPOINT {kk1}
int x;
int y;
}POINT;
Polyline用于绘制折线,例:
Polyline(hdc,&pt,5)
将数组pt中的5个点之间用线段相连。
Arc用于画椭圆的周边:
Arc (hdc,xLeft,yTop,xRight,yBottom,xStart,yStart,XEnd,yEnd );
画出的椭圆以左上角为(xLeft,yTop),右下角为(xRight,yBottom)的矩形为界,圆弧开始于椭圆和(xStart,yStart)与椭圆中心的连线的交点处,沿着椭圆周边的过时针方向绘制,并终止于椭圆和(xEnd,yEnd)与椭圆中小的连线的交点处。
当调用LineTo、Polyline和Arc时,Windows使用当前在设备上下文中选择的笔来画线,笔决定了线的颜色、密度和型式,而线型可以是实线、点线或短划(虚)线,缺省设备上下文中的笔叫做BLACK_PEN,不管映射方式如何选支笔以一个象素的宽度画黑色的实线, BLACK_PEN是Windows提供的三支“备用笔”之一,其他两支是WHITE_PEN和NULL_PEN,NULL_PEN是一支什么都不画的空笔,当然用户也可以自己建立定制的笔。
可以通过一个句柄来引用所需的笔:
HPEN hPen;
hPen =GetStockObject(WHITE_PEN);
SelectObjeCt (hdc ,hPen) ;
SelectObject (hdc , hBrush ) ;
将逻辑刷送入设备上下文中。如果使用结束,可以用:
DeletObject (hBrush ) ;
删除一把已建立的刷子,如果在程序中需要获取有关于刷子的信息,则可以调用:
3.像素格式结构
每个OpenGL显示设备都支持一种指定的像素格式。一般用一个名为PIXELFORMATDESCRIPTOR的结构来表示某个特殊的像素格式,这个结构包含26个属性信息。Win32定义PIXELFORMATDESCRIPTOR如下所示:
typedef struct tagPIXELFORMATDESCRIPTOR
{ kk1}
// pfd
WORD nSize;
WORD nVersion;
DWORD dwFlags;
BYTE iPixelType;
BYTE cColorBits;
BYTE cRedBits;
BYTE cRedShift;
BYTE cGreenBits;
BYTE cGreenShift;
BYTE cBlueBits;
BYTE cBlueShift;
BYTE cAlphaBits;
BYTE cAlphaShift;
BYTE cAccumBits;
BYTE cAccumRedBits;
BYTE cAccumGreenBits;
BYTE cAccumBlueBits;
BYTE cAccumAlphaBits;
BYTE cDepthBits;
BYTE cStencilBits;
BYTE cAuxBuffers;
BYTE iLayerType;
BYTE bReserved;
DWORD dwLayerMask;
DWORD dwVisibleMask;
DWORD dwDamageMask;
} PIXELFORMATDESCRIPTOR;

4.初始化PIXELFORMATDESCRIPTOR结构
PIXELFORMATDESCRIPTOR中每个变量值的具体含义和设置可以参考有关资料,下面举出一个PIXELFORMATDESCRIPTOR初始化例子来简要说明相关变量的意义。定义PIXELFORMATDESCRIPTOR结构的pfd如下:
PIXELFORMATDESCRIPTOR pfd = { kk1}
sizeof(PIXELFORMATDESCRIPTOR), . //size of this pfd 1
PFD_DRAW_TO_WINDOW| // support window
PFD_SUPPORT_OPENGL| // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
24, // 24-bit color depth
0,0,0,0,0,0, // color bits ignored
0, // no alpha buffer
0, // shift bit ignored
0, // no accumulation buff
0,0,0,0, // accum bits ignored
32, // 32-bit z-buffer
0, // no stencil buffer
0, // no auxiliary buffer
PFD_MAIN_PLANE, // main layer
0, // reserved
0,0,0 // layer masks ignored
};
在这个结构里,前两个变量的含义十分明显。第三个变量dwFlags的值是
PFD_DRAW_TO_WINDOW |PFD_SUPPORT_OPENGL ,
表明应用程序使用OpenGL函数来绘制窗口
第四个:
PFD_DOUBLEBUFFER,
表明当前采用RGBA颜色模式,第五个采用24位真彩色,既1.67千万种颜色,如果是256色系统则自动实现颜色抖动;因为没有使用alpha缓存和累计缓存,所以从变量cAlphaBits到cAccumAlphaBits都设置为0;深度缓存设置为32位,这个缓存能解决三维场景的消隐问题;变量cAuxBuffers设置为0,在Windows 95下不支持辅助缓存;Windows 95下针对OpenGL变量ilayerType只能设置为PFD_MAIN_PLANE,但在其它平台也许支持PFD_MAIN_PLANE或PFD_MAIN_UNDERLAYPLANE;接下来bReserved变量只能设为0,而最后三个变量Windows 95都不支持,故全设置为0。

‘拾’ 高中数学涂色问题

这道题...不会
首先不知道中间的圆环是否涂色
其次我从来没听说过2个以上的同心圆涂色的问题,因为那样的话对于分割圆环的位置偏差会导致许多种不同的情况

另:我知道一个公式是关于圆环的涂色问题,不知是不是你要的答案
具体没记住,现推吧:
比如将一个圆环分成n份,有k种颜色给涂色,要求相临部分颜色不能一样,求有多少种涂色方法
第一个空中一定可以有k种涂法
第二个空中有k-1种涂法
第三个空到第n个空均有k-1种涂法
这么算如果第n个空的颜色和第一个一样就不符合题意
但是当第n个空的颜色和第一个一样时可以看成是将圆环分成n-1种颜色进行涂色 (这一步需要好好想明白)
所以n空涂色方法就是用k乘(k-1)的n-1次幂减去n-1空的涂色方法种数
n-1空涂色方法就是用k乘(k-1)的n-2次幂减去n-2空的涂色方法种数
以此类推得n空涂色方法就是用k乘(k-1)的n-1次幂减去k乘(k-1)的n-2次幂
减去k乘(k-1)的n-3次幂减去k乘(k-1)的n-4次幂......减去k
上式将k提出,用等比数列求和公式求得n空涂k色方法为
k*<(k-1)^(n-1)-[1-(k-1)^(n-2)/(2-k)]>
<>是大括号 ^表示幂
大致方法就是这样了......

热点内容
边的存储方法 发布:2025-05-16 17:33:16 浏览:926
海量服务器怎么拆 发布:2025-05-16 17:31:07 浏览:210
运行与编译的区别 发布:2025-05-16 17:25:02 浏览:823
c语言for中continue 发布:2025-05-16 17:20:14 浏览:648
ftp储存 发布:2025-05-16 17:04:08 浏览:504
家悦3010怎么看电脑配置 发布:2025-05-16 17:02:38 浏览:885
sqlin传参 发布:2025-05-16 17:02:37 浏览:889
python计算md5 发布:2025-05-16 17:02:32 浏览:427
看算法头疼 发布:2025-05-16 16:56:41 浏览:798
给定文件编译成dll文件 发布:2025-05-16 16:45:05 浏览:730