วันอังคารที่ 10 กันยายน พ.ศ. 2556

ใบงานที่ 1.1 รู้จักกับภาษา C#

ใบงานที่ 1.1
รู้จักกับภาษา C#
1. เปิดโปรแกรม MS Visual C# และสร้างโปรเจ็กต์ เขียนโปรแกรม ดังนี้
1.4 สร้างโปรเจ็กต์แบบ Console Application และตั้งชื่อว่า First
1.5 ลบโค้ดที่ MS Visual C# เตรียมไว้ให้ออกทั้งหมด และพิมพ์โค้ดต่อไปนี้ลงไป
namespace First
{
    class First
    {
        static void Main()
        {
           System.Console.WriteLine("Hello teacher!");
           System.Console.ReadLine();
        }
    }
}


1.6 ทดลองรันโปรแกรม เขียนผลลัพธ์ที่ได้ลงในช่องว่างด้านล่าง


1.7 นำบรรทัดที่มีคำสั่ง System.Console.ReadLine() ; ออกจากโปรแกรม ทดลองรัน
โปรแกรมอีกครั้งหนึ่ง สังเกตผลลัพธ์ที่ได้ และผู้เรียนคิดว่าคำสั่ง ReadLine ทำหน้าที่อะไร
= ทำหน้าที่ให้โปรแกรม รอ ให้ผู้ใช้พิมพ์แล้ว กด enter


1.8 ดัดแปลงโปรแกรมข้างต้นใหม่เพื่อให้โปรแกรมทำงานเหมือนเดิมทุกประการแต่มีขนาดสั้นลง
โดยตัดบรรทัดที่ระบุเนมสเปสออกและใช้คำสั่ง using ช่วย ทดสอบความถูกต้องและป้อนโค้ด
ใหม่ที่ได้ลงในช่องว่าง




2. เขียนโปรแกรมที่มีองค์ประกอบตามที่ระบุ
2.1 สร้างโปรเจ็กต์ใหม่ชื่อ Second และสร้างโปรแกรมภาษา C# ให้มีองค์ประกอบดังนี้
o โปรแกรมอยู่ในเนมสเปสชื่อ MyNameSpace
o โปรแกรมหลักอยู่ในคลาสชื่อ MyClass
o เมื่อรันโปรแกรมจะพิมพ์ข้อความต่อไปนี้ และหยุดรอให้ผู้ใช้เคาะแป้น Enter ก่อนปิด
   หน้าจอ Console
Live as if you were to die tomorrow.
Learn as if you were to live forever.
-Mahatma Gandhi
2.2 ทดสอบความถูกต้อง และกรอกโปรแกรมที่ได้ลงในช่องว่าง



namespace MyNameSpace
{
    class MyClass
    {

        static void Main()
        {
            System.Console.WriteLine("Live as if you were to die tomorrow.");
            System.Console.WriteLine("Learn as if you were to live Forever.");
            System.Console.WriteLine("-Mahatma Gandhi");
            System.Console.ReadLine();
        }
    }
}


3. การใช้งานตัวแปรและค่าคงที่
3.1 พิจารณาชื่อตัวระบุ (ที่จะนำมาใช้ประกาศเป็นชื่อตัวแปร ค่าคงที่ คลาส หรือเนมสเปส) ต่อไปนี้ว่า
ถูกต้องตามกฎเกณฑ์การตั้งชื่อหรือไม่ พร้อมทั้งอธิบายเหตุผลหากชื่อนั้นถูกตั้งไม่ถูกกฎเกณฑ์
ชื่อตัวระบุ
ใช้ได้หรือไม่
เหตุผล
XXX
ได้
-
$$$
ไม่ได้
ประกอบด้วยอักขระพิเศษ
_Y
ได้

String
ไม่ได้
เป็นคำสงวน
i_j
ได้

Student ID
ได้

HelloWorld!
ไม่ได้
มีตัวแปรที่ประกอบด้วยอักษรพิเศษ
First-time
ไม่ได้
ผิดเพราะมีอักขระพิเศษ -
Null
ไม่ได้
เป็นคำสงวน
123Class
ไม่ได้
ตัวแปรจะต้องไม่ขึ้นต้นด้วยตัวเลข
Section3
ได้

w*h
ไม่ได้
มีตัวแปรที่ประกอบด้วยอักษรพิเศษ
do
ไม่ได้
เป็นคำสงวน

3.2 เขียนคำสั่งประกาศตัวแปรชื่อ x ที่มีชนิดข้อมูลเป็น float โดยไม่มีการกำหนดค่าเริ่มต้น
=   float x;
3.3 เขียนคำสั่งประกาศตัวแปรชื่อ myName ที่มีชนิดข้อมูลเป็น string โดยไม่มีการกำหนดค่าเริ่มต้น
string myName;
3.4 เขียนคำสั่งเพื่อประกาศค่าคงที่ชื่อ PI ที่มีชนิดข้อมูลเป็น double เพื่อใช้แทนค่า 3.1415926535
= const double PI = 3.1415926535;
3.5 เขียนคำสั่งภาษา C# เพื่อประกาศตัวแปรหรือค่าคงที่ตามที่กำหนดให้ โดยเลือกใช้ชนิดของข้อมูลที่
เหมาะสม
ค่าคงที่ชื่อ MY_AGE เพื่อใช้แทนอายุปัจจุบันของท่านเอง
= const int MY_AGE = 19;
ตัวแปรชื่อ income เพื่อใช้เก็บเงินเดือนของพอลล่า
= string income = “Paula”;

