خانه > آموزشی > دوره مقدماتی یادگیری زبان برنامه نویسی C

دوره مقدماتی یادگیری زبان برنامه نویسی C


مقدمه

زبان برنامه نویسی C یک زبان برنامه نویسی با هدف عمومی است که ارتباط نزدیکی با نحوه کار ماشین ها دارد. درک نحوه عملکرد حافظه کامپیوتر یکی از جنبه های مهم زبان برنامه نویسی C است. اگرچه زبان C را می توان «سخت یادگرفتن» دانست، اما زبان C در واقع یک زبان بسیار ساده و با قابلیت های بسیار قدرتمند است.
C یک زبان بسیار رایج است و زبان بسیاری از برنامه‌ها مانند ویندوز، مفسر پایتون، Git و بسیاری دیگر است.
C یک زبان کامپایل پذیر است - به این معنی که برای اجرای آن، کامپایلر (مثلاً GCC یا ویژوال استودیو) باید کدی را که ما نوشتیم گرفته، پردازش کند و سپس یک فایل اجرایی ایجاد کند. سپس این فایل می تواند اجرا شود و کاری را که ما برای برنامه در نظر گرفته ایم انجام می دهد.

معرفی

دوره پیش رو که از آن با نام دوره مقدماتی برنامه نویسی C یاد شده برای آشنایی با نحوه عملکرد زبان C ، استفاده از عملگرها، روش کامپایل و اجرا در محیط ویندوز با استفده از کامپایلر GCC و شروع به یادگیری خودآموز و سریع به صورت ترکیبی از مباحث تئوری و عملی اراعه شده.

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

سرفصل های این دوره برگرفته شده از سایت تعاملی آموزش زبان برنامه نویسی C به آدرس learn-c.org میباشد.

برای برنامه نویسی در این دوره از IDE استفاده نشده است و دستورات به صورت مستقیم با استفاده از خط فرمان به کامپایلر داده میشوند. این یک موضوع اختیاری است و در نحوه کد نویسی و نتیجه آن تغیری ایجاد نمیکند.

در این دوره از ویرایشگرهای کد سریع و قدرتمندی همچون Sublime Text و Visual Studio Code برای کد نویسی و ویرایش کد استفاده شده است که به صورت رایگان برای تمامی سیستم عامل ها قابل دریافت هستند.

از این دوره نمیتوان به صورت مرجع کاملی برای برنامه نویسی C استفاده کرد، و خودآموز باید در کنار مباحث این دوره برای تکمیل اطلاعات خود به یک کتاب یا مرجع کاملی از برنامه نویسی C رجوع کند.

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


1-

C نصب کامپایلر

0

Hello, World!

1

Variables and Types

2

Arrays

3

Multidimensional Arrays

4

Conditions

5

Strings

6

For loops

7

While loops

8

Functions

9

Static

تمرین

1: برنامه ای بنویسید که نام کاربر را سوال کند و به او سلام کند. پاسخ

#include<stdio.h>
int main()
{
    char name[64];
    puts("Enter your name:");
    scanf("%s",name);
    printf("Hello %s",name);
    return 0;
}

2: برنامه ای بنویسید که در زمان اجرا منتظر دریافت یک کاراکتر بماند و پس از دریافت کاراکتر بدون فشردن کلید Enter، برنامه بسته شود. پاسخ

#include<conio.h>
int main()
{
    getch();
    return 0;
}

3: یک ماشین حساب ساده بنویسید که بتواند 4 عمل +-*/ را بین دو عدد ورودی انجام دهد و نتیجه را نمایش دهد. به عنوان مثال با وارد کردن 5/2 و فشردن کلید Enter مقدار 2.500000 نشان داده شود. پاسخ

#include <stdio.h>
int main()
{
    float n1,n2,ans=0;
    char f;
    scanf("%f%c%f",&n1,&f,&n2);
    switch (f)
    {
        case '+':ans=n1+n2;break;
        case '-':ans=n1-n2;break;
        case '*':ans=n1*n2;break;
        case '/':ans=n1/n2;break;
    }
    printf("%f\r\n",ans);
    return 0;
}

4: یک برنامه بنویسید که یک عدد را به عنوان ورودی بگیرد و به همان تعداد ستاره * چاپ کند. پاسخ

#include <stdio.h>
int main()
{
    int n=0;
    printf("Enter Number:");
    scanf("%d",&n);
    while (n--)
        putchar('*');
    return 0;
}

5: برنامه ای بنویسید که اعداد و کاراکترها را به عنوان ورودی بگیرد و از بین آنها حروف الفبای انگلیسی را که به صورت بزرگ وارد شده اند بشمارد و در حافظه ذخیره کند، در صورتی که تعداد حروف بزرگ وارد شده به 10 برسد، آنها را نمایش دهد و برنامه خاتمه یابد. پاسخ

#include <stdio.h>
#include <conio.h>
int main()
{
    char ch,buffer[11];
    int index=0;
    while(index<10)
    {
        ch=getch();
        if(ch>='A'&&ch<='Z')
            buffer[index++]=ch;
    }
    buffer[10]='\0';
    puts(buffer);
    return 0;
}

6: برنامه ای بنویسید که جدول ضرب را چاپ کند. پاسخ

#include <stdio.h>
int main()
{
    int i,j;
    for(i=1;i<=10;i++)
    {
        for(j=1;j<=10;j++)
            printf("%2dx%-2d=%-2d ",j,i,i*j);
        printf("\r\n");
    }
    return 0;
}

7: برنامه ای بنویسید که با فشردن کلیدها، کد اسکی متناظر با کلیدها را چاپ کند و با فشردن کلید Esc برنامه خاتمه یابد. پاسخ

#include <stdio.h>
#include <conio.h>
int main()
{
    char ch;
    while (ch!=27)
    {
        ch=getch();
        printf("%d ",ch);
    }
    return 0;
}

8: برنامه ای بنویسید که با فشردن کلیدها، کد مورس متناظر با حروف و اعداد را نمایش دهد. پاسخ

#include <stdio.h>
#include <ctype.h>
#include <conio.h>
const char morse[][5]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
const char morseNum[][6]={"-----",".----","..---","...--","....-",".....","-....","--...","---..","----."};
int main()
{
    char ch;
    while(ch!=27)
    {
        ch=getch();
        ch=toupper(ch);
        if(ch>='0'&&ch<='9')printf("%s ",morseNum[ch-'0']);
        else if(ch>='A'&&ch<='Z')printf("%s ",morse[ch-'A']);
        if(ch==' ')printf("/ ");
        else if(ch=='\r')printf("\r\n");
    }
    return 0;
}

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

  • این سوال، یکی از چالش های برنامه نویسی IOElectro بوده است. برای مشاهده پاسخ ها اینجا کلید کنید.