تبليغاتX
فناوري‌اطلاعات ، برنامه‌نويسي

اين وبلاگ در مورد فناوري اطلاعات و علوم مرتبط ميباشد

Information
سلام دوست عزيز .من دانشجوي مقطع كارشناسي فناوري اطلاعات هستم . اين وبلاگ در مورد فناوري اطلاعات و علوم مرتبط با اون هست و داراي آموزش كامل و گام به گام برنامه نويسي به زبان ++C .
************************
پيشنهاد مي‌كنم از لينك‌هاي بخش مقالات فناوري اطلاعات ديدن كنيد .
************************
به اميد اينكه مطالب مفيد واقع بشه . با ارائه نظرات سازنده ي خودتون من رو در هرچه پربارتر كردن اين وب ياري كنيد .
متشكرم

مقالات فناوري اطلاعات
پیوندها
ترفندستان (حسين)
كليك كن سرگرم ميشي
آريا پسر جنجالي بلوگفا
يه غريب
دانلود آهنگ (فرزاد)
آموزش امنيت و برنامه‌نويسي(مهدي زارعي)
وبلاگ علمي تخصصي فناوري اطلاعات اديب
آموزش حرفه‌اي هك
ويژوال بيسيك (VB)
ترفند و آموزش (smn)
۩۞۩ تبدیل صدای مرد به زن ۩۞۩
ترفندهای کامپیوتر و موبایل و آموزش آفیس(بهزاد)
الکامپ 87 دنیای مجازی
آموزش حرفه اي ويروس نويسي (رضا)
گل سرخ
كلبه‌ درويشي (محمد)
انجمن تخصصي ويژوال بيسيك 6 (سيد كمال رضايي)
: :سایت تخصصی موبایل:: (نويد)
سايت تخصصي برنامه نويسي (مهدي)
ترفندستان (محمد)
مرکز دانلود مقاله و کتاب و فونت و سوال
فؤاد (قلب‌ها)
سهيلستان
سايت بزرگ موبايل و كامپيوتر
حسين كوهساري
روياي جواني
عشقاي بچگي
(شهر دانلود...جاوا..فيلم..عکس)
خدمات انفورماتيك و اطلاع رساني
ماموت: وبلاگ مقالات مهندسي مكانيك و خودرو
آموزش جامع كامپيوتر
آموزش كاربردي ++C
وبلاگ تخصصي كامپيوتر (محمد)
مهندسان عمران
آموزش گام به گام دلفي
برنامه نويسي ( عليرضا )
اورميا هك
جستجوگر

طراح قالب

Powered By
BLOGFA.COM
لینک RSS
تاریخ آپدیت بعدی
سلام . این وب تا تاریخ 1388/5/1 آپدیت نخواهد شد .

نوشته شده توسط: مرضيه در دوشنبه دهم فروردین 1388|+|
پايگاه داده‌ها

در مورد پايگاه داده‌ها چقدر مي‌دونيد ؟

قبل از به وجود اومدن پايگاه داده‌ها يا همون بانك اطلاعاتي به اين شكلي كه ما امروز ميشناسيم سيستم‌هايي به نام File Base وجود داشتند . اين سيستم از اجزاي مختلف زير تشكيل مي‌شدند :

1- Data Entry : براي ذخيره‌ي اطلاعات در فرم‌هاي اطلاعاتي . مثلاٌ ذخيره‌ي اطلاعات كارمندان يك سازمان اعم از نام ، نام‌خانوادگي ، شماره‌ي پرسنلي و ...

2- Form & Reports : براي ايجاد فرم‌هايي با قابليت چاپ و غير قابل تغيير .

3- File Handling Routine : تابعي براي انجام عمليات فايلينگ . مثلاٌ جستجوي اطلاعات مربوط به يك شماره‌ي پرسنلي .

4- File Descriptor : ساختاري كه اطلاعات را به فرم‌ها منتقل ميكرد .

5- User Interface : فرم‌ها و برنامه‌هايي كه كاربر از طريق آن‌ها با برنامه ارتباط برقرار مي‌كند .

ولي اين نوع سيستم‌ها مشكلاتي داشتند :

