نحوه ذخیره اعداد اعشاری در کامپیوتر(تمرین)

نحوه ذخیره اعداد اعشاری در حافظه کامپیوتر

اعداد اعشاری علاوه بر اینکه اعداد با اندازه های مختلف را دارند،ممکن است دارای تعداد ارقام اعشاری مختلف نیز باشند.در این جا به روش ممیز شناور اشاره می کنیم:

عدد ممیز شناور اعداد را به صورت علمی یعنی F*rدرآورده و سپس E و F را نگه داری می کند که در آن مبنای در نظر گرفته شده برای عدد است.برای ذخیره سازی اعداد اعشاری در کامپیوتر، طبیعتا از r=2 استفاده می کنیم.برای این منظور ابتدا عدد را به نماد علمی در مبنای 2 تبدیل کرده و سپس فضای در نظر گرفته شده ، برای ذخیره سازی را به دو قسمت تقسیم کرده و در یک قسمت E و در قسمت دیگر F را ذخیره می کنیم. 

دقت کنید که نمایش علمی یک عدد اعشاری منحصر به فرد نیست.مثلا عدد 55/66 (در سیستم دهدهی) را می توان به صورت های 101*5/566 و 102*0/5566 و 103*0/05566 نمایش داد.

معمولا از یک شکل نرمال شده برای ذخیره سازی استفاده می شود.

در شکل نرمال شده، پایه بین 0 و 1 در نظر گرفته می شود.این عدد در نمایش دودویی در محل در نظر گرفته شده ، برای پایه و توان که یک عدد صحیح مثبت یا منفی است در قسمت توان ذخیره می شود.

یک بیت نیز برای علامت عدد اعشاری در نظر گرفته شده است.به شکل زیر توجه کنید:

 

با توجه به شکل فوق مشخص است که برای اعداد اعشاری نیز مشابه اعداد صحیح ، دارای بازه اعداد قابل نگه داری هستیم که فضای در نظر گرفته شده برای توان این بازه را تعیین می کند. علاوه بر این، در تعداد ارقام اعشاری قابل ذخیره سازی یا دقت نیز محدودیت وجود دارد.نتیجه سریع این محدودیت این است که امکان نگه داری اعداد اعشاری که نمایش آنها دارای تعداد رقم اعشاری متناهی نیست، به صورت دقیق در کامپیوتر وجود ندارد و برای ذخیره سازی آنها بسته به فضای اختصاص داده شده به عدد، گرد کردن عدد انجام شده و سپس ذخیره می شود.

لذا انجام محاسبات دقیق در این خصوص ممکن نیست و این امر باید در کار با کامپیوتر مد نظر قرار گیرد.

روش ذخیره‌سازی ممیز شناور برای اعداد اعشاری

مراحل این روش عبارت اند از:

۱) تبدیل عدد به کد دودویی
۲) تغییر ممیز شناور به صورت x.1
۳) افزودن آفست به توان
۴) افزودن صفر های اضافی به مقادیر به دست آمده و ذخیره‌ی عدد حاصل

برای مثال برای عدد 5.25 ،ذخیره سازی float را بررسی می کنیم:


۱) تبدیل به دودویی

5.25 = 101.01

۲) تغییر ممیز شناور

5.25 = 1.0101 * 2^2

۳) افزودن آفست به توان

p = 2+127 = 129 = 10000001

۴) افزودن صفرهای اضافی

p = 10000001

c = 01010000000000000000000

5.25 = 0 10000001 01010000000000000000000

 

 

پروژه دوم :مقایسه 4 زبان برنامه نویسی با یکدیگر

 

نام زبان

 

تعریف متغیر

 

ساختار شرطی

 

 

ساختار تکرار

Payton

پایــتون

a=4

 

b=5

 

c="hello world"

 

b = a * 4.5

 

انتساب چندگانه= a,b,c,d=1 , 4.5 , "payton" , 2

 

if شرط :

    دستورات

else:

دستورات   

...........................

مثال:

 

Num=

input("Please enter a number: ")

if int(num) % 2 == 0:   print("Even")

else:

print("Odd")

for نام متغیر  in  list

دستورات(s)

 

مثال:

list = ["item1","item2"]

 

for item in list:

 

print(item)

 

print("All done.")

 

Fortran

فرترن

Real A

 

Double B

 

Complex C

C=(1,2)

 

Character  text

 

IF ( عبارت شرطي 1 ) Then

بلوك دستورات

 

 

Else IF (عبارت شرطي 2 )Then

بلوك دستورات

.

.

.

Else

بلوک دستورات

ELSE IF

حلقه نامحدود

[نام حلقه:] Do

[بلوك دستورات]

End Do [نام حلقه]

 

حلقه شمارشی

 

