顯示具有 程式碼 標籤的文章。 顯示所有文章
顯示具有 程式碼 標籤的文章。 顯示所有文章

程式作業: 輸入學生考試成績並印出不及格人數及最高最低分數 (C++)

設計一個程式讓使用者輸入10位學生的考試成績,並分別印出不及格人數(低於60分者)最高及最低分數。

#include <stdio.h>
int main() {
   
    int d[10],i,j,amax,amin;
   amax=0; amin=100;
    j=0;
    for(i=0;i<10;i++)
    {
        printf("請輸入學生%d 成績: ",i+1);
        scanf("%d",&d[i]);
        if (d[i]>amax) amax=d[i];
        if (d[i]<amin) amin=d[i];
        if (d[i]<60) j++;
    }
  
   printf("不及格人數:%d  最高:%d 最低分數:%d",j,amax,amin);
 
    return 0; 
}   

執行結果:



程式作業:輸入一個正整數N,印出指定數列 (C++)



 
#include <stdio.h>
// 輸入一個正整數N,印出指定數列
int main() {
    int n,i,j;
    printf("請輸入一正整數:");
    scanf("%d",&n);
    for (i=1;i<=n;i++)
    {
        for (j=1;j<=i;j++)
        {
            printf("%d",n-j+1);
        }
        printf("\n");
        
    }

    return 0;
}

執行結果:



程式作業: 水費價格程式設計 (VB)

視窗化輸出與輸入規劃,計算用水100度與程式執行結果驗證

水費費率如下表

段別

月用水度數

單價元

第一段

1-20

7.5

第二段

20-40

9.5

第三段

40-80

12

第四段

80度以上

15

 

 
Private Sub waterfee()

	' 輸入用水度
	Dim s1 As String
	s1 = InputBox("請輸入用水度", "水費計算", "0")

	v = CInt(s1)  '入用水度

	r = 0

If v >= 1 And v <= 20 Then
  r = 75
End If

If v > 20 And v <= 40 Then
  r = r + 95
End If
  
If v > 40 And v <= 80 Then
  r = r + 12
End If

If v > 80 Then
  r = r + 15
End If

 	s1 = "入用水度:" + CStr(v) + " 應繳水費:" + CStr(r)
 	MsgBox (s1)

End Sub


計算水費 執行結果:



程式作業: 報稅試算程式設計(VB)

計算收入182萬,應繳稅額稅率

級別

稅率

課稅級距

1

5%

52萬以下

2

12%

520,000~1170,000

3

20%

1170,000~2350,000

4

30%

2350,000~4400,000

5

40%

4,400000~Max

Private Sub CalculateTaxRate()

Dim v, r, t
v = 1820000
' 計算收入182萬,應繳稅額與稅率
r = 0
If v < 520000 Then
  r = 0.05 '5%
ElseIf v <= 1170000 Then
  r = 0.12 '12%  
ElseIf v <= 2350000 Then
  r = 0.2  '20%  
ElseIf v <= 4400000 Then
  r = 0.3  '30%
Else
  r = 0.4 '40%
End If

  t = v * r ',應繳稅

Dim s As String
  s = "收入182萬" + "應繳稅額:" + CStr(t) + " 稅率: " + CStr(r * 100) + "%"

  MsgBox (s)

End Sub

計算收入182萬,應繳稅額與稅率 執行結果:

同步化物件


Synchronization Objects

一個 synchronization object 它的 handle 可以被指派到一個 wait functions 內來協調多個執行緒的執行.
多個處理程序可以共用一個同步物件的 handle 來達成處理程序之間的同步化.
以下為同步物件型別


型別描述
Event通知一個或多個正在等候的執行緒有事件已經被觸發,可以進行下一個動作.
更多資訊請參閱 Event Objects.
Mutex在同一個時間裡只有一個執行緒可以擁有, 讓執行緒之間相互協調在同一時間只有一個執行緒可以存取共用資源.
更多資訊請參閱 Mutex Objects.
Semaphore限制在同一時間可以存取共用資源的執行緒數量.
 更多資訊請參閱 Semaphore Objects.
Waitable timer通知一個或多個正在等候的執行緒指定的時間已到達.
更多資訊請參閱 Waitable Timer Objects.

撰寫多執行緒程式時為什麼要使用這些同步化物件 , 舉例來說
1. 當 多個執行緒同時讀寫一個檔案時若沒使用 同步化物件來安排存取順序時將造成資源衝突
2. 當多個執行緒在等待某一個資料進來時, 若是使用迴圈方式( for 或 while)  不斷的讀取將造成
    CPU使用率大幅升高 ,因此可以使用同步化物件把CPU時間讓出給其他執行緒使用,直到某一   個資料進來時觸發事件再進行下一步動作  

Kinect SDK計畫 官方版本正式出爐


微軟官方日前正式宣布,Kinect遊戲動作控制器的軟體開發套件(SDK),將於今年春季末正式釋出。
早在新聞公布之前,各種小道消息就已傳得沸沸揚揚。微軟表示,KinectWindows SDK將可讓協力開發廠商打造使用直接連接到Windows PCKinect動作感應器軟體。這個非商業性的「新手版(starter version)SDK將可讓使用者直接取得更深入的 Kinect系統資訊,例如音訊、系統應用程式介面、以及直接控制Kinect感應器,微軟還計畫在之後推出商業版。
「微軟在自然使用者介面上的投資對於打造直覺化使用的電腦的願景非常重要,而且對我們很有幫助」微軟的研究與策略總長Craig Mundie表示,「這些研究投資的成果已經深入到我們許多產品之中,Xbox 360Kinect也是其中之一。」
自從Kinect在去年11月正式推出以來,駭客們已經使出各種渾身解數來運用感應器的3D影像功能。其中包括:將感應器改成3D攝影機、不需觸碰螢幕就能進行多點觸控相片操作、甚至可以進行空中3D作畫。
微軟一開始對這些「破解」行為抱持負面態度,但是隨後似乎受到了這個概念的啟發,轉而解釋Kinect是專為開放平台而設計。針對去年一項3,000美元的挑戰賽,開放來源硬體設備商Adafruit Industries開發出了Kinect的硬體破解的行為,微軟曾經表示無法「寬恕」上述行徑。
在今年的CES大展上,被問到微軟是否會允許將Kinect連接到PC的行為時,該公司執行長Steve Ballmer曾表示會在適當時間正式支援,但確切時間未定。

Quick Sort -delphi

 procedure QuickSort(var A: array of Integer; iLo, iHi: Integer);
  var
    Lo, Hi, Mid, T: Integer;
  begin
    Lo := iLo;
    Hi := iHi;
    Mid := A[(Lo + Hi) div 2];

    repeat

      while   A[Lo]  <     Mid    do Inc(Lo);

      while A[Hi]      >   Mid do Dec(Hi);

      if Lo  <=  Hi then
      begin
       
        T := A[Lo];
        A[Lo] := A[Hi];
        A[Hi] := T;
        Inc(Lo);
        Dec(Hi);
      end;
    until   Lo > Hi;

    if Hi >   iLo then QuickSort(A, iLo, Hi);
    if Lo <  iHi then QuickSort(A, Lo, iHi);

 end;

//==============================================
SEE AS:

Bubble Sort - delphi

 

Selection Sort - delphi

Selection Sort - delphi

procedure  SelectionSort(var A: array of Integer);
var
  I, J, T: Integer;
begin
  for I := Low(A) to High(A) - 1 do
    for J := High(A) downto I + 1 do
      if A[I] > A[J] then
      begin
       
        T := A[I];
        A[I] := A[J];
        A[J] := T;
      
      end;
end;


//=================================
// see as:

Bubble Sort - delphi

Quick Sort -delphi

 

Bubble Sort - delphi

procedure  BubbleSort(var A: array of Integer);
var
  I, J, T: Integer;
begin

  for I := High(A) downto Low(A) do
    for J := Low(A) to High(A) - 1 do
      if A[J] > A[J + 1] then
      begin
           
        T := A[J];
        A[J] := A[J + 1];
        A[J + 1] := T;
       
      end;
end;

//=================================
// see as:

Selection Sort - delphi

Quick Sort -delphi