اولين مشكل آن‌ها اين بود كه نمي‌توانستيم از يك سيستم براي انجام تمام عمليات مورد نياز استفاده كنيم . مثلاٌ يك شركت را در نظر بگيريد كه دو عمليات خريد و فروش در آن انجام ميشود . در اين صورت بايد دو سيستم جداگانه براي انجام هر عمليات داشته باشيم و مسلماٌ اين كار مستلزم اختصاص هزينه‌ي مازاد بر بودجه‌ي شركت خواهد بود و مقرون به صرفه نيست .

دومين مشكل سيستم‌هاي بر مبناي فايل اين بود كه در اين سيستم‌ها با تكرار داده‌ها مواجه ميشديم كه تكرار داده‌ها خود باعث مشكلاتي چون هدر رفتن فضا و حافظه و به خطر افتادن همنوايي يا همان سازگاري و اصطلاحاٌ consistency ميشود . علاوه بر اين ميدانيم كه تكرار داده‌ها كاري بيهوده و عبث است . (consistency مي‌گويد : در صورت وجود يك قلم اطلاعاتي كه در بيش از يك مكان از حافظه‌ي سيستم ذخيره شده است ، مقدار اين قلم اطلاعاتي در همه جا بايد برابر و يكسان باشد) . احتمال خدشه‌دار شدن و به خطر افتادن consistency را Redundancy گويند . پس وجود Redundancy ، همنوايي يا همان Consistency را به خطر مي‌اندازد .

سومين مشكل اين بود كه فايل‌هاي ساخته شده توسط يك برنامه قابليت اجرا با برنامه‌هاي ديگر را نداشتند واين مسأله ما را شديداٌ به برنامه‌نويس وابسته مي‌كرد و اگر روزي مشكلي براي برنامه‌ي پياده شده روي سيستم پيش مي‌آمد بايد برنامه‌نويس سيستم برنامه‌اي بنام ONE-OFF (برنامه‌اي است كه توسط برنامه‌نويس سيستم نوشته ميشود و فقط يكبار قابليت اجرا دارد و به نوعي سيستم را تعمير مي‌كند) طراحي كرده ، كه هزينه‌ي گزافي را بر دوش صاحبان شركت‌ها و سازمان‌ها مي‌گذارد .

چهارمين مشكل اين بود كه در اين سيستم‌ها داده‌ها و برنامه‌ها با هم عجين ميشدند (به قول خودم گفتني : همه چي باهم قروقاطي ميشد) .

پنجمين مشكل اين بود كه در اين نوع سيستم‌ها تعداد گزارشات ثابت بود و مثلاٌ اگر كاربري بخواهد گزارش مورد نظرش در سيستم تغيير كند ، سيستم اين اجازه را به او نمي‌دهد . (چرا هم نداره ! چون اين شكلي طراحي شده بودن) .

با رفع اين نواقص مجموعه‌اي از داده‌ها بصورت اشتراكي ، بنام Data Base ساخته شد . كه الان خستم ، ان‌شاءا... و اگه جناب عزرائيل مهلت زندگي بده تو پست‌هاي بعدي براتون در موردش توضيح ميدم .

 

نوشته شده توسط: مرضيه در یکشنبه ششم بهمن 1387|+|
دوباره سلام ...

سلام . بعد از يه تأخير طولاني دوباره مي‌نويسم ...

بخاطر استقبال كمي كه از آموزش برنامه‌نويسي به زبان ++C شد ، تصميم گرفتم كه نوشتن مطالب زنجيره‌اي رو متوقف كنم و مطالبي غير از برنامه‌نويسي ++C هم بنويسم . بنابراين از اين به بعد هر مطلب علمي به درد بخوري رو توي اين وب خواهيد ديد . اگه دوست داشتين بخونين ، اگه نه شما رو به خير و ما رو به سلامت ...

در هر حال هدف من اينه كه كساني كه وارد اين وب ميشن ، وقتي صفحه رو مي‌بندن به معلوماتشون اضافه شده باشه . در ضمن سعي ميكنم برنامه‌نويسي ++C رو هم ادامه بدم ، البته سعي ميكنم ... و اگه كسي تمايل نشون بده ...

 

نوشته شده توسط: مرضيه در یکشنبه ششم بهمن 1387|+|
برنامه نويسي به زبان ++C (پست 88)

كنترل ورودي با يك نگهبان

