2020年6月28日 星期日

[程式設計工法] C/ C++,a009: 解碼器@0判

C/ C++,a009: 解碼器@0判


FB2http://gg.gg/TedLeeMicrobitFB/
URL2http://gg.gg/TedLeeMicrobit/

Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1http://gg.gg/TedLeeFB/
Bloghttp://gg.gg/TedLeeBlog/
URL1http://gg.gg/TedLeeURL/

Jun. 28, 2020
88x31.png[1]
解析:
  • 直接run結果建立直觀:
  • Idea:



#include <iostream>
#include <string.h>
using namespace std;

int main(void) {
string str;
int k=-7;

 //Read data in getline(cin, str); //Process data //Shift for (int i=0; i<str.size(); i++) { str[i]=str[i]+k; } //Output data for (int i=0; i<str.size(); i++) { cout<<str[i];
}
}

参考資料
  1. 六種授權條款

2020年6月23日 星期二

[程式設計工法] C/ C++,a005: Eva 的回家作業@0判

C/ C++,a005: Eva 的回家作業@0判


FB2http://gg.gg/TedLeeMicrobitFB/
URL2http://gg.gg/TedLeeMicrobit/

Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB1http://gg.gg/TedLeeFB/
Bloghttp://gg.gg/TedLeeBlog/
URL1http://gg.gg/TedLeeURL/

May. 16, 2020
88x31.png[1]

問題解決(Problem Solving之逻輯思維 =
心法: 程式設計哲思(Philosophical Thinking for Programming) +
技法:程式設計工法(Skills for Programming)


    解析:
    • 直接run結果建立直觀:
    • Idea:將test data讀入(存在1-D陣列data[]中)後計算結果(等差或等比),再依題目需求編排輸出格式。
    • 一般測資(例如:open data)會以CSV(Comma Separated ValuesXML(Extensible Markup Language)JSON(JavaScript Object Notation)格式(format)儲存。所以,programmer會呼叫parser來幫忙將raw data讀進memory中。讀進來的資料常會以arraystructures、甚或data base的tables革等data structures來儲存。
    • 用scanf()讀console輸入的字串時要留意字串結尾控制碼'\0'的額外處理。
    • 學習要學一般的通則(general purpose),這樣會一理通、萬理通。所以,我們乖乖的從stdin讀入data後,存在內部的資料結構。經運算後再丟到stdout(實際應用可能是用.txt、.csv、.xml、.json格式存)。

    #include <iostream>
    using namespace std;

    int data[100];

    void printArray(int t) {
    int i = 0;

    for (i=0; i<5*t; i++) {
    cout << data[i] << " ";
    if ((i+1)%5==0) {
    cout << endl;
    }
    }
    }

    int main(void) {
    //int data[100]={1, 2, 3, 4, 0, 1, 2, 4, 8, 0, 4, 6, 8, 10, 0};

    int i = 0;
    int d1 = 0;
    int d2 = 0;
    int r1 = 0;
    int r2 = 0;

    int t = 0;
    int j = 0;
    int lf = 0;

    //讀入數列筆數
      cin >> t;

      for (i=0; i<t; i++) {
       for (j=0; j<4; j++) {
       cin >> lf;

    data[i*5+j] = lf;
    }
      }

      //printArray();
      
    for (i=0; i<100; i+=5) {
    d1 = data[i+3] - data[i+2];
    d2 = data[i+2] - data[i+1];
    if (d1 == d2) { //處理等差
    data[i+4] = data[i+3] + d1;
    } else { //處理等比
    r1 = data[i+3] / data[i+2];
    r2 = data[i+2] / data[i+1];
    data[i+4] = data[i+3] * r1;
    }
    }

    printArray(t);

    return 0;
    }

    参考資料
    1. 六種授權條款

    2020年6月8日 星期一

    [程式設計工法] C,新北国中資科教甄108,11

    C,新北国中資科教甄108,11


    FB2http://gg.gg/TedLeeMicrobitFB/
    URL2http://gg.gg/TedLeeMicrobit/

    Line:ted2016.kpvs
    Email:Lct4246@gmail.com
    FB1http://gg.gg/TedLeeFB/
    Bloghttp://gg.gg/TedLeeBlog/
    URL1http://gg.gg/TedLeeURL/

    June 8, 2020
    88x31.png[1]

    問題解決(Problem Solving之逻輯思維 =
    心法: 程式設計哲思(Philosophical Thinking for Programming) +
    技法:程式設計工法(Skills for Programming)


      解析:
      • 直接run結果建立直觀
      • 觀察

      #include <iostream>
      using namespace std;

      int main(void) {
      int space=5;
      int X=1;

      for(int i=1; i<=6; i++){ //控制高度 
      for(int j=1; j<=space; j++) //控制每行印幾個空格 
      printf(" ");

      for(int k=1; k<=X; k++) //控制每行印幾個X 
      printf("X");

      printf("\n");
      space--;
      X+=2;
      }

      return 0;
      }

      参考資料
      1. 六種授權條款

      2020年6月4日 星期四

      [程式設計工法] C,北市国中資科教甄109,54

      C,北市国中資科教甄109,54


      FB2http://gg.gg/TedLeeMicrobitFB/
      URL2http://gg.gg/TedLeeMicrobit/

      Line:ted2016.kpvs
      Email:Lct4246@gmail.com
      FB1http://gg.gg/TedLeeFB/
      Bloghttp://gg.gg/TedLeeBlog/
      URL1http://gg.gg/TedLeeURL/

      May. 24, 2020
      88x31.png[1]

      問題解決(Problem Solving之逻輯思維 =
      心法: 程式設計哲思(Philosophical Thinking for Programming) +
      技法:程式設計工法(Skills for Programming)

      11. 若 num 陣列元素值為 40、60、30、10,則以 abc(num,0,3)呼叫執行下列函式 abc 後 num 陣列元素值為何? 
      (A)40、10、30、60
      (B)10、40、30、60
      (C)40、30、10、60
      (D)40、60、30、10 

        解析:
        • 直接run結果建立直觀
        • 图解

        #include <iostream>
        using namespace std;

        int num[]={40, 60, 30, 10};

        void abc(int d[], int first, int last) {
        int i, j, k, l;
        i=k=first; //拿d[k]當基準
        j=last;

        while (i<j) {
        while (d[i]<=d[k]&&i<last) //往右找大的(>)
        i++;
        while (d[j]>d[k]) //往左找小的(?)
        j--;
        if (i<j) { //沒交錯前交換之
        l=d[i];
        d[i]=d[j];
        d[j]=l;
        }
        }
        }

        void show(void) {
        for (int i=0; i<4 i="" span="">
        cout << num[i] >> ", ";
        }

        cout << endl;
        }

        int main(void) {
        show();
        abc(num, 0, 3);

        show();
        return 0;
        }

        参考資料
        1. 六種授權條款