itwisdom
  
 
 
بهمن 1384
ش ی د س چ پ ج
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
 
آرشیو

پرورش شترمرغ ! پرورش شترمرغ !
آموزش پرورش شترمرغ
شغلی پردرآمد با تسهیلات بانکی
200 کارتون معروف
هر کارتون که فکرشو بکنی، هر کارتون
فقط 80 تومان | 9 DVD
X
تبلیغات در بلاگ اسکای
 
پنجشنبه 6 بهمن ماه سال 1384
رشته ها

 

سلام!

درستون رو خوندید دیگه؟

رشته ها:

رشته ها اولش راحته به خاطر همین قسمت های اصلیش رو می گم .

کپی کردن یک رشته در رشته دیگر(strcpy):

فقط برای رشته هاست. تو رشته ها نمی شه از علامت = استفاده کرد.

فرمتشم اینه:

Strcpy(p2, “paria”)

Strcpy(p1,p2);

 

طول رشته ها (strlen):

اینم فرمتش:

Char P1[]=”paria(یا هر کلمه دیگه)

Printf(“%d”, strlen(P1));                    با این مثال جواب می شه 5

 

مقایسه دو رشته(strcmp،strcmpi):

فقط برای رشته ها استفاده می شه. تو رشته ها نمی شه از if(str1==str2) استفاده کرد

الگوریتمش اینجوریه: کد اسکی str1[] با کد اسکی str2[] مقایسه می شه اگه مساوی بود با خونه بعدیش مقایسه می شه این کار ادامه پیدا می کنه تا به یه NULL برسه یا اینکه یه مورد اختلاف تو خونه iام پیدا شه. تو این حالت str1[i]-str2[i] برگردونده می شه بنابراین اگه تابع صفر برگردوند یعنی دو رشته برابر و اگه عدد منفی برگردوند str1<str2 و اگه عدد مثبت بود str1>str2 .

فرق strcmpi با strcmp اینه که بین حروف کوچک و بزرگ تفاوتی قائل نمی شه.

 

الحاق دو رشته (strcat):

