书签 分享 收藏 举报 版权申诉 / 35
上传文档赚钱

类型写程序建议事项.ppt课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2979067
  • 上传时间:2022-06-18
  • 格式:PPT
  • 页数:35
  • 大小:457KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《写程序建议事项.ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    程序 建议 事项 ppt 课件
    资源描述:

    1、1主题: 初步n写程序建议事项n开档技巧n指标复习传值与传址谢谢观赏2019-8-212n变量命名尽可能有意义n避免使用指标 (pointers)容易出错n尽量使用 global variables 容易实作nfunction 避免使用传址 (call-by-address) 参数n尽量使用 function 容易除错写程序建议事项谢谢观赏2019-8-213n目前教育部主办的高中信息竞赛要读档以及写入档案nACM Online Judge 全部使用 standard input/output,不开档开档技巧谢谢观赏2019-8-214#includeint main(void)int i;f

    2、reopen(“data.in”, “r”, stdin);scanf(“%d”, &i);return 0;#includeint main(void)int i;/freopen(“data.in”, “r”, stdin);scanf(“%d”, &i);return 0;由档案 data.in 输入(测试与正式比赛)由 stdin 输入(ACM On-line Judge)谢谢观赏2019-8-215#includeint main(void)int i = 3;freopen(“data.out”, “w”, stdout);printf(“%d”, i);return 0;#inc

    3、ludeint main(void)int i = 3;/ freopen(“data.out”, “w”, stdout);printf(“%d”, i);return 0;输出到档案 data.out(正式比赛)输出到 stdout(ACM On-line Judge 或测试)谢谢观赏2019-8-216指标复习 传值与传址n传值 (call-by-value)n传值时只传入该变量的值n在 function 中更改变量值不会影响呼叫时外面所对应的变量test(int i) printf(“%d”, i); / i = 3 i = 5; printf(“%d”, i); / i = 5mai

    4、n() int i = 3; test(i); printf(“%d”, i); / i = 3谢谢观赏2019-8-217指标复习 传值与传址n传址 (call-by-address)n传址时传入该变量的存储器位址(指标)n可以经由此位址读取并改写外面变量的值test(int *i) printf(“%d”, *i); / i = 3 *i = 5; printf(“%d”, *i); / i = 5main() int i = 3; test(&i); printf(“%d”, i); / i = 5谢谢观赏2019-8-218主题: 简单几何问题n解题技巧n题目说明n矩形、圆形、三角形、

    5、及凸多边形n例题讲解: A.476n历年题目谢谢观赏2019-8-219题目说明n给一点以及一几何图形,判断点是否落在几何图形内谢谢观赏2019-8-2110Problem 1: 点与矩形n平面上给定一点以及矩形的四顶点坐标,判断该点是否落在矩形内?x, yx1, y1x2, y1x2, y2x1, y2谢谢观赏2019-8-2111Solution: 点与矩形n判断该点是否被矩形的四个顶点包住x2 x x1, andy2 y y1otherwiseifyesno谢谢观赏2019-8-2112Representations of rectanglesn给定左下,右上两顶点n给定一顶点及长宽x1

    6、, y1lwx1+l, y1+w谢谢观赏2019-8-2113n给定对角线交点及长宽n给定一顶点及对角线交点lwx1, y1x1+ l/2, y1+ w/2x1- l/2, y1- w/2x1, y1x2, y22x1-x2, 2y1-y2谢谢观赏2019-8-2114Problem 2: 点与圆形n平面上给定一点 p 以及圆心 R 坐标及半径 r,判断该点是否落在圆内?x, yRx, Ryr谢谢观赏2019-8-2115Solution: 点与圆形n判断该点是否被圆包住if distance(p, R) ryesotherwisenodistance(p, R): sqrt(x-Rx)*(x

    7、-Rx) + (y-Ry)*(y-Ry)谢谢观赏2019-8-2116Representation of circlesn给定圆上三点n列出圆心(Rx, Ry)与三点等距方程式n解方程式ax, aybx, bycx, cy谢谢观赏2019-8-2117|b - a|2 = (bx ax)(bx - ax) + (by - ay)(by - ay)|c - a|2 = (cx ax)(cx - ax) + (cy - ay)(cy - ay)谢谢观赏2019-8-2118Problem 3: 点与三角形n平面上给定一点以及三角形的三顶点坐标,如何判断该点是否落在三角形内? x, yx1, y1x

    8、2, y2x3, y3谢谢观赏2019-8-2119Solution: 点与三角形n判断该点与三顶点拉线后所形成的三角形面积总合,是否等于原三角形面积(d)x1, y1x2, y2x3, y3abcif abs(a + b + c d) 0.000001 yesotherwise no谢谢观赏2019-8-2120n给三角形三顶点,计算三角形的面积n行列式法x1, y1x2, y2x3, y32132213221yyyyxxxxd 谢谢观赏2019-8-2121n行列式的计算结果123123211332213221322121yxyxyxyxyxyxyyyyxxxxd谢谢观赏2019-8-21

    9、22Problem 4: 点与凸多边形n平面上给定一点以及凸多边形的顶点坐标(顺时针或逆时针),判断该点是否落在凸多边形内?x, yx1, y1x2, y2x3, y3x4, y4x5, y5谢谢观赏2019-8-2123Solution: 点与凸多边形n判断该点与各顶点拉线后所形成的三角形面积总合,是否等于原凸多边形面积(f)x1, y1x2, y2x3, y3abcdex4, y4x5, y5谢谢观赏2019-8-212413211321.21yyyyyxxxxxfnnif abs(a + b + c + d + e - f) 0.000001yesotherwiseno谢谢观赏2019-

    10、8-2125例题讲解: A.476(http:/acm.uva.es/p/v4/476.html)n给 n 个矩形,以及平面上的数个点,为每个点判断被哪些矩形给包住231谢谢观赏2019-8-2126Sample Inputr 8.5 17.0 25.5 -8.5r 0.0 10.3 5.5 0.0r 2.5 12.5 12.5 2.5*2.0 2.04.7 5.36.9 11.220.0 20.017.6 3.2-5.2 -7.89999.9 9999.9左上 x, y 右下 x, y矩形输入结束测试的点测试的点输入结束谢谢观赏2019-8-2127132-10-50510152025302

    11、520151050-5-10谢谢观赏2019-8-2128Sample OutputPoint 1 is contained in figure 2Point 2 is contained in figure 2Point 2 is contained in figure 3Point 3 is contained in figure 3Point 4 is not contained in any figurePoint 5 is contained in figure 1Point 6 is not contained in any figure 谢谢观赏2019-8-2129需要的资料结

    12、构nint num_fign总共有几个矩形nint num_pointsn总共有几个点ndouble xleft11, xright11, yup11, ydown11n输入的矩形的左上及右下 x, y 坐标ndouble x, yn输入点的 x, y 坐标谢谢观赏2019-8-2130Program Structureread_figures();while (read_point() != 0) test_point();谢谢观赏2019-8-2131read_figures()read_figures() char fig;num_fig = 0;while(1) scanf(“%c”,

    13、 &fig); /读第一个字母读第一个字母if(fig = *) break; /如果是如果是 *,代表长方形的输入结束,代表长方形的输入结束else scanf(“%lf %lf %lf %lfn”, &xleftnum_fig, &yupnum_fig, &xrightnum_fig, &ydownnum_fig);num_fig = num_fig+1; /记得将长方形的个数加一记得将长方形的个数加一 谢谢观赏2019-8-2132read_point()read_point() scanf(“%lf %lf”, &x, &y); if(x = 9999.9 & y = 9999.9)

    14、return 0;elsereturn 1;谢谢观赏2019-8-2133test_point()void test_point() int i, flag;flag = 0; /纪录是否有被矩形包住过的纪录纪录是否有被矩形包住过的纪录for(i = 0 ; i num_fig ; i = i+1) /*长方形的编号是从长方形的编号是从 1 开始的开始的*/ if(xlefti x & ydowni y) /*被包住的条件被包住的条件*/ printf(“Point %d is contained in figure %dn”, num_points, i+1);flag = 1;if(fla

    15、g = 0) printf(“Point %d is not contained in any figuren”, num_points);谢谢观赏2019-8-2134Program main#includedouble xleft11, xright11, yup11, ydown11, x, y;int num_fig, num_points;int main(void) freopen(“data.txt”, “r”, stdin);/若送到若送到acm online judge,这行拿掉,这行拿掉num_points = 0;/纪录总共有几点纪录总共有几点read_figures()

    16、;while(read_point() != 0) num_points = num_points + 1;test_point();return 0;插入所有 functions谢谢观赏2019-8-2135历年题目n练习题nA.478 Points in Figures: Rectangles, Circles, and TrianglesnA.10221 SatellitesnA.10432 Polygon Inside a Circle (需三角函数)n挑战题nA.191 Intersectionn其他历年题目nA.378, A.476, A.477, A.190, A.438谢谢观赏2019-8-21

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:写程序建议事项.ppt课件.ppt
    链接地址:https://www.163wenku.com/p-2979067.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库