社区
C语言
帖子详情
各位高手我刚刚学C, 我在用turbo c2.0时调用initgraph, 然后又调用图形函数,当我运行调试是系统提示没有initgraph, 一连几次都是这样搞的小弟头昏眼花, 请各位帮帮忙!
lightarrow
2000-09-08 11:37:00
各位高手我刚刚学C, 我在用turbo c2.0时调用initgraph, 然后又调用图形函数,当我运行调试是系统提示没有initgraph, 一连几次都是这样搞的小弟头昏眼花, 请各位帮帮忙!
...全文
153
4
打赏
收藏
各位高手我刚刚学C, 我在用turbo c2.0时调用initgraph, 然后又调用图形函数,当我运行调试是系统提示没有initgraph, 一连几次都是这样搞的小弟头昏眼花, 请各位帮帮忙!
各位高手我刚刚学C, 我在用turbo c2.0时调用initgraph, 然后又调用图形函数,当我运行调试是系统提示没有initgraph, 一连几次都是这样搞的小弟头昏眼花, 请各位帮帮忙!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ad
2000-09-09
打赏
举报
回复
是图形驱动文件的所在目录问题。
hadrons
2000-09-09
打赏
举报
回复
#include "graphics.h"有么?
呵呵,
有的话,
initgraph(,,)
第三个参数是你的图形驱动程序所在的目录
G7
2000-09-09
打赏
举报
回复
例如你的turbo c2.0装在C:\TC中,你可以试试以下方法。
在DOS提示符下,敲入下面的命令,
C:\TC>BGIOBJ EGAVGA
C:\TC>TLIB LIB\GRAPHICS.LIB + EGAVGA
然后在你源程序的图形初始化涵数前,加入下面的一个函数,
registerbgidriver(EGAVGA_driver);
就可以了。
spinner
2000-09-08
打赏
举报
回复
你是不是忘了在主菜单里设置"使用图形库"了?
C语言绘图
函数
使用方法详解
C语言
图形
函数
Turbo
C提供了非常丰富的
图形
函数
, 所有
图形
函数
的原型均在
graph
ics. h 中, 本节主要介绍
图形
模式的初始化、独立
图形
程序的建立、基本
图形
功能、图 形窗口以及
图形
模式下的文本输出等
函数
。另外, 使用
图形
函数
时
要确保有显示 器
图形
驱动程序*BGI, 同
时
将集成开发环境Options/Linker中的
Graph
ics lib选 为on, 只有这样才能保证正确使用
图形
函数
。 1.
图形
模式的初始化 不同的显示器适配器有不同的
图形
分辨率。即是同一显示器适配器, 在不同 模式下也有不同分辨率。因此, 在屏幕作图之前, 必须根据显示器适配器种类将 显示器设置成为某种
图形
模式, 在未设置
图形
模式之前, 微机
系统
默认屏幕为文 本模式(80列, 25行字符模式), 此
时
所有
图形
函数
均不能工作。设置屏幕为
图形
模式, 可用下列
图形
初始化
函数
: void far
init
graph
(int far *gdriver, int far *gmode, char *path); 其中gdriver和gmode分别表示
图形
驱动器和模式, path是指
图形
驱动程序所 在的目录路径。有关
图形
驱动器、
图形
模式的符号常数及对应的分辨率见表2。
图形
驱动程序由
Turbo
C出版商提供, 文件扩展名为.BGI。根据不同的
图形
适配器有不同的
图形
驱动程序。例如对于EGA、 VGA
图形
适配器就
调用
驱动程序 EGAVGA.BGI。
VC
调用
BGI
图形
引擎
为什么要写这个库? 让初
学
者从
Turbo
C 2.0(以下简称 TC) 或 Borland C++ 3.1 开始
学
编程是个不错的建议,只是 TC 的环境实在太老了,复制粘贴都很不方便。有一个 Win-TC,简单用了一下,实在是个害人的东西,还不如 TC 好呢,因为它简化了所有
调试
的部分(或许是我没看到?),而
调试
是写程序相当重要的一部分。 不少老师直接拿 VC6 来讲 C 语言的,因为 VC6 的编辑和
调试
环境都很优秀。只可惜在 VC6 下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初
学
者会受严重打击的。许多老师让
学
生在 TC 下绘图,因为这的确会让人有兴趣。 所以,我想给初
学
者一个更好的
学
习环境,就是 VC6 的平台 + TC 的绘图功能,于是就有了这个库。如果您刚开始
学
C 语言,或者您是一位教 C 语言的老师,那么这个东西一定会让您兴奋的。 额外说明 这个库并不适合做产品,只建议用来入门
学
习。如果您想做简单的绘图产品,那么 SDL 库或许更适合您。或者,直接介入 DirectX 编程吧。 安装 下载的压缩包里除了说明,只有两个主要文件,将
graph
ics.lib 拷贝到 VC6 文件夹下的 Lib 文件夹内,将
graph
ics.h 拷贝到 Include 文件夹内,仅此而已,所以我就偷懒
没有
做安装程序了。 使用说明 目前只把我个人理解中的初
学
者常用的
图形
函数
做了一下。如果您需要更多的,
请
发邮件告诉我:lujianfeiccie2011@163.com,或者到我的博客提出来:http://hi.csdn.net/lujianfeiccie2009,我来完善。 使用上,基本和 TC 没什么区别。看一个画圆的例子吧: #include // 就是需要引用这个
图形
库 #include void main() {
init
graph
(640, 480); // 这里和 TC 略有区别 circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 getch(); // 按任意键继续 close
graph
(); // 关闭
图形
界面 } 呵呵,很简单吧。具体的
请
看
函数
列表,以及程序范例。
课程设计实验——八皇后_VC++游戏
八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数
学
家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。 对于八皇后问题的实现,如果结合动态的
图形
演示,则可以使算法的描述更形象、更生动,使教
学
能产生良好的效果。下面是用
Turbo
C实现的八皇后问题的
图形
程序,能够演示全部的92组解。八皇后问题动态
图形
的实现,主要应解决以下两个问题。 (1)回溯算法的实现 (a)为解决这个问题,我们把棋盘的横坐标定为i,纵坐标定为j,i和j的取值范围是从1到8。当某个皇后占了位置(i,j)
时
,在这个位置的垂直方向、水平方向和斜线方向都不能再放其它皇后了。用语句实现,可定义如下三个整型数组:a[8],b[15],c[24]。其中: a[j-1]=1 第j列上无皇后 a[j-1]=0 第j列上有皇后 b[i+j-2]=1 (i,j)的对角线(左上至右下)无皇后 b[i+j-2]=0 (i,j)的对角线(左上至右下)有皇后 c[i-j+7]=1 (i,j)的对角线(右上至左下)无皇后 c[i-j+7]=0 (i,j)的对角线(右上至左下)有皇后 (b)为第i个皇后选择位置的算法如下: for(j=1;j<=8;j++) /*第i个皇后在第j行*/ if ((i,j)位置为空)) /*即相应的三个数组的对应元素值为1*/ {占用位置(i,j) /*置相应的三个数组对应的元素值为0*/ if i<8 为i+1个皇后选择合适的位置; else 输出一个解 } (2)
图形
存取 在
Turbo
C语言中,
图形
的存取可用如下标准
函数
实现: size=imagesize(x1,y1,x2,y2) ;返回存储区域所需字节数。 arrow=malloc(size);建立指定大小的动态区域位图,并设定一指针arrow。 getimage(x1,y1,x2,y2,arrow);将指定区域位图存于一缓冲区。 putimage(x,y,arrow,copy)将位图置于屏幕上以(x,y)左上角的区域。 (3)程序清单如下 #include <
graph
ics.h> #include
#include
#include
char n[3]={'0','0'};/*用于记录第几组解*/ int a[8],b[15],c[24],i; int h[8]={127,177,227,277,327,377,427,477};/*每个皇后的行坐标*/ int l[8]={252,217,182,147,112,77,42,7}; /*每个皇后的列坐标*/ void *arrow; void try(int i) {int j; for (j=1;j<=8;j++) if (a[j-1]+b[i+j-2]+c[i-j+7]==3) /*如果第i列第j行为空*/ {a[j-1]=0;b[i+j-2]=0;c[i-j+7]=0;/*占用第i列第j行*/ putimage(h[i-1],l[j-1],arrow,COPY_PUT);/*显示皇后
图形
*/ delay(500);/*延
时
*/ if(i<8) try(i+1); else /*输出一组解*/ {n[1]++;if (n[1]>'9') {n[0]++;n[1]='0';} bar(260,300,390,340);/*显示第n组解*/ outtextxy(275,300,n); delay(3000); } a[j-1]=1;b[i+j-2]=1;c[i-j+7]=1; putimage(h[i-1],l[j-1],arrow,XOR_PUT);/*消去皇后,继续寻找下一组解*/ delay(500); }} int main(void) {int gdrive=DETECT,gmode,errorcode; unsigned int size;
init
graph
(&gdrive,&gmode,""); errorcode=
graph
result(); if (errorcode!=grOk) {printf("
Graph
ics error\n");exit(1);} rectangle(50,5,100,40); rectangle(60,25,90,33); /* 画皇冠 */ line(60,28,90,28);line(60,25,55,15); line(55,15,68,25);line(68,25,68,10); line(68,10,75,25);line(75,25,82,10); line(82,10,82,25);line(82,25,95,15); line(95,15,90,25); size=imagesize(52,7,98,38); arrow=malloc(size); getimage(52,7,98,38,arrow); /* 把皇冠保存到缓冲区 */ clearviewport(); settextstyle(TRIPLEX_FONT, HORIZ_DIR, 4); setusercharsize(3, 1, 1, 1); setfillstyle(1,4); for (i=0;i<=7;i++) a=1; for (i=0;i<=14;i++) b=1; for (i=0;i<=23;i++) c=1; for (i=0;i<=8;i++) line(125,i*35+5,525,i*35+5); /* 画棋盘 */ for (i=0;i<=8;i++) line(125+i*50,5,125+i*50,285); try(1); /*
调用
递归
函数
*/ delay(3000); close
graph
(); free(arrow); } 二、循环实现 Java /* * 8皇后问题: * * 问题描述: * 在一个8×8的棋盘里放置8个皇后,要求每个皇后两两之间不相冲突 *(在每一横列,竖列,斜列只有一个皇后)。 * * 数据表示: * 用一个 8 位的 8 进制数表示棋盘上皇后的位置: * 比如:45615353 表示: * 第0列皇后在第4个位置 * 第1列皇后在第5个位置 * 第2列皇后在第6个位置 * 。。。 * 第7列皇后在第3个位置 * * 循环变量从 00000000 加到 77777777 (8进制数)的过程,就遍历了皇后所有的情况 * 程序中用八进制数用一个一维数组 data[] 表示 * * 检测冲突: * 横列冲突:data == data[j] * 斜列冲突:(data+i) == (data[j]+j) 或者 (data-i) == (data[j]-j) * * 好处: * 采用循环,而不是递规,
系统
资源占有少 * 可计算 n 皇后问题 * 把问题线性化处理,可以把问题分块,在分布式环境下用多台计算机一起算。 * * ToDo: * 枚举部分还可以进行优化,多加些判断条件速度可以更快。 * 输出部分可以修改成棋盘形式的输出 * * @author cinc 2002-09-11 * */ public class Queen { int size; int resultCount; public void compute ( int size ) { this.size = size; resultCount = 0; int data[] = new int[size]; int count; // 所有可能的情况个数 int i,j; // 计算所有可能的情况的个数 count = 1; for ( i=0 ; i
I - K THEN 90 70 G = 0 80 GOTO 100 90 NEXT K 100 IF I <> 8 THEN 180 110 IF G = 0 THEN 180 120 FOR L = 1 TO 8 130 PRINT USING “##”; A(L); 140 NEXT L 150 PRINT “*”; 160 M = M + 1 170 IF M MOD 3 = 0 THEN PRINT 180 IF G = 0 THEN 230 190 IF I = 8 THEN 230 200 I = I + 1 210 A(I) = 1 220 GOTO 30 230 IF A(I) < 8 THEN 270 240 I = I - 1 250 IF I = 0 THEN 290 260 GOTO 230 270 A(I) = A(I) + 1 280 GOTO 30 290 PRINT 300 PRINT “SUM=”; USING “##”; M; 310 PRINT 320 END 四、八皇后问题的高效解法-递归版 //8 Queen 递归算法 //如果有一个Q 为 chess=j; //则不安全的地方是 k行 j位置,j+k-i位置,j-k+i位置 class Queen8{ static final int QueenMax = 8; static int oktimes = 0; static int chess[] = new int[QueenMax];//每一个Queen的放置位置 public static void main(String args[]){ for (int i=0;i
= 0) && (chess+k < QueenMax) ) qsave[chess+k]=false; if ( (chess-k >= 0) && (chess-k < QueenMax) ) qsave[chess-k]=false; i++; } //下面历遍安全位 for(i=0;i
C语言“
init
graph
“图象
函数
因此, 在屏幕作图之前, 必须根据显示器适配器种类将显示器设置成为某种
图形
模式, 在未设置
图形
模式之前,微机
系统
默认屏幕为文本模式(80列, 25行字符模式), 此
时
所有
图形
函数
均不能工作。其中gdriver和gmode分别表示
图形
驱动器和模式, path是指
图形
驱动程序所在的目录路径。有关
图形
驱动器、
图形
模式的符号常数及对应的分辨率见表2。用于不同
图形
驱动器,
Turbo
C提供了一个自动检测显示器硬件的
函数
, 其
调用
。2 circle(int x, int y, int radius)
函数
。
Turbo
C 2.0
图形
编程出现错误 BGI Error
博主最近在写数据结构的课程设计。抽到了经典的《池塘夜降彩色雨》。。。表示很蛋疼。跟自己
学
的算法挂不上半毛钱关系。甚至我现在都还认为跟数据结构
没有
半毛钱关系。 o(╯□╰)o。但这也没办法,还有队友等你去carry,就是一个字。干。 查了下网上相关题目的资料跟代码。发现其实就是用
Turbo
C 下
graph
ics.h里面的
图形
编程
函数
去写。 然后费劲各种努力装好了
Turbo
C 2.0 ,
学
会
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章