FOR := to do Definite Iteration statements execute a statement repeatedly for a definite number of times where must be of integer, char, boolean.

Slides:



Advertisements
Similar presentations
: Arrange the Numbers ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11481: Arrange the Numbers 解題者:李重儀 解題日期: 2008 年 9 月 13 日 題意: 將數列 {1,2,3, …,N}
Advertisements

布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
:Word Morphing ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10508:word morphing 解題者:楊家豪 解題日期: 2006 年 5 月 21 日 題意: 第一行給你兩個正整數, 第一個代表下面會出現幾個字串,
1 Q10276: Hanoi Tower Troubles Again! 星級 : ★★★ 題組: Online-judge.uva.es PROBLEM SET Volume CII 題號: Q10276: Hanoi Tower Troubles Again! 解題者:薛祖淵 解題日期: 2006.
Instructor: Ching-Chi Lin 林清池 助理教授
3Com Switch 4500 切VLAN教學.
指導教授:陳淑媛 學生:李宗叡 李卿輔.  利用下列三種方法 (Edge Detection 、 Local Binary Pattern 、 Structured Local Edge Pattern) 來判斷是否為場景變換,以方便使用者來 找出所要的片段。
: The Huge One ★☆☆☆☆ 題組: Contest Archive with Online Judge 題號: 11344: The Huge One 解題者:李育賢 解題日期: 2008 年 12 月 21 日 題意: 題目會給數字 N (0
: Boxes ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11003: Boxes 解題者:蔡欣燁 解題日期: 2007 年 3 月 19 日.
亂數產生器安全性評估 之統計測試 SEC HW7 姓名:翁玉芬 學號:
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
貨幣創造與控制 CHAPTER 27 學習本章後,您將能: C H A P T E R C H E C K L I S T 解釋銀行如何藉由放款而創造貨幣 1 解釋中央銀行如何影響貨幣數量 2.
: ShellSort ★★☆☆☆ 題組: Problem D 題號: 10152: ShellSort 解題者:林一帆 解題日期: 2006 年 4 月 10 日 題意:烏龜王國的烏龜總是一隻一隻疊在一起。唯一改變烏龜位置 的方法為:一隻烏龜爬出他原來的位置,然後往上爬到最上方。給 你一堆烏龜原來排列的順序,以及我們想要的烏龜的排列順序,你.
: Matrix Decompressing ★★★★☆ 題組: Contest Volumes with Online Judge 題號: 11082: Matrix Decompressing 解題者:蔡權昱、劉洙愷 解題日期: 2008 年 4 月 18 日 題意:假設有一矩陣 R*C,
JAVA 程式設計與資料結構 第十四章 Linked List. Introduction Linked List 的結構就是將物件排成一列, 有點像是 Array ,但是我們卻無法直接經 由 index 得到其中的物件 在 Linked List 中,每一個點我們稱之為 node ,第一個 node.
基礎物理總論 基礎物理總論 熱力學與統計力學(三) Statistical Mechanics 東海大學物理系 施奇廷.
南投縣社區大學 Excel 實務應用入門 講師 : 林泉成
1 第四章 多變數函數的微分學 § 4.1 偏導數定義 定義 極限值 ■. 2 定理 極限值的基本定理 (1) 極限值的唯一性 : 若 存在,則 其值必為唯一。 (2) 若 且 ( 與 為常數 ) , 則 且 為常數且.
IR 組員 : 資工 4A 王俊傑 資工 4B 陳國富 資工 4B 夏希璿.
: Make a Crystal ★★★★★ 題組: Problem Set Archive with Online Judge 題號: 11094: Make a Crystal 解題者:呂彥澂 解題日期: 2007 年 4 月 17 日 題意:在 N*N*N 的空間中 (N 為偶數.
按一下以編輯母片標題樣式 按一下以編輯母片 第二層 第三層 第四層 第五層 1 按一下以編輯母片標題樣式 按一下以編輯母片 第二層 第三層 第四層 第五層 1 Problem E: Jolly Jumpers A sequence of n > 0 integers is called a jolly.
: Abundance and Perfect Numbers ★★★★☆ 題組: Contest Volumes with Online Judge 題號: 10914: Abundance and Perfect Numbers 解題者:劉洙愷 解題日期: 2008 年 5 月 2.
Matlab Assignment Due Assignment 兩個 matlab 程式 : Eigenface : Eigenvector 和 eigenvalue 的應用. Fractal : Affine transform( rotation, translation,
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Little Red Riding Hood ★★★☆☆ 題組: Contest Volumes Archive with Online Judge 題號: 11067: Little Red Riding Hood 解題者:陳明凱 解題日期: 2008 年 3 月 14 日 題意:
: Playing War ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11061: Playing War 解題者:陳盈村 解題日期: 2008 年 3 月 14 日 題意:在此遊戲中,有一類玩家一旦開始攻擊, 就會不停攻擊同一對手,直到全滅對方或無法再.
: Problem A : MiniMice ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11411: Problem A : MiniMice 解題者:李重儀 解題日期: 2008 年 9 月 3 日 題意:簡單的說,題目中每一隻老鼠有一個編號.
: Ahoy, Pirates! ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11402: Ahoy, Pirates! 解題者:李重儀 解題日期: 2008 年 8 月 26 日 題意:有一個海盜島有 N 個海盜,他們的編號 (id)
: Count DePrimes ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11408: Count DePrimes 解題者:李育賢 解題日期: 2008 年 9 月 2 日 題意: 題目會給你二個數字 a,b( 2 ≦ a ≦ 5,000,000,a.
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
資料結構實習-一 參數傳遞.
公用品.  該物品的數量不會因一人的消費而受到 影響,它可以同時地被多人享用。 角色分配  兩位同學當我的助手,負責:  其餘各人是投資者,每人擁有 $100 , 可以投資在兩種資產上。  記錄  計算  協助同學討論.
: Problem G e-Coins ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10306: Problem G e-Coins 解題者:陳瀅文 解題日期: 2006 年 5 月 2 日 題意:給定一個正整數 S (0
Management Abstracts Retrieval System; MARS 檢索操作.
: A-Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10930: A-Sequence 解題者:陳盈村 解題日期: 2008 年 5 月 30 日 題意: A-Sequence 需符合以下的條件, 1 ≤ a.
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
: Lucky Number ★★★★☆ 題組: Proble Set Archive with Online Judge 題號: 10909: Lucky Number 解題者:李育賢 解題日期: 2008 年 4 月 25 日 題意:給一個奇數數列 1,3,5,7,9,11,13,15…
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
: GCD - Extreme II ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11426: GCD - Extreme II 解題者:蔡宗翰 解題日期: 2008 年 9 月 19 日 題意: 最多 20,000 組測資,題目會給一個數字.
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
資料結構實習-二.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
: Automatic correction of misspellings ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11048: Automatic correction of misspellings 解題者:陳宜佐 解題日期:
: Expect the Expected ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11427: Expect the Expected 解題者:李重儀 解題日期: 2008 年 9 月 21 日 題意:玩一種遊戲 (a game.
-Antidifferentiation- Chapter 6 朝陽科技大學 資訊管理系 李麗華 教授.
: Flip Sort ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10327: Flip Sort 解題者:歐子揚 解題日期: 2010 年 2 月 26 日 題意:在這個問題中使用一種排序方式 (Flip) ,意思就是 只能交換相鄰的.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Linguistics phonetic symbols. 先下載 IPA 字型檔案,執行安裝。 由於這個程式的字型目錄設定錯誤, 所以等重新開機時就會發現字型消失。 所以必須根據以下步驟來讓 Windows 加入 IPA 字型。
資料結構實習-十 Binary Tree Traversal.
Chapter 10 m-way 搜尋樹與B-Tree
: Function Overloading ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11032:Function Overloading 解題者:許智祺 解題日期: 2007 年 5 月 8 日 題意:判對輸入之數字是否為.
: Help My Brother ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11033: Help My Brother 解題者: 呂明璁 解題日期: 2007 年 5 月 14 日.
組合語言與系統程式 軟體使用教學. 軟體下載及安裝 下載 到課程網頁下載 tw/~jiun/ 安裝 解壓縮後將 System Software 資料夾放在 D 槽 (C 槽版本放在 C 之下 )
計算機概論 第6章 數位邏輯設計.
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
INTRODUCTION TO MATLAB SHAWNNTOU. What Is MATLAB? MATLAB® is a high-performance language for technical computing. MATLAB® is a high-performance language.
電腦的基本單位 類比訊號 (analog signal) 指的是連續的訊號
: Problem E Antimatter Ray Clearcutting ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11008: Problem E Antimatter Ray Clearcutting 解題者:林王智瑞.
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出迴圈 6-5 跳出迴圈 6-6 VB.NET 的錯誤處理 6-6 VB.NET.
:Stupid Sequence ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11319: Stupid Sequence 解題者:李育賢 解題日期: 2008 年 11 月 23 日 題意: 一個公式 f(x)=a 0 +a 1 x+a.
:Count the Trees ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10007:Count the Trees 解題者:楊家豪 解題日期: 2006 年 3 月 題意: 給 n 個點, 每一個點有自己的 Label,
: GCD (I) ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11424: GCD(I) 解題者:李育賢 解題日期: 2008 年 9 月 19 日 題意: 最多 20,000 組測資,題目會給一個數字 N(1
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.
著作權所有 © 旗標出版股份有限公司 第 14 章 製作信封、標籤. 本章提要 製作單一信封 製作單一郵寄標籤.
1 Knapsack Cryptosystems 2 ◎ Merkle-Hellman Knapsack Cryptosystem 觀察: (1) 0/1 knapsack problem (i.e. sum of subset) 例:已知 C = 14, A = (1, 10, 5, 22, 3)
: How many 0's? ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11038: How many 0’s? 解題者:楊鵬宇 解題日期: 2007 年 5 月 15 日 題意:寫下題目給的 m 與 n(m
Presentation transcript:

FOR := to do Definite Iteration statements execute a statement repeatedly for a definite number of times where must be of integer, char, boolean

Example: Program Ex51; var i : integer; begin for i := 1 to 5 do writeln(i); end. program Ex51; var i : char; begin for i := ‘A’ to ‘E’ do writeln(i); end. I <= 5? T Display I T Increment I by 1 Set I to 1 F I <= ‘E’? T Display I T Increment I by 1 character Set I to ‘A’ F

program Ex1; var i : integer; begin for i := 1 to 5 do writeln(i) end. program Ex2; Var i: integer; begin for i := 1 to 5 do begin write('The number is '); writeln(i) end end. program Ex3; var i, mark: integer; begin for i := 1 to 5 do begin write('Enter your marks '); readln(mark) end end. program Ex4; var i, mark, sum: integer; begin sum :=0; for i := 1 to 5 do begin write('Enter your marks '); readln(mark); sum := sum + mark end; writeln('The average is ', sum/5:0:2) end.

program SumOfSeries; var i,N, total: integer; begin writeln('Find N'); write('Enter the N th term:'); readln(N); total := 0; for i := 1 to N do total := total + i; writeln(' ',N, '=', total) end

program SumOfSeriesForOddNumber; var i,N, total: integer; begin writeln('Find N'); write('Enter the N th term:'); readln(N); total := 0; for i := 1 to round(N/2) do total := total + 2*i-1; writeln(' ',N,'=',total) end

program powerofindex; var i,p,a : integer; begin write('Enter power of index:'); readln(p); a := 1; for i := 1 to p do a := a * 2; writeln('2 to the power ', p, '=', a) end. p=3 2 3 =8 a:=1 a:=a  2 21  2 42  2 84  2 i=1 i=2 i=3 3 不斷將 2 自乘 p 次 執行 p 次 將 2 自乘

WorkSheet Write a program that accepts an integer N And calculate the result of 1  2  3  …….N Output: Enter a number : 5 The result of 1  2  ……. 5 is : 120 program powerofindex; var i,p,a : integer; begin write('Enter a number:'); readln(p); a := 1; for i := 1 to p do a := a * i; writeln(‘1x2x…x’,p,‘ is ',a) end. 執行 p 次 將 i 乘以之前累積乘數

program investment; var I,N : integer; P,R,A : real; begin write('Enter amount to be borrowed by Tom:'); readln(P); write('Enter the yearly compound interest rate in %:'); readln(R); write('Enter the number of years:'); readln(N); write('How much does he owe after ', N, 'years? '); A:=P; for I := 1 to N do A := A * (1+R/100); writeln(A:0:2) end. N A1000 A:=A  (1+R/100)    1.1 I=1 I=2 I=3 P=1000 R=10 N=3 執行 N 次 將 本金不斷乘以 (1+R/100)

program SumOfOddnumbers; var i,N, total: integer; begin writeln('Find N'); write('Enter the N th term:'); readln(N); total := 0; for i := 1 to N do if i mod 2 <> 0 then total := total + i; writeln(' ',N,'=',total) end. Example 5.2 如果是單數 ( 不可除盡 2, 餘數 ; 非 0 ) 累積單數總和

Program sumOfOddandEven; var i,N, osum, esum: integer; begin writeln('Find N'); writeln('Find N'); write('Enter the N th term:'); readln(N); osum := 0; esum:=0; for i := 1 to N do if i mod 2 = 0 then esum := esum + I else osum := osum+I; writeln(' ',N,'=',osum); writeln(‘ ',N,'=',esum); end. 如果是雙數 ( 可除盡 2, 餘數 0 ) 累積雙數總和 否則 累積單數總和

program FindFactors; var i,N: integer; begin write('Enter a number:'); readln(N); write('The factors of ', N, ' are '); for i := 1 to N do if N mod i = 0 then write(i:5) end. 24 Output: The factors of 24 are mod 1 = 0 24 mod 2 = 0 24 mod 3 = 0 24 mod 4 = 0 24 mod 6 = 0 24 mod 8 = 0 N mod i = 0 24 mod 12= 0 24 mod 24= 0 找出某數的所有因數 如 數值如24可以除盡 I 的話, 即 I 是24的因數), 顯示因數

PROGRAM MONTH; VAR I: INTEGER; BEGIN FOR I := 1 TO 30 DO BEGIN WRITE(I:3); IF I MOD 7 = 0 THEN WRITELN END END Output: 如果 I 可以除盡 7 的話(即 I 是 7 的倍數) 便落一行

program determinePrimeNumber; var number,i, count : integer; begin writeln('Enter a number'); readln(number); count := 0; for i := 1 to number do if number mod i = 0 then count := count + 1; if count = 2 then writeln(number, ' is a prime number.') else writeln(number, ' is not a prime number.') end. 6 6 mod 1 = 0 6 mod 2 = 0 6 mod 3 = 0 6 mod 6 = 0 count = 1 count = 2 count = 3 count = mod 1 = 0 3 mod 3 = 0 count = 1 count = 2 如 數值如 6 可以除盡 I 的話, 即 I 是數值的因數) 因數數量便加一 如因數數量只有二, 數值是一個質數

program findhcf; var num1, num2, l,i, hcf:integer; begin writeln('please enter two numbers'); readln(num1,num2); if num1 > num2 then l := num2 else l := num1; for i := 1 to l do if (num1 mod i = 0) and (num2 mod i = 0) then hcf := i; writeln('the hcf is ', hcf) end. 963 L=9 9 mod 3=063 mod 3=0 那個數目最少用 L 載著 找出最少公因數 找出兩個數的公因數I

Write a program that accepts marks for 8 students and find the highest mark. Output: Enter mark : 40 Enter mark : 45 Enter mark : 65 Enter mark : 87 Enter mark : 75 Enter mark : 89 Enter mark : 34 Enter mark : 32 The highest mark is 87 program FindTheHighestMark; var mark, i, hmark: integer; begin write(‘Enter mark:’); readln(mark); hmark:=mark; for i := 2 to 8 do begin readln(mark); if mark >= hmark then hmark := mark; end; writeln('The highest mark is ', hmark) end. 設第一個分數最大 由第二個次到第八個次 每次輸入分數 如分數大過之前最大數 設分數為最大 找出輸入數值中的最大數

program reverseword; var w,c: string; i : integer; begin writeln('Enter a word'); readln(w); c:=‘’ ; for i := 1 to length(w) do c := w[i] + c; writeln('The reversed word is ', c) end. w:= ‘abcd’ 4 cw[i]+c ‘a’‘a’+‘’ ‘ba’‘b’+‘a’ ‘cba’‘c’+‘ba’ ‘dcba’‘d’+‘cba’ 每個字母與之前的字串合併 把輸入的句子由尾反轉顯示 從第一個字母到最後一個字母

PROGRAM REVERSE; VAR W : STRING; I : INTEGER; BEGIN WRITE('ENTER A SENTENCE:'); READLN(W); FOR I := 1 TO LENGTH(W) DO WRITE(W[LENGTH(W)+1-I]) END. OUR LADY 8 9-1=8 9-2=7 9-3=6 9-4=5 9-5=4 9-6=3 9-7=2 9-8=1

program findcharacter; var c : char; w : string; i, found : integer; begin write('enter a letter to search from the sentence:'); readln( c ); w := 'school'; found := 0; for i := 1 to length(w) do if w[i] = c then found := 1; if found = 1 then writeln('character found. The sentence is ’, w) else writeln('character not found! The sentence is ’, w ); end. 輸入一個字母 檢查字母是否在句子裏 一旦發現字母在句子裏 設定找到 開始時設定找不到

WorkSheet write a program that accepts a string and change each uppercase letter to lowercase letter. Enter your school name :I studied from Our Lady College The result is : i studied from our lady college Output: program uppertolowercase; var w: string; i : integer; begin writeln('enter your school name:'); readln(w); write(‘The result is’); for i := 1 to length(w) do if (w[i]>=‘A') and (w[i] <=‘Z') then write(chr(ord(w[i])+32)) else write(w[i]) end. 測試句子內每一個字符 如果是英文字母大楷 顯示細楷 否則 顯示原本字符

WorkSheet write a program that accepts a string and change each lowercase letter to uppercase or vice versa. Enter your school name :50th Anniversary Our Lady College The result is : 50TH aNNIVERSARY oUR lADY cOLLEGE Output: program convertcase; var w: string; i : integer; begin writeln('enter your school name:'); readln(w); write(‘The result is’); for i := 1 to length(w) do if (w[i]>=‘A') and (w[i] <=‘Z') then write(chr(ord(w[i])+32)) else if (w[i]>=‘a') and (w[i] <=‘z') then write(chr(ord(w[i])-32)) else write(w[i]) end. 測試句子內每一個字符 如果字符是英文字母大楷 顯示細楷 否則 如果是英文字母細楷 顯示大楷 否則 顯示原本字符

WorkSheet Output: Enter a sentence : Computer Information Technology The number of occurrence for the vowels :10 Write a program that accepts a sentence And calculate the number of occurrences for the vowels. Computer Information Technology program countvowels; var w: string; i,c : integer; begin writeln('Enter a sentence'); readln(w); c:=0 ; for i := 1 to length(w) do case w[i] of ‘A’,’a’,’E’,’e’,’I’,’i’,’O’,’o’,’U’,’u’: c := c +1; end; writeln(‘The number of occurrence for the vowels:’, c) end. 測試句子內每一個字符 如果字符是韻母 將韻母數目加一

WorkSheet write a program that accepts a sentence and display the first letter of each word First Run: Enter your school name :OurLadyCollege Your school is : OLC Output: Second Run: Enter your school name :OurLadyCollege Your school is : OLC program extractfirstletter; var c : string; i: integer; begin readln(c); for i := 1 to (length(c)-1) do begin if (i = 1) and (c[i] <> ' ') then write(c[i]); if (c[i]=' ') and (c[i+1]<>' ') then write(c[i+1]) end end. 顯示句子內每一個字的首字母 如果這是空字符和下一個是有字符 顯示下一個字符 如果這是第一個字符而不是空字符 顯示這個字符 測試每一個句子內每一個字符

PROGRAM CONVERTTOLOWERCASEORUPPERCASE; VAR S : STRING; I : INTEGER; PROCEDURE CONVERT(VAR X: CHAR); BEGIN IF (X >= 'A') AND (X <= 'Z') then X := CHR(ORD(X)+32); IF (X >= 'a') AND (X <= 'z') then X := CHR(ORD(X)-32); END; BEGIN WRITELN('ENTER A SENTENCE:'); READLN(S); CONVERT(S[1]); FOR I := 1 TO LENGTH(S)-1 DO IF (S[I] = ' ') AND (S[I+1] <> ' ') THEN CONVERT(S[I+1]); WRITELN('THE SENTENCE NOW IS ', S) END.

program pattern1; var c : string; i : integer; begin c := ''; for i := 1 to 4 do begin c := c + '*'; writeln(c) end; end. * ** *** **** program pattern2; var c : string; i : integer; begin c := ''; for i := 1 to 4 do begin c := c + '*'; writeln(c:4) end; end. * ** *** **** c=‘’ c=c+’*’ ‘*’‘’+‘*’ ‘**’‘*’+ ‘*’ ‘***’‘**’+ ‘*’ ‘****’‘***’+‘*’

Nest-FOR program MultiplyTable; var I,J : integer; begin for I := 1 to 10 do begin for J := 1 to 10 do write(I * J :4); writeln end end. I J

Nest-FOR program pattern; var i,j : integer; begin for i := 1 to 4 do begin for j := 1 to i do write('*'); writeln end end. program pattern; var i,j : integer; begin for i := 4 downto 1 do begin for j := 1 to i do write('*'); writeln end end. ** *** **** 1 i j **** **** * 4 i j

Nest-FOR program pattern; var i,j : integer; begin for i := 1 to 4 do begin write('':4-i); for j := 1 to i do write('*'); writeln end end. program pattern; var i,j : integer; begin for i := 4 downto 1 do begin write('':4-i); for j := 1 to i do write('*'); writeln end end. ** *** ** 1 i i * *** **** * 4 i i

WorkSheet Q1 Using for statement with if-statement within, write a program that generates the following output: |---|---|---|---| Using nested-for, write a program that generates the following output: |---|---|---|---| WorkSheet Q2 PROGRAM PATTERN; VAR I : INTEGER; BEGIN FOR I := 1 TO 12 DO BEGIN WRITE(‘|---’); IF I MOD 4 = 0 THEN WRITELN(‘|’) END END. PROGRAM PATTERN; VAR I,J: INTEGER; BEGIN FOR I := 1 TO 3 DO BEGIN FOR J := 1 TO 4 DO WRITE(‘|---’); WRITELN(‘|’) END END. 連續顯示12次 |--- 每四次 落一行 顯示三行 每一行 顯示四次 |---

WorkSheet Q2 Denary Number = a  b  2 3 +c  d  e  2 1 +f  2 0 Where a,b,c,d,e are digits of either 0 or 1. Write a program that accepts a series of 1’s and 0’s. and display the denary number. Output: Enter binary number: The denary number is 23 program DenaryToBinary; var c : string; i,j,sum, a,m: integer; begin writeln(‘Enter binary number’); sum := 0; for i := 5 downto 2 do begin readln(a); m := 1; for j := 1 to (i-1) do m := m * 2; sum := sum+(a*m); end; readln(a); sum := sum + a; writeln(‘The denary number is’, sum) end.

Project Write a program that display the result of days for each month in the following format: Month Output: Month Month

program Ex1; var i : integer; begin for i := 1 to 5 do writeln(i) end. program Ex3; var i, mark: integer; begin for i := 1 to 5 do begin write('Enter your marks '); readln(mark) end end. DIFFERENCE BETWEEN FOR AND REPEAT LOOP program Ex1; var i : integer; Begin i := 0; repeat i := i + 1; writeln(i); until i = 5; end. program Ex3; var i, mark: integer; Begin i := 0; repeat i := i +1; write('Enter your marks '); readln(mark); until i = 5; end.

program Ex4; var i, mark, sum: integer; begin sum :=0; for i := 1 to 5 do begin write('Enter your marks '); readln(mark); sum := sum + mark end; writeln('The average is ', sum/5:0:2) end. program Ex4; var i, mark, sum: integer; begin sum :=0; i := 0; repeat i:=i +1; write('Enter your marks '); readln(mark); sum := sum + mark until i = 5; writeln('The average is ', sum/5:0:2) end.

program SumOfSeries; var i,N, total: integer; begin writeln('Find N'); write('Enter the N th term:'); readln(N); total := 0; for i := 1 to N do total := total + i; writeln(' ',N, '=', total) end. program SumOfSeries; var i,N, total: integer; begin writeln('Find N'); write('Enter the N th term:'); readln(N); i :=0; total := 0; repeat i :=i + 1; total := total + i; until i = N; writeln(' ',N, '=', total) end.

REPEAT statement 1; statement2;. UNTIL condition; program enteryourage; var age : integer; begin repeat writeln(‘enter your age:’); readln(age); until age > 12; end. VALIDATION INPUT TECHNIQUE program enteryourage; var age : integer; begin repeat writeln(‘enter your age:’); readln(age); until (age > 12) and (age <15); end.

program atm; var key : integer; begin repeat writeln(‘enter password:’); readln(key); until key = 12345; end. VALIDATION INPUT TECHNIQUE program atm; var key, c : integer; begin c := 0; repeat writeln(‘enter password:’); readln(key); c := c + 1; until (key = 12345) or (c = 3) ; if key = then writeln(‘correct. Go in’) else writeln(‘please leave’) end. VALIDATION INPUT AND COUNTING TECHNIQUE

program findtheterm; var term, sum : integer; begin writeln(‘the term n where ‘ n >12 is ’); term := 0; sum :=0; repeat term := term + 1; sum := sum + term; until sum = > 12; writeln(term) end. COUNTING AND ACCUMULATING TECHNIQUE term=0 term=term+1 1=0+1 2=1+1 3=2+1 4=3+1 5=4+1 sum=0 sum=sum+term 1=0+1 3=1+2 6=3+3 10=6+4 15=10+5

program FindRemainder; var d, num : integer; begin num:=9; d :=2; repeat num := num - d; until num < d; writeln('the remainder is ', num); end. num=num-d 7=9-2 5=7-2 3=5-2 1=3-2

COUNTING AND ACCUMULATING TECHNIQUE program compoundinterest; var p : real; yr : integer; begin p:=10000; yr:=0; repeat p := p*1.1; yr := yr + 1; until p > 20000; writeln(‘It take ’,yr, ‘years to have an amount over $20000’); End.

program findcharacter; var c : char; w : string; i, found : integer; begin write('enter a letter to search from the sentence:'); readln( c ); w := 'school'; found := 0; for i := 1 to length(w) do if w[i] = c then found := 1; if found = 1 then writeln('character found. The sentence is ’, w) else writeln('character not found! The sentence is ’, w ); end.

program findcharacter; var c : char; w : string; i : integer; begin writeln('enter a letter to search from the sentence:'); readln( c ); w := 'school'; i := 0; repeat i := i + 1 until (w[i] = c ) or (i = length(w)); if w[i]= c then writeln('character found. The sentence is ', w) else writeln('character not found! The sentence is ', w); end.

program findcharacter; var c : char; w : string; i : integer; begin writeln('enter a letter to search from the sentence:'); readln(c); w := 'school'; i := 0; while (w[i] <> c) and (i <> length(w)) do i := i + 1; if w[i]= c then writeln('character found. The sentence is ', w) else writeln('character not found! The sentence is ', w); end.

program atm; varamt,money,choice,count : real; password: string; ans : char; begin count := 0; repeat writeln('Enter your password'); readln(password); count := count + 1 until (password='OLC') or (count=3); if password='OLC' then begin repeat write('Enter your saving balance:'); readln(amt) until amt >0 ; repeat writeln('1. enquiry 2. withdraw 3. deposit 4. exit'); readln(choice); if choice = 1 then writeln('your balance is ', amt:0:2); if choice = 2 then begin repeat write('enter amount to withdraw: '); readln(money) until money < amt; amt := amt-money; end; if choice = 3 then begin write('enter amount to deposit '); readln(money); amt := amt + money end; write('continue?Y/N '); readln(ans) until (ans = 'N') or (ans='n'); end else writeln('Three times has passed') end.

program guessgames; var num, guess, turn: integer; begin turn:= 1; repeat turn := turn+1; randomize; num := random(5)+1; writeln('Player ', turn mod 2 + 1,', guess a number from 1 to 5'); readln(guess); until guess = num; writeln('The number drawn is ', num); writeln('Player ', turn mod 2+1, ' win') end.

program guessgames; var num, guess, turn, player: integer; begin turn:= 1; repeat randomize; num := random(5)+1; if turn mod 2 = 1 then player := 1 else player := 2; writeln('Player ', player, '.Guess a number from 1 to 5'); readln(guess); turn := turn + 1; until guess = num; writeln('The number drawn is ', num,'.Player ', player, ' win') end.

program guessgames; var turn, player: integer; num, guess : char; begin turn:= 1; repeat randomize; num := chr(65+random(5)); if turn mod 2 = 1 then player := 1 else player := 2; writeln('Player ', player, '.Guess a character from A to E'); readln(guess); turn := turn + 1; until guess = num; writeln('The character drawn is ', num,'.Player ', player, ' win') end.

program guess; var num1, num2, pts : integer; a, b,ans: char; begin pts := 500; writeln('your points are initially ', pts); repeat randomize; num1 := random(10)+1; num2 := random(10)+1; if num2 > num1 then a := '>‘; if num2 < num1 then a :='<‘; if num2 = num1 then a :='='; writeln('guess if 1st letter > < or = 2nd letter'); readln(b); write('numbers are ',num1,' and ', num2); if a = b then pts := pts+100 else pts := pts-100; if pts >= 0 then begin write(' your points are ', pts,'.continue? y or n'); readln(ans) end until (pts < 0) or (ans = 'n'); if pts < 0 then writeln('.you pts are less than zero! you are not allowed to play!'); end.

program MarkSix; const max = 20; var a,b,c,d,e,f,g,h,i,j,k,l, count: integer; Begin repeat readln(g) until (g > 0) and (g <=max); repeat readln(h) until (h > 0) and (h g); repeat readln(i) until (i > 0) and (i g) and (i <> h); repeat readln(j) until (j > 0) and (j g) and (j<> h) and (j<> i); repeat readln(k) until (k > 0) and (k g) and (k<> h) and (k<> i) and (k<>j); repeat readln(l) until (l > 0) and (l g) and (l<> h) and (l<> i) and (l<>j) and (l <> k); writeln('Your numbers are ', g:3, h:3, i:3, j:3, k:3, l:3); randomize; a := random(max)+1; repeat b := random(max)+1 until b <> a; repeat c := random(max)+1 until (c <> a) and (c <> b); repeat d := random(max)+1 until (d<>a) and (d <>b) and (d <> c); repeat e := random(max)+1 until (e<>a) and (e <> b) and (e <> c) and (e <> d); repeat f := random(max)+1; until (f <> a) and (f <> b) and (f <> c) and (f<>d) and (f <> e); writeln('Number generated by computer are ', a:3, b:3, c:3, d:3, e:3, f:3); count := 0; if (g=a) or (g=b) or (g=c) or (g=d) or (g=e) or (g=f) then count := count+1; if (h=a) or (h=b) or (h=c) or (h=d) or (h=e) or (h=f) then count := count+1; if (i=a) or (i=b) or (i=c) or (i=d) or (i=e) or (i=f) then count := count+1; if (j=a) or (j=b) or (j=c) or (j=d) or (j=e) or (j=f) then count := count+1; if (k=a) or (k=b) or (k=c) or (k=d) or (k=e) or (k=f) then count := count+1; if (l=a) or (l=b) or (l=c) or (l=d) or (l=e) or (l=f) then count := count+1; case count of 0..2 : writeln(count,' match.No price!'); 3 : writeln('fourth price'); 4: writeln('third price $20'); 5: writeln('second price'); 6: writeln('First price') end end.

Write a program that keeps generating a number of either 0 or 1 randomly for you to guess until your guess is wrong. As long as each guess is correct, your money is increased by $1000. guess a number 1 or 2: 1 Correct. Your money so far is $1000 guess a number 1 or 2: 2 Correct. Your money so far is $2000 guess a number 1 or 2: 1 Wrong! The number generated is 2. Your money now is $2000 Output:

Write a program that keeps generating two numbers 1 and 2 randomly for you to guess if the second number is greater than first number, less than the first number and equal to the first number until your guess is wrong. As long as each guess is correct, your money is increased by $1000. First number Greater Than(G), Less Than(L) or Equal To(E) the second number? G Correct. The numbers are 1 and 2. You have gained 1000 points. First number Greater Than(G), Less Than(L) or Equal To(E) the second number? L Correct. The numbers are 2 and 1. You have gained 2000 points. First number Greater Than(G), Less Than(L) or Equal To(E) the second number? E Correct. The numbers are 2 and 2. You have gained 3000 points. First number Greater Than(G), Less Than(L) or Equal To(E) the second number? L Incorrect! The numbers are 1 and 2. You have gained 3000 points.

program guessgames; var pts,num1, num2: integer; result, guess : char; begin pts:= 0; repeat randomize; num1 := random(2)+1; num2 := random(2)+1; if num1 = num2 then result := 'E' else if num2 > num1 then result := 'G' else result := 'L'; writeln( 'First number Greater Than(G), Less Than(L) or Equal To(E) the second number ?'); readln(guess); if guess = result then begin writeln('Correct.'); pts := pts ; end else write('Incorrect!'); writeln('The numbers are ', num1, ' and ', num2, ‘.You have gained ', pts, ' points') until guess <> result; end.

PROGRAM HANGMAN; VAR W,D: STRING; E:CHAR; F,I,J,K,WRONG : INTEGER; BEGIN K := 0; WRONG := 0; D:='******'; W:='SCHOOL'; REPEAT WRITELN(D); WRITE('GUESS A LETTER FROM THE WORD:'); READLN(E); I := 0; REPEAT I := I +1; UNTIL (D[I]=E) OR (I=LENGTH(D)); IF I=LENGTH(D) THEN BEGIN F := 0; FOR J := 1 TO LENGTH(W) DO IF W[J] = E THEN BEGIN F :=1; K:=K+1; D[J] := E; END; IF F=0 THEN BEGIN WRONG := WRONG+1; WRITELN(WRONG, ' TIMES WRONG') END END; UNTIL (WRONG = 10) OR (K=6); WRITELN( D); IF WRONG = 10 THEN WRITELN('YOU ARE OUT!') ELSE WRITELN('CONGRADUATION! YOU WIN') END.

program Guessing; var money,num,ans : integer; begin money := 0; repeat randomize; num:=random(2)+1; writeln('guess a number 1 or 2:'); repeat readln(ans) until (ans = 1) or (ans=2); if ans = num then begin money := money+1000; writeln(‘Correct.Your money so far is $', money) end until ans <> num; writeln(‘Wrong! Number generated is ',num); writeln(‘Your money now is $',money) end.