例题?例5.8.1:判断偶数programp5_8_1(input,output);functionfac(n:integer):boolean;beginifn=0thenfac:=trueelseiffac=1thenfac:=falseelsefac:=fac(n-2);end;beginreadln(n);writeln(fac(n));readln;end.例题?例5.8.2:步步高升(StepbyStep)问题描蚀航诘氖焙SHI去逛花市。她来到一歌织位,看到一盆叫捉步高升”的盆职步步高升,步步高升……”学习就是要一步一步来,不能急,要殆础。在稳固的基础上才谈得上步步高升!TENSHI腮思。她看见这盆东吴头,于是想拢谁知一问价钱,“不古2XXRMB。”TENSHI差点没昏倒,囊中害羞嘛。但是TENSHI还是很想麓,于是她就在一旁观察。观察了一段时间,她看到这歌秩撕捅奔酆苡泄媛伞I璐巳说趇次报价为Wi元,那么他第i+1次报的价竔-A-B。到了最篍NSHI以Z元成交,高高兴兴的回去去了。任吻SHI把盆舟?元杀到Z元的方式总数。
输入负输入文件第一行有两耕数W1和Z。第二行有两耕数A和B。它们满足毯10≤W1≤106,1≤Z≤106,Z<W12≤A、B≤10000,A≠B输辰:将方法总数输郴有一行。注意:结果不超过MAXLONGINT例题programp5_8_2(input,output);varw,z,a,b:longint;functionfac(n:longint):longint;beginifn=zthenfac:=1elseifn<zthenfac:=0elsefac:=fac(n-a)+fac(n-b);end;beginreadln(w,z);readln(a,b);writeln(fac(w));readln;end.第六章集合、记录与文件Ŀ¼????????第一讲第二讲第三讲第四讲第五讲第六讲第七讲第八讲集合(上)集合(下)记录变体记录文件概时疚募类型文件标准输入输池定向第一讲集合(上)集合?定义:setof基类型?定义方法如变量?注:基类型在225种以下?如setofinteger是错的?集合表示[]集合><>=<==+*in?????????[1,2,3,4,5]>[1,2,3][1,2,3]<[1,2,3,4,5][1,2,3]>=[1,2,3][1,2,3,4,5]>=[1,2,3,4][1,2,3,4]=[1,2,3,4][1,2]+[2,3]=[1,2,2,3]=[1,2,3][1,2,3]-[1,2]=[3][1,2,3,4]*[0,1,2,3]=[1,2,3]1in[1,2,3,4,5]集合记录方式?例:s:setof1..10;a:array[1..10]of0..1;s:=[1,2,3]a={0(repeat3times),1(repeat7times)}12345678910第二讲集合(下)集合?不能直接输入、输呈涑如:s:setofchar;ch:char;forch:=#001to#128doifchinsthenwrite(ch);?例6.2.1:输入一串字符,输承’a’..’z’,’A’..’Z’的福programp6_2_1(input,output);varch:char;t:integer;begint:=0;whilenoteolndobeginread(ch);ifchin[’a’..’z’,’A’..’Z’]thent:=t+1;end;readln;writeln(t);readln;end.例题例题?输骋阅诘乃兴厥programp6_2_2(input,output);vars:setof2..100;i,j:integer;begins:=[2..100];fori:=2to100doifiinsthenforj:=2to100divIdos:=s-[i*j];fori:=2to100doifiinsthenwrite(i,’’);readln;end.第三讲记录记录?语法record<觮;:<类型1>;<觮;:<类型2>;<觮;:<类型3>;……(;)end;?其余同数组记录?不能直接读入、输?可以整体赋值。
?佑读入、输充基类型同样例题?读入两脯输硃rogramp6_3_1(input,output);varn:recorda,b:integer;end;beginreadln(n.a,n.b);writeln(n.a,n.b);readln;end.with语句?with…do…?1、不允许更改with的对霞(针对记录数组而言)?2、语句较多使用复合句子例题?读入两脯输硃rogramp6_3_2(input,output);varn:recorda,b:integer;end;beginwithndobeginreadln(a,b);writeln(a,b);end;readln;end.第四讲变体记录举例typestu=recordscore:array[1..6]of0..10;age:integer;casesex:charof‘m’:(weight:70..150);‘f’:(height:real);end;备注typestu=recordscore:array[1..6]of0..10;age:integer;casesex:charof'm':(weight:70..150);'f':(height:real);end;vars:stu;beginread(s.sex);read(s.weight);write(s.weight);end.读入:f100输?0第五讲文件概述文件(file)?顺?永久性?容量大文件类型?无类型文件(I/O通道)?文本文件(TEXT文件、正文文件)?类型文件文件类型定义?type<文件类型名>=fileof<基类型>?var<文件变量名>:<文件类型名>;?var<文件变量名>:fileof<基类型>标准过程函数???????assigncloseeoferaserenameresetrewrite???????procedureprocedurefunctionprocedureprocedureprocedureprocedure???????将文件名赋予文件变量关闭文件返回文件结束状态删除文件重命名文件茨件新建并茨件第六讲文本文件定义?用ASCII码存储的文件?标准类别TEXT?Pascal定义:typetext=fileofchar;变量过程??????appendeolnreadreadlnwritewriteln例题?例6.6.1:椿妇文件,将其输车幕上。

