یئنی بیز زادی اؤگرنیرکن، بعضا دایانیب دوٚشونمک گرکیر. دقیقا بو فصلدهکی آچیقلاماق ایستهدیگیمیز زاد دا ائله بودور: دایانیب و گئچمیش مطلبلر اوچون دوٚشونهجهییک، اؤزللیکله موتغیر و میقدارلار اوچون. داها بیلمک واقتی سیزین اوچون چاتدیغینا گؤره، نئچه ساییدا دا یئنی مفهوملاری دا آچیقلایاجاییق، اؤزللیکله 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 ترکیبی، کلمهنین سول ألیندن ۲۰ ساییدا کاراکتری ساغ أله دوغرو ساییب و سونراگی ایسترینگ ده ائله اورادان چاپ اولماغا باشلاییب.