اين برنامه يك رشته اعداد صحيح مثبت را تا زماني كه صفر وارد شود ، خوانده و معدل آن‌ها را محاسبه مي‌كند :

int main()
{   int  n , count=0 , sum=0 ;
    cout << " enter positive integers ( 0 to quit ) : " << endl ;
    for ( ; ; )     // " forever "
    {   cout << " \ t " << cout + 1 << " : " ;
        cin >> n ;
        if ( n <= 0 )  break ;
        ++ count ;
        sum += n ;
    }
    cout << " the average of those " << count << " positive number is : " <<
    float ( sum ) / count << endl ;
}

خروجي برنامه‌ي بالا بصورت زير است :

enter positive integers :
          1 : 4
          2 : 7
          3 : 1
          4 : 5
          5 : 2
          6 : 0
the average of those 5 positive numbers is 3.5

در برنامه‌ي بالا وقتي كه 0 وارد شود ، دستور break اجرا شده و حلقه فوراٌ خاتمه مي‌يابد و اجراي برنامه به اولين دستور بعد از حلقه پرش مي‌كند . به نحوه‌ي نوشتن دستور for در اين برنامه دقت كنيد . هر سه بخش كنترلي در اين حلقه ، خالي است : ( ; ; )for . اين تركيب به معناي بي‌انتهايي است . يعني بدون دستور break‌ اين حلقه يك حلقه‌ي نامتناهي مي‌شود .

وقتي دستور break درون حلقه‌هاي تودرتو استفاده شود ، فقط روي حلقه‌اي كه مستقيماٌ درون آن قرار گرفته تأثير مي‌گذارد . حلقه‌هاي بيروني بدون هيچ تغييري ادامه مي‌يابند .   

 

نوشته شده توسط: مرضيه در شنبه بیستم مهر 1387|+|
برنامه نويسي به زبان ++C (پست 87)

دستور break

دستور break يك دستور آشناست . قبلاٌ از آن براي خاتمه دادن به دستور switch و همچنين حلقه‌هاي while و do..while استفاده كرديم . از اين دستور براي خاتمه دادن به حلقه‌ي for نيز مي‌توانيم استفاده كنيم . دستور break انعطاف پذيري بيشتري را براي حلقه‌ها ايجاد مي‌كند . معمولاٌ يك حلقه‌ي while ، يك حلقه‌ي do..while يا يك حلقه‌ي for فقط در شروع يا پايان مجموعه‌ي كامل دستورالعمل‌هاي موجود در بلوك حلقه ، خاتمه مي‌يابد . دستور break در هر جايي درون حلقه مي‌تواند جا بگيرد و در همان جا حلقه را خاتمه دهد .

 

نوشته شده توسط: مرضيه در پنجشنبه بیست و هشتم شهریور 1387|+|
گاهي وقتا تنوع لازمه ...
كاش مي‌شد ...

كاش مي‌شد سرنوشت خويش را از سر نوشت
كاش مي‌شد اندكي تاريخ را بهتر نوشت

كاش مي‌شد پشت پا زد بر تمام زندگي
داستان عمر خود را گونه‌اي ديگر نوشت

كاش مي‌شد همچو سعدي رفت و رفت و رفت و رفت
قصه‌ي دلدادگي را بي‌در و پيكر نوشت

كاش مي‌شد همچو حافظ فارغ از وابستگي
بي‌خود از خود بود و يك ديوان شعر تر نوشت

كاش مي‌شد همچو مولانا ز قرآن مغز را
برگزيد و پوست را بگذار بهر خر نوشت

كاش مي‌شد همچو خيام از فراز قله‌ها
جنگ شعر و دانش و انديشه را از بر نوشت

كاش مي‌شد همچو فردوسي به سي سال تمام
حكمت و تاريخ حكمت را به يك دفتر نوشت

كاش مي‌شد چون نظامي راوي صد بزم بود
عشق را با قصه‌ي شيرين‌تر از شكر نوشت

كاش مي‌شد اين غزل را پاره كرد و دور ريخت
جاي آن يك چامه‌ي خونين خنياگر نوشت

كاش مي‌شد با زباني ساده و عريان و ناب
شعر " حق‌جو " گفت و پس آن را به آب زر نوشت

شعر از : دكتر مصطفي حق‌جو سانيجي
           از اساتيد محترم دانشكده‌ي مهندسي كامپيوتر دانشگاه علم و صنعت ايران
         

