写给真正想学编程的初级教程,从0起步!.doc_第1页
写给真正想学编程的初级教程,从0起步!.doc_第2页
写给真正想学编程的初级教程,从0起步!.doc_第3页
写给真正想学编程的初级教程,从0起步!.doc_第4页
写给真正想学编程的初级教程,从0起步!.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

写给真正想学编程的初级教程,从0起步!.txt爱,就大声说出来,因为你永远都不会知道,明天和意外,哪个会先来!石头记告诉我们:凡是真心爱的最后都散了,凡是混搭的最后都团圆了。你永远看不到我最寂寞的时候,因为在看不到你的时候就是我最寂寞的时候! 写在教程前面的话 首先,读这个帖子的人是真正想学编程的,不一定是要学QBASIC,如果你只是为了书上的题目而来,请别问我,也别给我发邮件,也别在qq上加我! 很多初学编程的网友喜欢问这样的问题: 1 怎么才能学好编程? 2 编程需要E文和数学知识很优秀吗? 3 学了很长时间只会做题目,怎么在实际中用? 4 现在QBASIC能不能适应现在的编程要求吗?它对以后学习高级语言有没有什么大的用处吗?现在学习它是不是浪费时间呢? 我简单的讲讲自己的事情,让大家来参考! 我在学校学习成绩极其的烂,门功课总分200多一点,连普通高中也没有考上,我当时的E文是蒙了20多分,数学好点,不过也没有及格,我比较喜欢的是物理!当时最喜欢看科幻小说,个人爱好非常广泛,喜欢弹吉他、拉二胡、吹笛子、练书法、还喜欢电子制作,而且都能拿得出手,最起码还有人跟我学,不过这些个人爱好在我的父亲眼里都是不务正业,他常说的就是“万般皆下品,唯有读书高”现在回过头来我看应该是“万般皆下品,唯有文凭高”!现在社会状况是:如果你没有文凭就是有能力也没有用。 如果要学习动画制作,构建什么数学模型,工程上的应用这样的东西,那就非得数学厉害不可! (有的人以为我知道QB的大部分语句,呵呵,其实我有时连些简单的语句的格式都不记得,这个可不是跟大家开玩笑,我写程序时碰到不知道用法的语句我就翻书或者是看QB自带的帮助,如果我要做个实用的程序,边做边就熟悉了一些语句的用法,,可做完就又忘记!), 除了QB别的编程语言我是不会的,就连VB我也不会,我在为自己申请专利的时候,要写个控制程序,就临时的看了VB的书,边看边写了3天把程序做好了,完了也就忘记VB了!我实际上会的是方法,怎样用编程解决问题的方法. 我还看到很多人在学BASIC的时候,讨论到底是学QB还是VB,学C的人讨论是学C还是学C+,或者是讨论C,QB,VB,VC,BC。等等这些语言如何如何,各执一词,弄得脸红脖子粗.实际这些东西都有共通之处,我告诉你,别犹豫,别管什么,随便先弄个语言学习再说!不管什么语言都有判断循环这些基本东西! 至于现在QBASIC能不能适应现在编程开发的要求,这个问题很简单,Qbasic本身就不是用来做程序开发的,(注意,qbasic不是qb!)所以Qbasic不是开发工具! 也有人说学过QBASIC后感觉对后边学习的编程语言没什么用处,我想也对,学电脑这些东西关键是兴趣,如果你对qbasic没有兴趣,就别千万别学它,你对什么有兴趣就学什么,兴趣是学习的最好老师,请千万千万记住这一点!一定记住你对什么有兴趣就学什么,而且要坚持保持你始终有浓厚的兴趣,不能3分钟热情! 对于现在的QBASIC是不是一种好的基础的编程语言,对以后学习高级语言有没有什么大的用处,学习它是不是浪费时间的问题我是这样看, :对于一个初学者来说,QB能很好的让你掌握一些编程的基本规则,比如循环,判断,什么的,对你学习别的语言有极大的帮助,如果一上来就学C,难度很大,选择这个语言也还得看你以后的职业选择,你也不一定出来就做程序员!再一个就是如果你对计算机的原理不能达到理解的深度,就无法真正的理解编程,如果你想详细的理解计算机的运作原理,不通过编程语言是无法来理解的!当然如果你做的不是和计算机底层,或者不是用软件直接控制硬件这样的操作,那就不很需要理解系统是如何运作的,比如象现在的win下的编程,你很轻易的做出一个程序,你并不需要知道,它是怎么来实现你的想法的,比如它是怎么把它显示到显示器,怎么判断鼠标的动作,怎么发出声音等等这些东西,如果只是作为一个win下编程开发人员,并不需要来了解,但是你如果偏偏对这些有个求知欲望,我想,你就不得不从上一层一层的往低层学,或者直接学!QB又是所有语言中最容易掌握的!学好了QB,别的语言就势如破竹了! 在电脑编程方面,没有什么绝对,没有什么做不到,受到限制只有你的思想!我看到过许多精彩绝伦的qb程序,我想如果你对计算机系统的理解也达到了那样的一个深度,编程对与你来说应该只是工具,算法也是,一个问题,你用A语言也是这样的思路,你用B语言也是这样的算法,这个就和武侠高手一样,什么兵器都可以用,威力都一样,只是个顺不顺手的问题 所以,我说了句自己的名言:掌握了一门编程语言,就是打开了一扇通往计算机内部的大门!那么,怎样学习好编程呢 ? 第一 需要看你的兴趣,必须有浓厚的兴趣,浓厚到你吃饭,睡觉,走路做什么事情都会去想它,实际上学别的东西也应该如此,比如你学习一个乐器、书法等等什么的,学到废寝忘食、物我两忘的程度,在那些只喜欢吃喝玩乐的人来看他们也会认为你是个神经病.你只要做到这个了,其他什么因素都不大重要了!(当然,学习编程不一定要从QBASIC开始)。你别手里拿着编程的书,脑子里却想着:等会去网吧打游戏,去聊天,或者别的什么.做什么事情都要专一! 第二 就是要掌握学习方法,很多人学了语句不知道怎么把它弄在一起,想做个东西却无处入手,也有人一看书就挺明白的,可一到坐到电脑前手就不听使唤了,思想也短路了,一写程序就错,这个就是缺少上机锻炼恶果,一句简单的PRINT“OK”这个语句,你都必须要上机去实践一下,不要只停留在书本上,所以,我在教程里会从实际出发来教大家真正的应用,也希望大家能动手运行这些程序,可以直接复制到记事本,QB也支持纯文本格式! 第三 学会编程语言本身没有学会编程思想重要!切记切记! 第四 对于以后想做程序员的网友,学会应用基本的循环、判断.等等这些后马上转入别的语言,不要沾在QBASIC上!(真诚忠告) 第五 在写程序的时候一定要养成良好的习惯(别学我的坏习惯),我将另发帖介绍语言以外的东西 第六 不要怕程序运行出错,有了错误才能学到东西,学会调试程序非常重要,对所有语言都一样! 作者:qb45 发表时间:2005-3-1 14:47:00 第1楼 教程一 QBASIC和QB的关系 QB是QUICK BASIC的简称,是DOS时代的编程开发工具,QB是编译型的语言(QB版本到7.1专业板后就没有在出了)再就是VB了,DOS下也有个VBDOS,也是很方便的. 而QBASIC是DOS自带的一个解释型BASIC,因为DOS6.0版本的EDIT运行需要QBASIC,在以前的DOS6。22中带的有,还有以前的WIN95,WIN98的安装光盘中也有,那种D板的光盘中可没有,一般的就只有系统本身的安装文件,一般的QB语句都是能够在QBASIC上面运行的,但是有些低级的调用是不能在上面用的,这里所说的低级不是很差的意思,而是接近系统或者是硬件的调用,它能实现很强大的功能!QBASIC和QUICK BASIC的界面和用法大致上都是一样的.据说以后的计算机等级考试已经不用QBASIC了(有人就戏称QBASIC淘汰了),听到这个消息,我非常非常开心,因为以后再也不会有为了考试而学QBASIC的人来找我问书上的题目了,我希望真正学习的人来这里交流!在看这篇文章的人,我假定你已经有了一个QB编程软件,而且写过一两句BASIC语句,并且运行过!如果你还没有请去下载!编写程序的步骤:1、有个需要解决的问题2、分析这个问题3、制定计划4、写程序5、调试程序6、发布测试下面我们从头开始学习:第一步当然是 启动qb拉启动后的菜单中文意思见下图然后 输入下面这个语句PRINT OK然后我们来运行这个语句来看看什么结果按F5键可以执行(按SHIFT+F5键也行),你也可以用鼠标把run菜单打开选择start来运行,运行会得到下面的结果0这是什么意思呢?在PRINT OK这一句中 OK 是个变量,没有给这个变 量赋值,所以结果就是0如果写成如下:OK=5PRINT OK按F5键执行后,会得到下面的结果:5OK被赋值成5如果写成如下:INPUT OKPRINT OK按F5键执行后,会得到下面的结果:?屏幕上出现“?”提示符,是要求从键盘上把数输入给OK。这时你键入23,回车后会得到下面的结果:23INPUT 语句格式:INPUT “提示内容”; 变量, 变量, 变量语句功能:当程序执行到这一语句时暂停,要求从键盘上输入一个数给这个变 量赋值,输入数后按回车键,程序继续运行。如果你把OK用引号引起来如: PRINT OK运行后在屏幕上就会出现OK,凡是引号里的内容都会源源本本的输出!如果我们想把结果输出到文件中而不是屏幕上,怎么办呢?1、先打开文件 2、往文件中写相应的内容 3、 关闭文件如下:INPUT 请输入一个数 ;OKPRINT 你输入的数是 ;OKOPEN TEMP.TXT FOR OUTPUT AS #1PRINT #1,你输入的是,OKCLOSE #1你可以在WIN下用记事本打开TEMP。TXT 这个文件,就会看到你刚刚输入的数!2、输出数据(写文件) 新文件写入记录 (1)PRINT#语句 格式:PRINT #, 例;PRINT #1,a;b;c 注意:逗号与分号的差别,与PRINT语句类似在对字符串存盘时,注意引入定界符3)CLOSE语句的功能是关闭已用的文件 CLOSE #,# 关闭由文件号指定的文件缓冲区,把在内存中的内容报存到瓷盘,如不指定文件号,则关闭所有已打开的文件。例如:我们要做一个成绩单,把六门课的成绩保存到文件里.步骤:1 打开建立一个文件 2 输入成绩 3 把输入的数据写到文件里 4 显示你的成绩单OPEN 成绩单.TXT FOR OUTPUT AS #1PRINT #1,6门课的成绩单FOR I=1 TO 6 PRINT 请输入第; I; 门课的成绩_; INPUT N PRINT #1,请输入第;I;门课的成绩_,NNEXT ICLOSESHELL NOTEPAD 成绩单.TXT这时就能看到你生成的文件了!SHELL 可以调用外部的命令、程序 。 这个NOTEPAD实际上就是WINDOWS的记事本程序 作者:qb45 发表时间:2005-3-1 14:49:00 第2楼 教程二 我一开始讲文件的操作,是想通过学习文件的操作,你以后可以做很多事情,在电脑上的文件你想怎么弄都可以了,我看QB的文件操作在所有编程语言中是最方便、最简单、最强大的,而且和底成DOS中断很配合! 看到初学者有个误区,以为文件操作最难,实际上,这个放在最后一章,并不是最难,在我看来所有的都一样难,也都一样简单,最难的是书上没有讲的,可能写教材的人也不知道如何用,这个才难!这里是关于OPEN 语句 的用法格式:OPEN FOR AS# : OUTPUT:写数据,向文件输出; INPUT:读数据,从文件读入; APPEND:写数据:添加记录; BINARY:以2进制方式打开,可以读,也可以写:即文件缓冲区号,每一个文件都要指定一个不同的文件号(1225) 说明: 以OUTPUT方式打开文件,建立新文件,将删除已存在的文件。 以INPUT方式打开已存在的文件。以APPEND方式打开文件,可在文件后面添加内容,不影响以前的东西 以BINARY方式打开文件,可在文件的任意位置读写我们从下面这个例子来继续学习!要求输出以下图形*先看看书上的标准答案FOR I=1 TO 5 FOR J=1 TO I PRINT “*”; NEXT J PRINTNEXT I要分析这个程序,请先看看PRINT 的用法(print 如果不带分号是换行,带分号是紧奏输出,带逗号是隔几位输出,可以自己改改看看)当I=1的时候里面的FOR循环一次,打印一个*号然后退出循环,外面这个循环里的PRINT起换行的作用!当I=2的时候里面的FOR循环2次,打印两个*号然后退出循环,。这样就出来了!在QB里面有个STRING的函数,STRING$S$=STRING$(n,x$)返回n个x$第一个字符组成的字符串我们利用它可以只用一个循环就搞定!FOR I=1 TO 5 PRINT STRING$(I,*)NEXT I除了这些,很多方法能做出来最好的就是这个PRINT *PRINT *PRINT *PRINT *PRINT *这个好处只有真正来做一个程序时才能了解!我写一个程序,最少有55%的时间在调试它!作为一个程序员,最希望自己的程序短小,精练,占用资源少,象这样代码少,还不要紧,如果程序规模大了,写得难看懂,是不利于调试和维护的,这个没有实践是不能体会的,各个方面得去平衡,我喜欢直接用语句显示出来.我想这个谁都能看懂吧,也无须解释!如果有个文本文件,内容就是这样*我们可以用OPEN语句打开文件读出并打印来如果没有这个文件,也可以编程弄一个!程序如下:OPEN DEMO.TXT FOR OUTPUT AS #1FOR I=1 TO 5 PRINT #1, STRING$(I,*)NEXT ICLOSE运行以后就有了demo.txt这个文本文件,你可以在win里面直接打开看!当然也可以自己编程读出并显示,如:OPRN DEMO.TXT FOR INPUT AS #1DO UNTIL EOF(1) INPUT #1,RE$ PRINT RE$LOOPCLOSE看到这里,大家就应该能自己用程序建立文件了!还有,你也能编程读电脑里的文本文件我们来看个例子:题目要求写一个计算六门功课、让*号跑动、报警声这三个功能的程序!编程思路是这样-把这3个相应的功能做成子程序,-然后根据选择执行相应的子程序!这种编程的思想就是模块化编程在你的主程序中是看不到子程序,按F2键可以看到所有的子程序在qb中可以不用行号和GOSUB这样的语句来实现本功能,这样可以让自己的程序更加清晰!PRINT 1 。计算PRINT 2 。*跑动PRINT 3 。报警声INPUT “请选择 1、2、3”,S$SELECT CASE S$ CASE 1 JISUAN 执行计算功能的子程序 CASE 2 PAODONG 执行*跑动的子程序 CASE 3 BAOJING 执行喇叭报警声的子程序END SELECT SUB JISUAN 执行计算功能的子程序FOR I = 1 TO 6 PRINT I; : INPUT INPUT ; A A = A + ANEXT IPRINT AEND SUBSUB PAODONG执行*跑动的子程序CLSFOR I = 1 TO 79 STEP 1 LOCATE 12, I: PRINT * SOUND 32767, 1NEXT IFOR I = 79 TO 1 STEP -1 LOCATE 13, I: PRINT * SOUND 32767, 1NEXT IEND SUBSUB BAOJING执行喇叭报警声的子程序FOR I1 = 1 TO 5 FOR I = 1 TO 100 STEP 1 SOUND 500 + I * 10, .5 NEXT I FOR I = 100 TO 1 STEP -1 SOUND 500 + I * 10, .5 NEXT INEXT I1END SUB希望大家在自己的程序中也用这种缩进的方式,就象这个FOR循环一般来说我们开始学习喜欢写成这样1 FOR I = 100 TO 1 STEP -12 SOUND 500 + I * 10, .53 NEXT I建议写成下面这样FOR I = 100 TO 1 STEP -1 SOUND 500 + I * 10, .5NEXT I别的IF、DO、等等,这些语句都建议应该写成这样提示(在你的主程序中看不到子程序,按F2键可以看到所有的子程序)如果要自己建立子程序,可以在EDIT菜单中选择 作者:qb45 发表时间:2005-3-1 14:57:00 第3楼 教程三(菜单制作原理) 做菜单很简单,在下面我主要讲讲原理,这个也不需要什么高深的算法知识,但是又得去做,而且很多初学的人也不知道怎么做。1、最简单的菜单选择(做了一个要显示的菜单后,用的是输入语句来判断你的选择 ),这个就象上面的帖子里一样2、复杂一些的就是用键盘的上下键来选择菜单我们来学习用键盘上的上下键来选择菜单我就用文本下的菜单选择来举例说明这个方法! 做这个东西,思路上大致有这么几步 ,在屏幕上显示要选择的菜单项 ,一些初始化工作,把选择光条停在菜单的某一行中,记住这行 ,进入一个循环,对键盘进行捕捉(如果按的是下,就把行加一,如果是上就减一,如果按回车就退出循环) ,先把旧的光条还原,再把光条停在新的行,(以前记住的旧行就更新) ,根据选择执行相应的功能(最好用选择语句) 请看下面我给出的代码,自己漫漫分析CLS用一个数组来定义这些个菜单(这样选择会很方便)DIM MenuTxt$(4)MenuTxt$(0) = Menu Demo 1.0 XXX:_QB45MenuTxt$(1) = 1. Test1 MenuTxt$(2) = 2. Test2 MenuTxt$(3) = 3. Test3 MenuTxt$(4) = 4. Exit 在屏幕上显示菜单(如果标题用些彩色的话效果会很好)COLOR 4LOCATE 3, 25: PRINT MenuTxt$(i)COLOR 7FOR i = 1 TO 4 LOCATE 5 + i, 30: PRINT MenuTxt$(i)NEXT i把光条停留在第一行,并且记住它(当燃你也可以停留在别的行,方便自己做成子程序)Mx = 1 这个是要停留的行 (在实用中最好定义成整数)MxOld = Mx 这个是记住的行COLOR 0, 7 用颜色设置语句来加亮你要选择的行LOCATE 5 + Mx, 30: PRINT MenuTxt$(1)进入一个循环判断DO WHILE k$ = : k$ = INKEY$: WEND当键盘有键按就退出小循环 IF k$ = CHR$(0) + P THEN Mx = Mx + 1按的是下键就加 IF k$ = CHR$(0) + H THEN Mx = Mx - 1 IF k$ = CHR$(13) THEN EXIT DO按回车就退出 IF Mx 4 THEN Mx = 1超过行光条就回到第一行 IF Mx 1 THEN Mx = 4这里最大最小的行可以用个变量来定义会更方便 COLOR 7, 0把以前旧的行还原 LOCATE 5 + MxOld, 30: PRINT MenuTxt$(MxOld) COLOR 0, 7显示新的行 LOCATE 5 + Mx, 30: PRINT MenuTxt$(Mx) MxOld = Mx: k$ = 把当前新的记住LOOPCOLOR 7, 0LOCATE 10, 5根据选择执行SELECT CASE Mx CASE 1 PRINT You Select is ; COLOR 29, 0 PRINT 1 CASE 2 PRINT You Select is ; COLOR 29, 0 PRINT 2 CASE 3 PRINT You Select is ; COLOR 29, 0 PRINT 3 CASE 4 PRINT Exit Program END SELECTCOLOR 7END 作者:qb45 发表时间:2005-3-1 15:15:00 第4楼 我们来做个文件分割程序这个程序网上遍地都是,所以我们就从这个简单的东西入手不要说已经有了就不用做,关键是你没有,你没有做过!通过做这个程序来锻炼一下自己!用途:一个文件太大,用u盘装不下,或者上传时有的对大小有限制,总而言之,这个东西有用才有人做!前期思路准备:把一个文件分成规定的大小,在这里可以自定义每个分割的大小,也可以规定分割的份数,在这里我们要学习一下有关文件操作相关的语句我在真正开始做的时候就是从文件这个开始的,一个学dos编程的人必须对dos系统有所了解,一定要对路径这个概论很清楚,目前微软的操作系统在文件的管理上都是这个东西!(1).OPEN 语句 格式:OPEN FOR AS# : 这里我们只用二进制方式BINARY:即文件缓冲区号,每一个文件都要指定一个不同的文件号(1225); 说明: 以BINARY方式打开已存在的文件,指针指向首记录; (2)CLOSE语句 关闭已用的文件 CLOSE #,# 关闭由文件号指定的文件缓冲区,将内容存盘,如不指定文件号,则关闭所有已打开的文件; (3)、GET#语句格式:GET # ,功能: 用于从文件中读一个指定地址的记录,赋给一个记录变量。(4)、PUT#语句格式:PUT # ,功能: 将一个记录变量的内容写到指定地址的记录中去(5)SEEK语句 格式:SEEK#,把指针移动指定地方 (6)LOF语句格式:LOF获得文件的大小!(7)EOF语句格式:EOF判断文件是否到最后! 作者:qb45 发表时间:2005-3-1 15:15:00 第5楼 积累了相关知识后我们来做下面的程序先要得到一个要分割的文件名,用INPUT语句,或者自己指定一个都可以用 INPUT filename$或者 filename$ = c:MP32002.mp3获得文件名后用二进制方式打开它OPEN filename$ FOR BINARY AS #1用LOF语句可以得到文件的长度,大家可以先是是看,如果为0,那么可以判断这个文件不存在!PRINT 这个文件大小为: ;LOF(1)if lof(1)=0 then PRINT 没有这个文件在就是要确定要分割的大小了,这里,我用份数来确定要分割的大小,当然这个在使用中是不方便的,这里让大家自己去想想看!我只是给个思路x = 10 在这里我把这个文件分成10份x1 = INT(LOF(1) / x) 得到每份的长度!如果长度要自己输入来确定那么份数的就不可能是10份,用这个公式x=INT(LOF(1) / x1)用两个循环来做分割,第一个循环是份数,第二个循环是每份的大小 FOR i = 1 TO x file$ = LTRIM$(STR$(i) 自动获得分割后的文件名 OPEN file$ FOR BINARY AS #2 FOR i1 = 1 TO x1 LOCATE 10, 10: PRINT i, i1 IF EOF(1) THEN PRINT File Cut ok!: END GET #1, , r% 从要分割的文件读 PUT #2, , r% 写入要分割的文件 NEXT i1 CLOSE #2 NEXT i 现在我们把整个程序从新看一遍clsINPUT filename$OPEN filename$ FOR BINARY AS #1IF LOF(1)=0 THEN ENDx = 10x1 = INT(LOF(1) / x) FOR i = 1 TO x file$ = LTRIM$(S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论