Loading...

BTC Address to donate : [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

GEOIX عضو مبدع
  • شكراً: 1178
  • تم شكره 2259 مرة في 551 مشاركة

السلام عليكم و رحمة الله

لمن يريد أن يفكر خارج الصندوق و الاستفادة، هذه يمكن تسمّيها ترجمة بسيطة
لعينة من احدى المقالات في موقع كورا حول عمل تكرار لشئ معين
دون الحاجة لاستعمال دوال التكرار (without a loop, goto or recursion) بلغة السي C++
أغلب الدوال المستعملة هي لنظام التشغيل Linux كملاحظة.

1- استدعاء نظام الانذار (Alarm System Call)

كود PHP:
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <signal.h>
    
int i 0;
    
void sig_alarm_handler(int signal) {
        ++
i;
        
printf("%d\n"i);
        if(
100)
            
alarm(1);
        else
            exit(
0);
    }
    
int main() {
        
signal(SIGALRMsig_alarm_handler);
        
alarm(1);
        
int x;
        
scanf(" %d",&x);
        return 
0;
    } 
2- دالة القراءة و الكتابة على محتويات ملف fread ، fwrite

كود PHP:
    #include <stdlib.h>
    #include <stdio.h>
    
int main() {
        
FILEfd fopen("data.txt""r");
        
char buf[10000];
        
size_t n fread(bufsizeof(char), 10000fd);
        
fwrite(bufsizeof(char), nstdout);
        
fflush(stdout);
        
fclose(fd);
        return 
0;
    } 
3- باستعمال خارطة الذاكرة (Memory mapping a file)

كود PHP:
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <sys/mman.h>
    #include <fcntl.h>
    #include <unistd.h>
    
int main() {
        
int fd open("data.txt"O_RDONLY);
        
struct stat stat_data;
        
fstat(fd, &stat_data);
        
off_t file_size stat_data.st_size;
        
// Memory map the file
        
voidbaseaddr mmap(NULLfile_sizePROT_READMAP_PRIVATEfd0);
        
// Copy the memory mapped region to stdout
        
fwrite((char*)baseaddrsizeof(char), file_sizestdout);
        
fflush(stdout);
        
// Unmap the memory mapped region
        
munmap(baseaddrfile_size);
        
// Close the file
        
close(fd);
        return 
0;
    } 
4- القوالب القياسية للبرمجة الفوقية (The standard template metaprogram)

كود PHP:
    #include <stdio.h>
    
template<int N>
    
struct X X<N-1> {
        
X() { printf("%d\n"N); }
    };
    
template<>
    
struct X<0> {};
    
int main() {
        
X<100x;
        return 
0;
    } 
5- ثوابت المتغيرات و المصفوفات (static variable and an array)

كود PHP:
    #include <stdio.h>
    
struct X {
        static 
int i;
        
X() { ++iprintf("%d\n"i); }
    };
    
int X::0;
    
int main() {
        
X arr[100];
        return 
0;
    } 

توقيع
I'll be back soon

الوعي في العقول وليس في الأعمار ،فالأعمار مجرد عدّاد لأيامك.
14 أعضاء قالوا شكراً لـ GEOIX على المشاركة المفيدة:
GEOIX عضو مبدع
  • شكراً: 1178
  • تم شكره 2259 مرة في 551 مشاركة

يمكنكم رؤية المزيد :

https://www.quora.com/How-can-I-prin...o-or-recursion

توقيع
I'll be back soon

الوعي في العقول وليس في الأعمار ،فالأعمار مجرد عدّاد لأيامك.
4 أعضاء قالوا شكراً لـ GEOIX على المشاركة المفيدة:
GB47 عضو مبدع
  • شكراً: 314
  • تم شكره 552 مرة في 223 مشاركة

نكذب عليك اذا قتلك نفهم حاجة فالسي

الأعضاء الذين قالوا شكراً لـ GB47 على المشاركة المفيدة: