יום חמישי, 2 בנובמבר 2017

תחילת עבודה עם #C

מה שונה ב #C ?


#C היא שפה מתקדמת יותר עם לא מעט יכולות נוספות. בכל זאת לתוכניות שדורשות ביצועי מערכת מהירים במיוחד הרבה יעדיפו שימוש ב ++C.

כדי לפתוח בוויזואל סטודיו פרויקט ב #C צריך לבחור במיוחד:
Visual C#  ->  Console Application

אחרי זה יופיע לנו הקוד הבא:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication25
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}






בואו ננתח כל חלק:
הספריות:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;




השטח הפרטי שלנו לתכנת בו בלי להפריע למתכנתים אחרים:
(הסבר מפורט בשיעורים הבאים)
namespace ConsoleApplication25 //  (זה שם הפרויקט)
{
    .
    .
    .
}

ה class הראשון: (שימו לב שמחלקה לא נגמרת ב ";")
    class Program
    {
        .
        .
        .
    }


הפונקציה Main: (שימו לב שלא כותבים "main")
        static void Main(string[] args)
        {
        }








- ראיתם שהפונקציה Main מתחילה ב static? תתחילו להתרגל. ב #C פונקציות סטטיות מופיעות הרבה.
המשמעות שלהן זה שהן לא ייחודיות לאובייקט מסוים של המחלקה. אין להן הרשאה למשתנים של המחלקה שאינם סטטיים.
(אגב, משתנים של מחלקה נקראים "מאפיינים").

- אם אנחנו בתוך המחלקה אפשר לקרוא לפונקציה סטטית באמצעות השם שלה, אבל אם אנחנו במחלקה אחרת:
         שם_פונקציה.שם_מחלקה()
(בשפת ++C ראינו אפשרות לקרוא לפונקציות סטטית של מחלקה גם דרך שם אובייקט, מה שלא קיים ב #C.)








פקודות הדפסה:
הדפסה עם ירידת שורה בסוף:
Console.WriteLine("Hello!");
הפונקציה הזו שימושית מאוד אך כתיבה שלה לוקחת הרבה זמן. תוכלו פשוט להשתמש בקיצור מקשים:
כיתבו "cw" וליחצו"tab" פעמיים.

הדפסה בלי ירידת שורה בסוף:
Console.Write("Hello!");

הדפסה עם ציון שם הספרייה (לא נחוץ לציין את שם הספרייה, אבל דעו שזה אפשרי):
System.Console.WriteLine("Hello!");

הדפסת ערך משתנה:
;int x = 5, y = 10, z = 20, w = 30
Console.WriteLine(x);

הדפסה של משתנים וטקסט יחד:
Console.WriteLine("x is: " + x + "  y is: " + y);


הדפסה של משתנים וטקסט יחד - דרך 2:
Console.WriteLine("x is: {0}  y is: {1}  z is: {2}  w is: {3}", x,y,z,w);













פקודת קלט:
הפונקציה של קלט היא:
ReadLine();

אבל היא יודעת לקלוט רק טקסט. כדי לקלוט ערך למשתנה שאינו טקסט צריך להמיר אותו מטקסט אל ה"טייפ" של המשתנה.
פונקציית ההמרה הזו נקראת ;()Parse ונמצאת ב-Class של הטייפ של המשתנה. (כן, int הוא Class בשפת #C).
כך:
            int num_i;
            double num_d;
            bool b;
            num_i = int.Parse(Console.ReadLine()); // קלט
            num_d = double.Parse(Console.ReadLine()); // קלט
            b = bool.Parse(Console.ReadLine()); // False או True קלט של














עבודה עם float
ברירת המחדל של מספר עם נקודה עשרונית היא התייחסות כ-double.
לכן הקוד הבא לא חוקי: (הקוד מצפה ש-f יהיה double אבל הוא לא)
float f = 25.753;

יש לזה שני פתרונות:
1.
      ;float f = 25.753f
2.
;float f = (float)25.753








הבדל במשפט תנאי
בשפת C ראינו שאפשר לעשות כך:

int y=50, z=200, x;      
x = y>z;                          

-ב #C זה חוקי רק אם x הוא bool.














וכך מתחילים...
-כמה ספרי לימוד למי שמעוניין




אין תגובות:

הוסף רשומת תגובה