[نام حلقه:]Do [lable]کران پایین،کران بالا-نام متغیر[گام]

[بلوک دستورات]

End Do[نام حلقه]

 

 

 

Java

جاوا

Int A

 

String S

 

Boulian

 

 

If (شرط)

{

بلوک دستورات

}

Else

{

بلوک دستورات

}

For(  نام متغیر,   شرط,گام)

{

بلوک دستورات

}

For(i=0,i<=10,i++)

{

Z=2*y;

Print z;

}

 

 

PHP

 

$ var_name = value ;


ifشرط)  )

{
   بلوک دستورات
}
else

{
 بلوک دستورات
}
?>

 


for (تعریف متغیر; شرط;گام)

 

{
بلوک دستورات
}
?>

 

پروژه دوم :مقایسه 4 زبان برنامه نویسی با یکدیگر(ادامـــه)

 

ادامه...

 

 

نام زبان

 

تابع

 

 

آرایه

 

 

کلاس

Payton

پایــتون

 

def

نام تابع(مقدار ارسالی)

 

"یک دستور اختیاری"

{

بدنه تابع   

}

 

return [مقدار برگشتی]


 

از میان نوع های داده ای پایتون، List ها تطبیق پذیرترین نوع داده ای هستند. تا حدی می توان گفت که List شبیه به نوع داده ای آرایه در زبان C است

 

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]

 

tinylist = [123, 'john']

 

class ClassName

 

   

   

                    بدنه کلاس  

 

   

 

Fortran

فرترن

 

Function نام تابع(نوع ارسالی)

{

بلوک دستورات

}

GoTo{پرش به قسمت خاصی از برنامه}

 

Return{مقدار بازگشتی}

 

End

 