نوشته شده توسط: مرضيه در پنجشنبه بیست و هشتم شهریور 1387|+|
برنامه نويسي به زبان ++C (پست 86)

حلقه‌هاي for تودرتو

برنامه‌ي زير يك جدول ضرب چاپ مي‌كند :

# include < iomanip >          // defines setw()
# include < iostream >         // defines cout
using namespace std ;
int main()
{   for ( int x=1 ; x <= 10 ; x++ )
    {   for ( int y=1 ; y <= 10 ; y++ )
             cout << setw ( 4 ) << x * y ;
        cout << endl ;
    }
}

خروجي به شكل زير نمايش داده مي‌شود :

1       2      3       4       5       6       7        8      9      10
2       4      6       8       10     12     14       16    18     20
3       6      9       12     15     18     21       24     27    30
4       8      12     16      20     24     28      32     36     40
5      10     15      20     25     30     35      40     45     50
6      12     18      24     30     36     42      48     54     60
7      14     21      28     35     42     49      56     63     70
8      16     24      32     40     48     56      64     72     80
9      18     27      36     45     54     63      72     81     90
10    20     30      40      50    60     70      80     90    100

در اولين تكرار از حلقه‌ي بيروني ، وقتي x=1 است ، حلقه‌ي دروني 10 مرتبه تكرار مي‌شود و به ازاي y=1 تا 10 مقادير 1*y را روي يك رديف چاپ مي‌كند . وقتي حلقه‌ي دروني پايان يافت ، با دستور cout << endl ; مكان‌نما به خط بعدي روي مانيتور پرش مي‌كند . حالا دومين تكرار حلقه‌ي بيروني به ازاي x=2 آغاز مي‌شود . دوباره حلقه‌ي دروني 10 مرتبه تكرار مي‌شود و اين دفعه مقادير 2*y روي يك خط چاپ مي‌شود . دوباره با دستور cout << endl ; مكان‌نما به خط بعد مي‌رود و تكرار سوم حلقه‌ي بيروني آغاز مي‌شود . اين رويه ادامه مي‌يابد تا اينكه حلقه‌ي بيروني براي بار دهم تكرار شده و آخرين خط جدول هم چاپ مي‌شود و سپس برنامه تمام مي‌شود .

در اين برنامه از شكل دهنده‌ي فرآيند setw استفاده شده . عبارت (4)setw بدين معني است كه طول ناحيه‌ي چاپ را براي خروجي بعدي به اندازه‌ي 4 كاراكتر تنظيم كن . به اين ترتيب اگر خروجي كمتر از 4 كاراكتر باشد ، فضاي خالي به خروجي مربوطه پيوند زده مي‌شود تا طول خروجي به اندازه‌ي 4 كاراكتر شود . نتيجه اين است كه خروجي نهايي بشكل يك جدول مرتب روي 10 سطر و 10 ستون زير هم چاپ مي‌شود . شكل دهنده‌هاي فرايند در سرفايل تعريف شده‌اند . بنابراين براي استفاده از شكل دهنده‌هاي فرايند بايد راهنماي پيش‌پردازنده‌ي :

# include < iomanip >

را به ابتداي برنامه بيافزاييد . همچنين برنامه بايد داراي راهنماي پيش‌پردازنده‌ي زير نيز باشد :

# include < iostream > 

 

نوشته شده توسط: مرضيه در پنجشنبه بیست و هشتم شهریور 1387|+|
برنامه نويسي به زبان ++C (پست 85)

بيشتر از يك متغير كنترل در حلقه‌ي for

حلقه‌ي for در برنامه‌ي زير دو متغير كنترل دارد :

int main()
{   for ( int m=95 , n=11 , m%n > 0 ; m -= 3 , n++ )
          cout << m << " % " << n << " = " << m%n << endl ;
}

خروجي در اجراي زير :

95 % 11 = 7
92 % 12 = 8
89 % 13 = 11
86 % 14 = 2
83 % 15 = 8

