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

أريد مساعدة بال ++C

مغلق
بدأه Tenshi في 16 نوفمبر 2002 · 9 رد · 630 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أنا لسّاتني مبتدئة بالـ ++C....

و عندي برنامج لازم أعمله بس بدي شوية مساعدة...

البرنامج يعتمد على الـ ctime function..المطلوب من البرنامج انو لما أنا أكتبله مثلا اسمي رح يحسب فارق الوقت بين كل حرف و حرف باكتبه..

و على هالاساس بيقسّم الاسم لمقاطع...

مثال:

Enter your name: Tenshi

اذا انا كانت طباعتي كالتالي Ten مع بعض بعدين shi...

رح يكون الـ output:

your name contains 2 parts

و اذا كتبت Te ..بعدين ns..ثم hi

your name contains 3 parts

و هكذا...

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

و لما يكبر الوقت بين الحرفين نفصل و نبدأ مقطع تاني و هكذا...

اللي بعرفه ..

or

بس هاي الشغلات جديدة علي...

ممكن حدا يساعدني كيف أدخّل الـtime بالبرنامج...؟؟

أو حدا ممكن يشرحلي اياه بطريقة مبسّطة؟؟؟

و شكراً مقدماً لكل من سيحاول المساعدة و اتمنى انو اكون شرحت الموضوع كويّس...

تحيّاتي...

Tenshi

#2

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

أختي تستطيعين إستخدام الدالة:

gettime();

اللذي يأخذ سجل من نوع time و هو كالتالي:

 
struct time {
   unsigned char ti_min;      /* minutes */
   unsigned char ti_hour;     /* hours */
   unsigned char ti_hund;     /* hundredths of seconds */
   unsigned char ti_sec;      /* seconds */
};

مثال لإستخدام الدالة:

 
#include   
#include   

int main(void)
{
   struct  time t;

   gettime(&t);
   printf("The current time is: %2d:%02d:%02d.%02dn",
          t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);
   return 0;
}

و هي موجوده ضمن الملف: dos.h كما يتضح من المثال اعلاه.

علماً أن هذه الدالة لا تعمل إلى على منتجات بورلاند مثل:

Turbo C , Turbo C++ , Borland C and Borland C++

و راح تعمل أيضاً في بيئة الـ C++ Builder

أما إذا كنت تستخدمين أحد منتجات مايكروسوفت فيمكنك

إخبارنا و إن شاء الله كل شيئ راح يكون تمام :)

مع تحياتي ,,, طلال.

#3

أخ طلال..

شكراً لمحاولتك المساعدة...

اللي باخده هو ++C و أنا ما بعرف الـC ... قالولي الفرق بينهم بسيط بس مع ذلك صعب أفهم الكود مع السي...و بعدين لسّاتني مبتدئة..

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

و انا تعبت أدور في المواقع عن الـtime أو ctime...متل ما خبّرني الاستاذ (الشي الوحيد اللي ساعدني فيه...)...

أنا بدي افهم فكرة الـtime بالكود و كيف بنستخدمه ...

و البرنامج اللي باستخدمه هو..

Microsoft Visual Basic C++ 6.0

تحياتي..

Tenshi

#4

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

أختي أنصحك بمراجعة مكتبة الـ MSDN :

و سأنسخ لك الموجود في هذه المكتبة عن الدالة ctime :

ctime, _wctime

Convert a time value to a string and adjust for local time zone settings.

char *ctime( const time_t *timer );

wchar_t *_wctime( const time_t *timer );

Routine Required Header Compatibility

ctime ANSI, Win 95, Win NT

_wctime or Win 95, Win NT

For additional compatibility information, see Compatibility in the Introduction.

Libraries

LIBC.LIB Single thread static library, retail version

LIBCMT.LIB Multithread static library, retail version

MSVCRT.LIB Import library for MSVCRT.DLL, retail version

Return Value

Each of these functions returns a pointer to the character string result. If time represents a date before midnight, January 1, 1970, UTC, the function returns NULL.

Parameter

timer

Pointer to stored time

Remarks

The ctime function converts a time value stored as a time_t structure into a character string. The timer value is usually obtained from a call to time, which returns the number of seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC). The string result produced by ctime contains exactly 26 characters and has the form:

Wed Jan 02 02:03:55 1980n

#5

حتى تعدي عدد الكلمات التي كتبتها , ضعي متحولاً تتم زيادته واحد عندما تدخلين space (فراغ).

int i = 0;

char ch;

if (ch == ' ')

i = i + 1;

#6

مممم...

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

بس أنا بدي أفهم الكود بالسي بلس بلس...

السي بيتعبني بالفهم..

وأنا بدي أي شروح عن السي تايم..ctime

أخ اسماعيل...

البرنامج مو لحساب عدد الكلمات..البرنامج بيحسب الوقت بين كل حرف بكتبه و الحرف اللي بعده..

و بعدين بيقسّم الكلمة الواحدة الى مقاطع حسب الطباعة..

و شكراً لمساعدتكم..

Tenshi

#7

طب ممكن أعرف كيف أحوّل الكود من السي للسي بلس بلس؟؟؟؟

Tenshi

#8

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

أختي الطريقه سهله جداً

اول شي اقوله أن السي++ يستخدم جميع اجراءت السي

مثل printf ... الى اخره

بس أنا اسف لاني من فتره طويله لم استخدم اجراءت السي++ الجديده مثل cout ...

لكن أنا حبيت عطيك فكره

(f)

If you think yourself that you are nobody, you should go somewhere to find yourself

#9

بس للحين ما نجحت بكتابة الكود ....

شو اعمل؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

Tenshi

#10

أختي الحل سهل.. وهوكالتالي:

نتلقى داخل متغير عدد الثوان منذ عام 1970 حتى الان.

1)نستعمل حلقة

|__ داخلها .. نتلقى الحرف في مصفوفة ثنائية البعد..

نضع عدد الثوانِ الذي حصلنا عليه في متغير مؤقت

نحصل على عدد ثوانِ جديد..

نجد الفرق بالثوانِي..

اذا كان الفرق اكبر من ثانية معنى هذا اننا تلقينا الحرف بعد الحرف السابق بأكثر من ثانية لهذا نقوم بالعبور الى الكلمة التالية في المصفوفة لنكتب فيها هذا المقطع (لأنه مقطع جديد)..

#include

#include

#include

int main()

{

clrscr();

time_t t,tL;

int i=-1;u=0,since;

char str[12][12];

t=time(NULL)//ترجع عدد الثواني منذ عام 1970 حتى اللحظة

do{

str=getche();// للحصول على حرف واحد

tL=t;// للإحتفاظ بقيمة الثانية السابقة

t=time(NULL)// قيمة الثانية الحالية

since=t-tL;//الفرق بين الثانية السابقة والآن - كم مر من الزمن منذ تلقينا الحرف السابق

if(since>1) // اذا مر أكثر من ثانية؟

{

str[u+1][0]=str; // نقل الحرف الحالي والذي تلقيناه متأخرا الى المقطع التالي

st0r='

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

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