programp6_6_1(input,output);varf:text;ch:char;st:string;beginreadln(st);assign(f,st);reset(f);whilenot(eof(f))dobeginread(f,ch);write(ch);end;readln;close(f);end.例题?例6.6.2:椿妇文件,读入字符,输入到文件中。programp6_6_2(input,output);varf:text;ch:char;st:string;beginreadln(st);assign(f,st);rewrite(f);whilenot(eof)dobeginread(ch);write(f,ch);end;close(f);end.第七讲类型文件定义?type类型标识符=fileof基源类别?var变量名:类型标识符?var变量名:fileof基源类别变量过程?????readwriteseekfileposfilesize例题?例6.7.1:椿妇文件,将其输车幕上。
programp6_7_1(input,output);varf:fileofbyte;n:byte;st:string;beginreadln(st);assign(f,st);reset(f);whilenot(eof(f))dobeginread(f,n);write(chr(n));end;readln;close(f);end.第九讲标准输入输池定向原理?programex(input,output);?input,output:text;例题?例6.8.1:椿妇文件,将其输车幕上。programp6_6_1(input,output);varch:char;st:string;beginreadln(st);assign(input,st);reset(input);whilenot(eof)dobeginread(ch);write(ch);end;close(input);end.例题?例6.8.2:椿妇文件,读入字符,输入到文件中。programp6_8_2(input,output);varf:text;ch:char;st:string;beginreadln(st);assign(output,st);rewrite(output);whilenot(eof)dobeginread(ch);write(ch);end;close(output);end.缺点?重定匣能再重定洗第七章指针等动态类型Ŀ¼????????第一讲第二讲第三讲第四讲第五讲第六讲第七讲第八讲静态储存与动态存储指针类型指针类型的基础操仔粤幢环形链表栈扯恿谐二叉式第一讲静态储存与动态储存第二讲指针类型指针p1data指针?type自定义类别标识符=^源类别?var自定义函数标识符:自定义类别标识符?var自定义函数标识符:^源类别?例:typepoint=^integer;varp1,p2:point;指针?自定义函数^:指馅容指针原理pa:integera1=0p0p1p2100010011002100301023p:^integerp=1000p^=0p=p1(1001)p^=0p3p=p0(1000)p^=0p:=p1p=p1(1001)p^=1p^:=0第三讲指针类型的基础操作指针?new?dispose申请释放例题?例7.3.1:读入一脯并输硃rogramp7_3_1(input,output);varp:^integer;beginnew(p);readln(p^);writeln(p^);dispose(p);readln;end.例题?例7.3.2:读入两脯并交换输硃rogramp7_3_2_1(input,output);varp1,p2,p3:^integer;beginnew(p1);new(p2);思考:readln(p1^);readln(p2^);为什么p3不应该new、dispos???p3:=p1;p1:=p2;p2:=p3;dispose(p1);dispose(p2);readln;end.例题?例7.3.2:读入两脯并交换输硃rogramp7_3_2_2(input,output);varp1,p2,p3:^integer;beginnew(p1);new(p2);思考:new(p3);readln(p1^);为什么p3需要new、dispos???readln(p2^);p3^:=p1^;p1^:=p2^;p2^:=p3^;dispose(p1);dispose(p2);dispose(p3);readln;end.第四讲线性递归链表头指针链首??β链表?指针数组(指针类型模拟)?顺许(函数类别模拟)指针数组原理typenode=recorddata:integer;next:point;end;point=^node;FPC:typenode=recorddata:integer;next:^node;end;nil变量定义varhead,p1,p2:point;例题?例7.4.1:读入一串数字,输硃rogramp7_4_1(input,output);typenode=recorddata:integer;next:point;end;point=^node;varhead,p1,p2:point;n:integer;beginnew(p1);head:=p1;whilenot(eoln)dobeginp2:=p1;read(n);new(p1);p2^.data:=n;p2^.next:=p1;end;readln;p2^.next:=nil;p1:=head;whilenot(p1=nil)dobeginwrite(p1.data);p1:=p1.next;end;writeln;readln;end.链表——添入结点pp^.next:=head;head:=p;qpp^.next:=q.^next;q^.next:=p^.next;qpq^.next:=p;p^.next:=nil;链表——删除节点pp:=head;head:=head^.next;dispose(p);pqq:=p^.next;p^.next:=q^.next;dispose(q);pqq:=p^.next;dispose(q);p^.next:=nil;链表升级?单享→双享typenode=recorddata:integer;succ,pred:point;end;point=^node;第五讲环形链表环形链表Pascal实现?读入结束簆^.next:=head;?特点:?每一搞都有且唯有一庚和一柑。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-134606-3.html
争一时之快
只要不是严重疏忽和恶意
算了