در بخش كنترل اين حلقه ، دو متغير m و n بعنوان متغير كنترل اعلان مقداردهي شده‌اند . در هر بار تكرار حلقه ، m سه واحد كم شده ، و n يك واحد افزايش مي‌يابد . در نتيجه زوج‌هاي (m,n) به شكل (95,11) و (92,12) و (89,13) و (86,14) و (83,15) و (80,16) توليد مي‌شوند . چون 80 بر 16 بخش‌پذير است ، حلقه با زوج (80,16) پايان مي‌يابد .

 

نوشته شده توسط: مرضيه در پنجشنبه بیست و هشتم شهریور 1387|+|
برنامه نويسي به زبان ++C (پست 84)

استفاده از نگهبان براي كنترل حلقه‌ي for

اين برنامه مقدار ماكزيمم يك رشته از اعداد ورودي را پيدا مي‌كند :

int main()
{   int  n , max ;
    cout << " enter positive integers ( 0 to quit ) : " ;
    cin >> n ;
    for ( max=n ; n>0 ; )
    {   if ( n>max )  max=n ;
        cin >> n ;
    }
    cout << " max= " << max << endl ;
}

خروجي برنامه :

enter positive integers ( 0 to quit ) : 44  77  55  22  99  33  11  66  88  0
max=99

حلقه‌ي for در برنامه‌ي بالا بوسيله‌ي متغير ورودي n كنترل مي‌شود . اين حلقه ادامه مي‌يابد تا زماني كه n<=0 شود . متغير ورودي كه به اين شيوه براي كنترل حلقه نيز استفاده شود ، نگهبان ناميده مي‌شود .

به بخش كنترلي اين حلقه كه بصورت ( ; max=n ; n>0 ) است ، دقت كنيد . بخش پيش‌بري در آن وجود ندارد و بخش مقداردهي آن نيز متغير جديدي را تعريف نمي‌كند بلكه از متغيرهايي كه قبلاٌ در برنامه تعريف شده ، استفاده مي‌برد . علت اين است كه حلقه‌ي مذكور ، نگهبان دارد و نگهبان از طريق ورودي پيش برده مي‌شود و ديگر نيازي به بخش پيش‌بري در حلقه نيست . متغير max نيز بايد مقدار خود را پس از اتمام حلقه ، حفظ كند تا در خروجي چاپ شود . اگر متغير max درون حلقه اعلان مي‌شد ، پس از اتمام حلقه از بين مي‌رفت و ديگر قابل استفاده نبود .

 

نوشته شده توسط: مرضيه در پنجشنبه بیست و هشتم شهریور 1387|+|
برنامه نويسي به زبان ++C (پست 83)

يك حلقه‌ي for نزولي

برنامه‌ي كوچك زير ، ده عدد صحيح مثبت را به ترتيب نزولي چاپ مي‌كند :

int main()
{   for ( int i=10 ; i > 0 ; i-- )
    cout << "   " << i ;
}

10  9  8  7  6  5  4  3  2  1


استفاده از حلقه‌ي for با گام‌هاي بزرگ‌تر از يك

برنامه‌ي زير مشخص مي‌كند كه آيا يك عدد ورودي اول هست يا خير .

(نكته : عدد اول عددي است كه فقط بر خودش و 1 بخش‌پذير است.)

int main()
{   long  n ;
    cout << " enter a positive integer : " ;
    cin >> n ;
    if ( n<2 ) cout << n << " is not prime . " << endl ;
    else  if ( n<4 ) cout << n << " is prime . " << endl ;
    else  if ( n%2 == 0 ) cout << n << " = 2 * " << n/2 << endl ;
    else
    {   for ( int d=3 ; d <= n/2 ; d += 2 )
         if ( n%2 = 0 )
         {   cout << n << " = " << d << " * " << n/d << endl ;
              exit ( 0 ) ;
          }
        cout << n << " is prime . " << endl ;
    } ;
}

خروجي برنامه بصورت زير است :

enetr a positive integer : 101
101 is prime .

enter a positive integer : 975313579
975313579 = 17 * 57371386

توجه كنيد كه حلقه‌ي for در برنامه‌ي بالا ، متغير كنترلي خود يعني d را دو واحد دو واحد افزايش مي‌دهد .

 

نوشته شده توسط: مرضيه در سه شنبه بیست و ششم شهریور 1387|+|
Technology
آرشیو
آمار وبلاگ
» تعداد بازدیدها:
» مرورگر:
امکانات اضافي

© All Rights Reserved by mrz-it.Blogfa.com ©