第一篇:C语言指令心得
C语言指令心得:
来自网上:
下面是培训时讲到的一个倒计时程序,对于back()函数,我不明白他是怎样实现自减的,希望高手帮我解释下,谢谢
#include
#include
class Clock{
int h;int m;
int s;
public:void set(){
cout < < “input start time:”;cin >> h >> m >> s;
}void wait(){
long t=time(NULL);
while(time(NULL)==t);}
void back(){if(--s <0){
s = 59;
if(--m <0){m = 59;
if(--h <0)h = 23;
}}
}
bool isZero(){return h==0&&m==0&&s==0;
}void show(){
cout < < 'r';
if(h <10)cout < < 0;cout < < h < < ':';
if(m <10)cout < < 0;cout < < m < < ':';
if(s <10)cout < < 0;cout < < s < < flush;
}
void run(){while(!isZero()){
show();wait();
back();
}cout < < “===time out===” < < endl;
}};
int main()
{
Clock c;c.set();
c.run();}
poxiuu回复于19日15点00分
高
街头痞子回复于19日15点10分
C/C++ code void back(){ if(--s <0){ // 如果秒数到0,则将秒数赋值为59,并将分钟数减1 s = 59;if(--m<0){ // 如果分钟数到0,则将分钟数赋值为59,并将小时数减1 m = 59;if(--h <0)// 如果小时数到0,则将小时数赋值为23 h = 23;} } }
金色翅膀回复于19日15点19分
C/C++ code //接上面 #include “Shi.h” Shi::Shi(){ } Shi::~Shi(){ } int main(){ Shi shi;if(shi.set())
{ shi.run();} }
走遍全国回复于19日15点28分
学习
zhuwei_43回复于19日15点39分
void wait(){
long t=time(NULL);
while(time(NULL)==t);
}
谁能解释下啊
bjshenhui回复于19日15点50分
void run(){
while(!isZero()){ //错误判断
show();//显示当前
wait();//等待1秒
back();//--
}
liulin回复于19日16点02分
ding
jiang821213回复于19日16点11分
time返回一个以秒为单位的整数,如果cpu足够快,在时间未增加前,使用循环占用cpu时间片,否
则减一,减的过程符合时分秒的进制关系,就是这样
我心永存回复于19日16点20分
学习中!
紫韵凝香回复于19日16点32分
void run(){
while(!isZero()){
show();
wait();
back();
}
哦,差不多明白了,run()函数自身也在循环调用show()wait()和back()
显示——等待——自减一直循环到0 0 0。
忽忽
贝家宝回复于19日16点41分
还是有点不明白,void back(){
if(--s <0){
s = 59;
if(--m <0){
m = 59;
if(--h <0)
h = 23;
}
}
}
--s <0,实现了自减吗?
danyarucha回复于19日16点49分
time()函数的参数为什么是NULL?
mycshimyc回复于19日16点58分
学习了,呵呵
bja6083回复于19日17点04分
C/C++ code void wait(){ long t=time(NULL);while(time(NULL)==t);}
应该是将当前时间的值给t,然后进入循环.当1秒种后,time(NULL)!=t时打破循环,执行函数后面的语句.而wait()的功能也就是一个定时器,让秒针刚好是1秒钟改变一次.tinazxy回复于19日17点11分
是先自减再比较大小。
--s,先自减1再执行后面操作,s--,先执行后面操作再自减1,fanxingchunshui回复于19日17点17分
C/C++ code //用户输入某一时间以后倒计时,00:00:00退出 #pragma once #include
#include back(){ if(--s <0){ s = 59;m--;if(m <0){ m = 59;h--;if(h <0)h = 23;} } } bool isZero(){ return h==0&&m==0&&s==0;} void show(){ cout << 'r';if(h <10)cout << 0;cout << h << ':';if(m <10)cout << 0;cout << m << ':';if(s <10)cout << 0;cout << s << flush;} void run(){ while(!isZero()){ show();wait();back();} cout << “===time out===” << endl;} Shi();public: ~Shi();}; 李伊文回复于19日17点24分 time(0),time(null)返回系统当前时间,单位为秒,从1900年1月1日0点起到当前时间的秒数。我是这样理解time()的! 1、用于多分支选择的switch语句,其一般形式为: switch(表达式){ case常量表达式1:语句1; case常量表达式2:语句2; … case常量表达式n:语句n; default:语句n+1; } 其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。 2、main是主函数的函数名,表示这是一个主函数。每一个C源程序都必须有,且只能有一个主函数(main函数)。main()。 3、函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。printf函数是一个由系统定义的标准函数,可在程序中直接调用。 4、include称为文件包含命令扩展名为.h的文件称为头文件,定义两个实数变量,以被后面程序使用,显示提示信息。 5、在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。 6、预处理命令都以“#”开头 关于波特率问题: 原理是很简单的,串口的电路是一个移位寄存器,定时器溢出时就会促使这个寄存器移出1bit数据。 根据你需要的波特率就可以算出移出1bit的时间间隔,然后你把定时器的溢出时间定 义为这个时间间隔就行了。 当然,上面的只是一个简单的原理,实际情况可能还有些细微的区别,比如实际计算的时候还有一个波特率因子,这个不同的单片机是不完全一样的,计算定时器初值时要把这个也算进去。 自主合作、分层达标教学模式几个环节教师指令语言参考 尊敬的老师们,根据听课的感受,我把课堂几个环节的指令语言进行了梳理,给老师们提供参考,请结合自己的实际改进运用。 一、引入环节 1、老师今天将从学习的投入度、小组的参与人数两个方面来评价,得分最低的小组老师将给他们布置特别的作业,(或者得分在前面的两个小组将没有作业),请组长带领我们的组员加油! 2、老师今天将评选自学最投入,最安静的组,给小组加2分。 3、老师今天将评选对子互助、组内互助搞得好的组,给小组加2分。(或者将获得老师的奖品) 4、同学们有没有信心争当今天课堂评比的优胜组? 5、老师今天要评比每个小组课前准备得好不好,请对子(或者组长)相互督促,小组一人没有做好准备给小组扣1分。 二、自学环节 1、请同学们阅读教材51—53页,把你认为重要的知识点勾画出来,独立完成黑板上(导学案上、白板上、老师口头布置)的预习题或任务,争取在8分钟内完成。 2、老师将对每个组自学的投入度(或独立完成的安静度)进行评比得分。 3、请同学们独立完成黑板上的2、3题(或教材、导学案、练习册等上的习题),组内安静,独立思考,提前完成的同学继续做后面第四题。 三、交流环节 1、请同学们先对子交流,人人都要发言,对子不会的再到四人小组交流,最后到大组交流。 2、不会的同学请教会的同学,会的同学帮助不会的同学,还可以问老师,组长要督促人人弄明白,老师一会儿将任意抽组内的同学代表小组展示,展示得正确的给小组加分。 3、请把这个结论说给(或背给)你的对子听,每人说一次。 4、请对子之间把这个句子(或者这几个单词)说(或者读)三次。 5、请对子相互批改我们刚才的练习,把自己错了的改正,并马上记下来。 6、请同学们(或者对子之间)马上记忆这个知识点,组长要督促,老师一会儿要任意抽组内的同学代表小组展示。 四、展示环节 1、请一组5号展示第一个问题,敢于展示给小组加1分,展示脱稿给小组加2分。 2、老师今天将给展示声音洪亮的同学加2分。 3、老师今天将给展示形式新颖的组加3分。(或者老师将评比展示形式新颖的优胜组) 4、请知道这个问题的同学自己站起来回答,不用举手,敢发言的同学给小组加1分(或者展示正确的同学给小组加1分) 5、某某同学今天倾听得特别仔细,我们一起鼓励他。 6、老师今天对倾听得仔细,敢于点评、质疑、补充的同学和小组要给予特别的奖励。 7、今天代表小组展示的同学1-4号,加1分,5-8号 加2分。 活动目标 1、在游戏中体验按指令活动的愉快。 2、培养幼儿注意倾听的态度和习惯。 重点与难点 听清完整的指令才能行动。材料及环境创设 1、场景布置:草地、路。(山洞、蚂蚁洞)。 2、录音“小鸟的叫声”“秋天的树叶”沙袋等。 设计思路 对于刚进入幼儿园小班的孩子来讲有一明显的特点即“自我为中心”。在游戏中也是以“自说自话”的个体活动为主,还不习惯于听他人的指令集体行动。因而让孩子通过游戏活动积累有关“只有听得清,才能做得对,玩得开心”的经验和体会是很有必要的、从情感人手,培养孩子逐步养成注意倾听的态度、习惯也是可行的。 本活动设计的内容编排思路是:指令的语句从短到长,语速有快有慢,指令所包含的信息量由少到多:要求孩子完成的动作由小到大,游戏时的环境干扰因素由少到多。这样的编排意图旨在使孩子的有意控制时间增加,有意记忆的信息量不断扩大。 本活动设计的过程是以游戏为主,在游戏中激发孩子倾听的兴趣,并在游戏中体会儿歌的意义,乐意跟着学念。同时结合体育活动、认识秋季的活动,及相关的数活动开展游戏,综合地完成教育目标。 活动流程 室内听指令动作——室外听指令动作 (一)室内听指令动作。 1、引发倾听兴趣。 放录音:“小鸟的叫声” 设问:听听是什么声音,你是用什么来听的? 说明 主要是突出耳朵能听的主题,并提出以听为要求的游戏规则。强调听得清楚,听完整游戏会玩得开心。 2、听指令动作。 (1)脸部动作。 a翘起嘴巴,做只小猪。 b捏下鼻子,做只狐狸。 c一眼睁,一眼闭,做只调皮的小猴子。 说明 一开始语速可慢些,接下来可快一些并变换指令例:“拉拉小耳朵,捏捏小鼻子,梳梳黑头发,拍拍小嘴巴。” 小结:玩得开心吗?为什么开心?因为你们听得仔细做得对。老师念儿歌:“小耳朵,真正灵,听得清,做得对,我们玩得真开心。” (2)手指动作。 a变把手枪“嗒嗒嗒”, b变个相机“喀嚓,喀嚓”, c变把小鎯头,修修小椅子,“叮咚,叮咚”。 小结:小耳朵,真正灵,听得清,做得对,我们玩得真齐心。 (3)身体动作。 a站起来,转个圈, b做只母鸡,拍拍翘膀,下个蛋。 c做只青蛙,呱呱跳,去抓花蝴蝶, d打鼓,敲锣,吹嗽叭,放鞭炮。说明 要求听完指令,并把每一个指令用动作表现,教师可以示范,并视实际情况,指令可以反复。用儿歌小结,并引导幼儿跟着念。 (二)室外听指令动作。 1.小兔子捡落叶。 教师可先念儿歌例:小兔子,蹦蹦跳,跳到树下捡树叶,一只小兔捡一片,许多小兔捡许多。 说明 孩子捡了以后可检查一下是否捡一片,渗透“1”和“许多”数概念。 2、小蚂蚁搬豆。 可以布置场景,有草地,有“蚂蚁洞”,有房子等。 听指令动作 (1)小蚂蚁,快快爬 (2)小蚂蚁,慢慢爬 (3)小蚂蚁,去搬豆,一只蚂蚁搬一粒,搬进洞里放放好。 说明 游戏可变换指令重复进行。 ---------------------------order by的用法 --员工信息按照姓名正序排列 select * from emp order by ename asc;--员工信息按照倒叙排列 select * from emp order by ename desc;--也可以是多个字段组合排列。例如:员工信息按照部门正序排列,并且按照姓名倒叙排列 select * from emp order by deptno asc,ename desc ---------------------------function的用法--把所有姓名变成小写 select lower(ename)from emp;--把所有姓名变成大写 select upper(ename)from emp;--求所有人名中包含'a'的员工信息不区分大小写 select * from emp where lower(ename)like '%a%'--截取子字符串,比如求Hello的一部分 select substr('hello',2,2)from dual;select substr(ename,2,2)from emp;--求Hello的一部分,并指明长度 --求ascii码对应的字符 select chr(65)from dual--求字符对应的ascii码 select ascii('中')from dual--四舍五入 select round(12.456,2)from dual select round(12.456,-1)from dual--四舍五入小数点后面多少位 --四舍五入小数点前面多少位 ---------------------------important!日期转换函数 ---------------------------将当前日期转换成1981-03-12 12:00:00这种形式的字符串 select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')from dual; --将1981-03-12 12:00:00字符串转换成日期 select to_date('1981-03-12 12:00:00','YYYY-MM-DD HH24:MI:SS')from dual; --将每个人的薪水转换成固定格式的字符串 select to_char(sal,'$999,999,999.99')from emp;--将固定格式的字符串转换成数值 select to_number('$8,000.00','$999,999,999.99')from dual; --当null参与计算时候,可以用nvl这个函数。比如求每个人一年总共的收入 select ename,sal*12+comm from emp ---------------------------group function组函数 --求所有人的薪水的总和,平均值,最大值,最小值 select sum(sal),avg(sal),max(sal),min(sal)from emp;--求总的行数 select count(*)from emp;--求总的行树,(可以指定具体的字段)但如果字段有null值的时候需要小心使用 select count(comm)from emp; --也可以过滤掉重复的行之后统计行数 select count(distinct deptno)from emp--可以指明按照哪个字段进行分组.比如;分部门统计最高薪水 select deptno,max(sal)from emp where deptno is not null group by deptno--也可以按照多个字段来分组统计,比如:分部门和岗位,统计最高薪水和行数 select deptno,job,max(sal),count(*)from emp group by deptno,job ---------------------------重要:出现在select列表中的字段,如果没有在组函数中,那么必须出现在group by 子句中。 -------------------------select ename,deptno,job,max(sal),count(*)from emp group by deptno,job --求薪水最高的员工姓名 select * from emp where sal=(select max(sal)from emp);delete from emp where ename='TEST2' update emp set deptno=10 where deptno=99 select * from dept insert into dept(deptno,dname,loc)values('10','ACCOUNTING','NEW YORK');--having从句的用法 --求平均薪水是2000以上的部门 select deptno,avg(sal)as avg_sal from emp group by deptno having avg(sal)>2000------------------------- --sql structured query language --DML--Data Manipulation Language--数据操作语言 query information(SELECT), add new rows(INSERT), modify existing rows(UPDATE), delete existing rows(DELETE), perform a conditional update or insert operation(MERGE), see an execution plan of SQL(EXPLAIN PLAN), and lock a table to restrict access(LOCK TABLE).--DDL--Data Definition Language--数据定义语言 create, modify,drop, or rename objects(CREATE,ALTER,DROP,RENAME), remove all rows from a database object without dropping the structure(TRUNCATE), manage access privileges(GRANT,REVOKE), audit database use(AUDIT,NOAUDIT)and add a description about an object to the dictionary(COMMENT).--Transaction Control事务控制语句 save the changes(COMMIT)or discard the changes(ROLLBACK)made by DML statements.Also included in the transaction-control statements are statements to set a point or marker in the transaction for possible rollback(SAVEPOINT)and to define the properties for the transaction(SET TRANSACTION).Used to manage the properties of the database.There isonly one statement in this category(ALTER SYSTEM).--DCL--Data Control Language--与开发关系不是很密切,用于权限的分配与回收 grant,revoke,data control --Session Control control the session properties(ALTER SESSION)and to enable/disable roles(SET ROLE).--System Control -------------------------select的用法 --每个员工的所有信息 select * from emp--每个人的部门编号,姓名,薪水 select deptno,ename,sal from emp;--每个人的年薪 select ename,sal*12 from emp;--计算2*3的值 select 2*3 from emp;--计算2*3的值(dual)select 2*3 from dual;select * from dual;--得到当前时间 select sysdate from dual--可以给列起别名,比如求每个人的年薪 select ename,sal*12 salperyear from emp;--如果别名中有空格,需要用双引号 select ename,sal*12 “sal per year” from emp;--如果没有内容,则为空 select comm from emp;--当空字段参与计算,则结果是null--例如:计算每个人的全年的收入包括月薪和年终奖 select ename,sal*12+comm from emp;--可以将多个字符串拼在一起。比如:求每个人的薪水,格式为smith-sal-123 select ename||'-sal-'||sal from emp;--如果字符串中有单引号,需要用另外一个单引号转义,比如:这样一个字符串: he's friend select ename||'''s sal is'||sal from emp; ---------------------------distinct 关键词的用法--求有哪些个部门 select distinct deptno from emp--可以用来修饰多个字段。比如:求有哪些个部门和job的组合 select distinct deptno,job from emp -------------------------where关键词的用法 --可以是数值类型的等值判断。比如:求10这个部门的所有员工 select * from emp where deptno=20--可以是字符串类型的等值判断。比如:求叫KING的这个人的信息 select * from emp where ename = 'KING'--也可以是不等值判断。比如:求薪水小于2000的员工信息 select * from emp where sal<2000; --字符串也可以做不等值判断,比如:求所有ename大于'CBA'的员工信息。select * from emp where ename>'CBA';--求部门不是10的员工 select * from emp where deptno <> 10;--求薪水在800和1500之间的员工信息 select * from emp where sal >=800 and sal <=1500;--也可以写成 select * from emp where sal between 800 and 1500--这样写则不可以 -----------------------------select * from emp where 800<=sal<=1500--where...in..的用法。比如:求薪水是800或者1500或正2000的员工信息 select * from emp where sal=800 or sal=1500 or sal=2000--相当于写成这样 select * from emp where sal in(1500,800,2000,1500,1500,1500,1500);--再比如求姓名是KING,SMITH,AA的员工信息 select * from emp where ename in('KING','SMITH','AA')--求入职时间在20-2月-81之后的员工信息 select * from emp where hiredate < '23-5月-87'; ---------------------------and or not的用法 --求薪水大于1000或者部门在20这个部门的员工信息 select * from emp where sal>1000 and deptno=20--求薪水不是800或者不是1500或者不是3000的员工信息 select * from emp where sal not in(800,1500,3000)--也可以这样来写 select * from emp where sal <>800 and sal <> 1500 and sal<>3000 ---------------------------like的用法 --求名字中包含ALL这三个字符的员工信息 select * from emp where ename like '%E%';--求名字中的第二个字母是A的员工 select * from emp where ename like '_A%';--特殊字符需要转义。比如:求员工中包含特殊字符%的员工信息 select * from emp where ename like '%%%' escape '' ---------------------------null的用法 --求没有年终奖的员工 select * from emp where comm is null--求有年终奖的员工 select * from emp where comm is not null第二篇:高效课堂教师指令语言
第三篇:幼儿园小班语言活动设计:听指令
第四篇:黑马程序员c语言教程:Oracle指令
第五篇:黑马程序员c语言教程:Oracle指令