C语言图形程序设计报告(精选16篇)
实验二 循环结构程序设计
班级 2012196 学号 201219628 姓名 李明月
一、实验目的
(1)掌握用while语句,do-while语句和for语句实现循环的方法;(2)掌握循环结构的嵌套;
(3)掌握break语句和continue语句的使用方法。
二、实验内容及步骤
1.相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。国王能兑现他的许诺吗?
程序1:试编程计算舍罕王共要多少粒麦子赏赐他的宰相,这些麦子合多少立方米?(已知1立方米麦子约1.42e8粒)总粒数为:sum=1+2+22+23+„+263 程序代码:
#include
for(i=1;i<=63;i++)//用for循环语句实现循环运算 { t=t*2;sum+=t;//循环表达式 } printf(“总麦粒数为:%fn”,sum);v=sum/1.42e8;printf(“折合体积为: %f立方米n”,v);//对结果进行输出
return 0;} 运行结果:
2.求完数。
程序2:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,输出所有的完数(要求:一行显示6个数);
程序代码:
#include
sum=0;for(j=1;j
if(i%j==0)
{
sum=sum+j;
} } if(sum==i)
{ printf(“ %d”,i);
n=n+1;
if(n%2==0)
printf(“n”);
} } printf(“n”);return 0;} 运行结果:
3.打印九九乘法表
程序3:编程输出如下上三角形式的九九乘法表。2 3 4 5 6 7 8 9-------n“);for(i=1;i<10;i++)//i { for(j=1;j<=i;j++)// printf(” “);for(j=i;j<10;j++)//j printf(”%-2d “,i*j);// printf(”n“);}
代表行 输出空格达到来使得向右对齐代表列
输出行与列的乘积 3 1 2 3 4 5 6 7 8 9
运行结果:
三、问题讨论
break语句和continue语句在循环结构中使用时有何区别?举例说明。
break语句是跳出整个循环过程,不再判断执行循环的田间是否成立,并且break语句不能用于循环语句和switch语句之外的任何其他语句中。而continue语句则只是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
例子:
#include
printf(”%d“,i);} printf(”n");return 0;} 输出:
但是换成break之后:
四、实验心得
关键词:传统图形,图形创意,图形设计
一、传统图形的造型特色
中国传统图形包罗万象, 不同历史时期, 不同地域民俗文化形成了不同的图形特色。下面我们简要谈谈在平面设计中用得比较多的汉字。早期汉字书法字体形态飘逸有力, 经过千年演变形成简体字, 在浓缩了时代精华的前提下更加精炼, 极具当代设计感。用于图形上的中国字体更具多变性, 宋体字的起承转合和草书的隽逸潇洒, 承载了很多现代思想的创意理念;而设计中的书法字体常常运用黑与白之间的丰富变化和运笔的走势使中国字体图形有了更多水墨韵味和文化特色。
再说说传统的剪纸图形特色, 在造型上不同于其他的绘画图形, 它没有立体空间中的变化, 但剪纸图形的平面夸张变形, 具有很强的形式与韵律感。剪纸图形常采用对称, 均齐, 平衡, 组合, 连续等表现方式;常常出现“层层叠叠”及一些交错情景的形式, 富有装饰感和节奏感。而且剪纸简单, 统一的色调, 简中求繁的方式, 成就了剪纸协调, 明快的感觉。
中国传统图形博大精深, 汉字字体中涵盖着深厚的美学精神, 体现着中华民族的气质, 各个朝代的审美与民族的人文精神, 已成为字体图形的美学外衣。而民间剪纸艺术在悠久的中国文化中古老而长青。它们的普及性, 实用性和审美性具有着普片大众心理需要的民族象征意义。
二、图形设计的现代表现手法
现代图形设计与传统图形的古典与平面化不同的是, 现代图形的表现手法更多样化, 表现形式更多变。科技的创新, 使原本简洁, 古典的传统图形有了耳目一新的感觉。从图形创新的几种手法即可看出, 比如常用到置换同构, 整合变形等一些表现手法就被巧妙的运用到了对传统图形的设计中, 使传统图形焕发出崭新的生命力。
图形设计的置换同构手法, 是图形元素的一部分被另一种元素的一部分所替换, 以原图形为依据, 在图形创意中更易于表现和挖掘, 体现全新的形象。如图形设计中, “永”字的中间竖划被一个优美站立的体操运动员的形体所替代, 黑白的色彩以及与字体抑扬顿挫的造型贴合, 让图形所表达的坚毅感与人体所代表的体操精神跃然于纸上, 暗喻永不言败的精神, 让人记忆深刻。图形设计中的整合同构手法在传统图形的设计中也经常的运用。如中国民间独特的剪纸与充满情趣的纸风车的结合, 似是转动的风车吹来怀旧的中国风。其中剪纸与风车共同的材质特性和所共同生发的历史感, 这一先决条件决定了它们之间适于整合的共性, 最后得到了截然不同的画面感, 巧妙而有新意的形象让人印象深刻。
现代图形设计传递着丰富的文化内涵。在现代设计中我们多看到以剪纸为创作的蓝本, 融合中国版图, 将传统图案与现代图形进行结合的设计。这类作品以大陆版图为主框架, 辅以一层大方, 明快的剪纸图案, 剪出的发射状的红色花型, 覆盖后呈现一片红艳的景象, 发散的视觉效果, 使人联想到一派欣欣向荣的情景, 也传达着国家正一步步走向繁荣的引申含义。再如结合中国书法字体的设计, 满满书写了中国草书的西方字母“A”, 虽然有着西方的外形, 却难掩内在浓厚的中国风, 似乎预示着中西方文化的冲击, 可往深处联想, 便不难看出, 文化的交融, 不是蚕食, 而是显示了中国的古话, “海纳百川, 有容乃大”所传达的哲学含义, 自然不言而喻。
三、现代平面设计与传统图形的结合
民族的传统图形是人类智慧的结晶, 我们要传承与发扬并将他融入现代图形的设计中, 使当代设计创作出来的图形充满着古韵感的同时并兼具着现代感。传统图形与现代设计表现手法的结合让人感受到, 风格与手法的新颖多变, 焕然一新的图形形式使人眼前一亮。在日新月异的现代图形中掀起了的一股古典怀旧的风格, 特别得到了设计师们的青睐。对于古典与现代的结合, 总是能在图形中找到它们融合的身影;这些融合也往往带着引申的含义和对现代图形设计的启发。
现代图形设计, 已经进入一个新的设计局面, 时代的元素与古典文化的结合, 不断在这个时代的设计领域创出新意。这些传统的图案通过现代技法的整合、置换, 并结合新的设计理念, 使创作出的图形成为当代最优秀的创作源泉, 直击大众心理。
民族传统的图形语言是生活的语言, 艺术的语言, 情感的语言;它既能给现代图形提供最有生命力的艺术基因, 还能保持图形设计中所需要的文化基因。在图形已经非常时代化的今天融入拥有复古韵味的中国传统图形, 也使大众在现代图形中找到一抹宁静与淡雅。人们已不在对科技手法十足的现代图形设计情有独钟, 因为有着强烈的视觉冲击但缺少一丝感动, 所以传统图案的出现恰到好处, 这种深入人心的设计方式, 也成为了新时代的新审美。
综上所述, 民族传统图形在现代设计中的运用, 其不仅在表现手法、图形创意以及视觉上有了推陈出新的效果, 使人眼前一亮, 也更成为了现代人的一种心灵慰藉。否则, 只单纯的拥有视觉效果而缺乏心灵沟通和文化底蕴的图形设计, 并不会完全被大众所接受和感知。我们与其说是传统图形融入现代图形, 还不如说是, 现代图形需要传统图形的融入;传统图形适应着时代和人们的需求, 转化着现代图形的生硬, 以它自身的古典魅力和文化底蕴直达人心。
参考文献
[1]吴晓兵著, 《图形创意基础》, 中国纺织出版社, 2004年4月第一次印刷, P17
[2]江明著, 《图形创意》, 上海人民美术出版社, 2006年11月第一次印刷, P82
早期的视觉图形
有据可查的图形来自法国的拉斯科洞穴中的岩画,在当时,原始人类是追求图腾的崇拜,克服心理的恐惧或者生活的寄托,它已经作为一种图形在传承技艺的信息。
在我国,较早的运用广告图形的是一幅眼药广告,它所记录的是卖者向买者展示“产品”的场景,属于情景图形,让人产生深刻记忆。
图形与传达
广告设计是以传达为目标,销售为目的的宣传活动。其中最基本的组成部分为图形、文字和色彩。在这里,图形作为最广泛的一种传播符号,它有着无与伦比的魅力,它的传播广泛性是其他视觉语言无法达到的。
首先,图形具有广泛的认知感。它可以跨越区域、国家,可以不受文化层次,宗教信仰的约束,直接、准确地传达信息。
其次,图形作为视觉符号,更具亲和力。不用受众长篇累牍,就能了解信息。传达信息更快速,更简洁,更易被人接受。
最后,图形能够以幽默、诙谐的形式来表达主题,更具亲和力,使人在轻松地气氛中获取信息。图形,以其独具性格的视觉语言形式而存在,为传达领域提供着新奇、乐趣。
现代广告设计中的图形
现代广告设计中,创意图形是表达广告主题的灵魂,是广告人灵感的体现。与其他的纯艺术门类不同的是,广告设计中的图形是以市场为导向,产品的营销为终极目标的。
随着社会的发展,人们审美要求的不断提高,消费者在选择购买产品时不再是一味的盲目,而是进行综合的分析筛选。对其产生影响的有可能是候车亭的一张海报,也可能是产品的某类包装。这种转变的产生,也让现代广告设计不能停留在“有话直接说”的阶段,逐渐转变为“有话好好说,艺术化地说”。
现代广告中图形创意的重要性
一则优秀的广告作品,通过自己独特的视觉图形语言来准确生动地表达设计主题,运用最简洁有效的元素体现深刻内涵。图形创意在广告作品中是视者最关注、最敏感的中心,是设计的灵魂所在。
日本的图形设计大师福田繁雄,他的作品极具视觉冲击力,以简洁的图形、线条生动鲜美地揭示主题。在美国发动对越南的战争,给越南民众带了无穷灾难的背景下,设计界发动了反对战争的主题设计,福田繁雄的设计简洁明了,赢得了众多设计师的赞誉。整幅构图采用对角线式的安排,温和而醒目的黄色基调,黑色大炮和离膛反向飞出的子弹为主要图形元素。使人深刻感受到设计意图,同时向人们传递“发动战争者必将自食其果。整幅作品仅仅通过图形与观众沟通,无须旁白,深刻说明事理,发人省醒,视觉图形语言的魅力尽显于此。
图形语言的表达形式
创意图形可以是来源于现实生活或者自然界,安装设计者的思路、意图进行整理、加工,形成更具冲击力、美感或者独具寓意的视觉形象。在搜集素材时,我们可以通过联想和想象的方式展开。
联想就是由事物A想到事物B的心理活动。联想源自观察,通过细微的观察,发现事物之间新的联系,将两个或几个看似不相关的事物联系在一起,完成联想过程。我们在联想表现时一般由以下几种情形:相似性联想、接近性联想、对比联想、借代联想和因果联想。在美国有一则这样的禁止吸烟的广告:为了能使地毯上没有洞,为了使自己的肺没有洞,请勿吸烟。这是广告人敏锐洞察力和创意结合的应用,由吸烟产生的负面结果,来警示人们吸烟带来的危害。
图形作为现代广告设计中重要的视觉语言,肩负着吸引眼球,完成促销的任务。为了更好地引起人的注意,采用新奇、诙谐、极具亲和力的图形,最大限度的发挥广告的传达信息的功能。想象,是广告人必须具备的先决条件。前期我们通过联想的形式来搜集了原材料,要想制出独具一格的设计作品,还需要通过想象对原材料进行加工,运用筛选、分解、组合、构造的手法来完成。想象一般分为再造性的想象和创造性的想象。再造性的想象,通常依据我们头脑中队语言文字或者现有的形状印象,进行再现形象的构思过程。与原有物象区别对待,产生全新的形象或者概念。而创造性的想象,充分利用自己积累的视觉符号,对造型元素进行细化、改造,以不合逻辑的形象来表达合乎逻辑的寓意,带给受众新奇。强烈的视觉盛宴。在图形创意中,联想和想象是由目的性的,是以传达为目的的,是为了更好地进行新图形的构建,创造出更具震撼力、引人深省的寓意图形。
结束语
图形以自己独有的形式在广告设计中发挥着作用,让现代广告设计的创意源源不断的更新。随着社会的发展,图形也随之发生着改变,有简洁明了的,有诙谐幽默的,也有夸张抽象的,唯美生动的,不管是那种类型,最终目的都是为了传递信息,也在改变着人们的审美。随着图形的表达方式的智能化,它将在现代广告中发挥更大的作用。
(作者单位:河北传媒学院)
一、课程设计题目1
二、设计任务分析1
三、系统总框图1
四、功能模块描述21.模块名称:主函数22.模块名称:建立数组33.模块名称:读取二维数组34.模块名称:计算聚点及象素点45.模块名称:屏幕输出二维数组6.模块名称:保存数组到文件7.模块名称:清空结果8.模块名称:对结果进行快速排序9.模块名称:计算平均象素10.模块名称:选择赋值函数11.模块名称:产生随机数函数12.模块名称:寻找聚点函数13.模块名称:入队操作14.模块名称:出队15.模块名称:排序函数16.模块名称:一趟快速排序函数
五、源程序
六、简单调试
《C语言程序设计》实验报告
年级:2009级(必修)
学号:姓名:专业:
实验题目:
输入一个班N个学生(N为符号常量,自定人数)的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。
3)按实验报告电子模板格式填写实验内容。
可用多个函数或多个源文件实现
可以用数组法、指针法、结构体法编写程序。
源程序清单:
主要标识符说明:(说明变量、函数、指针、结构体等)
实验结果贴图:
实验环境:
intel Pentium 4 计算机,windowsXP操作系统,Microsoft Visual C++ 6编译环境。
教师评语:
综 合 实习报 告
学号
姓名 班级 指导教师
课题一: XXXXXXXXXXXXXXXXX
一、目的1.2.3.二、实习环境
个人计算机,Windows操作系统,Turbo C 2.0或 WinTC或Visual C++等编译开发环境
三、实习内容与步骤
1.在函数中进行10个学生成绩从高到低排名 sort(int a[10])
2.改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名,3.改进第二步的函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。(a:ascending升,d:descending 降)
四、程序流程图、算法及运行结果
五、知识点、难点及解决办法。
关键词:汉字,构型,图形化,设计
一、解读汉字符号的本质特征
五千年的中华文明传承得益于汉字文化的沿袭, 这是形成我国悠远传统文化的根基。汉字源自图形的演变组合, 具体表现为将各种图形符号进化为一整套音形意具备的汉语言文字。汉字的发展更新经历了漫长的渐变过程。在这期间, 我们对汉字的字形加以装饰和美化, 使之成为一种特定需求的形态符号。所谓汉字图形, 其实就是对各种汉字的组成结构加以适当的修饰, 使其外在表现形式能够符合既定的需求, 其实质是利用各种汉字创作手法对原有汉字的笔画顺序、空间布局等进行美化加工, 孕育出特殊意义的美感。
(一) 汉字符号的象征本质
文字是一套书写的语言符号, 这些符号的产生是为了便于人们记忆或标记某事物。它不仅仅可以以视觉方式呈现出来, 还能通过听觉和知觉的形式加以表现。凡是那些能够被人所强烈感知, 并且这种感知可与某种特定的意义或价值观念直接相联系的话, 都可以被视为是一种符号形式。
追溯世界文字的发展历史, 我们发现:不论是远古时代刻于石器、木器上的文字, 还是近现代记载于皮革、帛画、纸张上的文字都是视觉符号。诚然, 文字的表达形式千变万化, 但其内涵所带给人的视觉效应一般可归结为两类:表意类的文字系统与表音类的文字系统。所谓表意类的文字系统, 指的是汉字的形状结构可使人与其所代表的客观世界直接关联起来, 在这一层面上, 字形实质上传递了一种文化轨迹。除了目前我国的汉字文化和“纳西文字”之外, 还发现过其他自源型文字的踪迹, 譬如说著名的玛雅文字。表音类文字稍微复杂一些, 它首先是通过汉字的字形表现使人们获得一种音响感知, 而后再通过这种音响形象与某些特定的客观意象发生联系。在这里, 字形是音响感知的外在表现。表音类的文字系统几乎涵盖所有借源型文字。
谈到象征的艺术表现手法, 其主要是通过直观清晰的艺术表现形式将人们对于外界事物的认知情况表达出来。运用象征这种艺术手法能够使得抽象概念形象化, 复杂事理简单化, 同时还可以创造一种艺术意境, 进而增强作品的艺术表现力。因此, 在艺术作品中往往借用象征的手法和象征图形符号来表达思想情感和概念内涵。汉字图形作为一种将思想图像化、语言符号化的艺术构成形式, 其本身所隐含的丰富内涵和深刻寓意都体现出一种象征手法的存在。恰恰由于汉字图形文化具有符号化的特殊含义, 且其形象非常鲜明, 因此在追溯汉字的实质内涵时通常带有强烈的象征性。
(二) 汉字图形构型规律
汉字的外轮廓是汉字的基本特征, 其又可以表述为形态、形象等词汇。所谓形象, 就是指事物的外貌, 这就有一个“形”与“神”的辩证关系问题, “形”“神”都是我国美学体系中常用的概念之一。从设计学的角度来说, 此处的“形”绝不仅仅是我们常人所理解的那种“形”, 而是有其深刻的文化内涵。我们可以从两方面对其进行深入分析, 从广义上来看, 即指任何与形状相关的一种可视状态。从狭义上理解, 就是特指图形所表达出的一种结构模式。“形”是一种视觉表达概念, 而视觉感知一般都是借助于语言媒介才能得以充分表现。
汉字文化约有五千年的发展演变史, 堪称世界古老的文字结构形式。其最初是发源于事物的外在形态, 与图形有着密切联系, 可以说是象形的表现。具体说来, 象形字就是画物象的形状, 以形状表达它的含义。许氏云:“画成其物, 随体诘诎, ‘日’‘月’是也。”象形即指象于物形, 它是对具体事物具象形态的描摹与概括。由于汉字起源于图画, 而且象形和图画有着密切的关系, 因此图画表象就成为了原始思维的传达特征, 象形文字由形象到概念, 无不体现了先人思维方式的本质特点。
文字的装饰美化从我国汉字起源时就已出现, 而汉字图形作为一种从汉字中独立出来的特殊艺术形式, 其本身也带有很强的装饰特征, 如春秋战国的鸟虫书、秦汉的瓦当文字以及流行于民间的花鸟字等, 都可以说是汉字图形装饰化的代表。
二、汉字图形化设计的分析
(一) 现代汉字图形设计的现状分析
现代汉字的图形设计遵循的是既定的图形设计理论及方法观念的指导, 其主导内容是汉字语言的文化形态特征等。身处现代化的信息时代, 汉字的艺术魅力得到了更为充分的发挥, 其特有的艺术形态结构极具视觉美感。对我国现代汉字图形设计史进行梳理, 就会发现很多著名设计大师所设计的汉字图形作品交融了中西文化的精华, 提供了一个中西文化共通的生存空间。靳埭强就是一个不可不提之人, 他所涉及的汉字非常强调传统理念与现代艺术的结合。在其作品中经常可感受到古今结合的魅力时尚感。他还十分重视中国传统水墨画的境界表达, 擅长将书法艺术、绘画艺术以及笔墨纸砚等工具充分融合, 完美地呈现出东方文化的浓浓意蕴和儒雅境界。
(二) 从汉字形态构造分析图形化再设计
认真研究汉字的字形结构会发现:其实每个汉字都具有独特的视觉效应。它通过一定的结构组成、发音韵律等演绎出不同风格的文字魅力, 可以典雅庄重、可以清新唯美、可以孤独凄凉, 也可以强烈窒息。要想所设计的字形结构达到最美的艺术境界, 必须充分了解每个汉字的组成结构、笔画构造及韵律构成等。唯有做到这些才能丰富自己的创作头脑。对汉字文化的精神内核进行仔细研究后, 还有助于对其进行创新改造, 设计出形式新颖的现代文字艺术。也可以借鉴古时的汉字造字方法, 使汉字的图形设计感官性更强。
1. 图形化设计中的外形统一
汉字的字形在进行组合构造时要保证整体风格的和谐统一, 这样才能在视觉表达上占据优势、提高关注度, 使汉字的表意更加清晰明确, 也更能传达出汉字所富有的文化内涵。在具体的设计过程中, 对汉字的字形结构进行了分析研究, 增加了一些形式元素, 使整个汉字既能表现出自由、洒脱感, 并且也能兼顾到整体的一致。
2. 图形化设计中笔画的统一
需要注意的是, 在设计文字的字形结构时要遵循笔画的粗细搭配原则。针对同一个汉字的笔画设计与不同汉字之间各种笔画的安排, 必须保持形式感上的统一, 不能使汉字整体出现一种违和感。对于每一个汉字的笔画设计, 都要严格遵守设计中对比关系的运用, 每个元素之间的距离都有严格的考究, 使得每个字都有一种层次感, 这样既符合了统一不突兀的要求, 也让字体的整体美感有所体现。
3. 图形化设计中结构的统一
汉字具有天然的艺术美感, 因此在字形设计时务必对汉字结构有充分地了解, 适当地对原有结构进行改造, 要在把握住汉字本身固有结构的基础上, 作较大胆地处理, 使观者将视线集中在汉字的结构上。每个字不再是呆板的方块字, 而是具有不同的形态和姿势, 使文字也具有了人性化和生命化。
因此在汉字图形化的再设计时, 为了使汉字的主题表意更为生动有趣, 可适当对其结构进行完善处理。尤其要重视汉字的外在结构, 帮助呈现出最为鲜明的视觉效应。在进行具体的设计时要突破常规, 遵循一定的原则对汉字字形的结构、比例等进行恰当的修改, 对原有汉字结构进行润饰, 提高汉字的新鲜性和生动性。
三、结语
汉字文化作为一种重要的艺术表现形式, 不仅极富美感, 还有特定的象征含义。它是对中国五千年文化传统的描述, 呈现了中国文化的精粹, 是我国优秀民族文化的重要分支。汉字文化不仅仅承载了人们浓厚的思想情感, 也传递了语言字形的发展变革。进入到“图形主导”的艺术设计新时期, 汉字图形的设计变得越发重要。所以说, 针对汉字图形研究提出专门的课题研究申请, 目的就是为了对其进行全面、深入地剖析, 以使人们能够更为清楚地了解其文化意蕴。
参考文献
[1]高胜难.从象形到图形的转变[D].武汉理工大, 2007.
[2]徐妹.汉字图形的“形”“意”探述[D].东北师范大学, 2008.
关键词:教学方法案例教学启发教学教学效果
0 引言
《C语言程序设计》作为计算机专业的基础课,已经成为一门必修的语言课程,在整个语言课程体系中占有非常重要的地位。在C语言教学过程中,从客观上讲,教师的教法和学生的学法的差异,对教学效果都会产生很大的影响。针对教师的教法和学生学习语言类课程的学法,结合近几年来的教学经验和教学体会,把一些经验和方法总结出来,希望能对C语言课程的教学和学习有所帮助。
1 分析教学中存在的问题
《C语言程序设计》是一个逻辑性很强的课程。有些问题是将数学知识转化用c语言来实现,这就要求学生首先要能够理解和掌握数学知识,才能将其转化用c语言来实现。在调试程序时,提示的信息都是用英语给定,那么也就要求学生掌握最基本的英语单词,有些甚至是计算机专业英语,能将英语句子翻译为汉语,才能够对程序加以修改。学生在心里认为c语言难学,没有积极学习的主动性,导致上课时没兴趣,不能专心听讲,布置的作业无从下手,在实践课中,看到要编写的程序题目,理不出头绪。
2 涉及新的知识要有导入
在教学的過程中,要将新的知识点,要有很自然的导入语,引导学生思考问题和解决问题的方法。例如:scanf(“%d”,&a);只能从键盘接受 一个整型数,现在要输入40名学生的成绩,如何通过一个scanf函数来实现,难道是要定义40个变量,那如果要接受100个数呢?更多的呢?为了解决诸如此类的问题我们采用数组来实现。这样也就引导学生思路跟着教师,给他们提出问题,在给出解决问题的办法。
3 举一反三
给定一个例子时,将涉及到的所有内容都要讲到。各种形式,可能出现的错误都要指定。例如:现在要求n!我们可以给定一下几种形式:
(1)main()(2)main()
{ int i=1,n;{inti=1,n;
doubles=1; doubles=1;
scanf("%d",&n); scanf("%d",&n);
while(i<=n) do{ s*=i;
{s*=i;i++;
i++;} }while(i<=n);
printf("%lf",s); printf("%lf",s):
} }
(3)main()(4)main()
{inti,n ; {int i,n;
double s=1;doubles=1;
scanf("%d",&n); scanf("%d",&n);
for(i=1;i<=n;i++)i=n;
s*=i;while(i>=1)
printf("%lf",s); {s*=i;
} i--;}
printf("%lf",s);}
(5)main() (6)main()
{intI,n; { inti=0,n;
doubles=1; doubles=1;
scanf("%d",&n); scanf("%d",&n);
i=n; while(i<=n)
for(i=n;i>0,i--) {i++;
s*=I;s*=i;}
printf("%lf",s);}printf("%lf",s);}
一个例子可以给出多种方法来实现,在这只给出6中形式,从这6种中,就可以看到初值不同,语句的书写顺序不同。通过一个例子,让学生能理解各种形式,遇到诸如此类问题时,就可以迎刃而解。
4 与实践教学相结合
程序设计课程具有很强的实践性,对于计算机语言课程的教授不应仅仅是传授知识,应该以培训能力为主。C语言的内容繁多,在有限的课时内不可能也不必要面面俱到,所以必须突出重点,突出实用性,关键在于教会学生正确运用C语言编写程序。应始终坚持以应用为中心,以算法为基础,以培养学生的实践能力为核心,突出技术实用性和再学习能力的培养。
参考文献:
[1]朱健,庞倩超.C语言程序设计案例教程.全国高职高专教育精品规划教材:北京:交通大学出版社.
[2]郭芹.对高职高专计算机专业程序设计教学的思考.中国科技信息.2008(1).
[3]谭浩强.C语言程序设计教程.北京:高等教育出版社.
学生姓名: 学 号: 专业班级:
√ 综合 □ 设计 □ 创新 实验日期: 实验成绩: 实验类型:□ 验证 □一.实验名称
实验3 控制语句
二.实验目的
1.熟练掌握if、if…else、if……elseif语句和switch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。
2.熟练掌握while语句、do……while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。
3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
三.实验内容
1. 选择结构程序设计; 2. if语句的使用;
3. 使用switch语句实现多分支选择结构; 4. 三种循环语句的应用; 5. 循环结构的嵌套;
6. break和continue语句的使用。
三.实验环境
PC微机
DOS操作系统或 Windows 操作系统 Visual c++程序集成环境
四.实验内容和步骤
本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。学会单步调试和断点调试程序及变量跟踪方法。
1. 任意输入4个整数,要求按由小到大的顺序输出。
2.编程实现:输入一个整数,将其数值按照①小于10,②10~99,③100~999,④1000以上四个类别分类并显示。
要求:(1)将变量定义为整型。
(2)输入整数前,利用puts()/printf()给出提示信息。
(3)输出结果时要有必要的说明,例如:输入358时,显示358 is 100 to 999。(4)该程序利用if语句实现。
运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。
3.编写程序:根据公式
261111......,输出 π的值。
122232n2要求:
(1)变量π为单精度类型,n为整型;
(2)计算当n的取值分别为20,50,100,200时的π值,说明什么问题?
(3)修改程序,不给出n值,而改为求π值,直到最后一项的数值小于10-4 为止。
(4)对修改后的程序,输出π值以及总的项数n。输出格式为:π=值;n=值。
4.从键盘输入一个0~1000之间的任意整数,输出该整数的所有因子(例如:输入12,其因子为1,2,3,4,6,12)。
要求:
(1)采用while循环语句实现。
(2)输出格式为:Input:12 Output:1,2,3,4,6,12 5.从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。
① 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。
② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束 6.某航空公司规定:在旅游旺季7~9月份,如果订票20张及其以上,优惠票价的10%,20张以下,优惠5%;在旅游淡季1~6月份,10~12月份,订票20张及其以上,优惠票价的20%,20张以下,优惠10%。编写一个C程序,根据月份和旅客订票张数决定优惠率。已知机票单价,请算出旅客的总付款。请使用不同的测试数据进行测试。7.计算并输出1000以内最大的10个素数以及它们的和。
要求:
(1)在程序内部加必要的注释。
(2)由于偶数不是素数,可以不考虑对偶数的处理。
(3)虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。
(4)输出形式为:素数1+素数2+素数+…+素数10 = 总和值。
五.实验数据及处理结果
/*写出实验内容的算法(用流程图表示)、完整的程序、结果并能对结果的正确性及上机时产生的问题进行分析,注意程序变量命名应见名知意、有适当的注释,程序书写规范*/ 【习题1】
【设计思路】 :输入a,b,c,d四个数,将四个数两两进行比较,如果前者大于后者,则将两数的值交换,否则不变。这样重复操作6次,最后输出a,b,c,d的值,则a,b,c,d从大到小排列。
【数据输入】输入整型变量 a,b,c,d 【数据输出】输出 a,b,c,d的值,使其从大到小排列。【源程序实现】
#include
int a,b,c,d,t;printf(“please input four numbers(example:1 2 3 4):n”);scanf(“%d %d %d %d”,&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}/* 实现a,b的交换 */ if(a>c){t=a;a=c;c=t;}/* 实现a,c的交换 */ if(a>d)
} {t=a;a=d;d=t;}/* 实现a,d的交换 */ if(b>c){t=b;b=c;c=t;}/* 实现b,c的交换 */ if(b>d){t=b;b=d;d=t;}/* 实现b,d的交换 */ if(c>d){t=c;c=d;d=t;}/* 实现c,d的交换 */ printf(“%d,%d,%d,%d”,a,b,c,d);【结果及截图】
答:输入64 3 5 23,运行结果为3,5,23,64,其截图如下:
输入格式的提示。
【修改后程序实现及结果】 /*习题2、4请添加此步*/
【问题分析】 输入数据时,没有按正确格式输入,所以在输入数据之前,应该给出一个【习题2】
【设计思路】
【数据输入】 输入整型变量x。【数据输出】 输出x的范围。【源程序实现】
#include
main()
{
int x;
printf(“Please input a number:n”);
scanf(“%d”,&x);
printf(“%d is ”,x);
if(x<10)printf(“less than 10n”);
else if(x<100)printf(“10 to 99n”);
else if(x<1000)printf(“100 to 999n”);
else printf(“more than 1000n”);
return 0;
}
【结果及截图】
答:运行程序,分别输入9,21,321,4321,截图如下:
【习题3】
【源程序实现】
#include
#include
main()
{
int n,N;
float pi,sum=0;
printf(“Please input a number:nN=”);
scanf(“%d”,&N);
for(n=1;n<=N;n++)
sum+=1.0/(n*n);
pi=sqrt(6*sum);
printf(“pi=%f”,pi);
return 0;} 修改后的程序: #include
int n=0;
float pi,sum=0;
do
{
n++;
sum+=1.0/(n*n);
}while(1.0/(n*n)>=1e-4);
pi=sqrt(6*sum);
printf(“pi=%f;n=%d”,pi,n);
return 0;}
【结果i及截图】
答:计算当N的取值分别为20,50,100,200时,截图如下:
【结果ii及截图】
【习题4】
【源程序实现】
#include
【结果及截图】
答:输入30,得其因式为 1,2,3,5,6,10,15,30,截图如下:
【习题5】
【源程序实现】
If 语句
#include
int num;
printf(“Input:”);
scanf(“%d”,&num);
if(num<0||num>100)printf(“The number is wrong!”);
else if(num<=59)printf(“E”);
else if(num<=69)printf(“D”);
else if(num<=79)printf(“C”);
else if(num<=89)printf(“B”);
else printf(“A”);
return 0;}
Switch 语句
#include
int num,n;
printf(“Input:”);
scanf(“%d”,&num);
n=num/10;
switch(n)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5: printf(“E”);break;
case 6: printf(“D”);break;
case 7: printf(“C”);break;
case 8: printf(“B”);break;
case 9:
case 10: printf(“A”);break;
default: printf(“error!”);
}
return 0;}
【问题分析】
【习题6】
【源程序实现】
#include
【习题7】
【源程序实现】
#include
六.简答题
2160500146 计算机66马俊松
在本学期,共进行了大约五次上机,完成了数十道编程题,现将在完成作业过程中所遇到的问题以及解决过程进行如下几点总结,并提出几点建议。
1.在刚开始那几次做编程作业时,经常因为只是输出时的格式不符合moodle上的要求而的零分,因而不断修改,浪费大量时间,希望今后moodle网站能在这一点上做出改进(如果过程正确而只是输出格式错误,可以不必给零分)。比如下面几个题:
2.在做6.1题(找出一句话中最长的子字符串)的过程中,因为字符数组的知识未掌握牢固,在以下几个方面卡了比较久:
①:字符串在输入时,若用scanf(”%s”,a),则只会得到第一个单词;若用for(i=1;i<=n;i++)scanf(“%c”,a[i]),则循环会一直持续知道输入n个字符;若希望将整句话输入,应用gets(a);
②:将”n”,””,” “几个概念搞混淆,因而在条件判断时出现混乱,导致错误。
3.在做7.1题(用函数实现学生的信息录入及排序)时,遇到了以下几个问题并卡了比较久的时间:
①:运用了错误的输入方式,导致未能的到完整的输入信息或输入过程中直接中断(如下图);
②:刚开始时为采用指针的思想,导致在设计程序时比较繁琐;但应注意在使用完指针p++后,应重新给指针p赋回初值;
关键词 C语言 程序设计 教学方法
中图分类号:G648.2文献标识码:A文章编号:1002-7661(2011)09-0028-02
C语言是计算机专业和相关专业一门很重要的专业基础课,学好C语言为数据结构等后继课程有很大帮助。但是对于高职学生,数学、英语等基础知识较差,而C语言又作为他们面临的第一门语言类课程,因而学习C语言具有很大的难度。本文结合本人几年来的教学经验,对怎样提高C语言教学质量,如何让学生掌握好C语言基础知识点提出几点看法。
一、创设情境,激发学生学习兴趣
大多数学生对新课程都很感兴趣,都很想学好这门课,所以上好第一节C语言课是一个很好的开始。C语言有很多语法和知识点需要掌握,但是如果第一节课就开始介绍C语言的知识点,不但得不到好的收效,还会让学生因为知识枯燥,不易理解而失去学习本课程的兴趣。上第一节课,先讲授C语言这门课程的重要性以及在计算机课程中的地位,然后给学生演示几个简单的游戏,比如:小型运算器,俄罗斯方块,贪吃蛇等,告诉他们这些都可以用C语言来编写。通过这些实例的引入,可以让学生了解到C语言的实用性,激起学生学习的兴趣。
二、注重教学过程,采用多种教学手段
在教学过程中,把知识点融合在实例中,加强学生对知识点的理解,本人在教学过程中采用以下相应方法:
1.深入浅出
C语言主要包括C语言语法、结构化程序设计、数组、函数、指针、文件等。教材一般都会归纳,但是如果把每一块放在一起讲,难点就比较多。比如,C语言的数据类型很丰富,如果全部放一起讲,学生肯定很难记住,所以可以先讲3种基本数据类型、运算符及相关表达式,再通过一个简单程序,输入输出数据。这样子,学生就逐渐掌握了基本数据类型、定义变量,以及输入输出函数的基本使用。对于一些比较难以理解的概念,可以借用比喻来解释,比如在讲到变量的时候,包括变量的地址、变量名、变量值,在课堂上借用教室打个比方:10网构班(变量名)在实验楼302(变量地址)有45个学生(变量值)。这样学生在定义变量的时候就不会那么抽象了。
2.画出流程图
做任何事情都有一定的步骤,这些步骤是按一定的顺序进行的,缺一不可,如果你对一个问题没有任何思路的话,那肯定编不出程序。在解题的时候,可以先画出流程图,再编程序。如:将50名学生中成绩高于80分的成绩打印出来,可画出流程图如下:
3.先复习旧知识,再导入新课
新内容的导入方法很重要,新课前先回顾复习学过的知识点,从旧知识的某一个点出发,提出和新内容相关的问题,让学生思考,并可适当提问,这样可激发学生思考的积极性。在课堂气氛活跃的情况下,教师适当引导,导入新的知识,这样的讲法可以激发学生的兴趣,使学生更容易接受和理解新知识。
4.任务驱动
每节课开始的时候,可以根据需要布置一些问题,让学生带着相关的问题听课,也可让学生自己思考、归纳,或者互相讨论,这样学生会更有目的性和方向性地听讲。
如:在循环结构for语句中,可以设置三个驱动任务:(1)for语句的一般形式;(2)for语句的执行过程;(3)for语句三个表达式代表的含义,三个表达式能否省略?
5.讲解实例,举一反三
对于C语言程序设计这门课来说,精心设计一些实例,用实例来使概念形象化,深化理解 ,通过教师的分析讲解,使学生更容易入手。然后我们可以对这个简单实例提出新的问题、新的改善方案,引导学生参与对现有程序的修改中来。对于学生的改进方案,教师可引导全体学生来评价优劣,找出其优点,修改其错误,逐步完善,不断优化。这样可以调动学生自主学习积极性,用实例教学加强师生互动。
比如可以在平常写的实例中设置一些待解决的错误,如:故意将赋值符号“=”和等号“= =”互换,漏写分号“;”和大括号“{ }”,引导学生在编程和调试过程中逐一发现并解决这些问题,不仅能够巩固理论知识、养成编程的好习惯,更能调动学生思考问题和解决问题的积极性。同时在解决问题的过程中使学生有一种成就感,这对学习能力的提高和积极性的培养有很好的作用。
6.总结知识点
在课堂讲解过程中,知识点是比较零散的,学生对每个知识点理解了,但对各个知识点之间的联系并不一定理解,缺少一种知识的连贯性,不利于理解和记忆。所以,在每次课结束之前,用几分钟的时间把本次课内容所涉及的知识点回顾一遍,这种回顾既以复习知识点为主,又要讲解其间的联系。当课堂教学内容以一个整体的形式被串联起来后,学生的理解就会加深。如:在讲运算符的时候,每类运算符都有自己的优先级和结合方向,一个一个比较零散,所以在讲完运算符后,可以归纳所有运算符间的优先级和结合方向。
三、引导学生自主学习,培养学生实践能力
程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。对于学生来说,一定要重视实践环节,包括编程和上机。对于教师来说,一定要引导学生自主学习,做好课程设计。
1.上机准备
教师要事先设计好实验内容,内容要尽量引用之前所讲的知识点,避免涉及后续章节的知识,难易适中,由浅入深。课前可先给学生演示一下实验的最终效果,概括本实验包括的知识点,提醒学生对每一个操作的结果仔细观察和详细记录。学生在操作中遇到问题,教师应启发学生独立思考,引导学生去发现问题、分析问题和解决问题,培养学生的动手能力,让学生亲自观察和体验程序设计的成功感受,加深对知识的理解。最后,学生要书写实验报告。上机结束后,教师要督促学生及时总结实践经验,将实验中碰到的问题及解决的方法记录在实验报告上。教师根据每一次上机的整体情况,对学生中出现的共性问题进行讲解。
2.课程设计
可以让学生分组实现一个具体课程设计,在本课程结束的前几周完成课程设计,加深学生对本课程的总体理解。本人认为,在学校中学习程序设计的目的是进行程序设计及基本训练,而不是要求学生立即编写大型程序,或今后一辈子只用这门语言。所以,布置课程设计时,要把精力放在本课程最基本、最常用的内容上,开始时,不要在每个细节上死背死抠,在有一定基础后,再通过实践熟练掌握。
教好C语言是一项艰巨的任务,在教学过程中,要深入浅出,以学生为主体,以教促学,学以致用,引导学生在学习过程中掌握编程技巧,调动学生学习的主动性和积极性。
参考文献:
[1]唐淑玲.高职C语言程序设计教学效果探析[J].中国校园导刊,2011,(1).
[2]由杨.高校计算机C语言实验教学方法初探[J].中国期刊,2009,(1).
1 汇编语言与C语言的混合编程方法
1.1 C语言调用汇编语言子程序
在C语言程序中调用汇编指令较多的情况下可以采用直接调用汇编语言子程序的格式, 而且由于C语言编译系统要具有约定的段序以及规定的段组合。因此, 要实现C语言对汇编语言子程序的调用, 汇编语言必须严格遵守编译系统的约定或要求的组合和段顺序。C语言调用汇编子程序必须遵循以下规则。
一是程序内需要使用“EXTERN”关键对函数显示进行说明, 并将此作为建立C语言与汇编子程序的接口, 而且函数的名字必须在8个字符以内, 而且函数名设置为下划线格式。二是根据参数在参数标准的顺序, 依据反序作顺序, 依次将参数压入栈中。最后一个参数首先进栈, 最后一个参数在栈中的地址最高。三是依据参数的值进行传递;四是对代码段进加以说明, 并且使用—TEXT作为加代码段命名原则。过程名前加下划线, 并且是公共过程pulic-过程名。根据C程序模式大小确定汇编使用远过程或近过程, 小模式对应近过程, 大模式对应远过程。五是汇编程序的参数取C程序的参数。由于远过程在返回地址时需要占用4个字符, BP压入需要占用2个字符, 因此首个参数需要位于BP+6指向的远远。而近过程第一个参数则位于BP+4指向的单元。六是汇编程序需要兼顾保护寄存器。C语言调用编程语言子程序会导致寄存器变量超过2个, 而多余部分会自动转入栈中存储。因此, 汇编过程必须严格遵守以下开头和结尾格式:
PUSH BP
MOV BP, SP
PUSH SI
PUSH DI
语句
POP SI
POP BP
RET
1.2 汇编语言调用C语言子程序
由于汇编语言的巨大优势, 在汇编程序中可以实现调用C语言子程序。汇编语言调用C语言子程序不需要改变汇编语言主程序和子程序的格式, 只需确保主程序和子程序的格式相同, 并且在程序开始前加入“EXTREN函数名”即可。表明该函数是用来调用C语言子程序的外部函数。而对外部函数可通过主过程中CALL语句进行调用, 并将CALL语句格式设置为“CALL NEAR PTR函数名”。如果子程序为C语言子程序, 并且C语言子程序中只包含C函数, 则不需要使用EXTERN说明。
1.3 C语言程序嵌入汇编语言
C语言嵌入汇编语言中有C程序调用汇编子程序模块以及在C程序中嵌入汇编指令两种。两种嵌入方式分别应用在不同的情况。
第一, C程序条用汇编子程序模块的嵌入方式中的模块划分原则:为完成任务的需求, 每个模块的体现形式为函数或者过程, 再根据模块的特点选择编写语言进行编写。如果主程序的编写包含C语言, 而模块使用汇编语言进行编写, 则需要使用C程序调用汇编子模块。具体操作方法为分别编写汇编C主程序和汇编子程序, 并依据各自的特点形成符合自身编写语言的目标代码模块, 再将目标代码模块相互连接从而形成最终的可执行文件, 通过执行可执行文件即可实现C程序调用汇编子程序模块。
第二, 在C程序中嵌入汇编指令多用于C语言无法实现对硬件控制的情况。例如对寄存器的值、中断标志寄存器的修改、重复使用某种功能、对时间的要求等等, 可通过在C程序中嵌入汇编指令去实现。使用C程序中嵌入汇编指令时需要注意换行符、寄存器的命名、修改编译连接的命令以及拷贝MASM EXE程序, 存储在Turbo C目录下, 并命名为TASM.EXE进行编译。
2 C语言与汇编语言连接的关键问题
混合使用汇编语言和C语言进行编程还需要解决参数传递、调用关系的确定以及汇编程序与C程序的模块连接三个问题。
在参数传递上, 参数传递是混合编程过程中必须解决的问题, 通常情况下采用堆栈实现参数传递。首先, 将汇编语言中的BP作为基址寄存器, 调用程序将按照反序C语言中的参数压入堆栈中, BP加上不同的偏移量就可以实现对参数的使用。
在调用关系的确定上, 需要实现说明需要调用的函数或过程, 并建立相应的调用及被调用关系。其中被调用的函数或过程为外部类型, 可被外部模块引用。调用程序内也需要说明被引用外部模块的名称。
在汇编程序与C程序的模块连接上, 为确保正确连接, 不仅需要确保不同语言模块的存储模式具有一致性, 还需要汇编模块遵守C兼容的函数和变量命名约定。
3 结语
汇编语言和C语言具有不同的优点和缺陷, 混合汇编语言和C语言进行编程可取长补短, 同时发挥两种语言的优势, 并且弥补两种语言的不同, 实现参数传递、数据共享, 而且具有事半功倍的效果。
摘要:汇编语言和C语言是两种不同的编程语言, 软件开发过程中采用两种语言混合程序设计技术可以极大的提高工作效率以及程序的性能。文本首先简单介绍C语言调用汇编语言子程序、汇编语言调用C语言子程序、C语言程序嵌入汇编语言三种常见的混合编程方法, 在混合编程中还需要注意参数传递、调用关系的确定以及汇编程序与C程序的模块连接三个问题。
关键词:汇编语言,C语言,混合程序设计
参考文献
[1]杜钦生, 楚叶峰, 唐伎玲.基于ARM的汇编语言与C语言混合编程的方法研究[J].长春大学学报, 2011 (10) .
[2]柴孝.C语言与汇编语言的混合程序设计技术[J].信息与电脑 (理论版) , 2011 (11) .
[3]林法.基于汇编语言与C/C++语言混合编程的设计研究[J].电子技术与软件工程, 2014 (04) .
在长学期之后,我们又进行了短学期,在短学期中C语言实习让我获益匪浅。通过C语言实习,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
比如自己写的写的小程序出了问题,不会解决了就叫老师或同小组的同学帮忙,虽然说这样会做得更好更快,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到自己可以完成一些简单的程序编写与错误排除。
还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,C语言还是很有意思的课程。
自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,在上课的时候老师就讲,学习C语言最重要的是学习C语言的逻辑思维,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。
当初在初步接触C语言的时候,看着一堆“奇形怪状”的符号,觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态!
短学期让我学到了很多知识,在实训过程中,同学之间的相互探讨,老师的循循善诱,最终让我们达到了举一反三的效果,在学知识的同时,也增加了同学老师之间的感情。希望以后还会有更多类似的实训课程,在有限的大学时间内学到更多的实用技能,为以后的工作打下
2、其他不频繁调用到和对运算速度要求不高的变量都放到xdata区。
3、常量放到code区,如字库、修正系数。
4、逻辑标志变量可以定义到bdata中。
在51系列芯片中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。这样可以大大降低内存占用空间。定义方法是: bdata bit LedState;但位类型不能用在数组和结构体中。
5、data区内最好放局部变量。
因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同;
6、确保程序中没有未调用的函数。
在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点Keil做得很愚蠢,但也没办法。
7、如果想节省data空间就必须用large模式。
将未定义内存位置的变量全放到xdata区。当然最好对所有变量都要指定内存类型。
8、使用指针时,要指定指针指向的内存类型。
在C51中未定义指向内存类型的通用指针占用3个字节;而指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。如指针p是指向data区,则应定义为: char data *p;。还可指定指针本身的存放内存类型,如:char data * xdata p;。其含义是指针p指向data区变量,而其本身存放在xdata区。
以前没搞过C51,大学时代跟单片机老师的时候也是捣鼓下汇编,现在重新搞单片机,因为手头资料不多,找到一些C51的程序,发现里面有这些关键字,不甚明了,没办法只好找了下,发现如下描述:
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。
9、在51系列中data,idata,xdata,pdata的区别
data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)
xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。
C语言是我校学生学习程序设计的入门语言,学生分析问题、解决问题的能力和程序设计思想的形成都与C语言有着密切的联系。C语言既具有高级语言的优点,又具有低级语言的许多特点,既可以用来编写系统软件,又可以用来编写应用软件。C语言语法限制不严格,程序设计自由度大,在使用时会出现一些“副作用”,再加上现行在教学过程中存在的一些弊端,所以在学习中学生普遍反映“难学”、“不懂”、“没兴趣”,这也是在C语言教学中普遍遇到的问题。
2 现行教学过程中存在的问题
2.1 以书本为中心,忽视学生能力的培养
以书本为中心的教学模式,采用从概念到概念的注入式教学,偏重于C语言语法知识的详细讲解,而对程序设计思想、程序设计方法和程序设计风格的介绍很少,对编程能力的培养不足,导致学生学不深、学不透、学不精,不会编写和调试程序,不会测试程序的正确性,编写的程序可读性很差,遇到稍微复杂的程序就读不懂,更不用说运用学到的概念去解决实际问题了。
2.2 以教师为主体,忽视学生的能动作用
以教师为主体的教学方法中,由于片面强调和突出教师的主导作用,忽视和压抑了学生的能动作用;片面地强调知识的传授和灌输,忽视了学生创新能力的培养;注重“知识型”人才,忽略了“智能型”人才的培养。在教学的过程中,教师只注重讲解概念、语法和程序,不注意调动学生的学习热情,学生被动接受灌输的知识,学习热情低,即使掌握了这些内容,也不能灵活运用,达不到举一反三的目的。
2.3 多媒体教学过分强调表现形式,忽略了内容本身
在现代化的教学过程中,利用投影仪、计算机、网络等现代设备开展多媒体辅助教学,具有较好的教学效果。但是在课件制作上过分强调表现形式,忽略了内容本身,往往造成喧宾夺主,达不到预期的效果;另外在课堂上,教师过分依赖课件演示,忽视与学生沟通,影响学生参与教学活动的积极性。
针对以上存在的不足,我们在对C语言教学过程中,开展了一系列的教学改革,在教学中采用案例教学法,强化师生互动,积极培养学生学习兴趣,并合理使用现代教育手段,取得了良好的教学效果。
3 教学改革方法
3.1 采用实例教学,突出能力培养
为了改变以书本为中的注入式教学方式,我们探索采用了实例教学法,以程序设计的需要带动语言知识的学习,在每个知识点上以引例开头,激发学生的好奇心和求知欲,从而促进学生成为教学主体,引导学生进行自主学习、合作学习、研究性学习,增强学生的综合应用能力,从而提高了教学质量,取得了良好的效果。
在实际教学实施过程中,我们采用了项目递进驱动教学法,改变满堂灌的做法,将学生的眼手脑全部调动起来。精心设计实例,给学生一个比较实际的切入点,通过教师的演示使学生感觉能够入手,然后再将此实例不断修改、扩充,引导学生参与到程序的编写过程中,并将学生设计的程序展示,让学生来评判优劣、吸收优点、修改错误,引导学生进行程序优化。比如在进行if语句的教学时,针对符号函数的求解,我们给出多种可能实现的程序段,让学生分析哪些程序段能够完成计算,哪些不能完成计算,对不能完成计算的程序段如何进行修正等。通过这些程序的分析,使他们加深了对if语句的理解,掌握了if与else的配对关系,并灵活运用去解决其他问题。
3.2 强化师生互动,激发学习学习热情,发挥学生主观能动性
在C语言教学中,我们大力强化师生互动,充分发挥学生的主观能动性,注重培养学生独立学习、独立思考、勇于创新的能力。师生互动教学我们采用了“问答式”、“讨论式”等多种形式。每一种方式都有其特点和特定的适用范围,在实际教学中我们根据具体情况加以灵活运用。
“问答式”就是教师事先设计好问题,启发学生思考,引导学生在问题解决中构造算法进而掌握相关的概念、语法、功能及应用。例如:要求学生编程实现输入三角形的三条边a,b,c,计算以这三个数为边长的三角形面积。我们可以适当进行提示提问:(1)输入的三条边能否构成三角形?(2)已知三边长,三角形面积该如何求呢?这就要结合中学时的数学知识,对于问题(1)用数学语言来描述为:两边之和大于第三边。那么用程序语言该如何描述呢,应该采用哪一种程序结构?顺序、选择还是循环?程序结构知道了,下一步就是根据数学公式计算面积。这样,逐步对学生进行提示和引导,可以使学生的思维一直处于活跃状态。
“讨论式”就是教师预先设定讨论题目和要求,由学生分组讨论的一种互动教学方式。它适用于课程中的重点难点问题。如在链表的教学中,我们就如何利用链表实现栈、队列,用链表实现与用数组实现各有什么优劣等问题时就采用“讨论式”教学方法。课前教师将问题提出来,让学生自己去思考。学生自由组合形成若干各小组,每个小组应有一位秘书,负责全程记录讨论过程,最后每个小组要出一份讨论报告,然后由每个小组推选一位学生上台讲解本组的实现方案,其他组的同学可自由提问,最后由教师对方案的可行性、是否有创新、须改进之处一一进行分析讲评。这种方式有利于培养学生的思维能力和协作能力,激发学生学习热情。
3.3 合理使用多媒体,提高教学效率
在教学中结合形象直观的事例或图形讲解概念,可以充分发挥学生的形象思维能力,不但易于理解和掌握,而且印象深刻,能有效地提高学习效率。因此在C语言教学中我们可利用多媒体代替传统的板书,将文本、图像、声音、动画结合起来,使抽象的内容变得形象生动,学生通过多种感官来获取知识,形成相关的概念。但是滥用多媒体教学,不但达不到预期的教学效果,反而会分散学生的注意力,削弱教师在教学过程中的主导作用,甚至影响学生的学习积极性。在C语言多媒体教学实践中,我们着重解决好以下问题。
3.3.1 课件内容与形式的关系
在制作C语言课件时,我们要根据课程的教学内容的性质和特点选择恰当的技术手段和表现形式,充分利用了各种媒体信息为教学内容服务。在课件制作上,不需要花时间、花精力对课件进行包装,刻意追求特技效应。在课堂教学中,过多的画面切换,容易造成学生在学习过程中应接不暇,对所学内容生吞活剥,能力的培养无从谈起。实践证明,附加信息和无关信息过多,虽然从心里上加深刺激了学生的感知能力,但却显得主次部分,容易分散学生的注意力。因此我们要求课件制作要务实,不必特别美观,也不必有很高的技术含量,涵盖的知识点也不必很多,只要能使抽象、难懂的内容变得直观、易懂,有利于学生更好地接受所学的知识就够了。
3.3.2 注意发挥教师的主导作用
虽然教学课件事先已经做好,但不是说在课堂上教师只充当“解说员”、“演示员”就可以了,这样可能会出现学生看了很多,听了很多,却不知道要学什么,什么是重点难点,而事与愿违。其实,多媒体辅助教学作为一种现代化的教学手段,是用来提高课堂教学效率、突破重难点、解决一些传统板书教学不容易理解的问题。作为教师应把握住自己在教学中的主导地位和作用,通过教学过程的设计和灵活多变的操作,使多媒体发挥最佳教学功能。
4 结束语
采用这些教学方法,有提出问题、解决问题、扩展问题、再解决问题、对解决问题方法的评价、优化等几个环节,实际上是一个螺旋式滚动向前的过程,在这个螺旋式不断向前的过程中,能够非常自然地调动学生参与的积极性,而且通过问题的扩展,通过一个问题的多种解决方法,使学生在课堂上真正地成为“主体”,教师扮演“主导”角色。当然,在改进和探索教学方法的同时,我们还要充分利用机房、网络和课外环境,启发和调动学生的学习积极性,培养和提高学生的自学能力。
参考文献
[1]中国高等院校计算机基础教育改革课题研究组.中国高等院校计算机基础教育课程体系2006[M].北京:清华大学出版社,2006.
[2]全国高等院校计算机基础教育研究会.高等院校计算机基础教育经验汇编[M].北京:清华大学出版社,2008.
关键词:图形 创意 包装设计 插画
当消费者面对琳琅满目的商品时,一个有创意的图像元素在包装中能够起到画龙点睛的作用,令商品具有审美性和个性,能够在很短的时间内吸引消費者,使消费者了解产品的信息,进而成功地推销商品。
一、图形创意的定义
1、图形
图形语言不等同于文字表达,它让人们通过视觉去感受图形所传达出来的意义和内涵。图形早于语言和文字是伴随着人类历史的发展而来的,图形是人类智慧的结晶,追溯到远古时代,我们的祖先在洞穴的石壁上面作画,来记录他们生活的一点一滴。
当今世界上每个国家或民族都有自己发达完善的文字语言体系,但图形语言并没有因为文字语言的完善和壮大而销声匿迹、萎靡消亡,相反和文字语言一样,随着造纸术。印刷术,摄影,计算机网络等先进技术的发明,有了更自由丰富的表现空间。①在这样的背景之下,我觉得就是因为图形语言有着文字无法替代的优势,它具有世界通用性。
21世纪是“读图的时代”,当我们看到一个满是文字说明的包装与一个有着创意图形的包装,我觉得更多的人会选择创意图形的包装设计。尤其是当代人们在强大的生活和生存压力下,越来越多的人们产生了视觉疲劳,因而他们追求更多的是视觉上的简洁化,给人一目了然的设计能够满足人们的需求。当消费者进入超市看到琳琅满目的产品时,我想一定的更倾向于能够通过图形就了解产品的包装。在我们的社会生活中有各个阶层以及各个年龄段的人们,针对不同的社会人群以及不同消费者的审美心理,图形有着跨越年龄,跨越阶层,跨越语言障碍的优势,并且信息传递快捷方便。
2、创意之解
“创意”是由英文“Creative idea”翻译而来。创意,从最直观的解释就是“具有创造性的意念”,即奇妙的构思,好的想法和点子。我们常常面对有创意的图像叹为观止,为什么别人能够想到的东西自己就想不到呢?其实这也是许多设计师所面临的问题,这就需要我们平时勤于观察和记录。作为设计师,我们可以师从无穷无尽且近在咫尺的源泉——大自然。②大自然中有神奇的奥秘,只要肯用心去感受大自然,我们就会发现看待事物的全新视角和事物的本质,也就能够在平凡中发现伟大。
荷兰的艺术家埃舍尔是一位伟大的图形艺术家,他用自己独特是图形语言创造了一系列的矛盾图形,他创造的图形具有神奇的魔力,征服者观者的心灵。他的作品也给我们以启示,何为创意?即观察和发现生活,用逆向思维去思考,去创造,把不可能实现变为可能。
二、图形创意与包装设计
1、包装
包装设计是产品的外衣,是一个品牌的塑造,是从概念构思到货架展示的过程。世界上的任何一个民族,国家,任何一个人无不每时每刻接触着商品,同时也接触着包装,包装也经历了无数个春秋,不断进步和发展而来。虽然包装总是被用来保存产品,但如今其发展比历史上任何时期都更迅速和先进。包装是我们认为的理所当然的东西,它既能作为一块可携带的广告牌,一层保护壳,一种告知方式,甚至也可以作为产品的一部分。④一款具有醒目效果,强烈视觉冲击力的包装设计是当今市场中存在的优秀包装,这样的能够打动人心的包装才能真正吸引消费者。
2、标志
标志也作为包装的重要图形,在包装设计中起着十分重要的作用。在包装设计中,最先开始通过图文并茂的方式讲述故事,并为品牌及其产品注入活力的就是品牌标识。③标志为产品的品牌筑造注入了无限的活力,它是视觉要素的表现形式,它赋予了一个产品的名字,给予了产品生命,让消费者知道这个产品是谁,让产品有了高度的识别性。
3、插画
在包装设计中,插画是一种很有表现力的表达手法,它以一种直观的形象出现在包装上面,有着自己独特的魅力和感染力。插画可以表现出产品的各种不同的情趣,如高雅的,有趣的,时尚的,尊贵的等。它如同小时候属于我们自己的涂鸦墙,可以在上面宣泄各种情绪,插画同样赋予了包装这样的趣味性,当消费者拿到这样富有情趣的包装,可能会欣然一笑,回味无穷。
4、摄影技术
随着科学技术的进步和发展,摄影作为一种新媒介发挥着越来越重要的地位。摄影的发明和包装设计的发展是息息相关的,它为包装设计开创了一个新天地,促进了包装设计的进一步发展。
现如今,种类繁多的包装设计中越来越多的商业摄影出现在产品包装中,这类摄影出来的图形更有真实感和可信度,使消费者很直观地了解商品,赢取消费者的心理认同感,进而激起消费者的购买行为。
5、传统装饰纹样
不同的民族和国家都有属于自己民族精神的图腾和祥瑞图案,这样的文化符号经历时间的磨练,显现出强烈的文化内涵与个性语言。将本国、本地区的传统纹样引入包装设计,是展现商品历史与文化内涵的有力手段,也是适应本土化、民族化设计理念的。⑤我国是有着几千年历史文明的文化古城,传统文化占据着很大的一部分,对于传统的纹饰纹样,我们应该深刻了解到它们的内涵,然后取其精华去其糟粕,进行精心的设计与重构,在融入到各个不同包装设计中,独树一帜,形成自己的风貌特征。
由于世界各国直接文化地域的差异,有时会出现理解与文化上的距离,这种距离往往又会使人由于新鲜感而产生兴趣,因而,在国际的大市场中,以民族为本位的设计战略思想越来越受到重视。这就是所谓的“民族的就是世界的,民族的就是国际的。”
站在巨人的肩上,我们才能够看的更高更远。每一个创意图形都有着它们自己的独特气质,有忧郁的,耀眼的,灿烂的,趣味横生的等等,它作为包装设计的语言,表达着自己产品的特质,在货架台上面以便和其他商品区分。图形创意语言是需要我们不断地用心去思考,去创作的,只有这样设计出来的包装才能够有强烈的视觉冲击力和自己独特的魅力去吸引消费者,才能在激烈的市场竞争中立于不败之地。
参考文献:
[1]李洁.图形的启示[M].山东美术出版社,2008.5 P3
[2]麦琪·麦克纳布著,罗小安译.解码设计奥秘:理解使用视觉象征符号[M].浙江人民美术出版社,2011.7
[3]玛丽安·罗斯奈·克里姆切克,桑德拉·A·科拉索维克著,李慧娟译.包装设计:品牌的塑造[M].上海人民美术出版社,2008.1.P98
[4]魏杰.包装设计基础[M].上海人民美术出版社,2006.11.P9
【C语言图形程序设计报告】推荐阅读:
计算机图形学c语言10-21
c语言设计程序11-11
c语言递归程序11-06
c语言程序设计实验11-19
c语言课程设计要求07-25
c语言源程序10-03
c语言程序设计作业三06-24
c语言程序设计基础题10-28
c语言程序设计补充题11-17
c语言程序设计大作业11-21