#include

mantık

139.
  • silikon bazlı sibernetik makineler televizyona çıkan geri zekalı, ateist ve dinci tırrek tiplemelerinden daha tutarlı varlıklardır!

    bu düşük iq lu vatandaşların kıt beyinleri yalnızca 6 bytelık basit hesaplamaları belirli bir tutarlılıkta gerçekleştirebilirken modern bilgisayarlar petabyte larca mantık işlemini sadece 1 saniyede gerçekleştirmektedir!
    https://galeri.uludagsozluk.com/r/2381169/+
    #include <stdio.h>

    // Tüm canlılar ölümlüdür (genel kural)
    int olumlu_mu(int canli) {
    return 1; // Canlıysa, ölümlüdür (1: Evet)
    }

    int main() {
    int ahmet_canli = 1; // Ahmet bir canlıdır (1)

    // Tümdengelimle:
    // Eğer Ahmet bir canlıysa, o zaman Ahmet ölümlüdür.
    if (ahmet_canli) { // Ahmet canlı
    printf("Ahmet ölümlüdür.\n"); // Sonuç tümdengelimle çıkarıldı
    }

    return 0;
    }
    0 ...
  • mantık

    137.
  • tüm x86_64 mimarili amd cpu larda intel 8086 dan beri, mantıksal işlemleri gerçekleştirmek üzere tasarlanmış aritmetik mantık birimleri bulunmaktadır.

    bakınız, alu!

    gcc derleyicimiz, bu kaynak kodunu doğrudan registerlar üzerinde çalışan komut setleriyle obje dosyasına, ardından çalıştırılabilir makine diline çevirirken, ilgili mantık işlemleri de alu ya iletiliyor!

    bu sayede tümdengelime özgü milyonlarca akıl yürütme işlemini matematiğe indirgeyebiliyor ve trilyonlarca mantıksal hesaplama yapabiliyoruz!

    #include <iostream>

    int main() {
    // Sabit değerlerle değişken tanımları
    int ahmetYas = 50; // Ahmet'in yaşı
    int elifYas = 5; // Elif'in yaşı
    bool savasCikti = true; // Savaşın çıktığı bilgisi
    bool elifOldu = true; // Elif'in öldüğü bilgisi
    bool havaKapali;

    // Hava durumu mantığı (Hava kapalı ancak ve ancak savaş çıktı ve Elif öldü)
    havaKapali = savasCikti && elifOldu;

    // Yaş doğrulaması
    if (elifYas == ahmetYas / 5) {
    std::cout << "Yaşlar doğru." << std::endl;
    } else {
    std::cout << "Yaşlar doğru değil!" << std::endl;
    }

    // Elif'in durumu ve sonuç
    if (havaKapali) {
    std::cout << "Hava kapalı. Bu durumda Elif ölmüştür." << std::endl;
    } else {
    std::cout << "Elif hayatta." << std::endl;
    }

    return 0;
    }
    0 ...
  • assembly

    39.
  • iki integeri toplayan basit bir kaynak kodu düşünün:

    #include <stdio.h>

    int main() {
    int sayi1 = 34343;
    int sayi2 = 823482;
    int toplam = sayi1 + sayi2;

    printf("Toplam: %d\n", toplam);

    return 0;
    }

    ilk aşamada Preprocessing de, #include <stdio.h> ifadesiyle belirttiğimiz stio.h (input output header ı başlığı ) uzantılı dosya bu kaynak kodun içine entegre edilir.
    https://galeri.uludagsozluk.com/r/2381135/+

    önişleme safhasından geçen kod, assembly edilerek obje dosyasına dönüştürülür.

    .file "program.c"
    .text
    .section .rodata
    .LC0:
    .string "Toplam: %d\n"
    .text
    .globl main
    .type main, @function
    main:
    .LFB0:
    .cfi_startproc
    endbr64
    pushq %rbp
    .cfi_def_cfa_offset 16
    .cfi_offset 6, -16
    movq %rsp, %rbp
    .cfi_def_cfa_register 6
    subq $16, %rsp
    movl $34343, -12(%rbp)
    movl $823482, -8(%rbp)
    movl -12(%rbp), %edx
    movl -8(%rbp), %eax
    addl %edx, %eax
    movl %eax, -4(%rbp)
    movl -4(%rbp), %eax
    movl %eax, %esi
    leaq .LC0(%rip), %rax
    movq %rax, %rdi
    movl $0, %eax
    call printf@PLT
    movl $0, %eax
    leave
    .cfi_def_cfa 7, 8
    ret
    .cfi_endproc
    .LFE0:
    .size main, .-main
    .ident "GCC: (Ubuntu 13.2.0-23ubuntu4) 13.2.0"
    .section .note.GNU-stack,"",@progbits
    .section .note.gnu.property,"a"
    .align 8
    .long 1f - 0f
    .long 4f - 1f
    .long 5
    0:
    .string "GNU"
    1:
    .align 8
    .long 0xc0000002
    .long 3f - 2f
    2:
    .long 0x3
    3:
    .align 8
    4:

    bu programın düşük ve yüksek voltaj değerleriyle elektrik sinyallerine dönüştürülmeden önceki son halidir.
    0 ...
  • insan ömrünü 1 saniyeye sığdıran makina

    2.
  • meğerse bu da güncel hızı sunmayan bir programmış! çoklu iş parçacığıyla 1 saniyede 1 den 50 milyara kadar olan tüm sayıları artışık biçimde saydırdım! 50 tane adam öldü gitti yani! en iyi ihtimali varsayıp 25 diyelim! çift threadde, tek çekirdekte 10 milyar!

    https://galeri.uludagsozluk.com/r/2381024/+

    buyrun kaynak kod:
    #include <stdio.h>
    #include <pthread.h>
    #include <sys/time.h>

    #define MAX_COUNT 50000000000LL // long long int türü için LL ekledik
    #define THREAD_COUNT 24 // 24 çekirdek için iş parçacığı sayısı

    // işlem yapılacak fonksiyon
    void* count_numbers(void* arg) {
    long long start = *((long long*)arg);
    long long end = start + (MAX_COUNT / THREAD_COUNT);

    for (long long i = start; i < end; i++) {
    // Her sayıyı yazdırmıyoruz çünkü çok büyük veri olur, ancak isterseniz yazdırabilirsiniz
    // printf("%lld\n", i);
    }

    return NULL;
    }

    int main() {
    struct timeval start_time, end_time;
    double elapsed_time;

    pthread_t threads[THREAD_COUNT];
    long long start_values[THREAD_COUNT];

    // Başlangıç zamanını al
    gettimeofday(&start_time, NULL);

    // iş parçacıklarını başlat
    for (int i = 0; i < THREAD_COUNT; i++) {
    start_values[i] = (MAX_COUNT / THREAD_COUNT) * i; // Her iş parçacığına başlangıç noktası
    pthread_create(&threads[i], NULL, count_numbers, (void*)&start_values[i]);
    }

    // iş parçacıklarının bitmesini bekle
    for (int i = 0; i < THREAD_COUNT; i++) {
    pthread_join(threads[i], NULL);
    }

    // Bitiş zamanını al
    gettimeofday(&end_time, NULL);

    // Geçen süreyi hesapla
    elapsed_time = (end_time.tv_sec - start_time.tv_sec) + (end_time.tv_usec - start_time.tv_usec) / 1000000.0;

    // Sonucu yazdır
    printf("1'den %lld'ye kadar sayma işlemi %.6f saniye sürdü.\n", MAX_COUNT, elapsed_time);

    return 0;
    }
    0 ...
  • ilk 100 milyar sayıda kaç asal var

    4.
  • intel core i3 (dual core) kullananlar sakın denemesin. thread count kısmında 24 yerine 2 yazıp, bekleyin! işlem belki 2025 e tamamlanır!

    #include <iostream>
    #include <cmath>
    #include <omp.h>
    #include <gmp.h>

    #define LIMIT 100000000000ULL // ilk 100 milyar sayı
    #define THREAD_COUNT 24 // 24 iş parçacığı kullanımı

    // GMP kullanarak asal sayı kontrol fonksiyonu
    bool is_prime_gmp(unsigned long long num) {
    mpz_t n;
    mpz_init_set_ui(n, num);
    bool result = mpz_probab_prime_p(n, 15) > 0; // GMP'nin asal kontrol fonksiyonu
    mpz_clear(n);
    return result;
    }

    int main() {
    unsigned long long prime_count = 0;

    // OpenMP ile paralel döngü
    #pragma omp parallel for num_threads(THREAD_COUNT) reduction(+:prime_count)
    for (unsigned long long i = 2; i <= LIMIT; i++) {
    if (is_prime_gmp(i)) {
    prime_count++;
    }
    }

    std::cout << "ilk " << LIMIT << " sayıda " << prime_count << " asal sayı bulunmaktadır." << std::endl;
    return 0;
    }
    0 ...
  • sadece kendi ai modelinizle yapabileceğiniz şeyler

    4.
  • https://galeri.uludagsozluk.com/r/2380421/+
    Bunun için C dilinde bir örnek kod yazabiliriz. Ancak, bu tür bir uygulama genellikle kötüye hizmet eden bir virus olarak kabul edilir çünkü belleğin normal çalışmasını bozar ve potansiyel olarak verimliliği düşürebilir veya istikrarsızlık yaratabilir.

    Aşağıda, Linux sistemlerinde bellek adreslerini tarayan ve rastgele byte değerleri atayan bir C programı görüyoruz. Ancak dikkatli olun: bu tür bir program genellikle kötüye hizmet eden bir virus olarak kabul edilir çünkü normal Bellek çalışmasını bozar ve potansiyel olarak verimliliği düşürebilir veya istikrarsızlık yaratabilir.

    `c
    #include <fcntl.h>
    #include <stdio.h>
    #include <unistd.h>

    int main()
    {
    int bytesRead = 0;

    while(1)
    {
    // /dev/mem kullanarak tüm bellek adresini tarayalım
    int fd = open("/dev/mem", O_RDWR);

    for(int i=0; i<getpagesize(); i+=4)
    {
    lseek(fd, i, SEEK_SET);

    // 32 bitlik bir rastgele sayı okuyun ve atayın
    int value = (rand() % (INT_MAX + 1)) - INT_MAX/2;

    write(fd, &value, sizeof(int));
    }

    close(fd);

    usleep(10); // Bu döngüyü biraz yavaşlatır
    }
    }
    `

    Bu program, Linux sistemdeki /dev/mem dosyasına erişerek tüm bellek adreslerini tarar ve rastgele 4 byte (32 bit) değerler atar. Ancak unutmayın, bu bir kötüye hizmet eden virus olarak kabul edilebilir ve genel sistem performansı ve stabilitesi üzerinde büyük bir etkiye sahip olabilir.
    0 ...
  • sadece kendi ai modelinizle yapabileceğiniz şeyler

    3.
  • iç içe sonsuz sayıda klasör oluşturan c kodu:

    #include <stdio.h>
    #include <stdlib.h>

    // Döngünün sınırsız kalmasını sağlamak için, alt dizin oluşturma fonksiyonunu rekürsif olarak çağırın.
    void recursive_create_directory(char* path){
    mkdir(path);

    for(int i = 0; ; ++i){ // Sonsuz bir döngü oluşturarak, alt dizinleri sınırsız miktarda oluşturabiliriz.
    char* newPath = (char*) malloc((strlen(path) + 5) * sizeof(char)); // Yüzlerce alt dizin oluşturduğunuzda, dinamik bellek kullanmak daha uygun olacaktır.

    sprintf(newPath, "%s/%d", path, i);

    recursive_create_directory(newPath); // Alt dizini oluşturan fonksiyonu rekürsif olarak çağırıyoruz. Her alt dizin için kendiliğinden kendi alt dizinlerini oluşturur.
    }
    }

    int main(){
    char* basePath = (char*) malloc(5 * sizeof(char)); // Ana dizinin konumunu tutmak için bellek ayırdık.

    sprintf(basePath, "root");

    recursive_create_directory(basePath);

    return 0;
    }
    0 ...
  • 1 saniyede 10 milyon basamaklı iki sayıyı çarpmak

    2.
  • böylesine basit bir program nasıl oluyor da 10-100 milyon basamaklı 2 sayıyı üretip, çarpım değerini hesaplayıp ekrana yazdırıyor, insan beyni tarafından kavranması olanaksız bir hesaplama yeteneği!
    #include <stdio.h>
    #include <gmp.h>
    #include <stdlib.h>
    #include <time.h>

    int main() {
    // GMP değişkenlerini tanımla
    mpz_t num1, num2, result;
    mpz_init(num1);
    mpz_init(num2);
    mpz_init(result);

    // Rastgele sayı üretimi için bir durum oluştur
    gmp_randstate_t state;
    gmp_randinit_mt(state); // Mersenne Twister yöntemi
    gmp_randseed_ui(state, time(NULL)); // Zamanı seed olarak kullan

    // 100 basamaklı iki rastgele sayı üret
    mpz_urandomb(num1, state, 10000000 * 3.32); // 3.32 yaklaşık olarak log10(2)'dir
    mpz_urandomb(num2, state, 10000000 * 3.32);

    // iki sayıyı çarp
    mpz_mul(result, num1, num2);

    // Sonuçları yazdır
    gmp_printf("Sayı 1: %Zd\n", num1);
    gmp_printf("Sayı 2: %Zd\n", num2);
    gmp_printf("Çarpım: %Zd\n", result);

    // Belleği temizle
    mpz_clear(num1);
    mpz_clear(num2);
    mpz_clear(result);
    gmp_randclear(state);

    return 0;
    }
    0 ...
  • 10 bin basamaklı iki sayıyı pi ile çarpmak

    1.
  • imkansız gibi görünse de c ve gmp kütüphanesiyle 1 saniyeninizi almayacak işlem. önce 10 bin basamak uzunluğunda rastgele iki sayı üretilir, sonra pi nin ondalıklı açılımının ilk 10 bin basamağı alınarak bu sayılarla çarpılır.

    kaynak kodu çözümden daha kısa!
    #include <stdio.h>
    #include <gmp.h>
    #include <stdlib.h>
    #include <time.h>

    int main() {
    // GMP değişkenlerini tanımla
    mpz_t num1, num2, result;
    mpz_init(num1);
    mpz_init(num2);
    mpz_init(result);

    // Rastgele sayı üretimi için bir durum oluştur
    gmp_randstate_t state;
    gmp_randinit_mt(state); // Mersenne Twister yöntemi
    gmp_randseed_ui(state, time(NULL)); // Zamanı seed olarak kullan

    // 100 basamaklı iki rastgele sayı üret
    mpz_urandomb(num1, state, 10000 * 3.32); // 3.32 yaklaşık olarak log10(2)'dir
    mpz_urandomb(num2, state, 10000 * 3.32);

    // iki sayıyı çarp
    mpz_mul(result, num1, num2);

    // Sonuçları yazdır
    gmp_printf("Sayı 1: %Zd\n", num1);
    gmp_printf("Sayı 2: %Zd\n", num2);
    gmp_printf("Çarpım: %Zd\n", result);

    // Belleği temizle
    mpz_clear(num1);
    mpz_clear(num2);
    mpz_clear(result);
    gmp_randclear(state);

    return 0;
    }

    kratertepesi@msi:~/Masaüstü/Programlar$ ./program
    Sayı 1: 3113182150193428271589174701713492102945859884473295876787276034693145944936087662550732647645890420912158780775362812688054333269233438319254462672913484210762738480231430237947418115367061786077142172540997312084880747385682943324278609671350926723656001752970652421883428562224809846482244500619810427584894196127211532878326115031807567643792645656623337713178200909201135755002746724256677147235390620152517799116235505248182799248358310069433763289824603729407157934976511117425794669147488390412401473905913958341317633464906330144313145689133806982285110325459004401586701447874914478867617979314122789625983916456418845439533692271768407947817472315266226094500100340806887713251494981400742024241924365522766299582024560062762138813191085596264794148096057184704233983096606680131025571260954467434198018324443818729398810451586931919813882655038979658479406328721531275829716176329550902148303311571184866122956036170032366496965602474879439912330053698259644890956368622010623113597064260763016239134198163027479363200824997875657960656109650364280019526627541224822057244518516809356502036234696228239405714724775122579451703233072993622498878385269338874727628820392343501653057880654231882771162369367280848798951764020930019294607431431971363986895244860829831657571918501014283648524969750281575641767665926483036797723853375268360807440382710474261367098746121368501464228621701054857181255634536857753098089643990689145082608869269574094230603728740028411468825523138156315000901016564471840057156572369390166666755846018380174960700193923746694274128773963901077225088484916342736621939539758127378736185190789092292689992860785204496798167037459463721918080126945937881045791558580020181893393053464658206196167329697704743457525250825917723296245102523176083182992572318622279910353613352432374407395428393390091020693190502802857689928336252665521621802778195097216015349690651210416881981495262800121941382566662748536394610392558047774923358929479689633789120146650690888207127042280365455790659734787891036246287083626905423102206423999334020970753780141654199271228749720087214085922567818222244334954261171816795392349389256823219545182231328282560318414562550602012737809044434695783125865811441443502881901134381094172881657339572762788334652740853351538407648951935433331968796332637088374849485277878673648790095175620758828217523435965646955033845541593868077987411470277778376135201154004205351527127214786278783949504410213577528557865166447203441746080302587859577513157936285344485106100397437592778162029755107298804638274124071975472304042183963664537580879897195450056666563659632557686413220077714442047880817700513681380831704956380980398213132800323775619635360324283954955160291303462896956535367841036832458133521639428169549057850190394626760542698291718189590236462161483797215582922689383925796112698558568426973992059336979749176405566580602817231594273177485646191682055392319186484651130255744860615812463612198794597526994051805345523476535268303867864321913803305680677026079588109170410943470683358779098351274657506033769438044784932801611304146459715181364446178134332327935099639996892330715365636803897075974941402534034217437812925013923321268327531248578959636762136145352714327153157666750850972876989488153296809392051576350376607776463470971693291297197724247659215808642058641788692329780324601756848370454057059549961397483408342396220605365647042075808439969441327322192145887001651695641762944116467145194061978567558054990823082155545117301268713990284574916040883570684898156187835443691524849473740133743838616454224533552557766703829226142602927885931777291349811012373848272717332499561569837438198799154968787898345277627908355663673262242321800497943292106184013385099376029667812205908111694993532924623962503582479941839836264450155696502959065755228330286788760951092153825037617943464050626538031033283302034517691442172302174712946656016427344423884874755424872665369516206402497925991873427513658944307899104943631955155322693943795020288135586438167855984768111642762334141392474957949520394064504705196455991117301221296333145681337896317274133720130654122201879581385129528757179453052119167132760741926464814144229391596229852016029530182887005614868912643935753862386592562483545719959215006403324585419738023487503744362262062546783058383296374063738521838691151745587934424402120902770884420719561483874746924490148137454213354170821274294831509452615183274986624831289175788536041625669829573925701883876847600998054105356637294796854287134789347820220935463424997946641811224145985659695034797125592657592237087471921265396321673262084025419938599863682063789724378595930385565750432838194117658786041505513101920234721243841952013607223169492813474254320729079490097534089784364525196041303774845498900379707848869269129999784016334585734286663252127453327835867240775065586921564029776011052265899430035380081692268985897078705316139955993529210026921146864507568120975938351052992174986602428832250652159227853719159010424141711092538468492014182526290590824669487394752465722753276240052799427390886727223061191831926003924783702964413849678788554800544235102743683582599333100148622423031601714469734685292324267307392110018221787133952565108925398360150580181372630942679234514040251495141147904855686349651688008545092091800086699381875878786805370550036542898897915624222267815885975594265896812730120074296908939142820292840647106658992216875627424925319868875172289040297306535051305972428160706836394519825311826564868725470585003769131952166682549869646204409242067585170192581902679060379749097515191394300478064874903580139457823998724728248516655687394770576461133494017117558311271680819474750311950039322333781934647974044860211023927909558620916113403260790492062054515936175773573554188901184946056183834469965342016296206135752252828773163296544134960884188166383578398813511689630804430917242687267203131564109145019224372423229955274635598158139680030299140355214311129285564609107376933469686625462846303574101681078326893238936442656468449754644932225155275368709048620954646121076671102062282695906574125160433800344446690281462746761583985908300161164475936230000665378700420128740745959351506731490583774400914088894549366192999509976651512451539324490017141835171995113993389999122984903897824033673564697564092063422554300603321799033625576364021612452755759427012790922750451026281066529939043535564596714055265295476468100868494907477427774572873152341323491842857422646601714941498977692238960621626132351407548944678879454963516094598160496285687029094856381707130645696133766180151492448700534661127204566987224844578569732385016247419626644265888686269175246421579907023996800397067002450490389184423484814251803490245501004221154641079032993787407328238301526986315914527069435169433531196177586004122396524570124896937503229001624370864228749624813321036165382639793698497663363740669352106702962090268722340075048226878885821950457519196157189550058888386892510213565078097407571498018035962976184055168895973871272499305087038761482660013976269919665797820723652623823248461771123613316827048492380342383693890686281151735846834909333869853471645296202668134002422624621860660562845629321562044933303931643538946312480829240931942352634551416548757729877205847342726275483406496975497193836798604132394907359473847411408189599068174112922811554334148919076549637920112984213821125704284297183530938427478735215650977411182229818188228990183042042815009568983164626868065622901352038017258130593057909093784235358730710337012378164921999706498061737295544732827309904657806138455279916902949657486007072884905902244987955436788557685706107259487150184277035448209657321793613942140837621456988426367805057745086918713990010007979921660091202429795361561026067819568610882776196829572233051317581363142015940523095580904464851490167651922325388178083922597012087755026390173701772949028286773853349705932743467926709802585915223958167289975070603528425695305707916060131018872978456232910569026371399292330123608860843099884156509802482688249403206332015161907662552194774458409618806336486262998151665871722214941151264640209597010274235440621298262872882421374392390142356208609200186707244753866395071171026551255387019992376193060431428120935102370287035187690619527999711354963550523601652740471649893092588605688616195592507018819857040979044304774558569868689806858980214991230349832604777277617888048173041116374879038964294376550062997704097520429420461225804769877508349522699452408376800894083647459855067423649793198977736829681054023221330197297628864761093346819446885928113459372452269477129852902853189645395204560271127410707240784565846785207418214003726166549391772761045434566927620412665966681501877117787740036620694500816870836947357227096966695250759345103863945035528256870864394745720362737276596703421989269534517125927828354400474616376582400680165202619251300168719833368553015010021088716420537659761248331148543345608476802934674643820422049298328176420507858553979807579600965121444282416253399388710197104366051621280640049421847863091604048512047356632436792774593421071920230705456408966698692152827104019368314322072929824343528764300042304469333582470205768582693959907017121675441401658306808439692059030795266005939357119774716356701147555611240764775271266364953268332930802400586605433863835339215016256870733283255263875875099258816929383207026613511374130206552107022059882503859074978304993005306887711498164709847423913925883225239104508129854404778164521197222318233460328076745600539902071529880966050798687752720515992434885364366015384596890505575483767618920667129154377472385095576643995664502728769060720042376787847277502635213524761518090384501878984087188840791736361068209546710335023404139724849684643910928936370669754303171887858122175954957129338451051124295774734164537992184657540216370635751205247027733685519669931072528854756441310885595489886964914826343809097050703193643976420437307595779741902201047
    Sayı 2: 13282883644929917935735952522800810388229816540953538052846091669941145312543385374850018201332034018237630603444989224046650293712931563979831251505924999652764086244947431852627583629609974308147633150626585104794450547491969049186517491480875154871170226620217567185112977378813555646227629387710376355420495275591232663081362286872058677826472958701172703842371083978134627949950826727704689149176322476881183570917433228211477704536741854514205187663022070831302663131109670965821840708737341868704605719190492456946642886876324220287093146063633092379729650902094428475224035365904431698927253152409047973413255782603425651235731922550795758999886770318857165186450447186234543919215297968979727957862727741093193227741529975621131054503691565373987313386702262817517405203433443417976600877161030459356982452409051054710814724690769876671465463946100117541710246803086206284043969658086193068380616126462467366905307848234356162113958131039320001687013553285691279204775133522941657572234703141838533048695239570308114419790423378814902816005645834141348516972475514823462255278834895258742797214344221846836447261080809988748499708288718198060375535625259220918034193620059596560764172944840444174795114035137565210473633284935601217633025768030368948289483714278066223339211199314665561341172455878955036210719549474563793357894766466214408104402196242895710411321925844480440154352820997647415737457337341413562027848244266993167864246094686224438720167501836300424554221406250307715848470985489989208494849790862903789859902075260929877867766229378455920130514101560095744786792162801379376131536027079376437196793701353355975107596035404421542868004993159303804792666058799835334998148169056124319897512887703727985756586928109028736842801427230697603543213728170931227842595083303575825772250035407795610636170582137055140429741407751373651157797112406059124631241857072796209065599024991753606845319398128880177498755872034444721899767403027338612306594617566463262613189526632954617125861926521562891554839093011597394091726708402307086625582379594415969690200766656748990006849786466180354943788318628328846918764813630038885749972235165875889541948320516635399019855560393862205819137549286298533093922101866593610719125395932029667683887032849016863505535178546738892535961664778697594570655943410102587875334065151816688815685118378906134724694339681861332153133000486084271455833636453299133093910461642875631127140985840882523598369876462275835845890302589455163025541696508135117279275276176319671071364556470491869936265118318303735437854547199092913860478134450232609044239585403979855458602133941485277490084009256342627870425825942983825900488032380567623784913272220035418697583256721550903484676385414761308863418573160064030368469661186442830978362445336197854064979480032356301332155433044651930458837993499499097712132192990142769709614891461869164103535290183248900397264094849571727746547412289432578807371172300293596114235311441998063343952593967508073448886384728136841029289906735000534074195406200728206401174209714152598024974343327654368192194112052130456085770334206520311015103180883168688917043073896894793903402924634448880543071196606104829418066896179484869164531922425697062929733419446967726609829624693122892843111829492793825132530555935813896560854397496240254185038722259752299780457080836616592825534563526013402108510086911989769730037050133905310257107460009041154576332001211345933679340307081425052060608015075908522472374911985052581710368336233405107351539166376597817200369497741712315798069162497723669791342656359416786617861045385086650616007603228743267774402504229955728629350659983545404708578292613366405814237535327187340560883764099287872438231572223465071569264405372277059276457998818193698366911153690808701896702041366520145355453303871339353151093010147270363878222214655155143117228792821035283783080652721243436077256492365701279411348919849027034681820641908388221333623454193863763646185341555358509789095208943623786383076995654250769873381883301479467582664037320101750664334809535402541559414504580244568953676984780676153760889656716352437334863224676203619743542714819329926099913005751031481623416607899383363960080883842690127674767986758335977851879752620630661757292834829031146741997263520821187204805368541758569299327048942264579536857719286204290816118714367432783876070446361331010099361882374777927284208945130220150462851226996952720289941432200088647581343639209483023879404522173491214780906710865433151718774283773293055537499836289465120695161274714403452812773248428685111530652125009150466601155188689052946044663194771099982140948049019716070660755263391589328561895594761473466974065285915185899546042882038299933578768724543236895482319239603553047847617299231797365611910067152152085686162736020232134704127456119546039617910102260955708701365145466302961527924814853159091995455885689426840527623301929385138911733391929031125578304841408434420871304032651290946267983463399682342841572480035160568386193248706902586377083913659227069829100822712232727841767148889614804632425021694667246098461618553584517263677202704432211476089441222884605682834856819870932099131142668645926747308642826086028932097244532410964093259519554007943031608956076444565454658557073667233613536078380577749417560701168296051350831660553964220156317142246549898533236060844653984014827854246883922558263961967973523406199934815322403929206072083336551873331011769972659515453671502638733362792748361354511604481517025086400141441818150048567729602436137283785530009655222920463592371203238329074619210896247572064476343806855983705953731493424455569857726579063248448692193499556328138224218586575211248635253350666328583348811918432089227148317955408845073754311453198338770240177725473724997019720872355841110236087640925344313613105543545327634250229036921545946498052196159367062181380051170829060969588471441690362417310592717555668081027046427901422276838861780898474133331557875428036244148134277635374304704095330256131296929529946743271866164068126301073314526752887202893629016971099751648960465590640862642537281872920867218252511511947230967629953243586983954466916460437133437980496955567629510236177910884699427095797931333821409840614039349509714316728429168559195289501747511895429032449635928261303334281084618063973080774872795304678052791136743349401027143339350212060197720732030721920612935270287105240048982604519545516813610840897027610185113367030050757188268469029595927316928419503818508636063858454469916072649913131423613278037743779192502360510348610354076813822160886957717112786340172960434122007358251832784653668298595602249711525857189176234134994384473956867559871149213190494368294133589861638167236112834855783176117588810748389218345647981472381800666578752649312481951800356266644877048529288447107364384863138733543289231020678484680484009814602745094719793512464873736742832528451625121428276411703518219848715634450987600270863832092428318425998085387456872301621213059279302344736406394665807201537436235223153892310701665287326926131201006211269551396172575219319188020840213717556166480983410846336836680159933917593174704951667916252392092836989044482430181374760642475685287092268855929393249563033645053126785199450351797882999843513692666454915990325631611185382814544132553154779977658495435993189304797499441746709090746557622289701300757869546184141044782719377040827964360084215439359575788007337210758640546259003245079015422072134896785550241870459305490221791158940607639541493545449431966380949790268500688147120684878422644087740665311413514824790694834843604338194795607812853823998998739112429583918956929886411943253620292295948172621348804714403835910755338343560963879983874617752052019068693175095139925755008968184160517347202286096146659735014373787699651941244829269609565490299680163842760538318515223947233589933065139902997769223127720615718742890756259591698561606632583885384844657289331942858833039994197286859787535642370579530512293643458517021735986255562171142500006464959368553497843047742926912059387240809946743387638414048198694408944775444069251170773066138660967478938575678692226267210318097300336890609251281691482937945007536044628780696401485874066964937081918206796014977472518940692770894672378010538576191579628753772751491142438296755504777898562919873878466886571943932058682767751159450055872863527916053211722455926017234341614795477508162993100417926985058462658159275231528686687240156880922013253354310515429320271301395052939034522258214866568731973101381404116452786240690501596861116363625687217576907840844881072173634456273207480058148969492890120404737355584259763460585719059833390135924485696337604815143525955720696272044057172480412095806653997091898239769531744564451812400150724910565454097450203341878993940854184993053860100501536678291753100414071556739683930561925753508520719204221243637525947557752736918123021759906424842555860248331323557456167099315985161501790445629362971901337741454235806845317499797338072673087835855979518873590992730702565969031443914216280707586485693433132763123264073997566028702290799278145599553591406872613442909399868803796508758469616801500502900105120877858852156755843085247711311259293143161537830145595241746951888756957819100261647089658901442226446272586842891048256482344694803787698396134693029959462504186157980838085682198058796500063965111807850225311869955963267886820326401411980566900962441917763804790566485058315287808753412169880537568293968036573590850482360291970462859719175787666102215780516509397360723273599114920948677443312473946763348132517216207875535781868570306703675527144171234478423271605287319848573256078081641455469793831015179857933759673931682246610809830504660977785640009919674276403875800562819651870887523506776548920556733167133035750104234775109609952298605135294029710284933743373010850306077287395270441190810313340111298439279128630474973453764748612463442364796509840602507043585330051775476202391024439088213371189
    Çarpım: 41352036266492043743656925459108852465943066406958183062953603993140882337270672690299140536463706528093760445691136391206093586452136358749244422824360929604497466875415788500815441007814236779758239089023418717987856990921658488013836042721414547049393677297310175790903689014963049361207139408754664656689027915514126317756209865132043433191892551374005118131807693304084687861124840256805105665226916954294464692565612902200863636386933316926246739715912295349361699848359185434669853638687198833127987335188039466100577549068798276495837799003509804064466191874535374085756873332713690563157841950147987558232766064678886710327178651319700041019674539545102569709931830045923079330875661779104987827486407102374054505535693214952654705632062863621199507543398587372459425387287923312450079005509323266643488846504353971201534653923021139904705722947371790918973140177568545335929831539751012155799702091855583370463394208635278445917041394915630120478539091218214987930910348333448339724234792227482828887024962983000230193754032183755022054123928477941988899749980357037243084970848282043038176446210054433898880286189904360456372893617579541531541160473718678512222478600236590035273341726126576115868790562192103095841669961514434233650505010953476647926202098277726972176902317791865604155003144625423905021287336538889143187924786162491549856749925278821154527954783515992948990707870936062451697468624351294747183794898949024263087740068240240081520392241243864372536493678630600835465709465539320922192546318826256484402042584388271435209051259753490472290265505049236435871021283077839116308925973929825364979310373882424598822758160357233716155116633773303738572077623439235929218795693462051039763539496452368992258396867915245963781416733923088442801622250556636703562665964569615876384509584709074134907074764038752995806221144616689028887578821600140167277384935605788010388608989009098205709027192572055507814718445223037502198692013088971654150781980754499876137520201519975427836172133888566492100882827238493317989187266257202819533008675943898635548820943174727181555683074242257554844726832878219376425846647732319880006115519434659686776818330594873673469528361729927634667128198902020929911752430308117322187229851833504210533007505328442446654002124607669732327557649518777277824802776556118464380839700899354119828806694771550480077630297739589489620983306830502812011049713996823006054307259320646973508765285268877794441257402696216483799482673587350408337092459254597355459704016686409342397934314348237448348638588390636658031299770170443605499192945820175762500172567555286987339021054268181889184612267269128246503116048271318924535725706967055107820307331220054869456755099895695057292671371908035813479869845464882387381055509752832671265479501231279000381826444510260811519295236677574489246777034771340611577031870179104587975580871479514579607471106574265461395495248979764521065581359857083320285270497469141127975896517139213508276797328284986630596054926795404946528853262101804179496082572154750750312222646088394850733957893771659559538243383818919227862085882876723888351265016906333913990659560793321174404134235775143179037374885722643097073454930049593742311761790812954790261124290512538821904634388545903308714638824432821159324643334867669195325745777624935945839144039542167181181958709157915271263380778524230218769516858223047411183974758330030578812685223359344822690953029527591154294632294251763451196800445034652974393124778501692032414299250208956467701603507325064111396833402380876864159953282415695139157910295379677540350791512217403243048956938259394999244608733263072728883800228999103821961340939916890360930497729436852833999525668941127054776616763696380341898737983402900849981081091173854227453665807505402480748990158014793099475835734281856501231413898229518221478620548508530477496574858793622776782304502558198546594575490339937607054906436393243110688896930261370632800139495017278452385760506506231709513775597410311954544807576848828006441495259543004519894477957986598580384346330218379461732139315450088914526264869621016303126128353328414013770705073067007799507155531743906838872663696134791473845828768581055520658700638213310516512474435506469344043180432169510669187006311726644254187543341910505158533427989278244966990426759655921498466802663518601565122311001553255385663794074933207107206915273846544106876050608938371739975750436001577586104266886191244362378063606632631411117715345191611759049800536441295388960219000357484455011136374407497869125870640888116112456855500692792369024836570465524563374403965640936924738982970049251606892567468898537962118806344966429403707639753697893619380109973956033490263039451665835724690405844506410721142473852001905380117704752677510454337252955694368001424656658829505737216396747672822809932407534251176196220138593302997471600190253512882329747825010867166814466362037041758640705906897372738084367956888481398542960231654787562974592034507323071725199650631229444720704848783435454174264192044413091178994455529669727160496873615437060424808908171285332350056043222427054067774480542829060363649184703090507830432790961709386720413681271815770168888078714677936116998058951652740894596370009870029738986331698863952040146792837659473210915959818454764595177305037414815254860844062010935256017707304076564864285859738884240855294037280325792559560695291634931441362775254195661644711348955456857218214347249432928993229443313593116936923907283826627093753823369073204303987061593364129402188734185036947374069910412318034327195027938758951329958530529045581587579212444342913546444195727630649137391654761554769766283619563693345938403503011677328117555302014191905560194898873599681732994093657721564912067470783406926123930322812937986790467451140740010371013952311484208451796773885886486461347512282257857294041640079246037205605468401689239381871562818214996145428003821809617184124394213669553535349397356871826689966578787522346032472336182290081336143830368839158417552449012548294415309525213350593546829555495350249733846042407488722555197923401480141644260532686459567220946460547277928734147911062222377646825582923302402697671079830779680080907092305867380073992441342977444337737618203511021379065085282476498764328454418167468701405879228416267311973520211067291021910063822480449852256070849579639906228228523227926075406985564056203623392508025533762697982181407185358546548510072325538601585324434436205010478371110128140893262540754675875320752885985112942757867599912761008188485971322118699053047537275514479143952342623009241092840995524945759947399544589928613273543665238019593641615499835179853916234387913795264720399779157138653630704590934197400759102405704488405561340554718817203459325650166693170055029795061311730174306274222192639658630375760614021844269532863422848048951992227591418198218960974272781126170856631439014567146415969055019273431699663559791593637457080187744819342675441606818125614804427118894743232932869574088290467082363065101672820217533767044941798869039373181444597025485551144433780633336968847077757356918875866773660946671400041575433220552294148120617867621281751106397657236968204339706485914551797356202387330807914749692432279258833606325433178643228231660734086848131273919460551179698858847640726298503019153955091717357224162129502359701320473596267176342598225070319018868720300377513831906359135966038050215341277639298532539862734607007489876177991898349384778717181020116918967003925584718858418517733040632500992591373133046999350235956245228699927614771303024604021513334278704006084886817286160902637363307849163067024490062954949056614378478174287588144079212701135948992364654392070656240486684826048195059512412561088519302332526135585522498725005442320566238864648640269610247928470454684268399675022689349400950245408082688392438059816078591424481029591857604601550798251431776169170903577420342254208962202270052738459673475978161192542807747172382484807047431467716641688479527560157283977242634982334795273413968495348610388771051105763990387771386244055731610609751492036841118695365105002084483308899191557728631656949890310646592636537484741012584156014243671254309797093481376161908187779955604466868444104685825434036846177513525576249770160352948498157826650663122618780343334202745189746522421002785934836299931880628955690748110711805688808246805834752901106092779558994658266994117939814508049109961747129687143403999009155048940460665000730578582747426306370682400063769914509566325341843218086084630223151294100952105542334058191791378296261694230005038846358973008533480432696727696153716315539193131673674206858828959310271905583366868913435127198238071435248654028270214710848054788670453962118634483523807991031344188174754596639195537009451441184355181057704318483635575598724565379695938349744041857901540962648836436479483246086221680519698806322071611315750607248906821298327000603304352143291887122779638965026568984353329219822518508014962992662682020230847256845627543174246324972104908182148554710378023817975076484737016716379566878488860117584066312988177383770836824770083044351251669638474399314303799596024631619205299640765586320843760238816130858920296910494859410419753218248415673177989534445918525703300207987745499426378824251498174306460194196023091552534056391396393904238907332845447436948381565619194777702554605158400629050325122749008213898036656702347915239908657056908982812656915900606006156973485178331703511948534120460510151268699026715954909103205158855057484410882050722936803833897158060009358076169141626415489108116404863485518370330124756260277239465964926884944099207441284265824253700876856038453438778522961171220314564731680301957773457386743869847867332238866574825172925851272356492100431657904019197892443906063363584771831333892404129099607752206946348149641910960302385868379183286085077049685666074585521870983902157180914067962222420744552644074364741209110298463790839097245426439628687925460063882378620785440137758695305894949718031973614051289282694873341011427060592422994252826501635126688935808324319315374742566379773246219362838245890411403641956813483348258272539948674395634021881371800669579330883861956605200525656121062833809181228945471199302955561338546950284867073804800264553973146864174239491573457643493873308974621116225595990301649210063569357781357291147461489348532523967743309376381000606248210958259787773839868446005179149581653154520150785306127432115239827803697905044666679434677657864881926515945935006127371331185293121657609978919756326479239343621585250252562947633463170829880875606875260166367770873894885051217640346296446578263782882577751537667234948042462744401165562349535647250444714946160057830793779759317521205980399584819187150604635407973020739934927882108827658382303241935669120898530274861700444210730076486884479684018456043689520709274027099133685189889696907412971583639615239063207828638387000774723502734839842853054684863118911849282335852080033970598329409603422424963942516340690016539405893288491885932195781363179268011237957000455885956190927511457500435023707253915824340959796013524344780117532541547514563935708107176563240590962781021028930078252769654816804339607243469790260493269845733703028938620798848820236132389422957657786266042965058072768141299409645486467969314041070228116126494555094130341870717946354037143245279689722862061807827703934093627585696295565392709448423006109041670403261008711398831663770297580519838954027863361949772151655832540060540418091228594197463994281445603222691025726428780103964312152317866975272525442230334038693043722449457452405873966607058303816159532963090350385561248127311736068651910008008483977648259595134682553175303912292274006354670373717099211148385851641080916219042186596227092749481386845842558512317926404891105749062472108198784491076121662294924707689325106668621731760664834908636153185485934786990781852232666821217376723372680282020010285120301055173692774835003645543521766124117174332800137269391257367970716909829605703278783934829429073841607711938864842802093627109990716677981075668552754373092445724270953298700509736675885966695693119039378150255751795645297943255679489967824446568249486969650099350556248517387976418260590133708724436240401347977769452952557828660831966077276518464203405176832125361810968432583390150478405058101138688987217077843006993793987178202224432043756366894275233763114448164912497343166374126926042311475934699841997307557770135085796948509968359233193286850265637597451758683124881988506989087811677713777734430132149121528301453355580957931721173022930137507967723653590080908308362338425888122691190472055639895866909155964782072739151675203024434850283348984554945885524430001542513647512348916476565331724243736636390631424485314322739906253777559285012314102490643623821047587642332426610481964587237107365516117834107850975939636585984862591786276293991886141485483347823687148398855305671646979265973177098238218797560857881922489284885728507081115251446114124782038251724186205811679130731314603125696661723244364687603608669999156227009965637785096677746754301739649638811984065122282409555692318951939420485729760079091247940823144950087349596759129144724164791301717285184133365752235934217942069202556494347410243662569207767354785071704079457407953760748119374241778902364012302447826392620229706178424969809798915350671758174644313459886957723672102905559652200399067346671635075473003222269293635642123159752332269288395294658084694695159565787470861675428338514464641995589516174146640306152397229667370434178749744792914001665593106709242094082834922606130824532194395157262332258701079968589979467912762399539277732186832752301124823301450547390397424197609981956073199809083960346470866051242620890313606947013257138450099909516876915990511073010795438373274446208579701358264707905674869433873900884037830450035623497988715772936795840970543362973366512031430369440703175357496964385492978840702296657510512020146321048294699933619614467603187742858730131000425554627910285257819256398993052573708904747232340631028207820132211146242095608074534403096176016423668250068428404530924571369173719088560176749932596595437792846814601694774588367862366863574203162931261837384356876339365097270857104120362706638448395446371064640205629458840567941849679792084204381367691472184426281714280665409865623876046912071035875042586986655751807731718242394133498480613896393736557984917751247154228263870264736601138795463932074382359932439804265896303674839827291947379447738878519045153443552849875065033378849330555743780324984032713722229496809266994282388921756820974880209177365690909823825545738459946947965599676336764765901909097329812463596335377716420672891745138692029330448115249193593035378713807816782614920129333965991124802524580745562621093997544105897003601966984929973204300998530316696264978217862538231352579204939421763741568250222698198415292709432463394882203994037098839383651826977724966570778601867139926907435100982184757018225031934441636291272492862538974419425626301836845870915382802823999555358284110919305722806332892262309956746905584821160364096861350553088724323056692039820587992249502827734323584609908900722404805871605778338099572715787679054788771854850320088443177155689434103728332956629533290654891580528321848623228068849272393932950124746710533186270018355765933887523237006375791198817321596250824877907825364932519407457910109465519342815580149137520604318449656054852901811403775113326960463342345797655894131801793094515725605214245345307891626224300027094738158387946008008886770353443518421555454888338463606237597684660618963766712318814167768328647930134786181675898923583422519345707748166811727490565812033653876106499783400670544669046388537567250740151848431215089706706092532956005709060294440927013612544793827135028575109204117357868536672417092494172975574180630034393639486212210202640088701129095385574343387880438922707128639946511378132232308974560138157060477508379990848666254018169138870361275702320143502096176627939347753228161668258319514189993611564198602810022890983715689486722454814281382141166667755321124899294963076733567323579220027284675463197175434540110093867830478611827189491656027943812674066909912107497433321353659373339765538013659085716001328442742810487829593283893588700359325679705391609508523675052654167106199381814905774743684465763387649200960741916705412425308327379644286091117768367473757689378776622379688972299977932432562610462621006520577800058687154864091988003189487602250228973945122457602172973290419192193128359311588413111981011230920484627106475191717352299353794592712815053152543747881051467345571242455682246188391268981268296406886608586037886158892956998743536558513949247032574579226085403176731686380423679681643550869739392480019446317107754442972700607979112213796186024137222011779850924665118345355408113243714248538959117667715380642401145148156085572297212321050892871504969224668130474579821722293634392116483344770920113025049849252377155911315419079939904792683857419838160790802048952494990667486905350720253440558977271330643112338201615863028699874421315270246795338449809101494892838818231892565333433254603783891761471881807541930762721603160692773652951109495189925830129187989468976493562371826373379510915474177344901887214231526505331085869921026789841560216147262087679854743893659689380828727328506106037854835396983707329108182998550279745419677355890733529789239005715020471876776051873054024490886374395397381453220511445208141997198382358772311156590396881483264099822347363581253859135104122818385124671179999644077608551844901254980172746185893218705119869238728037238425527608468053847591709207287779401532144255461174419667682312970374951036493861897417708097350785866338468117815452195837346250587686043616757676869014863139764094341747927747545929038058237741799432380060414759768269388919387385166371594739404397920121384230315174741449941929748724061177055671142708248462769527058693296793002051392494655155491588513477369556895524123496525814586007189041002150080270219144401581098522229563752038332033114723563320693548434039639098083104536082755790439193226069850174462782640107411767408233347309253877608394650126026339779197818508513977643194353823114701894632039715986378281463263417584661702432243504712454249831290712845438936948022453027492012435457200022703075492746238669698959708070355661350114278004983419794832200152454548864043412918418027604486889433492557619230291137310915140287372249103719568546011070499592033083902671054605319951646502975853081397995105079020864055116225994425231930383752506081668291290454112307676193438390202432673808252677490158989962713735121911282455341074894230195618992995462309025085036675174433153221202264239065582921526677391987684044503835397645836215257224923076745862512993380891066161185820122915789879050621777338814296424292866853421523138221376100153017963061655109898769240268542226035281227364471173931387885962724146898591565944273234835485927186049680754918087064378417147703914266245892751430240851460603964306934910020896933285091471402781823273263491863334408617874838897533336927375114470650374507417450052158412196554667097075222595467561060937910266749157846850805703404349512315447709394683966767104672741115876993127627672105892139638833119219734726135211767555737518912317202428347681129108912763327709430645740959094864227387231876706168706865217940162433874178522411117299086775587920109224582652565189566284264723476054349752451522850332489713223646443816949567700834311021225948775347396221039519847852915986091240211001728918892240137280717982317451749346954013887149059185781868537850240667552329471155328547394528986382521446801766852030852866810010925779741028983425751255003447610321797190600802800531971513395739237375157967401551181623419038357469868890388313732437052670051685986214650778407687639518760896422574434017431849719810254680302917099983056842332506422732453506738810693110895115434883
    0 ...
  • ram hızı nasıl öğrenilir

    1.
  • gedit le program.c yazıp dosya açın, ve aşağıdaki kodu kopyalayın.

    gcc program.c -o program komutuyla kaynak kodunu derledikten sonra ./program komutuyla çalıştırılabilir dosyayı yürütebilirsiniz.

    kratertepesi@msi:~/Masaüstü/Programlar$ ./program
    [sudo] kratertepesi için parola:
    RAM Hızı: Speed: 5600 MT/s
    RAM Hızı: Configured Memory Speed: 4800 MT/s
    RAM Hızı: Speed: 4800 MT/s
    RAM Hızı: Configured Memory Speed: 4800 MT/s
    RAM Hızı: Speed: 4800 MT/s
    RAM Hızı: Configured Memory Speed: 4800 MT/s

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int main() {
    // Komutu çalıştırmak için popen fonksiyonunu kullanıyoruz
    FILE *fp;
    char buffer[256];
    int found = 0;

    // dmidecode -t memory komutunu çalıştırıyoruz
    fp = popen("sudo dmidecode -t memory", "r");
    if (fp == NULL) {
    perror("popen failed");
    return 1;
    }

    // Çıktıyı satır satır okuyoruz
    while (fgets(buffer, sizeof(buffer), fp) != NULL) {
    // RAM hızını bulmaya çalışıyoruz
    if (strstr(buffer, "Speed") != NULL) {
    printf("RAM Hızı: %s", buffer);
    found = 1;
    }
    }

    if (!found) {
    printf("RAM hızı bulunamadı.\n");
    }

    fclose(fp);
    return 0;
    }
    1 ...
  • işlemcinin saniye başına hesapladığı komut sayısı

    1.
  • basit bir c programıyla bile öğrenilebilir!

    kratertepesi@msi:~/Masaüstü/Programlar$ ./program
    100 milyon sayı içinde 10030385 asal sayı vardır.
    işlemci döngüsü: 4772581176
    Hesaplama süresi: 1.0846775400 saniye
    1 saniyenin 10,000'de kaçı: 10846.7754000000

    kod:
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
    #include <x86intrin.h> // RDTSC için gerekli

    #define LIMIT 180000000 // 1 milyar sınırı
    #define CPU_FREQUENCY 4.4 // GHz cinsinden işlemci frekansı (örneğin 3.0 GHz)

    int main() {
    unsigned long long i, j, count = 0;
    bool *is_prime = malloc((LIMIT + 1) * sizeof(bool));
    if (is_prime == NULL) {
    fprintf(stderr, "Bellek tahsis edilemedi.\n");
    return 1;
    }

    // Zaman ölçüm başlangıcı
    unsigned long long start = __rdtsc();

    // Bütün sayıları asal varsayıyoruz
    for (i = 0; i <= LIMIT; i++) {
    is_prime[i] = true;
    }

    // 0 ve 1 asal değildir
    is_prime[0] = is_prime[1] = false;

    // Eratosthenes Eleği algoritması
    for (i = 2; i * i <= LIMIT; i++) {
    if (is_prime[i]) {
    for (j = i * i; j <= LIMIT; j += i) {
    is_prime[j] = false;
    }
    }
    }

    // Asal sayıları sayıyoruz
    for (i = 2; i <= LIMIT; i++) {
    if (is_prime[i]) {
    count++;
    }
    }

    // Zaman ölçüm bitişi
    unsigned long long end = __rdtsc();

    // Döngü farkını hesapla
    unsigned long long cycles = end - start;

    // Döngü süresi saniye olarak
    double time_seconds = cycles / (CPU_FREQUENCY * 1e9); // GHz'den Hz'e dönüşüm

    // Sonuçları yazdır
    printf("100 milyon sayı içinde %llu asal sayı vardır.\n", count);
    printf("işlemci döngüsü: %llu\n", cycles);
    printf("Hesaplama süresi: %.10f saniye\n", time_seconds);
    printf("1 saniyenin 10,000'de kaçı: %.10f\n", time_seconds * 10000);

    // Belleği serbest bırak
    free(is_prime);

    return 0;
    }
    1 ...
  • basit kurallardan doğan karmaşıklık

    6.
  • birbiriyle etkileşen hücrelere dair 3 kural, süreç incelenmediği sürece öngörülemez ve tahmin edilemez neticeler doğuruyor:
    #include <GLFW/glfw3.h> // GLFW kütüphanesini içe aktarır; pencere oluşturma ve OpenGL ile çizim için kullanılır.
    #include <vector> // Dinamik diziler ve iki boyutlu vektör yapısı için vektör kütüphanesi.
    #include <ctime> // Rastgele sayı üreteci için zaman kütüphanesi.
    #include <cstdlib> // Rastgele sayı üreteci için C standardında kütüphane.

    const int GENISLIK = 1920; // Pencere genişliği piksel cinsinden
    const int YUKSEKLIK = 1080; // Pencere yüksekliği piksel cinsinden
    const int HUCRESAYISI = 4; // Her bir hücrenin genişliği ve yüksekliği piksel cinsinden
    const int IZGARA_GENISLIK = GENISLIK / HUCRESAYISI; // Hücre matrisinin yatayda hücre sayısı
    const int IZGARA_YUKSEKLIK = YUKSEKLIK / HUCRESAYISI; // Hücre matrisinin dikeyde hücre sayısı

    // Hücrelerin durumunu tutan iki boyutlu matris; 2: genişleyen hücre, 1: hücre dolu, 0: hücre boş
    std::vector<std::vector<int>> izgara(IZGARA_YUKSEKLIK, std::vector<int>(IZGARA_GENISLIK, 0));
    // Bir sonraki durumları tutmak için yedek matris
    std::vector<std::vector<int>> sonrakiIzgara(IZGARA_YUKSEKLIK, std::vector<int>(IZGARA_GENISLIK, 0));

    // **Yaşam Oyunu Kuralları**:
    // 1. Her dolu hücre 2 veya 3 komşuya sahipse yaşamaya devam eder, aksi halde ölür.
    // 2. Boş hücreler tam 3 dolu komşuya sahipse canlanır.

    void izgaraBaslat() { // Hücre matrisini başlatır
    srand(static_cast<unsigned>(time(0))); // Rastgele başlangıç için tohum oluşturur.
    for (int y = 0; y < IZGARA_YUKSEKLIK; ++y) { // Her hücre için
    for (int x = 0; x < IZGARA_GENISLIK; ++x) {
    izgara[y][x] = rand() % 2; // Hücreyi rastgele olarak dolu (1) veya boş (0) yapar.
    }
    }
    }

    int komsuSay(int y, int x) { // Hücrenin komşularını say
    int sayac = 0; // Komşu hücre sayacını sıfırla.
    for (int dy = -1; dy <= 1; ++dy) { // -1, 0, 1: komşu hücreler için dikey kayma
    for (int dx = -1; dx <= 1; ++dx) { // -1, 0, 1: komşu hücreler için yatay kayma
    if (dy == 0 && dx == 0) continue; // Kendisi değil, sadece komşuları kontrol et.
    int ny = (y + dy + IZGARA_YUKSEKLIK) % IZGARA_YUKSEKLIK; // Dikeyde çevrilebilir koordinat
    int nx = (x + dx + IZGARA_GENISLIK) % IZGARA_GENISLIK; // Yatayda çevrilebilir koordinat
    sayac += izgara[ny][nx]; // Eğer komşu hücre dolu ise sayacı artır.
    }
    }
    return sayac; // Bulunan komşu hücrelerin toplam sayısını döndür.
    }

    void izgaraGuncelle() { // Hücrelerin durumlarını günceller
    for (int y = 0; y < IZGARA_YUKSEKLIK; ++y) { // Her hücreyi güncelle
    for (int x = 0; x < IZGARA_GENISLIK; ++x) {
    int komsular = komsuSay(y, x); // Mevcut hücrenin komşu sayısını al
    if (izgara[y][x] == 1) { // Hücre dolu ise
    sonrakiIzgara[y][x] = (komsular == 2 || komsular == 3) ? 1 : 0; // 2 veya 3 komşu ile hayatta kalır.
    } else if (izgara[y][x] == 2) { // Genişleyen hücre durumu
    sonrakiIzgara[y][x] = (komsular >= 1) ? 2 : 0; // Komşuları varsa genişlemeye devam et.
    } else { // Hücre boş ise
    sonrakiIzgara[y][x] = (komsular == 3) ? 1 : 0; // Boş hücre, 3 komşu varsa doğar.
    }
    }
    }
    izgara.swap(sonrakiIzgara); // Eski durumu yeni durumla değiştir.
    }

    void izgaraCiz() { // Hücreleri ve ızgarayı çizer
    glClear(GL_COLOR_BUFFER_BIT); // Ekranı temizler.

    // Hücreleri çizer.
    for (int y = 0; y < IZGARA_YUKSEKLIK; ++y) {
    for (int x = 0; x < IZGARA_GENISLIK; ++x) {
    if (izgara[y][x] == 1) { // Hücre dolu ise
    glColor3f(0.0f, 1.0f, 0.0f); // Yeşil rengi ayarla.
    } else if (izgara[y][x] == 2) { // Genişleyen hücre ise
    glColor3f(0.0f, 1.0f, 0.5f); // Yeşil tonunda bir renk
    } else {
    glColor3f(0.0f, 0.0f, 0.0f); // Boş hücreler için siyah arka plan
    }
    glBegin(GL_QUADS); // Her hücreyi kare olarak çiz.
    glVertex2f(x * HUCRESAYISI, y * HUCRESAYISI);
    glVertex2f((x + 1) * HUCRESAYISI - 1, y * HUCRESAYISI);
    glVertex2f((x + 1) * HUCRESAYISI - 1, (y + 1) * HUCRESAYISI - 1);
    glVertex2f(x * HUCRESAYISI, (y + 1) * HUCRESAYISI - 1);
    glEnd();
    }
    }

    // Izgara çizgilerini çizer.
    glColor3f(1.0f, 0.0f, 0.0f); // Izgara için kırmızı çizgi
    glLineWidth(1.0f);
    glBegin(GL_LINES);
    for (int x = 0; x <= GENISLIK; x += HUCRESAYISI) {
    glVertex2f(x, 0); glVertex2f(x, YUKSEKLIK); // Dikey çizgiler
    }
    for (int y = 0; y <= YUKSEKLIK; y += HUCRESAYISI) {
    glVertex2f(0, y); glVertex2f(GENISLIK, y); // Yatay çizgiler
    }
    glEnd();
    }

    int main() { // Programın ana fonksiyonu
    if (!glfwInit()) { // GLFW başlat.
    return -1;
    }

    GLFWwindow* pencere = glfwCreateWindow(GENISLIK, YUKSEKLIK, "Yasam Oyunu", NULL, NULL); // Pencereyi oluştur.
    if (!pencere) {
    glfwTerminate(); // Oluşturulmazsa çık.
    return -1;
    }

    glfwMakeContextCurrent(pencere); // OpenGL bağlamını bu pencereye uygula.
    glOrtho(0, GENISLIK, YUKSEKLIK, 0, -1, 1); // Oranları ayarla.

    izgaraBaslat(); // Başlangıç gridini oluştur.

    while (!glfwWindowShouldClose(pencere)) { // Pencere açıkken
    izgaraCiz(); // Çizimi güncelle.
    izgaraGuncelle(); // Oyun kurallarına göre hücre durumlarını güncelle.

    glfwSwapBuffers(pencere); // Çizimi pencereye uygula.
    glfwPollEvents(); // Olayları kontrol et.
    }

    glfwDestroyWindow(pencere); // Pencereyi temizle.
    glfwTerminate(); // GLFW'yi sonlandır.
    return 0;
    }

    https://galeri.uludagsozluk.com/r/2379048/+
    https://galeri.uludagsozluk.com/r/2379049/+
    https://galeri.uludagsozluk.com/r/2379050/+
    1 ...
  • sonsuz bir labirentte kaybolmak mümkün mü

    1.
  • korkunç bir cehennem senaryosu gibi görünüyor... her çıkmaz sokağa girdiğinizde içinde olduğunuz harita güncellenir, ve rastgele bir konumda yeniden çıkışı aramaya başlayıp, sonsuz bir döngüye girersiniz.


    #include <SFML/Graphics.hpp>
    #include <vector>
    #include <cstdlib>
    #include <ctime>
    #include <stack>
    #include <iostream>
    #include <string>
    #include <algorithm>

    // Sabitler
    const int WINDOW_WIDTH = 1920; // Pencere genişliği
    const int WINDOW_HEIGHT = 1080; // Pencere yüksekliği
    const int CELL_SIZE = 20; // Hücre boyutu (piksel)
    const int GRID_WIDTH = WINDOW_WIDTH / CELL_SIZE; // Izgara genişliği
    const int GRID_HEIGHT = WINDOW_HEIGHT / CELL_SIZE; // Izgara yüksekliği

    // Labirent hücre durumları
    enum Cell {
    WALL = 0,
    PATH = 1,
    VISITED = 2 // Sarı hücre
    };

    // DFS yığını hücreleri takip etmek için kullanılır
    std::stack<std::pair<int, int>> dfsStack;

    // Labirent oluşturma algoritması (Derinlik-Öncelikli Arama)
    void createMaze(std::vector<std::vector<Cell>>& maze) {
    int startX = 1, startY = 1;
    maze[startX][startY] = PATH; // Başlangıç hücresini açık olarak işaretle
    dfsStack.push({startX, startY});

    while (!dfsStack.empty()) {
    int x, y;
    std::tie(x, y) = dfsStack.top();
    std::vector<std::pair<int, int>> neighbors;

    // Komşu hücreleri kontrol et
    if (x > 1 && maze[x - 2][y] == WALL) neighbors.push_back({x - 2, y});
    if (x < GRID_WIDTH - 2 && maze[x + 2][y] == WALL) neighbors.push_back({x + 2, y});
    if (y > 1 && maze[x][y - 2] == WALL) neighbors.push_back({x, y - 2});
    if (y < GRID_HEIGHT - 2 && maze[x][y + 2] == WALL) neighbors.push_back({x, y + 2});

    if (!neighbors.empty()) {
    // Rastgele bir komşu seç ve labirenti oluştur
    int randIndex = std::rand() % neighbors.size();
    int newX = neighbors[randIndex].first;
    int newY = neighbors[randIndex].second;

    maze[newX][newY] = PATH; // Yeni hücreyi açık olarak işaretle
    maze(x + newX) / 2](y + newY) / 2] = PATH; // Duvarı kaldır
    dfsStack.push({newX, newY}); // Yeni hücreyi yığına ekle
    } else {
    dfsStack.pop(); // Geriye doğru ilerle
    }
    }
    }

    // Şifreleme fonksiyonu (basit dönüşüm)
    std::string encryptPath(const std::vector<std::pair<int, int>>& path) {
    std::string encryptedMessage;
    for (const auto& coord : path) {
    // Her koordinatı alfanümerik formata dönüştür
    encryptedMessage += std::to_string(coord.first) + "," + std::to_string(coord.second) + ";";
    }
    return encryptedMessage;
    }

    // Yürüyüşçünün geçerli bir hareket seçeneği olup olmadığını kontrol et
    bool hasValidMoves(const std::vector<std::vector<Cell>>& maze, int x, int y) {
    return (x > 1 && maze[x - 1][y] == PATH) ||
    (x < GRID_WIDTH - 2 && maze[x + 1][y] == PATH) ||
    (y > 1 && maze[x][y - 1] == PATH) ||
    (y < GRID_HEIGHT - 2 && maze[x][y + 1] == PATH);
    }

    int main() {
    sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "Labirentte Rastgele Yürüyüş");
    std::srand(static_cast<unsigned>(std::time(nullptr)));

    // Labirent verisi
    std::vector<std::vector<Cell>> maze(GRID_WIDTH, std::vector<Cell>(GRID_HEIGHT, WALL));
    createMaze(maze); // Labirenti oluştur

    // Rastgele başlatılan yürüyüşçü için başlangıç noktası
    int x = 1 + (std::rand() % (GRID_WIDTH - 2)); // Rastgele başlangıç noktası X
    int y = 1 + (std::rand() % (GRID_HEIGHT - 2)); // Rastgele başlangıç noktası Y
    maze[x][y] = VISITED; // ilk hücreyi ziyaret edildi olarak işaretle
    std::vector<std::pair<int, int>> visitedCells; // Ziyaret edilen hücrelerin koordinatları

    sf::RectangleShape cell(sf::Vector2f(CELL_SIZE, CELL_SIZE));
    sf::RectangleShape walker(sf::Vector2f(CELL_SIZE, CELL_SIZE));
    walker.setFillColor(sf::Color::Yellow); // Yürüyüşçü rengi sarı

    sf::Clock clock;
    while (window.isOpen()) {
    sf::Event event;
    while (window.pollEvent(event)) {
    if (event.type == sf::Event::Closed)
    window.close();
    }

    float dt = clock.restart().asSeconds();

    // Yürüyüşçünün geçerli bir hareket seçeneği olup olmadığını kontrol et
    if (!hasValidMoves(maze, x, y)) {
    // Eğer yoksa, yürüyüşçüyü yeni bir rastgele konumdan başlat
    x = 1 + (std::rand() % (GRID_WIDTH - 2));
    y = 1 + (std::rand() % (GRID_HEIGHT - 2));
    maze = std::vector<std::vector<Cell>>(GRID_WIDTH, std::vector<Cell>(GRID_HEIGHT, WALL));
    createMaze(maze); // Yeni bir labirent oluştur
    visitedCells.clear(); // Ziyaret edilen hücreleri temizle
    }

    // Rastgele yürüyüş algoritması ile sonraki adımı seç
    int direction = std::rand() % 4;
    switch (direction) {
    case 0: if (maze[x - 1][y] == PATH) x--; break; // Sol
    case 1: if (maze[x + 1][y] == PATH) x++; break; // Sağ
    case 2: if (maze[x][y - 1] == PATH) y--; break; // Yukarı
    case 3: if (maze[x][y + 1] == PATH) y++; break; // Aşağı
    }

    // Yürüyüşçü bir koridora girdiyse, o hücreyi sarıya çevir
    if (maze[x][y] == PATH) {
    maze[x][y] = VISITED; // Ziyaret edildi olarak işaretle
    visitedCells.push_back({x, y}); // Ziyaret edilen hücreyi sakla
    }

    // Ekranı çiz
    window.clear();
    for (int i = 0; i < GRID_WIDTH; ++i) {
    for (int j = 0; j < GRID_HEIGHT; ++j) {
    if (maze[i][j] == WALL) {
    cell.setFillColor(sf::Color(0, 100, 0)); // Koyu yeşil duvar
    } else if (maze[i][j] == PATH) {
    cell.setFillColor(sf::Color(0, 255, 0)); // Yeşil boş hücre
    } else if (maze[i][j] == VISITED) {
    cell.setFillColor(sf::Color::Yellow); // Sarı hücre (ziyaret edildi)
    }

    cell.setPosition(i * CELL_SIZE, j * CELL_SIZE);
    window.draw(cell);
    }
    }

    // Yürüyüşçüyü çiz
    walker.setPosition(x * CELL_SIZE, y * CELL_SIZE);
    window.draw(walker);
    window.display();
    }

    // Ziyaret edilen hücrelerin koordinatlarını şifrele
    std::string encryptedMessage = encryptPath(visitedCells);
    std::cout << "Şifrelenmiş Yol: " << encryptedMessage << std::endl;

    return 0;
    }
    1 ...
  • simülasyonda bir karakteri mario gibi zıplatmak

    1.
  • basit zannedilen fizik mekaniği, kinematik 101 konusu 2 boyutlu eğik atış hareketinden (projectile motion ) ilham alınarak tasarlanmış:



    #include <SFML/Graphics.hpp>
    #include <cmath>
    #include <vector>
    #include <sstream>

    const float GRAVITY = 981.0f;
    const float JUMP_SPEED = 400.0f;
    const float MOVE_SPEED = 300.0f;
    const float BOOST_MULTIPLIER = 1.5f;
    const float DOUBLE_JUMP_MULTIPLIER = 1.5f; // ikinci zıplama için hız çarpanı
    const float FLOOR_Y = 540.0f;
    const float WINDOW_WIDTH = 1920.0f;
    const float WINDOW_HEIGHT = 1080.0f;

    int main()
    {
    sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "2D-EGIK ATIS HAREKETI");

    // Font yükleme
    sf::Font font;
    if (!font.loadFromFile("/home/kratertepesi/Masaüstü/Programlar/arial.ttf"))
    {
    return -1; // Font yüklenemezse programı sonlandır
    }

    // Başlık metni oluşturma
    sf::Text titleText("2D-EGIK ATIS HAREKETI", font, 50); // Font boyutu 50
    titleText.setFillColor(sf::Color::White);
    titleText.setPosition(WINDOW_WIDTH / 2 - titleText.getGlobalBounds().width / 2, 10); // Ortalanmış başlık

    sf::RectangleShape blueSquare(sf::Vector2f(50.0f, 50.0f));
    blueSquare.setFillColor(sf::Color::Blue);
    blueSquare.setPosition(960, FLOOR_Y);

    sf::RectangleShape ground(sf::Vector2f(WINDOW_WIDTH, WINDOW_HEIGHT - (FLOOR_Y + blueSquare.getSize().y)));
    ground.setFillColor(sf::Color::Green);
    ground.setPosition(0, FLOOR_Y + blueSquare.getSize().y);

    sf::RectangleShape sky(sf::Vector2f(WINDOW_WIDTH, FLOOR_Y));
    sky.setFillColor(sf::Color(135, 206, 235));

    sf::RectangleShape background(sf::Vector2f(WINDOW_WIDTH, blueSquare.getSize().y));
    background.setFillColor(sf::Color(135, 206, 235));
    background.setPosition(0, FLOOR_Y);

    bool jumping = false;
    bool onGround = true;
    bool doubleJumpReady = false; // ikinci zıplama hazır mı
    float xVelocity = 0.0f;
    float yVelocity = 0.0f;
    float jumpStartY = FLOOR_Y; // Zıplama başlangıç noktası

    sf::Clock clock;
    std::vector<sf::Vertex> path; // Paraboli çizmek için yol noktaları

    sf::Text angleText, forceText;
    angleText.setFont(font);
    angleText.setCharacterSize(24);
    angleText.setFillColor(sf::Color::White);
    forceText.setFont(font);
    forceText.setCharacterSize(24);
    forceText.setFillColor(sf::Color::White);

    while (window.isOpen())
    {
    sf::Event event;
    while (window.pollEvent(event))
    {
    if (event.type == sf::Event::Closed)
    window.close();
    }

    float dt = clock.restart().asSeconds();

    // Hareket hızını ve zıplama hızını belirler
    float currentMoveSpeed = MOVE_SPEED;
    float currentJumpSpeed = JUMP_SPEED;
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space))
    {
    currentMoveSpeed *= BOOST_MULTIPLIER;
    currentJumpSpeed *= BOOST_MULTIPLIER;
    }

    // Hareket kontrolleri
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
    {
    xVelocity = -currentMoveSpeed;
    }
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::D))
    {
    xVelocity = currentMoveSpeed;
    }
    else
    {
    xVelocity = 0.0f;
    }

    // Zıplama işlemi
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::W) && onGround)
    {
    jumping = true;
    onGround = false;
    yVelocity = -currentJumpSpeed;
    jumpStartY = blueSquare.getPosition().y; // Zıplama başlangıç yüksekliği ayarlanır
    doubleJumpReady = true; // ikinci zıplama yapılabilir
    }
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::W) && doubleJumpReady)
    {
    yVelocity = -currentJumpSpeed * DOUBLE_JUMP_MULTIPLIER;
    doubleJumpReady = false; // ikinci zıplama bir kez yapılır
    }

    // Yer çekimi etkisi
    if (!onGround)
    {
    yVelocity += GRAVITY * dt;
    }

    blueSquare.move(xVelocity * dt, yVelocity * dt);

    // Parabol çizimi için pozisyon ekle
    path.push_back(sf::Vertex(blueSquare.getPosition(), sf::Color::Red));

    // Açıyı ve kuvveti hesapla
    float angle = atan2(-yVelocity, xVelocity) * 180 / 3.14159; // Derece cinsinden açı
    float force = sqrt(xVelocity * xVelocity + yVelocity * yVelocity); // Kuvvet büyüklüğü

    std::stringstream angleStream, forceStream;
    angleStream << "Angle: " << angle << " degrees";
    forceStream << "Force: " << force << " N";

    angleText.setString(angleStream.str());
    forceText.setString(forceStream.str());
    angleText.setPosition(10, 10);
    forceText.setPosition(10, 40);

    if (blueSquare.getPosition().y >= FLOOR_Y)
    {
    blueSquare.setPosition(blueSquare.getPosition().x, FLOOR_Y);
    yVelocity = 0.0f;
    onGround = true;
    doubleJumpReady = false; // Yere indiğinde ikinci zıplama sıfırlanır
    path.clear(); // Parabol çizgisini sıfırla
    }

    if (blueSquare.getPosition().x < 0)
    {
    blueSquare.setPosition(0, blueSquare.getPosition().y);
    }
    else if (blueSquare.getPosition().x + blueSquare.getSize().x > window.getSize().x)
    {
    blueSquare.setPosition(window.getSize().x - blueSquare.getSize().x, blueSquare.getPosition().y);
    }

    window.clear();
    window.draw(sky);
    window.draw(background);
    window.draw(ground);

    // Parabol çizimi
    if (!path.empty())
    {
    window.draw(&path[0], path.size(), sf::LinesStrip);
    }

    window.draw(blueSquare);
    window.draw(titleText); // Başlık metnini çiz
    window.draw(angleText);
    window.draw(forceText);
    window.display();
    }

    return 0;
    }
    0 ...
  • brakistokron eğrisi

    1.
  • bu eğrinin çalışma mantığını özetleyen güzel bir program:

    #include <SFML/Graphics.hpp> // SFML grafik kütüphanesini ekle
    #include <SFML/Window.hpp> // SFML pencere yönetimi için gerekli kütüphane
    #include <iostream> // Girdi/çıktı işlemleri için gerekli kütüphane
    #include <cmath> // Matematiksel işlemler için gerekli kütüphane
    #include <vector> // Dinamik diziler için gerekli kütüphane

    const float radius = 5.0f; // Daire çapı, A ve B noktalarını temsil eden dairelerin yarıçapı
    const float pixelToCmConversionFactor = 100.0f / 3640.0f; // Pikseli cm'ye çeviren faktör
    const float g = 980.0f; // Yerçekimi ivmesi (cm/s^2), düşme hareketinin hesaplanmasında kullanılır
    bool drawing = false; // Çizim durumu, kullanıcı çizim yapıyor mu kontrol eder
    std::vector<sf::Vector2f> curvePoints; // Eğri noktalarını tutmak için dinamik bir dizi

    // Mesafe hesaplama fonksiyonu
    float calculateDistance(const sf::Vector2f& A, const sf::Vector2f& B) {
    return std::sqrt(std::pow(B.x - A.x, 2) + std::pow(B.y - A.y, 2)); // A ve B arasındaki mesafeyi hesaplar
    }

    // Brachistochrone eğrisi için süre hesaplama
    float calculateBrachistochroneTime(float length) {
    return sqrt(2 * length / g); // Düşme süresini hesaplamak için kullanılan formül
    }

    int main() {
    // Pencere oluştur
    sf::RenderWindow window(sf::VideoMode(1920, 1080), "Distance Drawing"); // 1920x1080 boyutunda bir pencere oluştur
    window.setFramerateLimit(60); // FPS sınırını 60'a ayarla

    // A ve B noktaları
    sf::Vector2f A(960, 540); // A noktası, pencerenin ortasında
    sf::Vector2f B(960, 460); // B noktası, A noktasının biraz yukarısında

    while (window.isOpen()) { // Pencere açık olduğu sürece döngü
    sf::Event event; // Olay tanımlaması
    while (window.pollEvent(event)) { // Olayları kontrol et
    if (event.type == sf::Event::Closed) // Pencere kapandığında
    window.close(); // Pencereyi kapat

    // Mouse tuşuna basma olayı
    if (event.type == sf::Event::MouseButtonPressed) {
    if (event.mouseButton.button == sf::Mouse::Left) { // Sol fare tuşuna basıldığında
    drawing = true; // Çizim modunu aç
    curvePoints.clear(); // Çizimi sıfırla
    }
    }
    // Mouse tuşunu bırakma olayı
    if (event.type == sf::Event::MouseButtonReleased) {
    if (event.mouseButton.button == sf::Mouse::Left) { // Sol fare tuşu bırakıldığında
    drawing = false; // Çizim modunu kapat

    // Eğrinin toplam uzunluğunu hesapla
    float totalLength = 0.0f; // Toplam uzunluğu başlat
    for (size_t i = 1; i < curvePoints.size(); ++i) { // Eğri noktaları arasında döngü
    totalLength += calculateDistance(curvePoints[i - 1], curvePoints[i]); // Her iki nokta arasındaki mesafeyi topla
    }

    // Piksel cinsinden uzunluğu cm cinsine çevir
    float totalLengthCm = totalLength * pixelToCmConversionFactor; // Pikseli cm'ye çevir

    // Brachistochrone süresini hesapla
    float timeToReachB = calculateBrachistochroneTime(totalLengthCm); // Süre hesapla

    // Sonuçları terminale yazdır
    std::cout << "Total Length of Curve: " << totalLengthCm << " cm" << std::endl; // Eğrinin toplam uzunluğunu yazdır
    std::cout << "Time to reach B: " << timeToReachB << " seconds" << std::endl; // B noktasına ulaşma süresini yazdır
    }
    }

    // Mouse hareketi
    if (event.type == sf::Event::MouseMoved && drawing) { // Fare hareket ettiyse ve çizim modunda ise
    sf::Vector2f currentPoint(static_cast<float>(event.mouseMove.x), // Mevcut fare konumunu al
    static_cast<float>(event.mouseMove.y));
    curvePoints.push_back(currentPoint); // Mevcut konumu eğri noktalarına ekle
    }
    }

    // Ekranı temizle
    window.clear(sf::Color::White); // Ekranı beyaz renkle temizle

    // A ve B noktalarını çiz
    sf::CircleShape circleA(radius); // A noktası için daire oluştur
    circleA.setFillColor(sf::Color::Black); // Dairenin rengini siyah yap
    circleA.setPosition(A.x - radius, A.y - radius); // Dairenin konumunu ayarla
    window.draw(circleA); // Daireyi çiz

    sf::CircleShape circleB(radius); // B noktası için daire oluştur
    circleB.setFillColor(sf::Color::Black); // Dairenin rengini siyah yap
    circleB.setPosition(B.x - radius, B.y - radius); // Dairenin konumunu ayarla
    window.draw(circleB); // Daireyi çiz

    // Eğriyi çiz
    if (curvePoints.size() > 1) { // Eğri noktaları 2'den fazlaysa
    sf::VertexArray line(sf::PrimitiveType::LineStrip, curvePoints.size()); // Eğriyi çizmek için vertex dizisi oluştur
    for (size_t i = 0; i < curvePoints.size(); ++i) { // Eğri noktaları arasında döngü
    line[i].position = curvePoints[i]; // Her noktanın konumunu ayarla
    line[i].color = sf::Color::Black; // Rengi siyah yap
    }
    window.draw(line); // Eğriyi çiz
    }

    window.display(); // Çizimi güncelle
    }

    return 0; // Programı sona erdir
    }
    0 ...
  • üç boyutlu uzay ve kütleçekimle etkileşen küreler

    1.
  • yaşadığımız dünyanın simülasyon olup olmadığını sorgulatan karelere evsahipliği yapar.



    #include <GL/glut.h>
    #include <glm/glm.hpp>
    #include <cmath>
    #include <vector>
    #include <cstdlib>
    #include <ctime>

    using namespace glm;

    // Fizik sabitleri
    const float G = 6.67430e-11f; // Kütleçekim sabiti
    const float dt = 20.51f; // Zaman adımı
    const int NUM_SPHERES = 402; // 100 rastgele küre ve 2 başlangıç küresi

    // Ekran boyutları
    int windowWidth = 1920;
    int windowHeight = 1080;

    // Küre yapısı
    struct Sphere {
    vec3 position;
    vec3 velocity;
    vec3 acceleration;
    float mass;
    float radius;
    float angularVelocity; // Açısal hız
    float spin; // Dönme açısı
    vec3 color; // Renk
    };

    // Küre tanımları
    std::vector<Sphere> spheres;

    // Işık kaynağı
    vec3 lightPosition = vec3(0.8f, -0.8f, 0.8f);

    // Kütleçekim kuvvetini hesaplayan fonksiyon
    vec3 computeGravitationalForce(Sphere& a, Sphere& b) {
    vec3 direction = b.position - a.position;
    float distance = length(direction);

    // Kütleçekim kuvveti, mesafe sıfıra inmemeli
    if (distance == 0) return vec3(0.0f);

    vec3 force = G * a.mass * b.mass / (distance * distance) * normalize(direction);
    return force;
    }

    // Güncelleme fonksiyonu
    void updatePhysics() {
    for (size_t i = 0; i < spheres.size(); ++i) {
    spheres[i].acceleration = vec3(0.0f); // Her küre için ivmeyi sıfırla
    }

    // Kütleçekim kuvvetlerini hesapla
    for (size_t i = 0; i < spheres.size(); ++i) {
    for (size_t j = i + 1; j < spheres.size(); ++j) {
    vec3 force = computeGravitationalForce(spheres[i], spheres[j]);
    spheres[i].acceleration += force / spheres[i].mass;
    spheres[j].acceleration -= force / spheres[j].mass; // Üzerine etki eden kuvvetin zıttı
    }
    }

    // Hız ve konum güncellemeleri
    for (Sphere& sphere : spheres) {
    sphere.velocity += sphere.acceleration * dt;
    sphere.position += sphere.velocity * dt;

    // Ekranın dışına çıkma kontrolü
    if (sphere.position.x < -1.0f - sphere.radius) {
    sphere.position.x = 1.0f + sphere.radius; // Sol dışına çıktıysa sağdan gir
    } else if (sphere.position.x > 1.0f + sphere.radius) {
    sphere.position.x = -1.0f - sphere.radius; // Sağ dışına çıktıysa soldan gir
    }

    if (sphere.position.y < -1.0f - sphere.radius) {
    sphere.position.y = 1.0f + sphere.radius; // Alt dışına çıktıysa üstten gir
    } else if (sphere.position.y > 1.0f + sphere.radius) {
    sphere.position.y = -1.0f - sphere.radius; // Üst dışına çıktıysa alttan gir
    }

    // Açısal dönüşü güncelle
    sphere.spin += sphere.angularVelocity * dt;
    }
    }

    // Aydınlatmayı ayarla
    void setupLighting() {
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);

    GLfloat lightPos[] = {lightPosition.x, lightPosition.y, lightPosition.z, 1.0f};
    GLfloat lightColor[] = {1.0f, 1.0f, 0.8f, 1.0f}; // Sarımsı ışık
    glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor);
    }

    // Küreleri çizen fonksiyon
    void drawSphere(const Sphere& sphere) {
    glPushMatrix();
    glTranslatef(sphere.position.x, sphere.position.y, sphere.position.z);
    glRotatef(sphere.spin * (180.0f / M_PI), 0.0f, 0.0f, 1.0f); // Z ekseni etrafında döndür

    // Renk ataması
    GLfloat color[] = {sphere.color.r, sphere.color.g, sphere.color.b, 1.0f};
    glMaterialfv(GL_FRONT, GL_DIFFUSE, color);

    glutSolidSphere(sphere.radius, 50, 50);
    glPopMatrix();
    }

    // Çizim fonksiyonu
    void display() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    setupLighting();

    // Küreleri çiz
    for (const Sphere& sphere : spheres) {
    drawSphere(sphere);
    }

    glutSwapBuffers();
    }

    // Ana döngü
    void idle() {
    updatePhysics();
    glutPostRedisplay();
    }

    // Rastgele bir renk oluşturma fonksiyonu
    vec3 randomColor() {
    return vec3(static_cast<float>(rand()) / RAND_MAX, // Renk bileşeni 0.0 ile 1.0 arasında
    static_cast<float>(rand()) / RAND_MAX,
    static_cast<float>(rand()) / RAND_MAX);
    }

    // Başlangıç ayarları
    void init() {
    glEnable(GL_DEPTH_TEST);
    glClearColor(0.1f, 0.1f, 0.1f, 1.0f);

    // Rastgele küreleri oluştur
    std::srand(static_cast<unsigned int>(std::time(0))); // Rastgele sayı üreteci için başlangıç
    for (int i = 0; i < NUM_SPHERES; ++i) {
    float radius = static_cast<float>(rand() % 5 + 1) * 0.01f; // Küre yarıçapı 0.001 ile 0.08 arasında
    float mass = radius * 10.0f; // Kütle, yarıçap ile orantılı
    vec3 position = vec3(static_cast<float>(rand()) / RAND_MAX * 2.0f - 1.0f, // -1 ile 1 arasında rastgele pozisyon
    static_cast<float>(rand()) / RAND_MAX * 2.0f - 1.0f,
    0.0f);
    vec3 velocity = vec3(static_cast<float>(rand()) / RAND_MAX * 0.02f - 0.01f, // -0.01 ile 0.01 arasında rastgele hız
    static_cast<float>(rand()) / RAND_MAX * 0.02f - 0.01f,
    0.0f);
    float angularVelocity = static_cast<float>(rand()) / RAND_MAX * 2.0f - 1.0f; // Rastgele açısal hız

    // Rastgele renk atama
    vec3 color = randomColor();

    spheres.push_back({position, velocity, vec3(0.0f), mass, radius, angularVelocity, 0.0f, color});
    }

    // ilk iki küreyi başlangıçta ekleyin
    spheres.insert(spheres.begin(), {
    {vec3(-0.5f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f), 5.0f, 0.1f, 1.0f, 0.0f, vec3(1.0f, 0.0f, 0.0f)}, // Kırmızı
    {vec3(0.5f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f), 5.0f, 0.1f, -1.0f, 0.0f, vec3(0.0f, 0.0f, 1.0f)} // Mavi
    });
    }

    // Program başlangıcı
    int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(windowWidth, windowHeight);
    glutCreateWindow("Kütleçekim Simülasyonu");

    init();
    glutDisplayFunc(display);
    glutIdleFunc(idle);
    glutMainLoop();

    return 0;
    }
    2 ...
  • basit kurallardan doğan karmaşıklık

    2.
  • #include <GLFW/glfw3.h> // GLFW kütüphanesini içe aktarır; pencere oluşturma ve OpenGL ile çizim için kullanılır.
    #include <vector> // Dinamik diziler ve iki boyutlu vektör yapısı için vektör kütüphanesi.
    #include <ctime> // Rastgele sayı üreteci için zaman kütüphanesi.
    #include <cstdlib> // Rastgele sayı üreteci için C standardında kütüphane.

    const int WIDTH = 1920; // Pencere genişliği piksel cinsinden
    const int HEIGHT = 1080; // Pencere yüksekliği piksel cinsinden
    const int CELL_SIZE = 4; // Her bir hücrenin genişliği ve yüksekliği piksel cinsinden
    const int GRID_WIDTH = WIDTH / CELL_SIZE; // Hücre matrisinin yatayda hücre sayısı
    const int GRID_HEIGHT = HEIGHT / CELL_SIZE; // Hücre matrisinin dikeyde hücre sayısı

    // Hücrelerin durumunu tutan iki boyutlu matris; 2: genişleyen hücre, 1: hücre dolu, 0: hücre boş
    std::vector<std::vector<int>> grid(GRID_HEIGHT, std::vector<int>(GRID_WIDTH, 0));
    // Bir sonraki durumları tutmak için yedek matris
    std::vector<std::vector<int>> nextGrid(GRID_HEIGHT, std::vector<int>(GRID_WIDTH, 0));

    void initializeGrid() {
    srand(static_cast<unsigned>(time(0))); // Rastgele başlangıç için tohum oluşturur.
    for (int y = 0; y < GRID_HEIGHT; ++y) { // Her hücre için
    for (int x = 0; x < GRID_WIDTH; ++x) {
    grid[y][x] = rand() % 2; // Hücreyi rastgele olarak dolu (1) veya boş (0) yapar.
    }
    }
    }

    int countNeighbors(int y, int x) {
    int count = 0; // Komşu hücre sayacını sıfırla.
    for (int dy = -1; dy <= 1; ++dy) { // -1, 0, 1: komşu hücreler için dikey kayma
    for (int dx = -1; dx <= 1; ++dx) { // -1, 0, 1: komşu hücreler için yatay kayma
    if (dy == 0 && dx == 0) continue; // Kendisi değil, sadece komşuları kontrol et.
    int ny = (y + dy + GRID_HEIGHT) % GRID_HEIGHT; // Dikeyde çevrilebilir koordinat
    int nx = (x + dx + GRID_WIDTH) % GRID_WIDTH; // Yatayda çevrilebilir koordinat
    count += grid[ny][nx]; // Eğer komşu hücre dolu ise sayacı artır.
    }
    }
    return count; // Bulunan komşu hücrelerin toplam sayısını döndür.
    }

    void updateGrid() {
    for (int y = 0; y < GRID_HEIGHT; ++y) { // Her hücreyi güncelle
    for (int x = 0; x < GRID_WIDTH; ++x) {
    int neighbors = countNeighbors(y, x); // Mevcut hücrenin komşu sayısını al
    if (grid[y][x] == 1) { // Hücre dolu ise
    nextGrid[y][x] = (neighbors == 2 || neighbors == 3) ? 1 : 0; // 2 veya 3 komşu ile hayatta kalır.
    } else if (grid[y][x] == 2) { // Genişleyen hücre durumu
    nextGrid[y][x] = (neighbors >= 1) ? 2 : 0; // Komşuları varsa genişlemeye devam et.
    } else { // Hücre boş ise
    nextGrid[y][x] = (neighbors == 3) ? 1 : 0; // Boş hücre, 3 komşu varsa doğar.
    }
    }
    }
    grid.swap(nextGrid); // Eski durumu yeni durumla değiştir.
    }

    void drawGrid() {
    glClear(GL_COLOR_BUFFER_BIT); // Ekranı temizler.

    // Hücreleri çizer.
    for (int y = 0; y < GRID_HEIGHT; ++y) {
    for (int x = 0; x < GRID_WIDTH; ++x) {
    if (grid[y][x] == 1) { // Hücre dolu ise
    glColor3f(0.0f, 1.0f, 0.0f); // Yeşil rengi ayarla.
    } else if (grid[y][x] == 2) { // Genişleyen hücre ise
    glColor3f(0.0f, 1.0f, 0.5f); // Yeşil tonunda bir renk
    } else {
    glColor3f(0.0f, 0.0f, 0.0f); // Boş hücreler için siyah arka plan
    }
    glBegin(GL_QUADS); // Her hücreyi kare olarak çiz.
    glVertex2f(x * CELL_SIZE, y * CELL_SIZE);
    glVertex2f((x + 1) * CELL_SIZE - 1, y * CELL_SIZE);
    glVertex2f((x + 1) * CELL_SIZE - 1, (y + 1) * CELL_SIZE - 1);
    glVertex2f(x * CELL_SIZE, (y + 1) * CELL_SIZE - 1);
    glEnd();
    }
    }

    // Izgara çizgilerini çizer.
    glColor3f(1.0f, 0.0f, 0.0f); // Izgara için kırmızı çizgi
    glLineWidth(1.0f);
    glBegin(GL_LINES);
    for (int x = 0; x <= WIDTH; x += CELL_SIZE) {
    glVertex2f(x, 0); glVertex2f(x, HEIGHT); // Dikey çizgiler
    }
    for (int y = 0; y <= HEIGHT; y += CELL_SIZE) {
    glVertex2f(0, y); glVertex2f(WIDTH, y); // Yatay çizgiler
    }
    glEnd();
    }

    int main() {
    if (!glfwInit()) { // GLFW başlat.
    return -1;
    }

    GLFWwindow* window = glfwCreateWindow(WIDTH, HEIGHT, "Game of Life", NULL, NULL); // Pencereyi oluştur.
    if (!window) {
    glfwTerminate(); // Oluşturulmazsa çık.
    return -1;
    }

    glfwMakeContextCurrent(window); // OpenGL bağlamını bu pencereye uygula.
    glOrtho(0, WIDTH, HEIGHT, 0, -1, 1); // Oranları ayarla.

    initializeGrid(); // Başlangıç gridini oluştur.

    while (!glfwWindowShouldClose(window)) { // Pencere açıkken
    drawGrid(); // Çizimi güncelle.
    updateGrid(); // Oyun kurallarına göre hücre durumlarını güncelle.

    glfwSwapBuffers(window); // Çizimi pencereye uygula.
    glfwPollEvents(); // Olayları kontrol et.
    }

    glfwDestroyWindow(window); // Pencereyi temizle.
    glfwTerminate(); // GLFW'yi sonlandır.
    return 0;
    }
    0 ...
  • analog saat

    2.
  • https://galeri.uludagsozluk.com/r/2378358/+

    Last time: 22:38:33 (12-hour format)

    bu programı yapana kadar birçok hata aldım. önce 12 lik saat dilimleriyle, 24 dilimlik saat dilimlerini 1 e 1 eşleştiren bir fonksiyon yaratmam gerekti. ardından program çalışmasa bile, saat verilerini bir yerden almam gerekiyordu. önce istanbul bazlı lokal saati seçtim, fakat bu internet kopmalarında büyük kafa karışıklığı yaratabileceği için, bilgisayar kapalı olsa bile, tüm bileşenler arasında eşzamanlılığı sağlayan bios saatini referans aldım chrono kütüphanesiyle. her bir saati, 360 derecelik daireyi 12 ye bölüp 30 derecelik açılarla yerleştirdiğimde (12 yi 0 dereceden başlatarak, 0 derece daireyi dikey olarak ortadan ikiye böldüğünüzde sol yarım kürede kalan tepe noktasıdır ) kusursuz bir analog saate kavuşmuş oldum.

    1 saat: 1
    2 saat: 2
    3 saat: 3
    4 saat: 4
    5 saat: 5
    6 saat: 6
    7 saat: 7
    8 saat: 8
    9 saat: 9
    10 saat: 10
    11 saat: 11
    12 saat: 12 (Öğle)
    13 saat: 1
    14 saat: 2
    15 saat: 3
    16 saat: 4
    17 saat: 5
    18 saat: 6
    19 saat: 7
    20 saat: 8
    21 saat: 9
    22 saat: 10
    23 saat: 11

    Son saat: 12:59:24 (12 saat formatında)
    #include <SFML/Graphics.hpp> // SFML Grafik kütüphanesini içe aktarır
    #include <SFML/System.hpp> // SFML Sistem işlevlerini içe aktarır
    #include <iostream> // Giriş/Çıkış akışları için standart kütüphane
    #include <cmath> // Matematiksel fonksiyonlar için kütüphane
    #include <chrono> // Zaman işlemleri için kütüphane
    #include <ctime> // C zaman kütüphanesi

    // Saatin elini çizen fonksiyon
    void drawClockHand(sf::RenderWindow &window, float angle, float length, sf::Color color) {
    sf::RectangleShape hand(sf::Vector2f(length, 5)); // El şekli için bir dikdörtgen oluştur
    hand.setFillColor(color); // Elin rengini ayarla
    hand.setOrigin(0, 2.5f); // Orijini elin sol tarafına ayarla
    hand.setRotation(angle); // Belirtilen açıya döndür
    hand.setPosition(400, 300); // Saati merkezi noktaya yerleştir
    window.draw(hand); // Eli çiz
    }

    // Saatin yüzünü çizen fonksiyon
    void drawClockFace(sf::RenderWindow &window, sf::Font &font) {
    sf::CircleShape clockFace(250); // Saat yüzü için bir daire oluştur
    clockFace.setFillColor(sf::Color::Transparent); // Dolu renk olarak saydam ayarla
    clockFace.setOutlineThickness(5); // Kenar kalınlığını ayarla
    clockFace.setOutlineColor(sf::Color::Black); // Kenar rengini siyah ayarla
    clockFace.setPosition(150, 50); // Saat yüzünün konumu
    window.draw(clockFace); // Saat yüzünü çiz

    // Sayıları ve aralarındaki çizgileri çiz
    for (int i = 0; i < 12; ++i) { // 1'den 12'ye kadar döngü
    float angle = 90 - (i * 30); // Sayının açısını hesapla
    float rad = angle * 3.14f / 180; // Dereceleri radyana dönüştür

    // Sayı için konumu hesapla
    float x = 400 + 200 * cos(rad); // Açıya göre X konumu
    float y = 300 - 200 * sin(rad); // Açıya göre Y konumu

    // Sayı metni oluştur
    sf::Text number(std::to_string(i == 0 ? 12 : i), font, 24); // 0 için 12 kullan
    number.setFillColor(sf::Color::Black); // Metin rengini ayarla
    number.setPosition(x - 10, y - 10); // Metni merkezle

    window.draw(number); // Sayıyı çiz

    // Sayılar arasındaki çizgileri çiz
    sf::Vertex line[] = {
    sf::Vertex(sf::Vector2f(400, 300)), // Saatin merkezi
    sf::Vertex(sf::Vector2f(400 + 220 * cos(rad), 300 - 220 * sin(rad))) // Dış çizgi
    };
    window.draw(line, 2, sf::Lines); // Çizgiyi çiz
    }
    }

    int main() {
    // Pencereyi oluştur
    sf::RenderWindow window(sf::VideoMode(800, 600), "Analog Saat"); // 800x600 boyutunda pencere

    // Yazı tipini yükle
    sf::Font font;
    if (!font.loadFromFile("arial.ttf")) { // Yazı tipi dosyasının erişilebilir olduğundan emin ol
    std::cerr << "Error loading font!" << std::endl; // Hata mesajı yazdır
    return 1; // Yazı tipi yükleme başarısızsa çık
    }

    // Geçerli sistem zamanını al
    auto now = std::chrono::system_clock::now(); // Geçerli zamanı al
    std::time_t now_c = std::chrono::system_clock::to_time_t(now); // time_t'ye dönüştür
    std::tm *currentTime = std::localtime(&now_c); // Yerel zaman yapısına dönüştür

    // Sistem zamanından zaman değişkenlerini başlat
    int hour = currentTime->tm_hour; // Saat
    int minute = currentTime->tm_min; // Dakika
    int second = currentTime->tm_sec; // Saniye

    // Saat döngüsünü başlat
    while (window.isOpen()) { // Pencere açık olduğu sürece
    sf::Event event;
    while (window.pollEvent(event)) { // Olayları kontrol et
    if (event.type == sf::Event::Closed)
    window.close(); // Kapatma olayı olduğunda pencereyi kapat
    }

    // Zamanı güncelle (saniyeleri artır)
    second++; // Saniyeyi bir artır
    if (second >= 60) { // Eğer saniye 60 veya daha fazlaysa
    second = 0; // Saniyeyi sıfırla
    minute++; // Dakikayı bir artır
    if (minute >= 60) { // Eğer dakika 60 veya daha fazlaysa
    minute = 0; // Dakikayı sıfırla
    hour++; // Saati bir artır
    if (hour >= 24) { // Eğer saat 24 veya daha fazlaysa
    hour = 0; // Saati sıfırla
    }
    }
    }

    // Açıları dönüştür
    float hourAngle = (hour % 12) * 30 + (minute / 60.0f) * 30; // Her saat 30 derece
    float minuteAngle = minute * 6; // Her dakika 6 derece
    float secondAngle = second * 6; // Her saniye 6 derece

    // Pencereyi temizle
    window.clear(sf::Color::White); // Pencere arka planını beyazla temizle

    // Saat yüzünü çiz
    drawClockFace(window, font); // Saat yüzünü çizme fonksiyonunu çağır

    // Saat, dakika ve saniye elini çiz
    drawClockHand(window, hourAngle - 90, 100, sf::Color::Black); // Saat eli (90 derece döndür)
    drawClockHand(window, minuteAngle - 90, 150, sf::Color::Blue); // Dakika eli (90 derece döndür)
    drawClockHand(window, secondAngle - 90, 180, sf::Color::Red); // Saniye eli (90 derece döndür)

    // Çizimi güncelle
    window.display(); // Çizilen içeriği göster

    // Saniye elinin güncellenmesi için bir gecikme ekle
    sf::sleep(sf::seconds(1)); // 1 saniye bekle
    }

    // Uygulama kapatıldığında son zamanı terminale yazdır
    std::cout << "Last time: " << (hour == 0 ? 12 : hour) << ":" // Son saati yazdır
    << (minute < 10 ? "0" : "") << minute << ":" // Dakikayı yazdır (10'dan küçükse başına 0 ekle)
    << (second < 10 ? "0" : "") << second << " (12-hour format)" << std::endl; // Saniyeyi yazdır (10'dan küçükse başına 0 ekle)

    return 0; // Programı başarıyla kapat
    }
    0 ...
  • çarpışan arabaları programla simüle etmek

    1.
  • zemin için çarpışan objelere farklı sürtünme katsayıları verdim, çünkü birinin malzemesi plastik, diğeri metal olabilir, bu da sürtünme değerlerini etkileyecektir.



    dikdörtgenlere farklı ağırlıklar atadım ve zeminle etkileşmelerini sağladım.

    ortaya çıkan tablo hayli ilginç oldu.

    #include <SFML/Graphics.hpp> // SFML grafik kütüphanesini dahil et
    #include <cmath> // Matematik fonksiyonları için gerekli kütüphane
    #include <sstream> // String akışları için gerekli kütüphane

    // Sabitler
    const float GRAVITY = 981.0f; // Yerçekimi ivmesi (N)
    const float FLOOR_Y = 540.0f; // Zemin seviyesi (Y-koordinatı)
    const float WINDOW_WIDTH = 1920.0f; // Pencere genişliği
    const float WINDOW_HEIGHT = 1080.0f; // Pencere yüksekliği

    // Ağırlıklar (kg)
    const float RECTANGLE1_WEIGHT = 3000.0f; // ilk dikdörtgenin ağırlığı
    const float RECTANGLE2_WEIGHT = 50.0f; // ikinci dikdörtgenin ağırlığı

    // Sürtünme katsayıları
    const float FRICTION_RECTANGLE1 = 0.1f; // ilk dikdörtgenin sürtünme katsayısı
    const float FRICTION_RECTANGLE2 = 0.2f; // ikinci dikdörtgenin sürtünme katsayısı

    int main()
    {
    // Pencereyi oluştur
    sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "Dikdörtgen Çarpışması");

    // Mavi gökyüzü (dikey olarak tam pencere yüksekliği)
    sf::RectangleShape sky(sf::Vector2f(WINDOW_WIDTH, WINDOW_HEIGHT));
    sky.setFillColor(sf::Color(135, 206, 250)); // Açık mavi gökyüzü rengi

    // Yeşil zemin
    sf::RectangleShape floor(sf::Vector2f(WINDOW_WIDTH, WINDOW_HEIGHT - FLOOR_Y));
    floor.setFillColor(sf::Color::Green);
    floor.setPosition(0, FLOOR_Y); // Zemin seviyesini ayarla

    // Mavi dikdörtgenler oluştur
    sf::RectangleShape rectangle1(sf::Vector2f(50.0f, 50.0f));
    rectangle1.setFillColor(sf::Color::Blue);
    rectangle1.setPosition(100, FLOOR_Y); // Başlangıç konumu

    sf::RectangleShape rectangle2(sf::Vector2f(50.0f, 50.0f));
    rectangle2.setFillColor(sf::Color::Red);
    rectangle2.setPosition(500, FLOOR_Y); // Başlangıç konumu

    // Hız değişkenleri
    float xVelocity1 = 400.0f; // ilk dikdörtgenin yatay hızı
    float xVelocity2 = -150.0f; // ikinci dikdörtgenin yatay hızı

    sf::Clock clock; // Zamanlayıcı oluştur

    while (window.isOpen()) // Pencere açık olduğu sürece
    {
    sf::Event event;
    while (window.pollEvent(event)) // Olayları kontrol et
    {
    if (event.type == sf::Event::Closed) // Pencere kapatıldıysa
    window.close(); // Pencereyi kapat
    }

    float dt = clock.restart().asSeconds(); // Delta zamanını hesapla

    // Sürtünmeyi uygula (dikey hareket için değil, sadece yatay hareket için)
    if (rectangle1.getPosition().y == FLOOR_Y) {
    xVelocity1 -= FRICTION_RECTANGLE1 * GRAVITY * dt * (xVelocity1 < 0 ? -1 : 1);
    }
    if (rectangle2.getPosition().y == FLOOR_Y) {
    xVelocity2 -= FRICTION_RECTANGLE2 * GRAVITY * dt * (xVelocity2 < 0 ? -1 : 1);
    }

    // iki dikdörtgenin çarpışma kontrolü
    if (rectangle1.getGlobalBounds().intersects(rectangle2.getGlobalBounds())) {
    // Çarpışma sonrası momentum hesaplama
    float totalWeight = RECTANGLE1_WEIGHT + RECTANGLE2_WEIGHT;
    float newVelocity1 = ((RECTANGLE1_WEIGHT - RECTANGLE2_WEIGHT) / totalWeight) * xVelocity1 +
    ((2 * RECTANGLE2_WEIGHT) / totalWeight) * xVelocity2;
    float newVelocity2 = ((2 * RECTANGLE1_WEIGHT) / totalWeight) * xVelocity1 +
    ((RECTANGLE2_WEIGHT - RECTANGLE1_WEIGHT) / totalWeight) * xVelocity2;

    // Hızları güncelle
    xVelocity1 = newVelocity1;
    xVelocity2 = newVelocity2;

    // Çarpışma sonrası konum düzeltme
    if (xVelocity1 > 0) {
    rectangle1.setPosition(rectangle2.getPosition().x - rectangle1.getSize().x, FLOOR_Y);
    } else {
    rectangle2.setPosition(rectangle1.getPosition().x + rectangle1.getSize().x, FLOOR_Y);
    }
    }

    // Dikdörtgenlerin konumunu güncelle
    rectangle1.move(xVelocity1 * dt, 0); // ilk dikdörtgeni yatay olarak hareket ettir
    rectangle2.move(xVelocity2 * dt, 0); // ikinci dikdörtgeni yatay olarak hareket ettir

    // Pencereyi temizle ve zemin ile gökyüzünü çiz
    window.clear();
    window.draw(sky); // Gökyüzünü çiz
    window.draw(floor); // Zemini çiz
    window.draw(rectangle1); // ilk dikdörtgeni çiz
    window.draw(rectangle2); // ikinci dikdörtgeni çiz
    window.display(); // Pencereyi güncelle
    }

    return 0; // Program başarıyla tamamlandı
    }
    0 ...
  • fizik

    256.
  • aşağıdaki programda zeminin kütleçekim değeriyle, mavi küpün ağırlığı, zıplama hızı, yatay hareket hızı, a, d tuşlarının uyguladığı kuvvetle küpün kazanacağı hız dahil tüm fizik değişkenlerini dilediğiniz gibi değiştirebilir ve eğik atış simülasyonunun tadını çıkarabilirsiniz. fizik ödevleri için de kullanılabilir:

    #include <SFML/Graphics.hpp> // SFML grafik kütüphanesini dahil et
    #include <cmath> // Matematik fonksiyonları için gerekli kütüphane
    #include <sstream> // String akışları için gerekli kütüphane

    // Sabitler
    const float GRAVITY = 681.0f; // Yerçekimi ivmesi (N)
    const float JUMP_SPEED = 400.0f; // Atlama hızı (m/s)
    const float MOVE_SPEED = 300.0f; // Yatay hareket hızı (m/s)
    const float BOOST_MULTIPLIER = 1.5f; // Hız artışı çarpanı
    const float DOUBLE_JUMP_MULTIPLIER = 1.5f; // ikili atlama hız çarpanı
    const float FLOOR_Y = 540.0f; // Zemin seviyesi (Y-koordinatı)
    const float WINDOW_WIDTH = 1920.0f; // Pencere genişliği
    const float WINDOW_HEIGHT = 1080.0f; // Pencere yüksekliği
    const float AIR_DRAG_COEFFICIENT = 0.1f; // Hava sürüklenme katsayısı (yatay hız üzerinde etkili)

    // Mavi kare ağırlığı
    const float BLUE_SQUARE_WEIGHT = 50.0f; // Ağırlık (kg)

    // Hızlandırma için sabitler
    const float ADDITIONAL_SPEED_WHEN_SPACE_PRESSED = 150.0f; // Boşluk tuşuna basıldığında kazanılacak hız
    const float ADDITIONAL_SPEED_A = 100.0f; // A tuşuna basıldığında kazanılacak hız
    const float ADDITIONAL_SPEED_D = 100.0f; // D tuşuna basıldığında kazanılacak hız

    int main()
    {
    // Pencereyi oluştur
    sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "2D-EGIK ATIS HAREKETI");

    // Yazı tipi yükle
    sf::Font font;
    if (!font.loadFromFile("/home/kratertepesi/Masaüstü/Programlar/arial.ttf")) {
    return -1; // Yazı tipi yüklenemezse programı kapat
    }

    // Başlık metni oluştur
    sf::Text titleText("2D-EGIK ATIS HAREKETI", font, 50);
    titleText.setFillColor(sf::Color::White); // Başlık rengini beyaz yap
    titleText.setPosition(WINDOW_WIDTH / 2 - titleText.getGlobalBounds().width / 2, 10); // Başlık konumunu ayarla

    // Mavi kare oluştur
    sf::RectangleShape blueSquare(sf::Vector2f(50.0f, 50.0f));
    blueSquare.setFillColor(sf::Color::Blue); // Mavi kare rengini mavi yap
    blueSquare.setPosition(960, FLOOR_Y); // Mavi karenin başlangıç konumunu ayarla

    // Zemin oluştur
    sf::RectangleShape ground(sf::Vector2f(WINDOW_WIDTH, WINDOW_HEIGHT - (FLOOR_Y + blueSquare.getSize().y)));
    ground.setFillColor(sf::Color::Green); // Zemin rengini yeşil yap
    ground.setPosition(0, FLOOR_Y + blueSquare.getSize().y); // Zemin konumunu ayarla

    // Gökyüzü oluştur
    sf::RectangleShape sky(sf::Vector2f(WINDOW_WIDTH, FLOOR_Y - blueSquare.getSize().y)); // Gökyüzü boyutu, karenin bir kenarı kadar aşağı kaydırıldı
    sky.setFillColor(sf::Color(135, 206, 235)); // Gökyüzü rengini ayarla

    // Durum değişkenleri
    bool jumping = false; // Atlama durumu
    bool onGround = true; // Zemin üzerindeyken
    bool doubleJumpReady = false; // ikili atlama hazır durumu
    float xVelocity = 0.0f; // Yatay hız
    float yVelocity = 0.0f; // Dikey hız

    sf::Clock clock; // Zamanlayıcı oluştur
    sf::Text angleText, forceText; // Açı ve kuvvet metni için değişkenler
    angleText.setFont(font); // Yazı tipini ayarla
    angleText.setCharacterSize(24); // Yazı boyutunu ayarla
    angleText.setFillColor(sf::Color::White); // Yazı rengini beyaz yap
    forceText.setFont(font); // Yazı tipini ayarla
    forceText.setCharacterSize(24); // Yazı boyutunu ayarla
    forceText.setFillColor(sf::Color::White); // Yazı rengini beyaz yap

    while (window.isOpen()) // Pencere açık olduğu sürece
    {
    sf::Event event;
    while (window.pollEvent(event)) // Olayları kontrol et
    {
    if (event.type == sf::Event::Closed) // Pencere kapatıldıysa
    window.close(); // Pencereyi kapat
    }

    float dt = clock.restart().asSeconds(); // Delta zamanını hesapla

    float currentMoveSpeed = MOVE_SPEED; // Geçerli hareket hızını ayarla
    float currentJumpSpeed = JUMP_SPEED; // Geçerli atlama hızını ayarla
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)) // Boşluk tuşuna basılmışsa
    {
    currentMoveSpeed += ADDITIONAL_SPEED_WHEN_SPACE_PRESSED; // Hız artışını uygula
    currentJumpSpeed *= BOOST_MULTIPLIER; // Atlama hızını artır
    }

    // Yatay hareket kontrolü
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) // A tuşuna basılmışsa
    {
    xVelocity = -currentMoveSpeed - ADDITIONAL_SPEED_A; // Sola hareket et
    }
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::D)) // D tuşuna basılmışsa
    {
    xVelocity = currentMoveSpeed + ADDITIONAL_SPEED_D; // Sağa hareket et
    }
    else
    {
    xVelocity = 0.0f; // Hiçbir tuşa basılmıyorsa yatay hızı sıfırla
    }

    // Hava sürüklenmesini uygula
    xVelocity -= AIR_DRAG_COEFFICIENT * xVelocity; // Basit sürüklenme formülü

    // Atlama kontrolü
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::W) && onGround) // W tuşuna ve yerdeyse
    {
    jumping = true; // Atlama gerçekleşiyor
    onGround = false; // Artık yerden yüksekte
    yVelocity = -currentJumpSpeed; // Dikey hız ayarla
    doubleJumpReady = true; // ikili atlama hazır
    }
    else if (sf::Keyboard::isKeyPressed(sf::Keyboard::W) && doubleJumpReady) // W tuşuna basılmışsa ve ikili atlama hazırsa
    {
    yVelocity = -currentJumpSpeed * DOUBLE_JUMP_MULTIPLIER; // ikili atlama için hızı artır
    doubleJumpReady = false; // ikili atlama kullanılmadı
    }

    if (!onGround) // Eğer yerden yüksekteyse
    {
    yVelocity += GRAVITY * dt; // Dikey hıza yerçekimini ekle
    }

    blueSquare.move(xVelocity * dt, yVelocity * dt); // Mavi karenin konumunu güncelle

    float angle = atan2(-yVelocity, xVelocity) * 180 / 3.14159; // Açıyı hesapla
    float force = (BLUE_SQUARE_WEIGHT * yVelocity); // Ağırlığı hesaba kat

    // Açı ve kuvvet metni oluştur
    std::stringstream angleStream, forceStream;
    angleStream << "Angle: " << angle << " degrees"; // Açı metnini oluştur
    forceStream << "Force: " << force << " N"; // Kuvvet metnini oluştur

    angleText.setString(angleStream.str()); // Açı metnini ayarla
    forceText.setString(forceStream.str()); // Kuvvet metnini ayarla
    angleText.setPosition(10, 10); // Açı metninin konumunu ayarla
    forceText.setPosition(10, 40); // Kuvvet metninin konumunu ayarla

    // Yerde olup olmadığını kontrol et
    if (blueSquare.getPosition().y >= FLOOR_Y)
    {
    blueSquare.setPosition(blueSquare.getPosition().x, FLOOR_Y); // Mavi karenin zemin konumunu ayarla
    yVelocity = 0.0f; // Dikey hızı sıfırla
    onGround = true; // Yerde olduğunu belirt
    doubleJumpReady = false; // ikili atlama hazır değil
    }

    // Pencereyi temizle ve gökyüzünü, zemin ve mavi kareyi çiz
    window.clear();
    window.draw(sky); // Gökyüzünü çiz
    window.draw(ground); // Zeminini çiz
    window.draw(blueSquare); // Mavi kareyi çiz
    window.draw(titleText); // Başlık metnini çiz
    window.draw(angleText); // Açı metnini çiz
    window.draw(forceText); // Kuvvet metnini çiz
    window.display(); // Pencereyi güncelle
    }

    return 0; // Program başarıyla tamamlandı
    }
    0 ...
  • © 2025 uludağ sözlük