2013年9月3日 星期二

[GCC]bubble sort in function

#include "stdio.h"

void bubble_sort(long [], long);

int main()
{
  long array[100], n, c, d, swap;

  printf("Enter number of elements\n");
  scanf("%ld", &n);

  printf("Enter %ld integers\n", n);

  for (c = 0; c < n; c++)
    scanf("%ld", &array[c]);

  bubble_sort(array, n);

  printf("Sorted list in ascending order:\n");

  for ( c = 0 ; c < n ; c++ )
     printf("%ld\n", array[c]);

  return 0;
}

void bubble_sort(long list[], long n)
{
  long c, d, t;

  for (c = 0 ; c < ( n - 1 ); c++)
  {
    for (d = 0 ; d < n - c - 1; d++)
    {
      if (list[d] > list[d+1])
      {
        /* Swapping */

        t         = list[d];
        list[d]   = list[d+1];
        list[d+1] = t;
      }
    }
  }
}

[GCC]array_call_by_value

#include "stdio.h"

void array_call_by_value (int arr[])
{
   arr[0] = 2;
   printf("[in] function\n");
   printf("%d %d %d\n", arr[0], arr[1], arr[2]);
}


int main()
{
   int arr[] = {1, 2, 3};

   printf("[before] function\n");
   printf("%d %d %d\n", arr[0], arr[1], arr[2]);
   array_call_by_value(arr);
   printf("[after] function\n");
   printf("%d %d %d\n", arr[0], arr[1], arr[2]);
}

=====Result=====
1.array是沒有pass by value
2.return arry by value(編譯會錯誤!!)  
ex:
int [] array_call_by_value (int arr[])
{
arr[
0] = 2;
printf(
"in function\n");
printf(
"%d %d %d\n", arr[0], arr[1], arr[2]);
}







2013年9月2日 星期一

[GCC]struct_call_by_address

#include "stdio.h"
#include "string.h" // strcpy()

typedef struct
{
   int no;
   char name[10];
} student, *pstudent;

pstudent struct_call_by_address(pstudent pboy)
{
   pboy->no = 10;
   strcpy(pboy->name, "oomusou");
   printf("[in] function:\n");
   printf("no=%d, name=%s\n", pboy->no, pboy->name);
   printf("=====================\n");
   return pboy;
}

int main()
{
   student boy = {20, "John"};
   pstudent pboy = 0;

   printf("[before] function\n");
   printf("no=%d, name=%s\n", boy.no, boy.name);
   printf("=====================\n");
   pboy = struct_call_by_address(&boy);
   printf("[after] function\n");
   printf("*boy*  no=%d, name=%s\n", boy.no, boy.name);
   printf("*pboy* no=%d, name=%s\n", pboy->no, pboy->name);
   printf("=====================\n");
}

=====Result=====

[GCC] array sum function

#include "stdio.h"
#include "stdlib.h"

int sum (int *,int);

int main()
{
    int i[]={10,20,30,40,50};
    int total;
    total = sum (i ,sizeof(i)/sizeof(i[0]));
    printf("Sum of Array i is %d\r\n",total);
    return 0;
}

int sum(int *p,int n)
{
    int k,total=0;
    for(k=0; k < n; k++)
        total +=*(p+k);
    return total;
}

=====Result=====
Sum of Array i is 150

[G++]Call by Reference (ps: C無此功能)

#include "stdio.h"
#include "stdlib.h"

void swap(int &, int &);

void swap(int &a, int &b)
{
    int x;

    x = a;
    a = b;
    b = x;
}

int main()
{
    int m, n;
    m = 5;
    n = 7;
    printf("[Before] m = %d <-> n = %d \n", m, n);
    swap(m, n);
    printf("[After]  m = %d <-> n = %d \n", m, n);
    return 0;
}

=====Result=====
[Before] m =5 <-> n = 7 
[After]   m =7 <-> n = 5

(ps: C無call by reference 所以  **.c檔是無法編譯,需使用cpp檔)

2013年9月1日 星期日

ubuntu 12.04 快捷鍵

1. 窗口拖移與最大化、最小化:Ctrl + super + 方向鍵

2. 工作區切換 super + s

3. 工作區瀏覽 super + w

4. 工作區切換2 Alt + Tab (此時按上下左右可以預覽)

5. 看更多快捷鍵使用 長按 super 

至於可能會找不到工作管理員,可以在命令列打上 "System" 應該會看到 "系統監控" 的選項。


[轉錄]Ubuntu 11.04 Unity最常用的31個快捷鍵

1、超級鍵(Win鍵) – 打開dash。

2、長按超級鍵 – 啟動Launcher。

3、按住超級鍵,再按1,2,3等數字鍵 – 從Launcher打開一個應用程序,當你按住超級鍵時,每個應用程序圖標上都會顯示一個數字,按下對應的數字就會打開蓋應用程序。

4、Alt+F1 – 將鍵槃焦點移到Launcher上,使用箭頭鍵進行移動,按回車即可啟動一個應用程序,按下右箭頭鍵顯示Quicklist。

5、Alt+F2 – 以特殊模式打開dash,以便運行任何命令。

6、超級鍵+A – 從Launcher打開應用程序窗口。

7、超級鍵+F – 從Launcher打開文件和文件夾窗口。

8、超級鍵+W – 伸展模式,縮小所有工作空間中的窗口。

9、超級鍵+D – 最小化所有窗口(即顯示桌面),再按一次恢復所有窗口。

10、超級鍵+T – 打開回收站。

11、超級鍵+S – Expo模式,縮小所有工作空間,允許你管理窗口。

12、Ctrl+Alt+T – 啟動Terminal。

13、Ctrl+Alt+L – 鎖住屏幕。

14、Ctrl+Alt+上/下/左/右鍵 – 移動到新的工作空間。

15、Ctrl+Alt+Shift+上/下/左/右鍵 – 將窗口放入新的工作空間。

16、F10 – 打開頂部面板的第一個菜單,使用箭頭鍵瀏覽菜單項。

下面是Ubuntu Unity支持的一些鼠標快捷鍵:

1、在Launcher中,可以拖動圖標對應用程序重新排序。

2、可以直接從Launcher將圖標拖動到回收站,將應用程序從Launcher中移除。

3、光標移到屏幕左側,停止不動几秒,將會啟動Unity Dock。

4、將光標移到左上角(接近Ubuntu圖標),也會啟動Unity Dock。

5、如果Launcher中的應用程序太多,可以滾動鼠標滾輪快速移動。

6、當光標在頂部面板的“聲音”圖標上時,可以通過鼠標滾輪來調整系統音量(放大或降低)。

7、在一個應用程序的Launcher圖標上點擊鼠標中鍵(按一下滾輪),將在一個新的窗口中打開應用程序,有時這個功能非常有用,在筆記本上,衕時按下左/右方向鍵也會達到衕樣的效果。

8、最大化 – 拖動窗口靠近頂部面板會自動最大化。

9、恢復窗口大小 – 向下拖動窗口或雙擊窗口。

10、平鋪 – 將窗口拖向左/右側。

下面是一個有用的窗口管理快捷鍵:

1、Alt+F10 – 在最大化/非最大化之間切換當前窗口。

2、Alt+F9 – 最小化當前窗口。

3、Alt+Tab – 在當前打開的窗口之間切換。

4、Alt+F4 – 關閉當前窗口。

5、Alt+F7 – 移動當前窗口(可以使用鍵槃或鼠標移動)。

升級ubuntu版本

%sudo apt-get update
%sudo apt-get upgrade
%sudo apt-get install update-manager-core
%sudo do-release-upgrade