ตัวแปรชื่อ temp_c เพื่อเก็บค่าอุณหภูมิบริเวณขั้วโลกเหนือเป็นองศาเซลเซียส
= string temp_c = “degree Celsius”;

ตัวแปรชื่อ temp_k เพื่อเก็บค่าอุณหภูมิใจกลางดวงอาทิตย์เป็นเคลวิน
=string temp_k = “Kelvin”;

ค่าคงที่ชื่อ NAME เพื่อใช้แทนชื่อเต็มของท่านเอง
= const string NAME = “NATTAPONG”;


3.6 โปรแกรมด้านล่างถูกเขียนขึ้นมาเพื่อคำนวณหาพื้นที่ของวงกลมที่มีรัศมี 12.5 หน่วย
using System;
class CircleArea
{
    static void Main()
    {
        const double PI = 3.1415926535;
        radius = 12.5;
        area = PI * radius * radius;
        Console.WriteLine("Circle area = {0}", area);
    }
}

สร้างโปรเจ็กต์ชื่อ Circle จากนั้นคัดลอกโปรแกรมข้างต้นลงไปและทดลองคอมไพล์โปรแกรม
การคอมไพล์พบข้อผิดพลาดใดบ้าง
= Error  1              The name 'radius' does not exist in the current context
Error      2              The name 'area' does not exist in the current context             
Error      3              The name 'radius' does not exist in the current context         
Error      4              The name 'radius' does not exist in the current context         
Error      5              The name 'area' does not exist in the current context


3.7 แก้ไขโปรแกรมให้คอมไพล์ได้โดยไม่มีข้อผิดพลาด ทดสอบความถูกต้อง แสดงโปรแกรมที่แก้ไข
แล้วลงในช่องด้านล่าง
class CircleArea
    {
        static void Main()
        {
            double radius, area;
            const double PI = 3.1415926535;
            radius = 12.5;
            area = PI * radius * radius;
            Console.WriteLine("Circle area = {0}", area);
            Console.ReadLine();
        }
    }
}



ใบงานที่ 1.2 นิพจน์ทางคณิตศาสตร์และคำสั่งในการแสดงผล

ใบงานที่ 1.2
นิพจน์ทางคณิตศาสตร์และคำสั่งในการแสดงผล
1. การสร้างนิพจน์ทางคณิตศาสตร์จากนิพจน์ที่มีอยู่
1.1 เปิดโปรแกรม MS Visual C# และสร้างโปรเจ็กต์ชื่อ Expression พิมพ์โค้ดต่อไปนี้ลงไป
1: using System;
2: class Test
3: {
4:     static void Main()
5:     {
6:        double x = 4.0, y = 2.0;
7:        int a = 10, b = 4;
8:        Console.WriteLine(________);
9:        Console.ReadLine();
10:    }
11: }

สังเกตว่าบรรทัดที่ 8 มีส่วนที่ถูกเว้นว่างไว้ ให้ผู้เรียนเดาค่าของนิพจน์ต่อไปนี้และตรวจสอบ
คำตอบโดยแทนที่ช่องว่างด้วยนิพจน์ด้านล่างทีละตัว รันโปรแกรมเพื่อดูผลลัพธ์
นิพจน์
ค่าของพจน์ที่คาดเดาไว้
ผลลัพธ์ที่ได้
x+a
14
14
a/b
2
2
a/x
2.5
2.5
y/x
0.5
0.5
(a+b) /b%a
3
3
9.0/5.0*(a-x)
25.2
25.2
x+y-x*y
-2
-2
57%50/25
0
0

1.2 จากการทดลองข้างต้น ทั้งที่ค่า a/b และ a/x คือการนำ 10 ไปหารด้วย 4 เหมือนกัน เหตุใดผลลัพธ์ที่
ได้จึงต่างกัน ผู้เรียนคิดว่าในภาษา C# มีการตีความนิพจน์ทั้งคู่แตกต่างกันอย่างไร
 เพราะ ตัวแปรของ b คือ int  และ x คือ double
             -  ตัวแปร int         เก็บข้อมูล 32 บิต
             -  ตัวแปร double  เก็บข้อมูล 64 บิต

2. ศึกษาการใช้งานคำสั่งเกี่ยวกับการแสดงผล
พิจารณาโปรแกรมที่ไม่สมบูรณ์ต่อไปนี้
using System;
class SayHi
{
   static void Main()
   {
      string yourName = ___(a)___;
      uint yourAge = ___(b)___;
      Console.WriteLine("Hello {1}. You are {0} years old.",
              ___(c)___, ___(d)___);
   }
}

เติมส่วนที่เว้นไว้จาก (a) ถึง (d) เพื่อให้โปรแกรมกล่าวคำทักทายท่านแสดงอายุของท่าน เช่น
หากท่านชื่อ Arthur และมีอายุ 18 ปี ผลลัพธ์ของโปรแกรมควรจะเป็น
Hello Arthur.      You are 18 years old.
จากนั้นลอกสิ่งที่เติมในช่องว่างลงในตาราง

ช่องว่าง
สิ่งที่เติมลงไป
__(a)__
“Arthur
__(b)__
18
__(c)__
yourAge
__(d)__
yourName