Plc asal sayı belirleyen program

ReIoaded

Üye
Katılım
9 Eyl 2019
Mesajlar
5
Puanları
1
Yaş
27
0 dan 100e sayan ve arasındakileri belirleyen bir program ladderlarla yazılabilir mi? Nasıl yapabilirim yardımcı olur msuunuz
*Arasındaki asal sayıları belirleyen
 
Moderatör tarafında düzenlendi:
counter , matematiksel komutlar ile bu programı yazabilirsin. 2 tane hmi 'a girilecek değer gönder . sonrasında o değerleri counter a at. alt limitte saymaya başlasın üst limittede programı sonlandırsın gelen asalları da word'e atarsan sorun çözülür sanırım. akşama yapmaya çalışayım, yaparsan nasıl yaptığımı anlatırım ama projeyi sen yapacaksın projeyi atmam :D
 
Kod:
PROGRAM PLC_PRG
VAR
    sayac, sayi: INT;
    sonuc:ARRAY[0..100] OF  INT;
END_VAR

Kod:
    FOR sayac:=0 TO (sayi-1) DO
        IF sayac >1 THEN
            IF sayac = 2 OR sayac = 3 OR sayac = 5  THEN
                sonuc[sayac] := sayac;
            ELSE
                IF (sayac MOD 2) = 0 OR (sayac MOD 3) = 0 OR (sayac MOD 10) = 5   THEN
                    ;
                ELSE
                    sonuc[sayac] := sayac;
                END_IF;
            END_IF;
        END_IF;
    END_FOR;
 
Son düzenleme:
Kod:
IF HesaplamaBasla THEN   (* HesaplamaBasla(bool) komutuyla hesaplamaya baslanır *)

    FOR i:=0 TO 100 DO   (* Daha önce hesaplama varsa tüm Array içi önce sıfırlanır *)
        sonuc[i]  := 0;
    END_FOR

    HesaplamaOK    := FALSE;
    HesaplamaBasla := FALSE;
    j := 0;

    FOR sayac:=0 TO (sayi-1) DO  (* sayi degeri 100'e ayarlanmalı, hesaplamaya başlamadan önce *)
        IF sayac >1 THEN    (* Asal sayılar aranır *)
            IF sayac = 2 OR sayac = 3 OR sayac=5 THEN
                sonuc[j] := sayac;  (* 2,3 ve 5 sayıları aşağıdaki formulden bağımsız zaten asaldır *)
                j := j +1;
            ELSE
               (* Sayı>5 durumunda 2,3 veya 5 e bölünüyorsa Array içine yazılmaz! *)
                IF (sayac MOD 2) = 0 OR (sayac MOD 3) = 0 OR   (sayac MOD 10) = 5   THEN
                    ;
                ELSE
                    sonuc[j] := sayac;
                    j := j +1;
                END_IF;
            END_IF;
        END_IF;
    END_FOR;

    HesaplamaOK := TRUE;
END_IF  (* HesaplamaBasla komutu if sonu *)
 
Son düzenleme:

Forum istatistikleri

Konular
129,903
Mesajlar
931,169
Kullanıcılar
452,787
Son üye
Azemm333
Geri
Üst