數列級數的規則為:奇數相加減,計算到設定變數的數量
例:變數為9,計算的值為1-3+5-7+9-11+13-15+17=9
1~17之間有9個數字做運算,中間的符號為-+-+..-+互相交 替,求出運算結果即可
Q1.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include<stdio.h> void plus( int end){ //end為數字的數量 int i,y=1,total=0; //y為數字之初始值 total為累加值 for (i=0;i<end;i++){ //控制數字之數量 if (i>0){ //大於一個數字才開始做加減 if (i%2!=0){ //判斷+- 偶數為減 奇數為加 total-=y; //將total值加或減 printf ( "-%d" ,y); } else { total+=y; printf ( "+%d" ,y); } } else { total+=y; printf ( "%d" ,y); } y=y+2; //每次回圈y+2 遞增 } printf ( "=%d" ,total); } main(){ plus(15); //呼叫自訂函式 return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include<stdio.h> void plus( int num){ int i,s=-1,sum=0; for (i=1;i<num*2;i+=2) { s *= -1; sum += i*s; printf ( "%+d" ,i*s); } printf ( "=%d\n" ,sum); } int main(){ plus(5); return 0; } |
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php function hello(){ $end = $_GET [ "end" ]; $y =1; $total =0; $output = "" ; for ( $i =0; $i < $end ; $i ++) { if ( $i >0){ if ( $i %2!=0) { $total -= $y ; $output .= "-" . $y ; } else { $total += $y ; $output .= "+" . $y ; } } else { $total += $y ; $output .= $y ; } $y = $y +2; } $output .= "=" . $total ; return $output ; } ?> |
一. 請利用C語言寫出下列圖形,利用1變數控制其圖形大小,並使用自訂函式做程式。
註:圖中0與1可自行更換。
Q2.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include<stdio.h> void print( int end){ int e,i,j,s,k; for (i=1;i<=end;i++){ //end 控制做幾次 for (s=1;s<i;s++){ //s列印1前面的空格 但第一次時不列印 所以s<i printf ( " " ); } for (e=i;e<=end;e++){ //e 控制列印1的數量(漸減) printf ( "1" ); } printf ( "\n" ); //換行 for (j=i;j<end;j++){ //j 列印0前面的空格 printf ( " " ); } //for(k=end-i;k<end;k++){ for (k=1;k<=i;k++){ //k 控制列印0的數量(漸增) printf ( "0" ); } printf ( "\n" ); } } main(){ print(3); //呼叫自訂函式 return 0; } |
二. 把上題改成PHP並放上CMS裡,使用GET指令,讓網址上可輸入1個變數
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php function pri(){ $end = $_GET [ "end" ]; // 使用get 直接從網址列中輸入變數值 $output = "" ; for ( $i =1; $i <= $end ; $i ++){ for ( $s =1; $s < $i ; $s ++){ $output .= " " ; // 空格問題 無法對齊 請使用全行 } for ( $e = $i ; $e <= $end ; $e ++){ $output .= "1" ; } $output .= "<br />" ; for ( $j = $i ; $j < $end ; $j ++){ $output .= " " ; } for ( $k = $end - $i ; $k < $end ; $k ++){ $output .= "0" ; } $output .= "<br />" ; } return "<pre>" . $output . "</pre>" ; //pre 元素可定義預格式化的文本。被包圍在 pre 元素中的文本通常會保留空格和換行符。而文本也會呈現为等寬字體。 } ?> |
請使用Java語言撰寫一海嘯程式,
內容至少須呼叫一個方法(類似C語言的副程式),
能夠控制兩個變數,
第1個變數控制波浪大小,
第2個變數為輸出多少個波浪。
輸出3波結果如:
W
WW
WWW
01_tsunami.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package tsunami; //package是一種管理容器 管理所定義的名稱避免發生衝突 public class Main { //定義一個類別 static void tsunami(int num){ //建立一個名為海嘯的方法 int i,j; for (i=1;i<=num;i++) { //每波海嘯距離 for (j=0;j<i;j++) //增加海嘯的高度 System.out. print ( "L" ); //print為不換行列印 System.out.println( "" ); //println為換行列印 } } public static void main(String[] args) { //建立一個主要的方法 int w; for (w=0;w<3;w++) tsunami(4); //呼叫海嘯方法 } } |
請使用Java語言撰寫一訊號波程式,
內容至少須呼叫一個方法(類似C語言的副程式),
能夠控制三個變數,
第1個變數控制訊號波的大小,
第2個變數控制訊號波的高度,
第3個變數為輸出多少個訊號波。
波形解釋如圖:
輸出2波結果如:
S S S SSSS SSSS SSSS S S S SSSS SSSS SSSS S S S SSSS SSSS SSSS S S S SSSS SSSS SSSS02_square.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package square; //package是一種管理容器 管理所定義的名稱避免發生衝突 public class Main { //定義一個類別 static void square(int m, int n){ //建立一個名為square的方法 int i,j; for (i=1;i<=m;i++) //每波訊號波距離 System.out.println( "S" ); for (i=1;i<=m;i++) { for (j=0;j<n;j++) System.out. print ( "S" ); //print為不換行列印 System.out.println( "" ); //println為換行列印 } for (i=1;i<=m;i++) { for (j=1;j<n;j++) System.out. print ( " " ); System.out.println( "S" ); } for (i=1;i<=m;i++) { for (j=0;j<n;j++) System.out. print ( "S" ); System.out.println( "" ); } } public static void main(String[] args) { //建立一個主要的方法 int w; for (w=0;w<2;w++) square(3,4); //呼叫square方法 } } |
內容至少須呼叫一個方法(類似C語言的副程式),
能夠控制兩個變數,
第1個變數控制鋸齒大小,
第2個變數為輸出多少個鋸齒。
04_sawtooth.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package sawtooth; //package是一種管理容器 管理所定義的名稱避免發生衝突 public class Main { //定義一個類別 static void sawtooth(int n){ //建立一個名為鋸齒的方法 int i,j; for (i=1;i<=n;i++) { for (j=1;j<i;j++) System.out. print ( " " ); System.out.println( "P" ); } } public static void main(String[] args) { //建立一個主要的方法 int w; for (w=0;w<3;w++) sawtooth(4); //呼叫鋸齒方法 } } |