361-Fundementals of Software Development أسس تطوير البرامج


1.1- Storage and Data Types التخزين وأنواع البيانات
الأربعاء, 03 فبراير 2021

Lesson Overview (نظرة عامة على الدرس)

Students will understand computer storage and data types.

يسيتعلم الطالب فى هذا الدرس كيفية تخزين البيانات فى الحاسب وما هى أنواع البيانات

In this lesson, you will learn:

§  How a computer stores programs and instructions in computer memory

§        كيف يخزن الحاسب البرامج والأوامر فى الذاكرة

§  Memory stacks and heaps

§        نوعى الذاكرة (Stack, Heap)

§  Memory size requirements for the various data storage types

§        حجم الذاكرة المطلوب لتخزين البيانات من أنواع مختلفة

§  Numeric data and textual data

§        البيانات الرقمية والنصية

Guiding Questions (أسئلة مرشدة)

1.     How are program instructions stored in a computer?

كيف تخزن تعليمات البرنامج فى الحاسب ؟

2.     Identify the different data types that can be used and the values they can hold.

تعريف أنواع بيانات مختلفة نستطيع أن نضع بداخلها قيم ونستخدم هذه القيم ؟

Activator (إعداد)

§  Name the components of a computer.

أسماء مكونات الحاسب

§  What components are involved in storing program instructions?

ما هى مكونات الحاسب المتداخله فى تخزين تعليمات البرامج ؟

Review Terms (استعراض المصطلحات)

§  Data type—a definition of a set of data that specifies the possible range of values of the set, the operations that can be performed on the values, and the way in which the values are stored in memory. 

نوع البيانات تعريف مجموعة من البيانات التى تحدد المدى المتاح للقيم, والعمليات التى لابد أن تؤدى على هذه القيم, وتحديد الطريقة التى ستخزن بها القيم فى ذاكرة الحاسب.

§  Garbage collection—a process for automatic recovery of heap memory. 

تجميع النفايات عملية استخلاص أتوماتيكية لجزء الذاكرة Heap.

§  Heap—a portion of memory reserved for a program to use for the temporary storage of data structures whose existence or size cannot be determined until the program is running.

الـ Heap: جزء من الذاكرة محجوز للبرنامج لإستخدامها فى التخزين المؤقت لتراكيب البيانات عند وجودها أو المساحة التى لا يمكن تحديدها إلا حينما يكون البرنامج فى أثناء التشغيل.

§  Memory —a device where information can be stored and retrieved.

الذاكرة: هى الأداة التى توجد لتخزين المعلومات بها واسترجاعها منها.

§  Stack—a region of reserved memory in which programs store status data such as procedure and function call addresses, passed parameters, and sometimes local variables.

الـ Stack: منطقة من الذاكرة المحجوزة للبرامج لتخزين حالة البيانات مثلا عنوان استدعاء الإجراء أو الدالة, الوسائط المرسلة و فى بعض الأحيان للمتغيرات المحلية.

How a computer stores programs in memory       

كيف يخزن الحاسب البرامج فى ذاكرته

§  A computer keeps data and programs in storage as follows:

يحافظ الحاسب على البيانات والبرامج فى مخزن كما يلى:          

§  Primary storage—Otherwise known as random access memory (RAM), it is made of memory chips. In common usage, it refers only to a computer’s main memory, the fast semiconductor storage (RAM) directly connected to the processor.

مخزن رئيسى: معروف أن ذاكرة الوصول العشوائى (RAM) مصنوعة من رقائق

 (Chips). والتعريف الشهير لها الذاكرة الرئيسية للحاسب, كما أن المخزن شبــــه

الموصل السريع (RAM) متصل بشكل مباشر مع المعالج (Processor).

§  Secondary storage—Otherwise known as a hard drive, it consists of a read/write head that floats above rotating platters coated with a magnetic material.

مخزن ثانوى معروف أنه (Hard Disk) وهو يتألف من رأس للقراء/الكتابة فتلف

فوق اسطوانات دائرية مطلية بمادة مغناطيسية.

 

Memory–Stacks and Heaps

§  Variables are stored in either a stack or heap based on their type:

تخزن المتغيرات فى كلا من (Stack or heap) على أساس النوع:

§  Value types (e.g.: int, double, float) go on the stack.

الأنواع بالقيمة فى الـ (Stack) مثل متغيرات من النوع (int, double, …)

§  Reference types (String, Object) go on the heap.

الأنواع بالمرجع ف الـ (Heap) مثل متغيرات من النوع (String, Object, Random)

*Value types in classes are stored with the instance of the class on the heap

