آموزش برنامه نویسی به زبان ++C

این وبلاگ جهت آموزش برنامه نویسی به زبان ++C برای دانش آموزان دبیرستان فرزانگان ایجاد شده است.

سلام. 


چند تا نکته رو میخواستم بگم: 

1- من برای مدتی نمیتونم وبلاگ رو آپدیت کنم. شاید در آینده این کار رو ادامه بدم و مطالب پیچیده تری از برنامه نویسی رو به وبلاگ اضافه کنم. 

2- لطفا اگر در مورد مطلبی سوالی دارید اول خوب ویلاگ رو بگردید بعد سوال بپرسید. خیلی وقتها جواب سوالها واضحه و توی وبلاگ جلوی چشمتونه. 

3- اگر جواب سوالتون توی وبلاگ نبود و بازم مشکلی داشتید من میتونم توی زمان آزادم صرفا به شما کمک فکری کنم و نه بیشتر. 

4- لطفا لطفا لطفا از من برنامه ی سوال هاتون ( که اکثرا هم گذاشتید برای دقیقه نود) و پروژه هاتون رو نخواهید. بهتره بیشتر تلاش کنید و کمتر دنبال جواب آماده باشید. 

5- به هیچ وجه به کسی ایمیل نمیزنم. حتی اگه استادتون قرار باشه فردا ازتون جواب رو تحویل بگیره. 

6- در آخر هم بگم که نظرات باز هستند و اگر دوست داشتید میتونید از سایر افرادی که به وبلاگ سر میزنند سوالتون رو بپرسید. ( طیق آماری که از وبلاگ دارم بازدید کننده های زیادی داره) 



۵ سوال موافقین ۰ مخالفین ۰ ۱۳ دی ۹۳ ، ۰۹:۲۷
سارا نازاری

فقط سه تا سوال سر کلاس رو اینجا گذاشتم. 

فرصت نداشتم برای بیشترش. شاید باز هم فردا بشه پست بذارم اما بعید میدونم


فعلا کاچی به از هیچی ... 

موفق باشید امتحانتونو دخترا!


سوال 1 دایره ها

سوال 2 مثلث تو در تو

سوال سه مثلث سرپینسکی

۴۵ سوال موافقین ۲ مخالفین ۰ ۲۱ ارديبهشت ۹۲ ، ۲۳:۴۲
سارا نازاری

برای دریافت تکالیف نوروزی به صورت پی دی اف، اینجا کلیک کنید.

۱۶ سوال موافقین ۱ مخالفین ۰ ۰۳ فروردين ۹۲ ، ۱۸:۵۹
سارا نازاری

برای جستجوی یک عدد در یک آرایه، راحت ترین راه این است که عدد مورد نظر را با تمام خانه های موجود در آرایه مقایسه کنیم. 

اما اگر بخواهیم برنامه ای بهینه تر بنویسیم که سرعت بالاتری داشته باشد باید آرایه را ابتدا با یکی از روشهای مرتب سازی، مرتب کنیم.

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

ابتدا عدد مورد نظر یا f را با خانه ی وسطی آرایه مقایسه میکنیم. خانه ی وسطی آرایه از مجموع دو مقدار start و end بدست می آید. start یعنی آغاز بخشی از آرایه که میخواهیم در آن جستجو کنیم که در اول کار 0 است. end یعنی پایان بخشی از آرایه که میخواهیم در آن جستجو کنیم که در ابتدا n-1 است. ( یعنی در فاز اول جستجو میخواهیم همه ی آرایه را در نظر داشته باشیم) 

بعد از مقایسه با خانه ی وسطی اگر f دقیقا همان خانه بود که کار تمام است و فقط باید شماره ی خانه ی وسطی(mid) را نمایش دهیم. 

اما اگر F از مقدار وسطی بزرگتر بود باید تکه ی اول آرایه را بگردیم( چون ارایه ما از بزرگ به کوچک مرتب شده است) پس نقطه ی آغاز تغییری نمیکند. ( همان 0 است) اما نقطه ی پایان به قبل از mid کاهش پیدا میکند و برابر mid-1 می شود. 

اگر f از مقدار وسطی یا mid کوچکتر بود باید نیمه ی دوم آرایه را بگردیم که در آن صورت مقدار end یا پایان تغییری نمیکند و n-1 است. اما نقطه ی آغاز تغییر میکند و به خانه ی بعد از خانه ی وسطی  یا mid+1 افزایش پیدا میکند. 

۲۹ سوال موافقین ۱ مخالفین ۰ ۱۶ آذر ۹۱ ، ۱۸:۲۱
سارا نازاری

1-  فرض کنید در یک مســابقه ی ورزشی ده تیم مختـلف شرکت کرده باشند. پس از مسابقه میخواهیم بدانیم تـیم N ام ( 0<N<11)  در چه رتبه ای قرار گرفته است.

برای این کار شما برنامه­ای بنویسید که امتیازات را از ورودی گرفته و عدد N ( 0<N<11) را نیز از ورودی بگیرد و امتیاز تیم n را در خروجی چاپ کند. 


