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

ساعدوني على تسهيل اومر هالبرنامج

مغلق
بدأه فتى الشوتوكان في 6 ديسمبر 2003 · 9 رد · 602 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم يا اخوان

أبدأ بشكر أخي العزيز .. () على مساعدتي بحل هذا البرنامج .

ولكن اطلب المساعدة ايضا هل ممكن تساعدوني بحل هالبرنامح بطريقة ثانية ..

لإنه امر #include <conio.h> انا ما بعرفه . وهاد الأمر لمدا برمجة 2 ..

وانا لساتني حتى ما اخدت الfunction ,,,,

يعني كيف بقدر أحل هالبرنامج على shile او الfor loop ....

طريقة لطالب سنة اولى ..

انا دائما بغلبكم اخواني .

إستحملوني ..

البرنامج هو ..

ساعدوني على تعديلة ب

بطريقة اوامر غير هذه ..

وشكرا .........

---------------------------------------------------------------

#include <conio.h>

#include <iostream.h>

void main()

{

int NumNames=0; //Number of entered names

int Minim=255; //We put the minimum as the biggest value

int Maxim=0; //We put the maximum as the lowest value

int TotalLenth=0; //the total of names lenth

char buffer[100] ; //We suppose that the big name is not greater than 98

char* Name;

while(1)

{

Name=_cgets(buffer);

if(Name[0]=='z' || Name[0]=='Z')

break;

if (buffer[1] < Minim)

Minim=buffer[1];

if (buffer[1] > Maxim)

Maxim=buffer[1];

NumNames++;

TotalLenth+=buffer[1];

}

cout <<"\n";

cout <<" The number of names is :"<<NumNames <<"\n";

cout <<" the total length of name is " << TotalLenth <<"\n";

cout << "The average of lenth is : "<<(double)((double)TotalLenth/(double)NumNames)<< "\n";

cout << "The minimum is : "<<Minim <<"\t The Maximum is : "<<Maxim << "\n";

}

يعني هذا الأمر :Name=_cgets(buffer); هذا كثير عليي لإنه لسا ما بنعرف عنه اشي ..

#2

البرنامج بيطلب:::

Program That Keeps Reading Name until The Users enters starting with the

Letters Z or z

The Program Should output:

1 The Number of Entered names.

2 The Longest name Entered.

3 The shortest Name Entered.

4 The Average length of all Entered Names.

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

البرنامج يحكي عن هذه الشروط ........الموجودة اعلى ........

#3

آسف نسيت ان اكتب الشكر إلى أخي chik على اعطائي هذا البرنامج . وبارك الله فيه .....

#4

السلام عليكم...........

بصراحة طلبك غريب يا فتى الشوتوكان فالمبنامج المدرج هو فعلاً على أبسط صورة

والشكر بالتأكيد للأخ chik لأنه فعلاً وضع البرنامج في أبسط صورة مفيدة.

بالنسبة لمكتبة conio.h فهي طبعاً ضرورية لاستخدام _cgets

على سبيل المثال ممكن تحتاج إجراء عملية رياضية مثل الجذر فستحتاج مكتبة

math.h رغم أنك لم تدرسها لكن الحل لا يمكن بدونها

أرجو أن توضح كيفية الإختصار فالبرنامج مختصر أساساً؟؟؟؟؟؟؟؟؟؟؟؟؟؟

وترانا بنوقف معاك لا تخاف.

شكراً.............

#5

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

كما تفضل الأخ CompuMan فنحن لايلزمنا أن نعرف كل ما في المكتبات التي ندرجها لكي نستعملها. بالطبع لو نعرفها سيكون أحسن لكن في البداية نبدأ باستعمالها وبعد أن نألفها ونفهم البرمجة يمكن أن نرى ونحاول ما يجري بداخلها ففي البرنامج السابق فبغض النضر عن الدالة gets _ لا توجد أشياء جديدة ولا غريبة. فأنت تستعمل مثلا cin وتدرج دائما المكتبة iostream فهدا يعني أنك تستعمل دالة مكتوبة من قبل وهده الدالة توجد في المكتبة iostream وهنا سنستعمل دالة اسمها cgets _ وهده الدالة توجد في المكتبة conio.h .

كل ما يجب معرفته هي كيف نستعمل الدالة cgets _ هده تتطلب بافر يكون كافيا ليستحمل ما سندخله ومع العلم أننا حين نقول بافر ليست إلا حجز لكمية معلومة في الداكرة مثل char buff[100] مثلا وهدا البافر الدي نعطيه للدالة يجب على البايت الأول والثاني أن بكونا كما يلي:

البايت الأول سيكون فيه طول الكلمة التي يمكن أن ندخلها وفي غالب الأحيان يكون طول البافر ناقص 2 لأننا سنستعمل البايت الأول والثاني.

البايت الثاني سيفيدنا كثيرا إد حيث ندخل Enter بعد إدخال الكلمة فهدا البايت ستكون فيه طول الكلمة التي أدخلناها وهدا سيسهل علينا المأمورية من أننا سنبحث عن طول الكلمة باستعمال كود آخر.

أضن أنه إدا فهمنا معنى هدين البايتين فالدالة تبقى كمثيلاتها ولا تستدعي معلومات اضافية.

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

على كل حال إدا لم ينفعك هدا فسأحاول في مرة أخرى إعطاءك طريقة أخرى ولكن يلزمني بعض الوقت لأني في الوقت الحالي أقوم ببعض الإصلاحات على الكمبيوتر.

أتمنى لك التوفيق وإلى اللقاء.

#6

مشكوووور اخي العزيز

فعلا مجهود طيب ..

ولكن اخي هل بإمكانك اعطائنا الدروس على الشكل الذي كتب بموضوع دروس بالfor Loop ..

فعلا أخي مجهود طيب وبارك الله فيك ..

#7

عفوا هذا الرد ليس لهذا الموضوع ..

أما ردي لهذا الموضوع ... أن المكتبة التي تقولون عنها احنا ما اخدناها بالسنة الأولى وانا لساتني يا دووب ماخد الaray .. يعني صعب افهمها

واذا كتبتله عن هذا البرنامج للدكتور بالإمتحان النهائي ما راح يقبله لإنه ليس من منهاج البرمجة 1

حكولي انه هالبرنامج بينحل بطرق عديدة غير هذه >>>

يعني بينحل عن طريق for loop

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

يا ريت لو تحلوه عن طريق الfor loop

على فكرة انا ما اخدت غير مكاتب الiostream والmath فقط ؟؟؟؟؟؟؟؟؟؟

#8

الحل بسيط جدا ولا يحتاج الا conio.h :)

#include <iostream.h>


void main()
{
const int MAX = 2000;
int Num_of_Names=0;
int longest=0;
int shortest=-1;
int sum_of_lenghts=0;
int count=0;
char ch;
cout <<"Enter:"<<endl;
while(cin.get(ch))
{
if(ch=='z'||ch=='Z') break;
if(ch=='\n')
{
Num_of_Names++;
if(count>longest) longest=count;
if(shortest==-1 || count<shortest) shortest=count;
sum_of_lenghts+=count;
count=0;
}
else count++;
}

cout <<"\n";
cout <<" The number of names is                  : "<<Num_of_Names <<"\n";
cout <<" The Longest name Entered                : " << longest <<"\n";
cout <<" The shortest Name Entered               : " << shortest <<"\n";
cout <<" The Average length of all Entered Names : "
     <<(double)((double)sum_of_lenghts/(double)Num_of_Names)<<"\n";
}

أتمنى ان يحقق البرنامج ماتريده ياأخى ....

#9

لو بتريدها بـ for loop تصبح بهذا الشكل تعديل بسيط

#include <iostream.h>


void main()
{
const int MAX = 2000;
int Num_of_Names=0;
int longest=0;
int shortest=-1;
int sum_of_lenghts=0;
int count=0;
char ch;
cout <<"Enter:"<<endl;
for(;;cin.get(ch))
{
if(ch=='z'||ch=='Z') break;
if(ch=='\n')
{
Num_of_Names++;
if(count>longest) longest=count;
if(shortest==-1 || count<shortest) shortest=count;
sum_of_lenghts+=count;
count=0;
}
else count++;
}

cout <<"\n";
cout <<" The number of names is                  : "<<Num_of_Names <<"\n";
cout <<" The Longest name Entered                : " << longest <<"\n";
cout <<" The shortest Name Entered               : " << shortest <<"\n";
cout <<" The Average length of all Entered Names : "
     <<(double)((double)sum_of_lenghts/(double)Num_of_Names)<<"\n";
}

واتمنى ان اكون قد حققت ماتريد ...

#10

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

مشكورين أخي العزيز أحمد على التوضيح الرائع ,, بارك الله فيك ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…