本人打的,
no。1
壹、學校網站網址:
外網::88;內網:http://192.168.1.1:88
知識點:
(1)http——超 文本 傳輸 協議,ftp——文件 傳輸 協議
(2)網站有兩類:http網站(web網站)、ftp網站
(3)域名與IP地址(在網絡上計算機IP是唯壹的)
(4)DNS域名解析系統——把域名解析為IP地址
(5)端口:65536個端口(其中壹部分系統使用),web網站默認使用80端口(兩頭可以省略),ftp網站默認使用21端口。
二、考試時間:
全國初賽(筆試、縣級)10月的第3個星期六,2小時(100分)
全國復賽(上機、九江)11月的第3個星期六,上機3小時,四個大題(每題100分,***400分)
三、下載安裝相關軟件
下載安裝FP——安裝到D:下。註意:目錄名為FP,復賽時有可能為PP
如果桌面有快捷方式,可以通過 右擊→屬性 獲取路徑。
四、計算機信息存儲
計算機信息存儲:文件形式(位置、名字)、表的形式(註冊表、內存分配表、CMOS)
文件管理模式:通過文件夾(目錄)來管理文件的
磁盤:分區使用。盤符(壹個大寫字母加:組成)
軟驅(與軟盤)分開:使用A與B,從C開始給硬盤(包含驅動器與盤片)和光驅(光驅與光盤分開)
每個分區都有壹個根目錄。形式:D:\A\B\C\1.txt
計算機中最高級文件夾是“桌面”
五、常用的DOS命令
1、操作系統:Windows---視窗操作系統(多任務、圖形式)、DOS——磁盤操作系統(單任務、字符式)
2、微軟公司——MicroSoft,簡稱MS
3、cmd——由Windows進入模擬DOS窗口(開始→運行→cmd→確定)
4、模擬DOS窗口與全屏模式互換:alt+回車
5、關閉模擬DOS窗口:exit
6、磁盤命令 D: (回車)
7、在DOS下查看文件(夾)名 dir——會用 dir/p/w
dir/p——縱向看(相當於widnows中的“詳細信息”)
dir/w——橫向看(相當於widnows中的“列表”)
dir/p/w
?如何區別文件(夾)
dir或dir/p——有<dir>就是目錄或者沒有大小
dir/w/p——有方括號的就是目錄
8、改變目錄命令 CD
cd 目錄名——打開壹個目錄
cd \fp\bin\go32v2
cd.. 回到上壹級
cd\ 回到根目錄
9、查看文本文件內容。type 1.pas
六、啟動fp
d:
cd\fp\bin\go32v2
fp
退出:alt+x (選擇是否保存)
七、fp主菜單
alt+紅色字母
File文件、Edit編輯、Search查找、Run運行、Compile編譯、Debug調試、Tools工具、Option選項、Windows窗口、Help幫助
File——New新建、F2保存、Exit
Edit——Cut剪切、Copy復制、paste粘貼、Clear清除
刪除單個,使用 退格鍵或delete鍵
刪除壹行,使用 ctrl+Y
選擇操作:shift+方向鍵、home、end
Tools——ASCII table
F9——生成exe(先編譯再鏈接)
=======================================================================
八、Free Pascal程序
1、程序由多條語句(簡單語句和復合語句)組成;每條語句最後使用分號結束(end前可省略分號)。
2、程序結構:順序結構、分支/選擇結構、循環/重復結構、子程序結構(過程和函數)。
3、采取模塊化思想、從上到下、逐步求精。
4、變量、常量問題
變量——單變量、數組變量、結構變量;命名:字母帶頭;全局變量、局部變量
5、要使用變量,必須先申請——合理定義(類型恰當---特別對於數組變量且個數很多)。
6、得不到滿分的主要原因:有些情況有遺漏、變量定義範圍小了、個數少了。
7、由begin……end.組成(end.整個程序中只能出現1次)
8、程序書寫采用縮進式、使用空行分隔程序功能段
9、復賽要求:從.in文件中讀取數據→編程處理→寫到.out文件中
10、註釋語句:單行使用 // ;多行使用{ }——用於調試
11、賦值語句: 變量使用“ :=”;常量使用“=”
12. 定義:
const pai=3.14;
var a:integer; //-3萬2~3萬2
b:longint; //-21億~21億
c:byte; //0~255
var x:array[3..10] of integer; // a[3]到a[10]
13、常見出錯信息
(1)Syntax error, ; expected but BEGIN found 語法錯誤,預期出現分號(;)但找到了BEGIN——Begin前少了分號(;)
(2)Identifier not found INTEGER1 沒找到標識符INTEGER1——標識符單詞有錯
(3)Illegal expression 非法的表達式——賦值語句使用了“=”
九、讀數據講解:2004第1題
(1)建立.in輸入文件——建議使用edit unhappy.in
(2)使用type unhappy.in檢查.in是否正確
(2)編程從.in中讀取數據
var f:text; //定義壹個變量f,用於操作文件
a:array[1..7,1..2] of byte;
i:byte;
begin
assign(f,'unhappy.in'); //指針指向文件
reset(f); // 指針指向第1個字符
for i:=1 to 7 do readln(f,a[i,1],a[i,2]);
close(f); //關閉指針
//顯示讀結果
for i:=1 to 7 do wrtieln(a[i,1],' ',a[i,2]);
end.
no.2
壹、整型數據(復習)
var a:byte;
b:integer;
c:longint;
二、子界型數據(只能使用整型)
1..100
三、實型數據
說明:
(1)可以存放小數、也可以存放整型數據
(2)使用了“/”運算、sqrt()開平方,其結果必須使用實型變量保存
(3)使用整除 div、求余 mod,其結果可以使用整型變量存放
(4)在for …… to ……do……或for……downto……do……中,只能使用整型數據或整型變量
var a:single:
b:real;
c:double;
四、邏輯/布爾數據
說明:
(1)每個變量占用1個位。
(2)其結果不是true就是false
var a:boolean;
b:array[1..1000] of boolean;
邏輯運算:
(1)單目運算:not,非。書寫:~、……
(2)雙目運算:and, 與。書寫:∧、∩、……,口訣:同真為真,其余為假(1真3假)——等於“乘法*”
(3)雙目運算:or, 或。書寫:∨、∪、……,口訣:同假為假,其余為真(1假3真)——類似“加法+”但1+1=1
(4)雙目運算:xor, 異或。書寫:⊕、……, 口訣:同假異真。 (2真2假)——類似“加法+”但1⊕1=0
知識:
(1)如果進行雙目邏輯運算,邏輯表達式必須使用()。例: a=0 and b 是錯誤的。正確的應是:(a=0) and b
(2)初賽試題中進行邏輯運算時:可以將true用1替換,false用0替換,and/∧/∩用*替換,or/∨/∪用+替換,xor用⊕,按從左到右運算(除方括號以外)
(3)以下例題解題思路:
下列邏輯運算不正確的是(______)。(說明:“?”為邏輯與/邏輯乘,“+”為邏輯或/邏輯加,“⊕”為“邏輯異或”,字母上面的橫線為“邏輯非”)
A A?(A + B)= A
B A +(A?B)= A
C A?(B + C)= A?B + A?C
D A +(B?C)=(A + B)?(A + C)
E A + 1 = A
思路:分A=1或A=0兩種情況討論
例題講解(問題求解):
(取石子遊戲) 現有5堆石子,石子數依次為3,5,7,19,50甲乙兩人輪流從任壹堆中任取(每次只能取自壹堆,不能不取), 取最後壹顆石子的壹方獲勝。甲先取,問甲有沒有獲勝策略(即無論乙怎樣取,甲只要不失誤,都能獲勝)?如果有,甲第壹步應該在哪壹堆裏取多少?請寫出妳的結果:
甲(______)獲勝策略(填“有”或“沒有”)。
如有獲勝策略,第壹步應該在第(______)堆中取(______)顆石子。
解答:博弈原理。講求平衡性,對所有數進行xor,其值=0時為平衡狀態。誰打破平衡狀態誰輸!
五:字符型數據
說明:只存放壹個字符。
var a:char;
====================================================================
六:字符串型數據
說明:
(1)不超過255個字符
(2)定長和變長
(3)自動分割為字符數組。相當於字符數組,設s為字符串數據,則s[2]表示s中的第2個字符
(4)函數不能單獨成句,但可以用於賦值語句或輸出語句中。
過程單獨成句,就是壹條完成的語句。
(5)求長函數length(s)
(6)查找函數pos(s1,s)——s1子串,s源串,返回找到的第1個位置(返回0,表示沒找到)
(7)連接函數concat(s1,s2,s3,……)——將s2,s3……依次加在s1後面,最後返回s1。可以使用s1=s1+s2+s3+……
(8)截取函數copy(s,i,L)——在S中的第i個位置開始截取長為L的字符串
(9)刪除過程delete(s,i,L)——刪除S中第i個開始長為L的字符串,返回S
(10)插入過程insert(s1,s,i)——將s1插入在s中的第i個位置,返回S
(11)數字變字串過程str(12,s)——返回s='12'
(12)數值字串變數字過程val('125',a)——返回a=125
var a:string; //變長
var b:string[20]; //定長
七、分支結構
(1)2分支——else前不能有分號
if 條件 then 語句1;
if 條件 then 語句1 else 語句2;
if 條件 then
begin
語句組1;
end
else
begin
語句組2;
end;
if 條件1 then
語句組1;
else if 條件2 then
語句組2;
……
else
語句組;
(2)多分支
case 表達式 of
常量1:語句1;
常量2:語句2;
……
常量:語句;
else 語句n+1 //可選項
end;
多分支應用:根據年、月輸出該月多少天?
case m of //m代表月
1,3,5,7,8,10,12:days:=31; //days代表該月天數
4,6,9,11:days:=30;
2:if (y mod 400=0) or ((y mod 4=0) and (y mod 100<>0)) then days:=29 else days:=28;
end;
八、循環/重復結構
(1)限定次數
for … to … do 語句組; //循環變量自動累加1,前小後大。
for … downto … do 語句組; //循環變量自動累減1,前大後小。
(2)不定次數
while 條件 do 語句組;
repeat
語句組;
end;
(3)退出循環使用 break; 同時退出多層循環,壹般采用設置壹個邏輯變量+break來實現。
九:函數與過程區別
(1)關鍵字不同
(2)函數有數據類型,過程沒有。
(3)過程通過參數帶來結果(必須使用var),而函數只能通過函數名帶回壹個結果。
(4)過程單獨成句子;函數只能用於賦值語句或輸出語句中。
十、2011年初賽閱讀程序第三題講解
原題:
begin
readln(s);
m1=' ';
m2=' ';
for i:=1 to length(s) do
if s[i]>m1 then
begin
m2:=m1;
m1:=s[i];
end;
else if s[i]>m2 then
m2:=s[i];
writeln(ord(m1),' ',ord(m2));
end.
十壹、2011年初賽閱讀程序第四題講解
可以將原題進行“處理”(將循環結構改成順序結構),增加易讀性,但必須與原題完全等價。
說明:本題使用了函數,並且使用“遞歸調用”——自己調用自己
function r(n:integer):integer;
var i:integer;
begin
if n<=5 then
begin
r:=n;
exit; //出口
end;
if r(n-1)<0 then begin r:=1; exit; end; //①出口
if r(n-2)<0 then begin r:=2; exit; end; //②出口
if r(n-3)<0 then begin r:=3; exit; end; //③出口
if r(n-4)<0 then begin r:=4; exit; end; //④出口
if r(n-5)<0 then begin r:=5; exit; end; //⑤出口
r:=-1; //出口
end;
begin
readln(n);
writeln(r(n));
end.
分析:函數r(n)有多個出口!。
(1)輸入值為7或16
(2)n<=5時,返回原值,即:
r(5)=5
r(4)=4
r(3)=3
r(2)=2
r(1)=1
(3)n=6時,
計算r(5)——返回5,①不執行,執行下壹步
計算r(4)——返回4,②不執行,執行下壹步
計算r(3)——返回3,③不執行,執行下壹步
計算r(2)——返回2,④不執行,執行下壹步
計算r(1)——返回1,⑤不執行,執行下壹步
所以r=-11,即r(6)=-1
(4)n=7時,
計算r(6)——返回-1,①執行,所以r(7)=1
(5)n=8時,
計算r(7)——返回1
計算r(6)——返回-1,②執行,所以r(8)=2
(6)n=9時,
計算r(8)——返回2
計算r(7)——返回1
計算r(6)——返回-1,③執行,所以r(9)=3
(7)n=10時,
計算r(9)——返回3
計算r(8)——返回2
計算r(7)——返回1
計算r(6)——返回-1,④執行,所以r(10)=4
(8)n=11時,
計算r(10)——返回4
計算r(9)——返回3
計算r(8)——返回2
計算r(7)——返回1
計算r(6)——返回-1,⑤執行,所以r(11)=5
(9)n=12時,
計算r(11)——返回5
計算r(10)——返回4
計算r(9)——返回3
計算r(8)——返回2
計算r(7)——返回1
r=-1,即r(12)=-1
可以得出規律:
n=6 7 8 9 10 11 12 13 14 15 16
r(n)=-1 1 2 3 4 5 -1 1 2 3 4 5 -1 1 2 3 4 5
no.3
壹、 ASCII碼
將鍵盤上的所有鍵進行編號,就可看作ASCII碼,必須記住:
空格 20H,即32
數字 0~9,ASCII碼30H~39H,即48~57
字母 A~Z,ASCII碼41H~5AH,即65~90
字母 a~z,ASCII碼61H~6AH,即97~122
二、信息的單位
位——bit/b,表示0或1
字節——byte/B,網速 Mbps其中bps:位每秒,1B=8bit
扇區——512B
千字節——KB,1K=1024B=2扇區,需要記住:2E+10=1024
兆字節——MB,1M=1024K
吉字節——GB,1G=1024M
特字節——TB,1T=1024G
三、字符ASCII碼占用大小
1個英文字符占用1個字節,1個漢字占用2個字節。
四、字庫
點陣字(橫向的點*縱向的點)、曲線字
24*24點陣,需要多少存儲空間。24*24/8B=72字節,但ASCII碼占2B
五、進制——2、8、10、16進制
在計算機內部,壹切信息存取、處理和傳遞的形式是2進制。
機內碼:使用94區*94位,其中16區1位,就是“啊”,壹級漢字按拼音、二級漢字按部首
ASCII碼是7位編號,存儲時使用8位(即1B),其中最高位(左起第1位用於區分英文、中文)
地址碼:以字節為單位,以16進制為準,從0#開始。
例:128KB的存儲器用十六進制表示,它的最大的地址碼是(______)。
知識點:凡是2的倍數,如從1#編號,地址碼形式:10000……, 如果從0#開始,地址碼形式:FFFFF……
128KB約等於128*1000B
FFFFF=15^5>10^5=100000B
六、2009年初賽閱讀程序第2題
原代碼(處理):
b[0]:=2; b[1]:=3; b[2]:=5;
for i := 0 to 2 do begin
a[i] := 0;
for j := 0 to i do begin
inc(a[i], b[j]);
inc(b[a[i] mod 3], a[j]);
end;
end;
分析:采用列表法:
i j a[0] a[1] a[2] b[0] b[1] b[2]
初始化 0 0 0 2 3 5
0 0 2 7
1 0 2 9
1 5 14
2 0 2 16
1 5 21
2 26 47
tmp := 1;
for i := 0 to 2 do begin
a[i] := a[i] mod 10;
b[i] := b[i] mod 10;
tmp := tmp * (a[i] + b[i])
end;
功能:個位數之和相乘
tmp:=(2+2)*(5+3)*(6+7)=4*8*13=416
================================================================================
七、常用進制——2、8、10、16進制
(1) 書寫方式:(101)2、(127)8……
書寫方式:(101)2、(101)16、……
書寫方式:101B、101O、101D、101H……
(2)n進制:只能使用0、1、2、3、4、5……n-1、小數點、正負號
(3)進行四則運算:逢n進壹、借壹當n
加法:先本位相加,再考慮進位
減法:不夠減先借位,再相減
乘法:先各位相乘,再相加、最後考慮進位
(4)進制轉換
第1種類型:2、8、16→10進制
第2種類型:10→2、8、16進制
第3種類型:8→2→16進制
經驗:公式條
2進制: ……8 4 2 1.1/2 1/4 ……
8進制: …… 64 8 1.1/8 1/64 ……
16進制: …… 256 16 1.1/16 1/256 ……
例題講解:
與十進制數1770對應的八進制數是(______)。
A 3350
B 3351
C 3352
D 3540
分析:1770 mod 8 就是答案的個數,1770 mod 64就是答案的十位.
(2010)16+(32)8的結果是(______)。
A (8234)10
B (202B)16
C (20056)8
D (100000000110)2
分析:題目的值對8求余,結果=2
B、C、D對8求余<>2,所以答案為A
(3725)8+(B)16的運算結果是(______)。
A (3736)8
B (2016)10
C (1111110000)2
D (3006)10
E (7B0)16
分析:值=(3725)8+11=(3740)8=(011 111 100 000)2,答案為E
(2004)10 +(32)16的結果是(______)。
A (2036)10
B (2054)16
C (4006)10
D (100000000110)2
E (2036)16
分析:值=2004+50=2054,A/B/C/E不對
運算(-17) MOD (-4) 的結果是(______)。
A 7
B 4
C 1
D -1
分析:a mod b的正負以左邊的a為準
八、寫文件
assign(f,'tree.out'); rewrite(f);
……
close(f)