* الأنواع بالقيمة فى الفئات تخزن الكائن الممثل للفئة فى الـ (Heap)

Ø The stack

§  Values in the stack are managed without garbage collection because items are added and removed from the stack as last in, first out (LIFO) every time you enter or exit a scope, like a method or statement

القيم بداخل الـ (Stack) تدار بدون تجميع للنفايات GC لأن العناصر تضاف وتحذف من الـ Stack بناءا على آخر ما يضاف أول ما يخرج (LIFO) مثلا كل مرة تدخل أو تخرج من نطاق برمجى معين أو إجراء أو جملة كود.

§  A StackOverFlowException occurs because you have used up all the available space in the stack.

يحدث الاستثناء StackOverFlowException لأنك استخدمت أكثر من المساحة المتاحة للـ Stack

Ø The heap

§  A heap-based memory allocation occurs when we create a new object, at which point the compiler figures out how much memory is needed and allocates an appropriate amount of memory space and returns a reference representing the memory address.

الـ Heap يعتمد على توزيع الذاكرة ويحدث التوزيع عندما ننشئ كائن جديد, عندما تكون المساحة غير كافية يحدد المترجم كم المساحة التى نحتاجها و توزيعها بكمية مناسبة من مساحة الذاكرة و يعيد مرجع يمثل عنوان الذاكرة.

§  A heap is used for dynamic allocation of memory.

يستخدم الـ Heap للتوزيع خحج الحصص المتغيرة فى الذاكرة.

§  The Microsoft .NET Framework uses garbage collection to free up space during run time.

يستخدم .NET تجميع النفايات GC لإخلاء المساحات الغير مستغلة اثناء التشغيل

§  Garbage collection is an automatic process for recovery of heap memory.  Blocks of memory that had been allocated but are no longer in use are freed, and blocks of memory still in use may be moved to consolidate the free memory into larger blocks.

تجميع النفايات GC عملية تلقائية للإستعادة من الذاكرة Heap. أجزاء الذاكرة التى تم تخصيصها لشئ ولكنها لم تعد مستخدمه الآن فتمسح من الذاكرة, وأجزاء الذاكرة التى مازالت فى الذاكرة قد يتم ترحيلها من مكان لآخر لدمج الذاكرة الخالية داخل أجزاء أكبر فى الحجم.

Data Types  -  أنواع البيانات

§  Numeric data types  - أنواع البيانات الرقمية

§  Integral types (e.g.: byte, char, int) – الأنواع الصحيحة

§  Floating-point types (float, double) – الأنواع العشرية/الكسرية

§  Decimal

*    Boolean - المنطقى

§  Example:  bool done = false;

Integral Types

Type

Range

Size

sbyte

-128 to 127

Signed 8-bit integer

byte

0 to 255

Unsigned 8-bit integer

char

U+0000 to U+ffff

Unicode 16-bit character

short

-32,768 to 32,767

Signed 16-bit integer

ushort

0 to 65,535

Unsigned 16-bit integer

int

-2,147,483,648 to 2,147,483,647

Signed 32-bit integer

uint

0 to 4,294,967,295

Unsigned 32-bit integer

long

-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

Signed 64-bit integer

ulong

0 to 18,446,744,073,709,551,615

Unsigned 64-bit integer

Floating-Point Types

Type

Approximate Range

Precision

float

±1.5e−45 to ±3.4e38

7 digits

double

±5.0e−324 to ±1.7e308

15-16 digits

 

Decimal Type

Type

Approximate Range

Precision

decimal

±1.0 × 10−28 to ±7.9 × 1028

28-29 significant digits

 

Using the Numeric Data Types

byte numKids = 15;

char letter = ‘p’;

int worldPopulation = 6692030277;

float money = 201.00f;

double lotsaMoney = 2.4E+12;

decimal testGrade = 89.5m;

Lesson Review – مراجعة الدرس

§  Describe how the program statement below is stored in memory:

إوصف كيف تخزن الجملة التالية فى الذاكرة

            int tennisPoints = 30;

§  Identify the appropriate data types for each of the following values.

عرف أنواع البيانات المناسبة لكلا من القيم التالية.

§  4233423.93

§  100

§  -2323

§  true

 جميع حقوق نقل المعلومات مسموح بها لوجه الله. ولكن يرجى الإشارة لأسم الموقع فقط.


 

Understanding core programming فهم أساسيات البرمجة
1.1- Storage and Data Types التخزين وأنواع البيانات 1.2- Decision Structures أبنية أتخاذ القرار
Understanding object-oriented programming البرمجة الكائنية التوجه
2.1 Understand the Fundamentals of Classes فهم مبادئ الفئات