الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البرمجة بلغة C++

مغلق
بدأه auosh في 31 ديسمبر 2007 · 8 رد · 731 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اصدقائي الاعزاء خبراء البرمجة

ممكن تساعدوني في تحويل هذا الكود الى لغة C++

بجميع اوامره

بحيث يصبح بلغة C++ 100%

ولكم جزيل الشكر

packet buffer;





struct frame

{ /* frame structure */

packet info;

int seq;

int ack;

int kind;

};



int NextFrameToSend;

int FrameExpected;

int PacketLength;

int waiting;



initialise()

{

NextFrameToSend=0;

FrameExpected=0;

PacketLength = 0;

waiting = FALSE;

}



/* Main protocol service routine */

protocol(event)

int event;

{

struct frame x,*y;



switch(event)

{

case PacketReady :

/* a packet has arrived from the network layer */

get_packet(&buffer, &PacketLength);

x.info = buffer; /* place packet in frame */

x.seq = NextFrameToSend;

/* piggyback acknowledge of last frame received */

x.ack = 1-FrameExpected;

if(channel_idle())

{

send_frame(&x, PacketLength); /* send it to physical layer */

start_timer(0, Timer);

waiting = FALSE;

}

else

waiting = TRUE;

disable_network_layer();

break;



case FrameArrival :

/* a frame has arrived from the physical layer */

get_frame(&y); /* get the frame */

/* check that it is the one that is expected */

if (y->seq==FrameExpected)

{

send_packet(y->info); /* valid frame */

FrameExpected = 1-FrameExpected;

}

if(y->ack==NextFrameToSend) /* acknowledgment has arrived */

{

enable_network_layer();

NextFrameToSend = 1-NextFrameToSend;

}

break;



case TimeOut :

/* a frame has not been ACKed in time, */

/* so re-send the outstanding frame */

x.info = buffer;

x.seq = NextFrameToSend;

x.ack = 1-FrameExpected;

send_frame(&x, PacketLength);

start_timer(0, Timer);

break;



case ChannelIdle:

if ( waiting )

{

x.info = buffer;

x.seq = NextFrameToSend;

x.ack = 1-FrameExpected;

send_frame(&x, PacketLength); /* send it to physical layer */

start_timer(0, Timer);

waiting = FALSE;

}

break;

case CheckSumError : /* ignored */

break;

}

}
#2

السلام عليكم ,,

أليس الكود كود C ؟, على ما أعتقد الكود سيعمل على أنه كود ++C !

#3

شكرا على مرورك استاذ خالد

اذا كان الكود بلغة C مثل ما ذكرت

فهل يمكننك تحويله لي الى لغة C++

بجميع اوامره لانني لم اتعامل ابدا مع لغة C

افرجوا ان تساعدني في تحويله الىC++

ولك الشكر والعرفان

#4

يمكنك ترجمة أكواد C على أنها أكواد ++C و لكن لا يمكن العكس,

و أعتقد أن الكود الذي كتبته هو كود ++C صالح ,

تحياتي ’’

#5

يا غالي أكيد كود ال c يعمل علي ال c++

لأن ال C++ تحوي ال C بالإضافة إلي التطوير و المميزات التي أضيفت علي ال C لتصبح C++

#6

ترجمة أكواد سي بواسطة كومبايلر سي++ شيء يتعلق بالكومبايلر وليس اجباريا..

الكود المذكور هو كود سي/سي++، لأنه لا أرى فيه - حسب نظرتي السريعة- أي شيء من الاشياء التي فيها خلاف بين سي وسي++

هناك خطأ (ابحث عنه) وهو انك وضعت تعريف متغير بين البروتوتياب (اسم الدالة والبرامترات) وبين جسم الدالة.

#7

اشكركم اصدقائي على ردودكم

واذا كان الكود بلغة C /C++هي نفسها

فهذا جيد

لكني قد عرضتوا الكود على الدكتورة تبع المادة فاجابتني انه لابد لي صياغته

بلغة C++

كما هو مذكور في سلسلة الدروس للدورة الس بلس التي في المنتدى

لانها اخبرتني اننا يجب ان نطبق مادرسنه فقط

وهذا الكود يشرح Programming a simple simulator for stop-and-wait protocol

Objective: This Programming assignment will help you to understand one of the data link protocols, by simulating the Stop-and-Wait ARQ protocol to handle the following states:

  • A Frame received successfully
  • A lost or corrupted Frame
  • A lost or corrupted acknowledgement (use timer expiration)

افرجو ان تساعدوني

وانا اشكركم مرة اخرى على اهتمامكم

#8

لغة C ليست كلغة ++C

بمعنى ان لغة ++C اشمل من لغة C

اذا عند كود C تقدرى تحوليه (تترجمية) على انه ++C

ولكن لا تستطيعى فعل العكس

++C الى C لا يمكن

#9

استخدم مفاهيم OO فقط ، يعني غير struct الى class ، واجعل المتغيرات private (واذا كان هناك وراثه أجعلها protected ) ، وقم بتوفير Accessors & Mutaor Function (اي دوال set , get ) ، واجعل لكل كلاس غرض معين ، وهكذ نكون طبقنا المفهوم الأول في الـ OOP وهو الكبسله Encapsulation .

باقي المفاهيم تعتمد على سؤالك ، واذا كان هناك امكانيه استخدام الInheritance في برنامجك .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

هذا الموضوع مغلق.

مواضيع مشابهة