پاسخ 


#include <conio.h>
#include <iostream.h>

main()
{
    int n=10;
    int a[n];
    for(int i=0;i<9;i++)
        cin>>a[i];
        
    for(int i=1;i<n;i++)        
    {
        int j;
        int key=a[i];
        
        for(j=i-1;j>=0;j--)
        {
            if(key>a[j])
            {
                a[j+1]=a[j];
            }
            else
                break;
        }
        a[j+1]=key;
    }
    int f;
    cin>>f;
    cout<<a[f+1];
    getch();
    
}
۰ سوال موافقین ۱ مخالفین ۰ ۱۶ آذر ۹۱ ، ۱۸:۲۰
سارا نازاری

مثال 8- برنامه ای بنویسید که یک رشته از ورودی بگیرد و چک کند که همه ی خانه های آن بین حروف a تا z کوچک باشند، اگر این شرط برقرار بود عبارت معتبر و  اگر این گونه نباشد عبارت نامعتبر را نمایش دهد: 

#include <conio.h>
#include <iostream>
#include <string>

using namespace std;
int main()
{
    
    string a;
    cin>>a;
    int flag=1;
    int n=a.length();
    for(int i=0;i<n;i++) 
    {
        int asc=(int)a[i];
        if(asc>=97 && asc<=122)
            flag=0;
        else
        {   flag=1;
            break;
        }
    }
    if(flag==0)
        cout<<"Motabar";
    else
        cout<<"Namotabar";
    
    getch();
    return 0;
}
۹ سوال موافقین ۰ مخالفین ۰ ۱۶ آذر ۹۱ ، ۱۸:۱۹
سارا نازاری

تا کنون یاد گرفته ایم که با آرایه ها کار کنیم. اگر بخواهیم آرایه ای از کاراکترها بسازیم  و مثلا عبارت hello را در این آرایه بریزیم باید تک تک حروف را یکی یکی و با فاصله در آرایه بریزیم. منطقی به نظر نمی رسد که تنها راه دریافت عبارتی مثل hello دادن تک تک کاراکترها با فاصله باشد. 

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

برای تعریف String  باید از یکی از دو فرمت زیر استفاده کنیم. 


string name;

or

string name(10,'a');

۷ سوال موافقین ۱ مخالفین ۰ ۱۶ آذر ۹۱ ، ۱۸:۱۹
سارا نازاری

مثال 5- برنامه ای بنویسید که mو n را از ورودی بگیرد و آرایه ای به طول و عرض n و m بسازد و آن را از ورودی گرفته، سپس عناصر سطرهای آرایه را در شماره سطر ضرب کند و دوباره آن را چاپ کند: 


#include <conio.h>
#include <iostream.h>

int main()
{
    int a[10][5],b[10][5];
    for(int i=0;i<10;i++)   //daryaft araye
    {
        for(int j=0;j<5;j++)
        {
            cin>>a[i][j];
        }
    }
     for(int i=0;i<10;i++)   //zarb dar i
    {
        for(int j=0;j<5;j++)
        {
            b[i][j]=i*a[i][j];
        }
    }
     for(int i=0;i<10;i++)   //chape araye varun
    {
        for(int j=0;j<5;j++)
        {
            cout<<b[i][j]<<"\t";
        }
        cout<<endl;
    }
    getch();
    return 0;
}

۱۷ سوال موافقین ۰ مخالفین ۰ ۱۶ آذر ۹۱ ، ۱۸:۱۸
سارا نازاری

برای تعریف آرایه دو بعدی به صورت زیر عمل میکنیم:


ستون][سطر]اسم آرایه  نوع آرایه]; 

مثلا آرایه ی  a  از نوع عدد صحیح و دارای 10 سطر و 5 ستون می باشد. شماره سطرهای آن از 0 تا 9 و شماره ستونهای آن از 0 تا 4 می باشند. 

int a[10][5];

۸ سوال موافقین ۱ مخالفین ۰ ۱۶ آذر ۹۱ ، ۱۸:۱۷
سارا نازاری

فرض کنید که به شما آرایه ای بدهند و از شما بخواهند که بزرگترین عنصر این آرایه را در خروجی نمایش دهید. 

برای این کار برنامه ای خواهید نوشت که تنها عنصر ماکزیمم را به شما بدهد. 


حال فرض کنید که از شما بپرسند عنصر 5 ام این آرایه به ترتیب بزرگ به کوچک چیست؟ آن وقت چکار خواهید کرد؟


برای حل این قبیل مسائل باید کل آرایه را مرتب کنیم!


الگوریتمهای مختلفی تا امروز برای مرتب سازی آرایه ها ارائه شده است. اما از ساده ترین آنها می توان به سه نوع مرتب سازی زیر اشاره نمود:

1- مرتب سازی انتخابی یا selection sort

2- مرتب سازی درجی یا insertion sort

3- مرتب سازی حبابی یا bubble sort


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

۴۴ سوال موافقین ۱ مخالفین ۰ ۱۶ آذر ۹۱ ، ۱۸:۱۷
سارا نازاری