۵ مطلب با کلمه‌ی کلیدی «آموزش سی» ثبت شده است

تابع qsort برای مرتب کردن یک آرایه با الگوریتم مرتب‌سازی سریع در سی/سی‌پلاس‌پلاس

تابع qsort از کتاب‌خانه‌ی استاندارد(stdlib.h) از توابع مفید و البته استاندارد هست.این تابع با دادن آدرس آرایه، تعداد اعضا، اندازه‌ی هر عضو و یک تابع برای مقایسه‌ی دو عضو،آرایه  را بصورت صعودی مرتب میکند.

با اینکه این تابع استاندارد هست اما اجباری در پیاده‌سازی آن نیست، به این معنی که qsort ضرورتا همه‌جا(منظور از همه جا دقیقا همه‌جاست! این یعنی ابر‌رایانه‌ها،فبلت‌ها،رایانه‌های شخصی و همچنین میکروکنترلر‌ها مانند AVR و PIC را نیز حساب میکنیم) وجود ندارد.

void qsort(void *base, size_t nmemb, size_t size,
            int (*compar(const void *, const void *)))

ادامه مطلب...
مجوز مطالب و محتوا ۰۳ آبان ۹۷ ، ۱۶:۳۴ ۰ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده

چطور حجم یک پرونده را بدست بیاوریم؟ + کد پایتون + کد سی + کد پرل

اندی پیش به این فکر میکردم که چطور میتوانم حجم یک پرونده را بدست بیاورم و زیر کاپوت این توابع چه چیزی پنهان است.

برای بدست آوردن حجم یک پرونده، البته بدون توجه به فایل‌سیستم و سیستم‌عامل میتوانیم به این صورت عمل کنیم: اول پرونده را باز میکنیم، سپس اشاره‌گر پرونده را به آخرین بایت آن انتقال میدهیم(معمولا تابعی به اسم seek یا مشابه وجود دارد)، حالا مکان اشاره‌گر را نسبت به اول پرونده بدست می‌آوریم(معمولا تابعی به اسم tell وجود دارد). حجم پرونده را به بایت بدست آورده‌ایم.

ادامه مطلب...
مجوز مطالب و محتوا ۳۰ شهریور ۹۶ ، ۱۲:۳۱ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

یک مشاهده‌گر ساده فایل در فرمت شانزده‌شانزدهی(هکس) به زبان سی

این تکه کد ساده یک مشاهده گر ساده هست که تک تک بایت های فایل را داخل مبنای شانزده(Hex) نمایش میده.

// hexview.c
// Author: FarooqKZ
// It's free software under GPL3+ and comes WITHOUT ANY WARRENTY FROM MAIN AUTHOR
#include <stdio.h>

int main(int argc, char *argv[]){
    if (argc == 1 || !strcmp(argv[1], "-h")){
        printf("Usage: hexview file_path\n");
        return 0;
    }
    FILE *fs = fopen(argv[1], "r");
    long byte_number = 0;
    while(1){
        if ((++byte_number % 26) == 0) // goes to new line each 26 bytes
            printf("\n"); // you may remove this part and then use fold to split it into lines


        int t = getc(fs);
        if (t == EOF)
            break;

        printf("%.2X ", t);
    }
    printf("\n");
    return 0;
}

پیوند کد در گیت‌هاب گیست(برای دریافت به اینجا بروید)

مجوز مطالب و محتوا ۰۴ دی ۹۵ ، ۱۶:۱۸ ۰ نظر موافقین ۱ مخالفین ۰
فاروق کریمی زاده

کتاب آموزش زبان سی به زبان ساده

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


حجم: 1.42 مگابایت
مجوز مطالب و محتوا ۱۰ فروردين ۹۵ ، ۲۱:۰۰ ۵ نظر موافقین ۲ مخالفین ۰
فاروق کریمی زاده

رشته ها در سی - قسمت اول

این پست در حال بروز رسانی است.

رشته ها(Strings) مجموعه ای از کاراکتر ها هستند که برای نمایش پیغام ها، ذخیره اسامی و ... کاربرد دارند. این آموزش را میتوان در سی پلاس پلاس نیز استفاده کرد.

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

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

char ch = 'A';
ادامه مطلب...
مجوز مطالب و محتوا ۱۳ اسفند ۹۴ ، ۱۴:۲۴ ۴ نظر موافقین ۰ مخالفین ۰
فاروق کریمی زاده