MENU ▽ بیلگی
آذربایجان تورکجه‌سینده بیلگی‌لر

  • آنا صفحه‌سی
  • فلسفه
  • کامپیوتر
  • بیزه گؤره
  • ؜۱۰-جو فصل: C دیلی‌نین ثابیت‌لری

    یئنی بیز زادی اؤگرنیرکن، بعضا دایانیب دوٚشونمک گر‌کیر. دقیقا بو فصلده‌کی آچیقلاماق ایسته‌دیگیمیز زاد دا ائله بودور: دایانیب و گئچمیش مطلب‌لر اوچون دوٚشونه‌جه‌ییک، اؤزللیک‌له موتغیر و میقدارلار اوچون. داها بیلمک واقتی سیزین اوچون چاتدیغینا گؤره، نئچه ساییدا دا یئنی مفهوملاری دا آچیقلایاجاییق،‌ اؤزللیک‌له C دیلینده یئنی پروقراملاماغا باشلامیش اولسانیز.

    بو بؤلومده ثابیت‌لری یارادیب و قوللانماغی‌نی سیزین اوچون آچیقلایاراق، printf فانکشنین یئر-ساخلایاجی‌لارینا (placeholder) گؤره ده آرتیق بیلگی‌لری پایلاشاجاییق.

    بیر ثابیت میقدار، موتغیر یوخسا یئیین انتیساب و میقدارلاما ایله فرقلی‌دیر و چوخراق پروقرامین بوٚتون قیسمت‌لریسینده دگیشیلمه‌ین بیر جهانی میقدار تکین‌دیر و ‎#define اؤن-ایشلمچی‌سی ایله تعریف اولونورلار.

    ثابیت‌لرین آدی نورمال اولاراق بوتون‌لوک‌له آلت-خط (underline) و بویوک حرف‌لردن تشکیل اولور و یالنیز بیر کلمه‌دن تشکیل اولاراق اونو آلت-خط ایله ده باشلاماق اولار.

    ایندی بو اؤن-ایشلمچی تعریف ائدن ثابیت میقداردان سونرا، کامپایلر اونون اوچون تعیین اولان میقداری بوتون یئرلره یایاجاق. بیر اؤرنک اولاراق، آشاغیداکی کود'دا version آدلی بیر ثابیت میقدار تعریف اولوب و ‎3 میقداری دا اونون اوچون ایختیصاص وئریلیب‌دیر.

    #define VERSION 3

    یاددا ساخلادیغینیز تکین، C پروقراملاما دیلینده‌کی اؤن-ایشلمچی‌لر (preprocessor directives)، بیانیه و دستورالعمل ساییلمایاراق، سمی-کلون ایله قورتارمیرلار.

    داها دوغروسو، اؤن-ایشلمچی‌نین اؤزل بیر بؤلومو اولمایانا قدر، بو سطرین سونونا سمی-کلون یازمامالیسینیز کی البته ده بو ایتیفاق ایله چوخ چوخ آز اوٚز-اوٚزه چیخا بیلرسینیز.

    ساده‌جه سمی-کلون یازمایین. بو قدر!

    آشاغیدا AUTHOR آدی ایله ثابیت بیر ایسترینگ تعریف ائتمیشیک و ایکی آیری ایسترینگ‌دن تشکیل اولان بیر ایسترینگ اوچون بیر اؤرنک اولا بیلر.

    #define AUTHOR "abbas mirza"

    آشاغیداکی کود'دا ‎120 میقداری توتان GAME_GRID تکین بیر ثابیت تعریف‌له‌میشیک کی ROWS و COLUMNS ثابیت‌لر ایله میقدار وئریلیب‌دیر.

    بونلارین میقداری کود'دا دگیشیلمز، یالنیز ثابیت تعریف اولان اؤن-ایشلمچی یئرینده تعیین اولارلار.

    #define ROWS 20
    #define COLUMNS 60
    #define GAME_GRID ROWS*COLUMNS

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

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define ROWS 10
    #define COLUMNS 10
    int main()
    {
    int row, column;
    srand((unsigned)time(NULL));
    for(row=0;row<10;row++)
    {
    for(column=0;column<10;column++)
    printf("%2d\t",rand() % 100);
    putchar('\n');
    }
    return(0);
    }
    Output Terminal
    28	20	17	24	53	76	71	87	16	22
    62	75	40	62	26	47	95	 5	92	62
    1	37	30	57	56	67	86	98	57	45
    2	86	17	71	10	71	99	81	10	15
    55	72	42	96	34	69	95	81	26	39
    43	27	28	74	36	85	93	23	35	 3
    68	89	89	38	60	51	 9	59	84	71
    27	39	43	69	87	77	90	34	10	16
    73	54	44	 2	80	32	39	73	55	74
    76	24	15	17	14	75	20	23	86	 4
    
    Process returned 0 (0x0)   execution time : 0.005 s
    Press ENTER to continue.
    

    یاخشی. ایندی قاباقکی ‎10 میقداری، ثابیت تعریف‌لریمیز ایله دگیشدیرک.

    آشاغیداکی کود ائله بونو یئرینه یئتیره‌جک:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define ROWS 10
    #define COLUMNS 10
    int main()
    {
    int row, column;
    srand((unsigned)time(NULL));
    for(row=0;row<ROWS;row++)
    {
    for(column=0;column<COLUMNS;column++)
    printf("%2d\t",rand() % 100);
    putchar('\n');
    }
    return(0);
    }
    Output Terminal
    39	17	98	85	45	32	21	 1	65	88
    58	 7	41	70	15	51	83	74	92	 8
    80	76	73	 6	89	42	70	86	59	12
    99	98	81	97	83	27	81	57	80	46
    97	39	53	38	 9	20	41	44	95	33
    53	27	62	78	33	 3	21	 3	90	32
    68	89	30	49	38	66	28	71	23	 9
    18	72	 0	23	10	 9	96	 3	 6	43
    88	11	70	50	89	 3	 6	62	59	96
    94	79	37	25	80	27	43	 9	98	18
    
    Process returned 0 (0x0)   execution time : 0.004 s
    Press ENTER to continue.

    گؤردویونوز تکین نتیجه ائله قاباقکی تکین اولوبدور. البته طبیعی کی رندوم عددلرین نه اولدوقلاری دگیشیله‌جک. ساده‌جه سطر و سوتون‌لار اوچون شماتیک گؤرونتو، قاباقکی پروقراما اوخشامالی‌دیر.

    ایندی داها راحات سوتون‌لار و سطرلرین ساییلارینی دگیشمک اولار.

    آشاغیداکی کود ایله ده بونو سینایاجاییق و ۲۰ ساییدا سطر و ۷ ساییدا سوتون اوچون ثابیت تعریف‌لریمیزی دگیشدیره‌جه‌ییک.

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define ROWS 20
    #define COLUMNS 7
    int main()
    {
    int row, column;
    srand((unsigned)time(NULL));
    for(row=0;row<ROWS;row++)
    {
    for(column=0;column<COLUMNS;column++)
    printf("%2d\t",rand() % 100);
    putchar('\n');
    }
    return(0);
    }
    Output Terminal
    87	81	62	 1	78	23	22	
    51	37	15	81	11	64	 3	
    67	99	70	53	38	44	58	
    74	85	52	 1	31	86	66	
    67	 0	 4	 6	33	18	 7	
    63	41	29	15	30	97	48	
    94	61	51	61	12	73	14	
    50	17	24	77	55	28	78	
    38	14	96	 5	66	 1	12	
     0	71	19	63	65	 1	30	
    95	98	78	41	11	81	 2	
    23	 7	68	25	24	45	 2	
    31	25	33	69	92	29	27	
    58	82	39	58	54	10	74	
    19	11	 4	66	61	35	 8	
    72	68	62	47	75	83	73	
    52	28	75	83	 5	 8	 5	
    97	90	32	56	72	71	66	
    78	33	40	97	45	97	64	
    58	32	24	83	 0	86	30	
    
    Process returned 0 (0x0)   execution time : 0.004 s
    Press ENTER to continue.
    

    بو ثابیت‌لر ایله داها لازیم دئییل بیر دگیشیک اوچون بوتون پروقرامین کود'لاری‌نی آختاراسیز.

    بئله‌لیک‌له واقت اوچون اتلافین قاباغین یاخشی آلماق اولار.

    #include <stdio.h>
    #define INPUT_MAX 64
    int main()
    {
    char input[INPUT_MAX];
    printf("Instructions: ");
    fgets(input,INPUT_MAX,stdin);
    puts("Thank you! Here are your instructions:");
    puts(input);
    return(0);
    }

    بو اوٚستده‌کی پروقرام، گئچمیش فصلده‌کی پروقرام‌لارین بیری‌نین دگیشیلمیشی‌دیر.

    ۲-جی سطر‌ده INPUT_MAX ثابیتی ‎64 میقداری ایله تعریف اولوبدور و ۷-جی سطرده‌کی fget فانکشنی ایله ده کاراکتری بافر'دن اوخونور.

    #include <stdio.h>
    int main()
    {
    float a;
    float b = 5.0;
    printf("Input a number: ");
    scanf("%f",&a);
    printf("%f / %f = %f\n",a,b,a/b);
    return(0);
    }

    کامپایل و ایجرا ائدین. بوراخیش آشاغیداکی تکین اولاجاق.

    Output Terminal
    Input a number: 7
    7.000000 / 5.000000 = 1.400000
    
    Process returned 0 (0x0)   execution time : 5.382 s
    Press ENTER to continue.
    

    یاخشی، اونوتماسانیز، قاباقجا دا بو گؤرونتو ایله بیراز سیخیشدیق.

    ایندی بو آرتیق صیفرلری پوزماق اوچون، printf فانکشن‌ده‌کی placeholder بؤلومونده، % و f کاراکترلرین آراسینا، ‎.1 یازاجاییق.

    آشاغیداکی کودا باخسانیز، داها آیدین باشا دوٚشه‌جکسینیز.

    #include <stdio.h>
    int main()
    {
    float a;
    float b = 5.0;
    printf("Input a number: ");
    scanf("%f",&a);
    printf("%.1f / %.1f = %.1f\n",a,b,a/b);
    return(0);
    }
    Output Terminal
    Input a number: 7
    7.0 / 5.0 = 1.4
    
    Process returned 0 (0x0)   execution time : 2.516 s
    Press ENTER to continue.
    

    قاباقجا دئدیگیمیز تکین، placeholder آراسیندا یازیلان عدد، ارقامین نئجه یازیلماسینی تعیین ائدیر.

    بوراداکی ‎.1 یازیلان عدد، مومیّزدن سونرا بیر رقم اعشاری تعیین ائدیب.

    ائله بوراداکی کود اوچون بو رقمی ‎.1 میقداردان ‎.3 میقدارا دگیشسک، خروجی آشاغیداکی تکین اولاجاق.

    Output Terminal
    Input a number: 7
    7.000 / 5.000 = 1.400
    
    Process returned 0 (0x0)   execution time : 2.772 s
    Press ENTER to continue.

    آشاغیداکی یئنی بیر میثالی ایزله‌یین:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define ROWS 15
    #define COLUMNS 7
    int main()
    {
    int row, column;
    srand((unsigned)time(NULL));
    for(row=0;row<ROWS;row++)
    {
    for(column=0;column<COLUMNS;column++)
    printf("%2d\t",rand() % 100);
    putchar('\n');
    }
    return(0);
    }

    ۱۳-جو سطرده‌کی placeholder قیسمته دیقّت ائدین. % و d آراسینا ‎2 یازیلیب.

    بو دا یعنی ۲ رقم ساغ ألدن ساییب و چاپ ائتسین.

    گلن صفحه‌ده‌کی بوراخیشین تک-رقم‌لی عددلره دیقّت ائدین:

    Output Terminal
    51	30	35	81	96	50	29	
     8	11	49	99	36	93	11	
    78	 9	33	72	37	56	89	
    59	45	77	16	 8	19	65	
    44	99	64	95	81	51	77	
    77	 1	 6	38	65	 8	89	
    53	 1	 0	32	11	86	56	
     0	42	97	59	87	26	28	
    48	98	93	92	97	57	39	
    78	61	68	 8	14	27	98	
    79	35	39	33	36	40	17	
    47	26	25	48	20	75	59	
    60	 1	87	 8	99	33	 0	
    48	42	39	79	 3	 8	87	
    18	35	37	49	70	76	82		
    
    Process returned 0 (0x0)   execution time : 0.012 s
    Press ENTER to continue.

    تک-رقم‌لی عددلره باخسانیز، قاباقکی پروقرامین ترسینه، ساغ ألدن دوٚزولوب‌لر و سول أل ایله بیر کاراکتر فاصیله آچیب‌لار.

    بو نوع فاصیله یئرلشدیرمه‌یی، ایسترینگ و اعشاری میقدارلار اوچون ده قوللانماق اولار.

    آشاغیداک کودا باخین:

    #include <stdio.h>
    int main()
    {
    char right[] = "right";
    char left[] = "left";
    printf("%20s\n",right);
    printf("%-20s\n",left);
    return(0);
    }

    بوراخیش صفحه‌سی ده آشاغیداکی تکین گؤرونه‌جک:

    Output Terminal
                   right
    left                
    
    Process returned 0 (0x0)   execution time : 0.003 s
    Press ENTER to continue.

    موحتشم.

    باخسانیز ‎%20s باعث اولوب کی ایسترینگین ساغ ألیندن ۲۰ کاراکتر فاصیله آچیب و right کلمه‌یی چاپ ائده. آنجاق left اوچون ‎%-20s یازیلسا دا بیر زاد باش وئرمه‌ییب.

    دوغروسو پرابلم یوخدور، ساده‌جه سطرین ایلک کاراکتریندن داها دالیا قاییتماق اولماز.

    ایندی اوٚستده‌کی کودو دگیشیب و سونرا نتیجه‌یی یئنیدن ایزله‌یین.

    یالنیز آشاغیدا یازیلان تکین، ۶-جی و ۷-جی سطرلری دگیشین و سونرا دا بوراخیش صفحه‌سینده‌کی چاپ اولموش نتیجه‌یی ایزله‌یین.

    printf("%-20s",left);
    printf("%s",right);
    Output Terminal
    left                right
    Process returned 0 (0x0)   execution time : 0.004 s
    Press ENTER to continue.

    گؤردویونوز تکین left ایسترینگی چاپ ائتمک اوچون یازدیغیمیز ‎%-20s ترکیبی، کلمه‌نین سول ألیندن ۲۰ ساییدا کاراکتری ساغ أله دوغرو ساییب و سونراگی ایسترینگ ده ائله اورادان چاپ اولماغا باشلاییب.