INTEGER DIMENSION (اندیس بالا,اندیس پایین

 

ARRAY

 

INTEGER ARRAY (اندیس بالا,اندیس پایین)

 

این آرایه از نوع INTEGRE تعریف شده است.

 

 

 

متاسفانه مطلبی پیدا نشد

Java

جاوا

 

Public  static  int

نام تابع

(مقادیر ارسالی به تابع)

{

    بدنه تابع

 

   Return

}

arrayName[index]

 

int [] a = new int[4];
a[0] = 1;
a[1] = 0;
a[2] = 12;
a[3] = -5;

 

Class نام کلاس

{

نوع متغیر

 

Type instance-variable2;

//…

Type instance-variable N;

 

Type methodname1(parameter-list){

//body of method

}

 

PHP

 


function   نام تابع ( )
        {
            بدنه تابع
        }
?>

تعریف آرایه عددی

$page[0] = "Home";
$page[1] = "Learn";
$page[2] = "Buy";
$page[3] = "About";
?>

تعریف آرایه خطی

$page = array(0 => "Home", 1 => "Learn", 2 => "Buy", 3 => "About");
?>

Class نام کلاس

    {

      بدنه کلاس

     }

؟>

 

پروژه 1- معرفی 30 زبان برنامه نویسی - استاد مربوطه :سرکار خانم یراقی - تاریخ ارائه 1395/12/8

ردیف

نام زبان

سال ارائه

توضیحات و کاربرد

1

HTML

(Hypertext markup language)

 

1989 – تیم برنرزلی

در واقع می توان گفت HTML یک زبان برنامه نویسی نیست بلکه زبانی برای نشانه گذاری عناصر صفحات است.

2

Css

Cascading style sheets

 

1960- برت‌باس (Bert Bos)  و هیکن لای (Hakon Lie)

1-تعریف استیل طراحی صفحات وب سایت و اعمال به صفحات دیگر

2-تمیزتر شدن کد های برنامه نویسی

3

Javascript

برندان ایچ

 (Brendan

 Eich)

1995

زبان برنامه‌نویسی اسکریپت مبتنی بر اشیاء است که توسط NetScape تولید شده‌است. برای برنامه نویسی وبسایت ها و بازی های کامپیوتری کاربرد دارد.

4

jQuery

جان رسیگ  (John Resig) 

سال 2006

به عنوان نمونه پیشنهاداتی که در موتور جستجوگر گوگل در ضمن جستجو به کاربران داده می‌شود از زبان جی‌کوئری استفاده شده است.

5

ASP.NET

این کلمه مخفف Active server page  یا صفحات فعال تحت سرور است که نسخه اولیه این زبان تحت فریم ورک دات نت در سال 2002 معرفی شد.

1-قدرتمند در تولید اپلیکیشن های وب

2-اپلیکیشن‌های نوشته شده با این زبان در سرورهای ویندوز قابل اجرا هستند و معمولا بانک اطلاعاتی آنها همان Sql Server  معروف است.

6

PHP

Hypertext

Preprocessor

 

 

1994 - راموس لردوف (Rasmus Lerdorf) کانادایی

برای طراحی وب توسعه یافته‌ است. می توان تصاویر، فایل های PDF و حتی فایل های Flash را ایجاد نمایید. همچنین می توانید هر متنی مانند XHTML و XML را در خروجی چاپ نمایید.

7

Ruby

1990 -یوکیهیرو ماتز ماتسوموتو (Yukihiro Matz Matsumoto)

این زبان مثل زبان پایتون یک زبان اسکریپتی و همه کاره است ولی خاصیت شی گرایی بیشتر در آن مد نظر است.

بیشترین کاربرد آن در برنامه نویسی وب است.

8

Java

1995

جیمز گاسلینگ

جاوا برای برنامه نویسی وب، تلفن های همراه، کاربردی، رومیزی و … مورد استفاده قرار می گیرد.

9

Visual Basic

پروفسور جان کمنسی و توماس کرتز

1960

1-آموزش برنامه نویسی

2-ایجاد برنامه های کاربردی تحت ویندوز

10

CFML

(ColdFusion Markup Language)

از سال ۱۹۹۵ توسط شرکت ماکرو مدیا (Macro Media)‌ در بازار تجاری دنیا رخ نشان داده است.

1- ایجاد ارتباط آسان بین صفحات وب (HTML) و بانک اطلاعاتی

11

Python

پایتون

ک زبان برنامه‌نویسی همه منظوره،سطح بالا، شیءگرا و مفسر است که توسط خودو فان روسوم (به هلندی: Guido van Rossum) در سال ۱۹۹۱ در کشور هلند طراحی شد.

سازمان‌های بزرگی که از پایتون استفاده می‌کنند، شامل گوگل، یاهو، سرن و ناسا هستند. ITA نیز از پایتون برای بعضی از اجزای خود استفاده می‌کند.

12

F#

F# در سال 2003 توسط بنیاد نرم‌افزاری F# توسعه پیدا کرده است که شامل:مایکروسافت و بقیه همکاران می باشد.

1-برنامه هایی که قرار است به صورت موازی روی چند هسته (یا سی پی یو) اجرا شوند

2-برنامه هایی که با حجم وسیعی از داده ها سر و کار دارند (data analysis)

3-برنامه های محاسباتی و ریاضی و آماری و ..

13

C

زبان C در سال 1972 توسط دنیس ریچی از روی زبان B و BCPL در آزمایشگاه بل ساخته شد

1- زبان c برای نوشتن سیستم عامل GNU , windows , Mac , Unix , Linux ,...
2. زبان c برای میكروكنترلر ها
3. زبان c برای نوشتن كدهای Exploit (
4. زبان c برای Ray Tracing
5. زبان c برای الگوریتم ژنتیك
6. زبان c برای هوش مصنوعی
7. زبان c یرای برنامه های دیتابیس، كركینگ، هك، رمزنگاری و...

14

Delphi

شرکت بورلند آن را تولید کرده‌است و بعدها توسط امبارکادرو خریداری شد.

سال 1995

1-یک زبان برنامه نویسی برای نوشتن برنامه های کاربردی

2-دلفی در اصل برای توسعهٔ برنامه‌های روی میزی و پایگاه‌های داده‌ای سازمانی استفاده می‌شود

15

Pascal

در سال‌های ۱۹۶۸ و ۱۹۶۹

پروفسور دانشگاه پلی‌تکنیک زوریخ سوییس

1-یک زبان برنامه‌نویسی امری و ساخت‌یافته تأثیر گذار می‌باشد که از خصوصیات این زبان می‌توان به سادگی فراگیری آن اشاره کرد

2-هم اکنون این زبان بیش تر به عنوان زبان برنامه نویسی ی آموزشی برای مبتدیان در دانشگاه ها تدریس می شود.

16

C#

شرکت ماکروسافت

2000

سی شارپ یک زبان برنامه سازی ساده، مدرن، برای اهداف عمومی و شیءگرا است. این زبان برای استفاده در اجزای توسعه نرم افزار برای دستیابی به مزایای سامانه‌های توزیعی در نظر گرفته شده‌است.

17

C++

بیارنه استراوستروپ

در اوایل سال  ۱۹۸۰

یک زبان برنامه‌نویسی رایانه‌ای همه‌منظوره، شیءگرا، سطح بالا و چندرگه (که از برنامه‌نویسی رویه‌ای، تجرید داده‌ها و برنامه‌نویسی شیءگرا پشتیبانی می‌کند)، عمومی و با قابلیت‌های سطح بالا و سطح پایین می‌باشد.

18

LABVIEW

2014

بیشتر در سامانه‌های تست، اخذ داده، کنترل و پایش رایانه‌ای کاربرد دارد

19

GO

2009

در چند سامانهٔ اجرایی گوگل استفاده می‌شود. مترجم گو از لینوکس، مک او اس، ویندوز و انواع سیستم‌های عامل بی‌اس‌دی مانند FreeBSD پشتیبانی می‌کند

20

Prograph

پروگراف

دانشگاه آکادیا

1983

 زبان برنامه نویسی تصویری، شی گرا، جریان داده (چند شیوه‌ای) است و به عنوان موفق‌ترین (از لحاظ تجاری) زبان تصویری که چند هدف را دنبال می‌کند، شناخته شده است.

21

R

1991 توسط راس ایهاکا (Ros Ihaka)

برای کار هایِ آماری، آنالیزی و گرافیکی استفاده می شود.

22

Cobol

 

گریس هاپر

سال 1959

در زمینه تجارت ، امور مالی و سیستم‌های اجرایی برای شرکت‌ها و دولت‌ها کاربرد دارد.

23

XML

کنسرسوم وب جهان گستر

1-اشتراک گذاری اطلاعات

2-جهت طراحی ابزارها و زبان های جدید به کار برده می شود

3-انتقال اطلاعات به زبان ساده و مشترک XML ، می تواند توسط هر گیرنده یا فرستنده ای بر روی وب به راحتی خوانده و ترجمه شود

24

Haskell

1980

اجازهٔ توسعه سریع، پیاپی و مختصر و صحیح نرم‌افزار را می‌دهد

25

Limbo

1995

برای نوشتن برنامه های کاربردی سیستم عامل اینفرنو استفاده شده است.

26

Logo

1967

ماروین مینسکی

یک زبان برنامه نویسی برای برنامه نویسی تابعی است.

27

Rebol

1997

یک زبان تبادل داده‌های چند سکویی و زبان چند پارادایمی برنامه‌نویسی پویا برای ارتباط شبکه‌ای و رایانش توزیع شده است

28

Swift

2014

کریس لاتنر

سویفت برای کار با فریمورک‌های Cocoa و Cocoa Touch اپل و تعامل با حجم عظیمی از کدهای Objective-C نوشته شده برای محصولات اپل طراحی شده است. سویفت می‌خواهد جلوی خطاهای برنامه‌نویسی را بیشتر بگیرد.

29

Zeno

1995

زنو برای استفاده در ویندوز ۹۵ و سیستم عامل‌های مایکروسافت بعد از آن، طراحی شده است

30

Perl

پرل

1987

لری وال

در زمینه‌های هوش مصنوعی، ژنتیک، نظامی، تحقیقاتی، صنعتی بطور گسترده‌ای کاربرد دارد. از مهمترین کاربردهای آن نوشتن اکسپلوییت ها و کدهای مخرب است.

چکیده ای بر زبان های برنامه نویسی

مسلما یکی از سودمندترین اختراعات بشر تا به امروز کامپیوترها بوده اند. دستگاه هایی که هزاران بار سریعتر از انسان فکر میکنند و سرعت عملشان به طرز غیر قابل باوری بالاست. سرعت و قدرت، امکان انجام خیلی از کارهایی را فراهم کردند که انسان به طور عادی از انجام آن ها عاجز بود. اما یک مشکل وجود داشت: این دستگاه ها به همان اندازه که قوی بودند ، کم هوش هم بودند؛

آن ها به طور عادی هیچ عملی انجام نمی دادند مگر این که به صراحت از آن ها درخواست می شد. اما این درخواست چگونه باید صورت می گرفت؟ باید راهی برای گفتگو با آن ها پیدا می شد. و در این زمان بود که متخصصان تصمیم گرفتند زبان های مخصوصی را بوجود بیاورند تابتوانند با کامپیوترها گفتگو کنند. این زبان های مخصوص به اصطلاح زبان های برنامه نویسی کامپیوتر نام گرفتند.

به نسل اولیه زبان های برنامه نویسی، زبان های سطح پایین گفته می شد، چرا که به سختی قابل یادگیری و به کارگیری بودند. پیاده سازی اعمالی ابتدایی توسط این زبان ها باعث می شد مدت ها وقت با ارزش برنامه نویسان گرفته شود. اما وضع به همین منوال نماند و با گذشت زمان زبان های جدیدی به وجود آمدند که آموختن آن ها راحت تر بود. طی سه دهه ی اخیر، صنعت کامپیوتر مورد هجوم انواع زبان های برنامه نویسی قرار گرفت.

خوش آمدگویی

با سلام و خوش آمد گویی خدمت شما استاد گرامی سرکار خانم یراقی

این وبلاگ جهت ارائه پروژه های درس طراحی و پیاده سازی زبان های برنامه سازی، ایجاد شده است.

از اینکه ما را در ارائه هر چه بهتر این امر یاری می کنید، سپاسگذاریم.

مهناز علیزاده و مریم روحی