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

مامعنى static ,, وكيف أكرر البرنامج !

مغلق
بدأه الحاسوبجية ..~ في 7 مايو 2012 · 5 رد · 927 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم والرحمة ..~

لدي العديد من الأسئلة في C++

أود أن أعلم ماذا تعني static حينما أسبقها تعريف المتغير مثلاً (static int n=1) ؟؟

أيضا أنا لدي برنامج يعرض مرة وحدة وأن أريدهـ أن يستمر فـ كيف أدخل البرنامج في اللوب مع العلم أن البرنامج يحتوي على if فكيف أكرر البرنامج ؟؟

وجزاكم الله خير وجعلهـ ف موازين حسنآتكم .. ^^ ~

تم تعديل هذه المشاركة بواسطة الحاسوبجية ..~ في 7 مايو 2012 في 15:12

#2

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

اللي أعرفه أنآ الـ static : معنآهآ إنك تعطين المجآهيل قيمه دآخل السورس كود

,’

والبآقي إن شآء الله يسآعدوكك الأعضآء :happy:

*

سبحآن الله عدد خلقه ورضآ نفسه وزنة عرشه ومدآد كلمآته =)

#3

الله يســعدكـ ممكن توضحي أكتر =))

تم تعديل هذه المشاركة بواسطة الحاسوبجية ..~ في 7 مايو 2012 في 16:19

#4

إنظري لهذا المثال :

#include<iostream.h>

void static_increase(void) {

    // تتمّ تهيئة المتغيّر لمرّة واحد فقط
    static int number   = 1;
    cout << number << endl;
    number++;
}

void auto_increase(void) {

    // تتمّ تهيئة المتغيّر مع كل مرة تستدعى فيها الدالة
    int number          = 1;
    cout << number << endl;
    number++;
}

int main(void) {

    static_increase();
    static_increase();
    static_increase();

    auto_increase();
    auto_increase();
    auto_increase();

    return(0);
}

عندما نشغّله سينتج :

$ ./example1
2
3
1
1
1
$

في الدالة الأولى static_increase, قيمة number هُيّئت لمرة واحدة فقط وتحتفظ يقيمتها طوال فترة تشغيل البرنامج على عكس الدالة الثانية , auto_increase, فيتمّ إسناد 0 لـnumber مع كل مرة تستدعى فيها الدالة.

سؤالك الثاني إذا كنت تقصدين كيف تجعلين برنامج يستمر في العمل, أبسط طريقة هي وضع البرنامج في حلقة تكرار تستمر للأبد مع وضع شرط لخروج من حلقة التكرار. إنظري لهذا المثال :

#include<iostream.h>

int main(void) {

    char name[255];

    // OR while(1 == 1)
    while(1) {
        cout << "Your name ? (to exit type 'q'): ";
        cin  >> name;
        if(name[0] == 'q' && name[1] == '\0')
            break;
        else
            cout << "Hello " << name << "!" << endl;
    }

    return(0);
}

$ ./exampleYour name ? (to exit type 'q'): Foo
Hello Foo!
Your name ? (to exit type 'q'): Boo
Hello Boo!
Your name ? (to exit type 'q'): q
$

---

ملاحظة إذا كان مصرفك compiler حديث, بدلي :

#include<iostream.h>

بـ:

#include<iostream>
using namespace std;
#5

Mr.B

جزآآكـ الله خيير وجعله في موآزين حسنآتكـ وفتح لكـ من كل أبواب الخير

شكرا جدا يا أخي شرحكـ واافي وما قصرت والحمدالله أشتغل البرنامج جيداً الحمدالله =))

#6

السلآم عليكم والرحمة ..~

صباح مساء الخير والبركة

أنا عندي استفسار آخر في c++ ^ــ^

لو سمتحم أريد أن أعلم الطريقة التي لا يتم بها طباعة علامة التنصيص ""

مثلاً :

طلبت من المستخدم يدخل أي نص وأدخل النص بعلامة تنصيص مثلا "my name is Ahmad "

وفي أمر آخر أريدهـ أن يخرج النص بدون علامة تنصيص فيكون بهذا الشكل : my name is Ahmad

مع العلم إني معرفة كـ string

وجزآكم الله كل خير ^^ .. ~

تم تعديل هذه المشاركة بواسطة الحاسوبجية ..~ في 7 مايو 2012 في 20:11

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

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