فرمت کلیش اینه: (strcat(str1,str2 باعث می شه که str2 به انتهای str1 ملحق      می شه. اگه متوجه نشدین بگین که مثالش رو بنویسم.

 

پر کردن یه رشته با یه کاراکتر (strset):

فرمت کلیش اینه: strset(str,c) هست که str یه رشته و c یه کاراکتر هستش. این تابع همه کاراکترهای رشته str رو با کاراکتر c جایگزین می کنه.(خیلی باحاله)

 

توابع strupr و strlwr:

تابع strupr حروف کوچک رشته ای رو به حروف بزرگ تبدیل می کنه. و strlwr حروف بزرگ رشته رو به حروف کوچک تبدیل می کنه.

 

امشب سعی می کنم pointer ها رو هم بنویسم.

 

 

 

 

 

 


 
چهارشنبه 5 بهمن ماه سال 1384
آرایه ها

سلام درساتونو خوندین دیگه. امتحانتونم که خوب دادین.

آرایه ها و رشته ها:

تعریف آرایه: مجموعه ای از متغیرهای یک نوع هست که توسط یه نام مشترک به اونا اشاره می شه. وقتی یه ارایه رو ذخیره می کنیم تمام خونه های اون پشت سر هم در حافظه قرار می گیرن.

نکته: اندیس آرایه ها از صفر شروع می شه. اندیس آرایه ها از n تا n-1 هست.

         فضایی که یه آرایه برخسب بایت تو حافظه اشغال می کنه:

تعداد خانه ها×اندازه هر خانه بر حسب بایت= فضای اشغال شده توسط آرایه     

معمولا آرایه ها در حلقه های for استفاده می شن و اندیس آرایه همون اندیس حلقه for هست.

 

Max و Min یابی در آرایه:

اول فرض می کنیم اولین عنصر max یا min باشه و اون رو در متغیری مثلا max یا min می ریزیم. سپس در یه حلقه خونه های بعدی رو با max یا min مقایسه می کنیم. اگر اون خونه از max بزرگتر (یا از min کوچکتر) باشه اون رو توی max یا min می ریزیم.

ابنم فرمت اصلیش:

for(i=1; i<n; i++) {

     if (a[i]>max)

          (max=a[i]; locmax=i);

     if (a[i]<min)

          (min=a[i]; locmin=i);

 

مرتب سازی آرایه ها(Bubble sort):

در این نوع مرتب سازی هر بار عنصری رو با عنصر بعدی خودش مقایسه می شه. (اینو می دونم خوب بلدید)

فرمت اصلیشم این شکلیه:

صعودی:

for (j=1;j<n;j++)

       for (i=0;i<n-j;i++)

            if (a[i]>a[i+1]){

                  temp=a[i]

                  a[i]=a[i+1]

                  a[i+1]=temp

نزولی:

همین جوریه فقط  if (a[i] < a[i+1] )

 

جستجو در آرایه:

در آرایه های نامرتب جستجو به صورت خطی و در آرایه های مرتب به صورت دودویی هست.

جستجوی ترتیبی: عنصر مورد جستجو با هر یک از عناصر آرایه مقایسه می شه اگه با هم برابر بودن جستجو تموم می شه وگرنه عمل مقایسه با عنصر بعدی انجام می شه.

فرمتش هم اینجوریه:

for (i=0;i<n;i++)

      if (k==x[i]) break;

if (i==n) printf(“the number is not exist in array”);

else printf(“the number is %dth element”, i);

 

جستجوی دودویی:

عنصر مورد نظر با خونه وسط آرایه مقایسه می شه. اگر با این خونه برابر بود جستجو تموم می شه. اگر از خونه وسط بزرگتر بود جستجو در بخش بالایی آرایه و در غیر این صورت جستجو در بخش پائینی آرایه انجام می شه(حالت صعودی)

فرمت:اول یه bubble sort بعد یه باینری

/* bubble sort*/

for (j=1;j<n;j++)

       for (i=0;i<n-j;i++)

            if (a[i]>a[i+1]){

                  temp=a[i]

                  a[i]=a[i+1]

                  a[i+1]=temp

/* binary search*/

Low=0;  high=n-1;

While(low<=high) {

    Mid=(low+high)/2;

    if (k>x[mid])

           high=mid-1;

else if (k>x[mid])

low=mid+1;

else (printf(“the number %d exist in array”,k)

        exit(0);  }

}

Printf(“the number %d not exist in array”,k);

 

 

آرایه های چند بعدی:

همون ماتریسه. (بیشتر توضیح نمی دم زیاد می شه)

آدرس خانه [i][j]: 

[(m*i)+j]*k+a                                                                =آدرس خانه [i][j]

ماتریس ها در دو حلقه for استفاده می شه که اندیس یکی از حلقه ها همون اندیس سطر و اندیس حلقه دیگه اندیس ستون های ماتریس است.

فرمتش هم تابلو هست:

for (i=0; i<n;i++)

      for (j=0; j<m; j++)

c[i][j]=a[i][j]+b[i][j];

 

دیگه برای امشب زیاد می شه. منم خستم. کتاب رو هم فراموش نکنید.

 


 
سه شنبه 4 بهمن ماه سال 1384
ادامه حلقه ها

سلام!

خوبید؟ با C چه می کنید؟مسئله هاتون رو حل کردین دیگه؟

این دفعه در مورد while و دستور if و switch.

حلقه while: این حلقه مثل حلقه for هست با این تفاوت که زمانی از این حلقه استفاده می کنیم که تکرار تعداد دستورها نامعین باشن.و نحوه کار این حلقه به این صورت هست که اول شرط جلوی while بررسی می شه اگه درست باشه دستورات حلقه اجرا می شه و دوباره کنترل به اول حلقه برمی گرده.

مثال: برنامه ای بنویسید که یه جمله از ورودی بخونه و تعداد کاراکترهای جمله رو بشمره و چاپ کنه.

حل: اینجا نمی دونیم چند بار باید حلقه تکرار شه چون نمی دونیم که جمله چندتا کاراکتر داره پس به جای for از while استفاده می کنیم.

Int n=0;

While(getche()!=’r’)

       n++;

printf(“ %d”,n);

حلقه do-while:

فرقش با while اینه که اول دستورات اجرا می شن بعد شرط جلوی while بررسی می شه. اگر شرط درست باشه دوباره دستورات جلوی do انجام می شه. پس حلقه do-while حتما یه بار اجرا می شه اما حلقه while ممکنه اصلا اجرا نشه.

مثال: برنامه ای که اعداد 0 تا 9 رو چاپ کنه.( یه بار با while می نویسیم یه بار با do-while)

حل با while:

Int n=0;

While (n<=9){

      Printf(“%d”, n)

      ++n;

حل با do-while:

Int n=0;

do printf(“%d”, n++);

while(n<=9);

فکر کنم دیگه فرقشو بدونید.

 

 

دستور if-else:

دستورش رو که می دونید چه شکلیه. اگه شرط درست باشه دستور اول رو انجام می ده و در غیر این صورت دستور بعدی رو اجرا می کنه.

مثالی برای این بخش لازم نمی بینم بنویسم چون سادست.

 

دستور switch: وقتی از این دستور استفاده می کنیم که if-elseها خیلی طولانی می شن. عبارتی که جلوی switch می یاد با حالت های مختلفی که جلوی caseهای زیر switch قرار دارن مقایسه می شه(فقط از نظر تساوی) وقتی که یه حالت مساوی پیدا شه دستورات مربوط به آن case اجرا می شه تا وقتی که به دستور break یا آخر switch برسه.

نکته: عبارت جلوی switch فقط می تونه صحیح یا کاراکتری باشه و جلوی switch نمی شه آرایه، رشته و اعشاری به کار برد.

با switch فقط می شه حالت تساوی رو بررسی کرد. برای حالت بزرگتر یا کوچکتر باید از if-elseهای پشت سر هم استفاده کنیم.نکته های دیگش رو هم تو کتاب صفحه 70 بخونید و اگه مثالش رو حل کنید دیگه یعنی کاملا دستور رو متوجه شدید.

مثال های کتاب فراموش نشه!

چند تا تمرین هم می ذارم که حل کنید اگه اشکال داشتید بگید جواب اونا رو هم بذارم.

تمرین:

1.برنامه ای که n عدد رو بخونه از ورودی و max،min اونا رو چاپ کنه.

2.برنامه ای که بزرگترین عدد سه رقمی موجود در سری فیبوناچی رو با استفاده از ساختار while و بار دیگر با استفاده از do-while محاسبه و چاپ کنه.

3.برنامه ای که خروجی زیر رو تولید کنه.

1

12

123

1234

12345

 

جواباشو خودتون هم می تونید قسمت comment بذارید.

 


   1      2    >>
برای عضویت در خبرنامه این وبلاگ نام کاربری خود در سیستم بلاگ اسکای را وارد کنید
نام کاربری
 
تعداد بازدیدکنندگان : 4405


Powered by BlogSky.com

عناوین آخرین یادداشت ها