Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore YazılımC64 BASIC Kısa Kod Yarışması - irqHack64 Ödüllü
Sayfa: 1 ... 9 10 [11] 12 13 ... 30   Aşağı git
Yazdır
Gönderen Konu: C64 BASIC Kısa Kod Yarışması - irqHack64 Ödüllü  (Okunma Sayısı 238114 defa)
0 Üye ve 2 Ziyaretçi konuyu incelemekte.
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #150 : Mayıs 08, 2017, 12:49:09 ÖS »

Evet forsuz da oluyor ama kısalma anlamıda bir avantaj sağlamadığı için böyle bırakmıştım. C'deki gibi a-- olsaymış, iyi olacaktı.
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #151 : Mayıs 13, 2017, 01:43:08 ÖÖ »

@wizofwor : Herkes yatmışken yeni soruyu alsak 
Logged

Every imagination is one's self reflection but not every self reflection is imagination. <I.R.on - 2001>

twitter | blog
emarti
Uzman
*****
Mesaj Sayısı: 2.592


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #152 : Mayıs 13, 2017, 14:00:22 ÖS »

@wizofwor 'da soru kalmadı yada @iron senin assembler sorusuna takılı kaldı burayı unuttu
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB | https://c64kernal.com Genesis

READY.
SYS(64767): EMARTI
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #153 : Mayıs 13, 2017, 15:00:01 ÖS »

@wizofwor'da soru daha çoktur. Ben asal sayıları bekliyorum.
Logged
maverick
Deneyimli
*****
Mesaj Sayısı: 764



Üyelik Bilgileri
« Yanıtla #154 : Mayıs 13, 2017, 20:36:05 ÖS »

Tüm ustaları bir arada bulma şansını yakalamışken yarışma dışı olarak ben bir soru sorabilir miyim acaba? (Yada daha uygun olacak ise başka bir başlık olarak da açabilirim, silebilirsiniz...)

a={1,3,6,7,12}
b={5,6,8,12,15}
c=...
...
cevap: a kesişim b = 6,12
şeklinde

Bu iki veya daha fazla kümenin kesişimi nasıl alınabilir?

Ayrıntı olarak : Verileri biz gireceğiz a kümesi b kümesi (ismi farketmez), girilen sayılar artan sırada ve aynı olmayacaklar (aynı sayı iki kere girilmeyecek gibi). Mesela : 1 den 20 ye kadar olan bir grupta a kümesi 1,5,8 olarak girilecek. ikinci küme de aynı mantıkla girilecek ve program iki (veya daha fazla kümenin kesişimini bulacak)

Araya girdiğim için şimdiden affınıza sığınıyorum. Teşekkürler.
Logged

| Amiga 1200 | C= 64 | PS1 | PSone | Commodore Dergileri |
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #155 : Mayıs 13, 2017, 21:14:05 ÖS »

Iki dizi icin birer index degiskeni olsun mesela.  Birinci dizideki birinci index degiskeninin gosterdigi degeri al. Ayni sekilde ikinci diziden ikinci index degiskeninin gosterdigi degeri al. Bu arada indexler baslangicta 0 olsun yani dizideki en kucuk elemani gostersin. Bu aldigin iki deger ayni ise kesisim kumesine dahildir. Eger ayni degilse hangisi kucuk ise o index degiskenini bir arttir kontrolu tekrarla. Bu islemi ilk dizi bitene kadar tekrarla. Aklima gelen ilk efektif algoritma bu...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
WildLord
Deneyimli
*****
Mesaj Sayısı: 758



Üyelik Bilgileri
« Yanıtla #156 : Mayıs 13, 2017, 22:24:55 ÖS »

Ustalar 3-5 satırda hallederler muhtemelen, ama çalışan bu örnek de bulunsun. Sayıların arasında , değil space kullanılacak.

5 a =0:b=0:c=0
11 input "a kumesini giriniz:";a$
21 input "b kumesini giriniz:";b$
25 for i=1 to len(a$)
26 c$=mid$(a$,i,1)
28 if c$=" " then a=a+1 :goto 30
29 a$(a)=a$(a)+c$
30 next
40 for i=1 to len(b$)
41 c$=mid$(b$,i,1)
42 if c$=" " then b=b+1 :goto 44
43 b$(b)=b$(b)+c$
44 next
45 print "a kesisim b =";
50 for i=0 to a
51 for j=0 to b
52 if a$(i)=b$(j) then c$(c)=a$(i):print c$(c);",";:c=c+1
53 next
54 next
« Son Düzenleme: Mayıs 13, 2017, 22:28:22 ÖS Gönderen: WildLord » Logged
maverick
Deneyimli
*****
Mesaj Sayısı: 764



Üyelik Bilgileri
« Yanıtla #157 : Mayıs 14, 2017, 00:17:47 ÖÖ »

Süpersiniz hocam. Basitçe temel mantığı yazabilir misiniz?
« Son Düzenleme: Mayıs 14, 2017, 01:26:43 ÖÖ Gönderen: hakankaptan » Logged

| Amiga 1200 | C= 64 | PS1 | PSone | Commodore Dergileri |
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #158 : Mayıs 14, 2017, 00:30:03 ÖÖ »

Kod olarak benim algoritma böyle olabilir...
Kod:
10 a(0)=1:a(1)=3:a(2)=6:a(3)=7:a(4)=12
20 b(0)=5:b(1)=6:b(2)=8:b(3)=12:b(4)=15
30 ai=0:bi=0
40 if ai>4 or bi>4 then end
50 if a(ai)=b(bi) then print a(ai);:ai=ai+1:goto 40
60 if a(ai)<b(bi) then ai=ai+1:goto 40
70 bi=bi+1:goto 40
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.789


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #159 : Mayıs 14, 2017, 00:31:22 ÖÖ »

Kusura bakmayın yoğunluğumdan dolayı yeni soruyu ancak sorabiliyorum.

10 puanlık soruların sonuncusu olduğu için biraz basit tutmaya çalışacağım.

İkinci ismi bul
Girilen bir ismin içinden varsa ikinci ismi bulan bir program yazın.
Program ikinci isim yoksa boş değer döndürmeli.
Eğer ilk isimle soyad arasından birden fazla isim varsa hepsini döndürmeli.

Örnekler:
fatma sezen aksu : sezen
rabia demet sağıroğlu : demet
fatma yonca evcimik : yonca
haluk levent :

Not: "Pablo Diego José Francisco de Paula Juan Nepomuceno María de los Remedios Cipriano de la Santísima Trinidad Ruiz y Picasso" gibi uzun isimleri denemeyeceğim.
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #160 : Mayıs 14, 2017, 00:43:45 ÖÖ »

Daha kısası yolda...
Kod:
1 inputa$:fori=1tolen(a$):ifmid$(a$,i,1)=" "thenb=i:ifa=0thena=i
2 next:printmid$(a$,a,b-a)
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
WildLord
Deneyimli
*****
Mesaj Sayısı: 758



Üyelik Bilgileri
« Yanıtla #161 : Mayıs 14, 2017, 01:31:34 ÖÖ »

10 input a$
12 for i=1 to len(a$)
14 if mid$(a$,i,1)=" " then a(b)=i:b=b+1
18 next
20 print mid$(a$,a(0)+1,a(b-1)-a(0))
Logged
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #162 : Mayıs 14, 2017, 01:33:04 ÖÖ »

-1 byte optimizasyon ...
Kod:
1 inputa$:fori=1tolen(a$):ifmid$(a$,i,1)=" "thena=a-(a=0)*i:b=i
2 next:printmid$(a$,a,b-a)
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
emarti
Uzman
*****
Mesaj Sayısı: 2.592


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #163 : Mayıs 14, 2017, 11:08:07 ÖÖ »

Basic kodum

Kod:
0 for x=0to42:readd:poke828+x,d:next:sys828
1 data 169,63,32,210,255,160,0,32
2 data 207,255,201,32,240,2,208,247
3 data 32,207,255,153,103,3,200,201
4 data 32,240,2,208,243,169,0,153
5 data 103,3,160,3,169,102,32,30
6 data 171,96,13

Basic kodun assembler açılımı (CBM prg Studio kullanıldı)
Kod:
*=$033c

start
        LDA #$3F
        JSR $FFD2
       
        LDY #$00         ; input
L2      JSR $FFCF
        CMP #$20         ; ilk space ikinci ada geçiş
        BEQ L3
        BNE L2
L3      JSR $FFCF
        STA name+1,Y     ; ikinci ad saklamaya başla
        INY
        CMP #$20         ; ikinci space ile saklamayı bitir
        BEQ YAZ
        BNE L3
YAZ     LDA #$00         ; $AB1E'den dolayı dizi $00 ile bitmeli
        STA name+1,Y
        LDY #>name
        LDA #<name
        JSR $AB1E        ; yazdır
        RTS

name    BYTE $0D


Ekran görünütüsü
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB | https://c64kernal.com Genesis

READY.
SYS(64767): EMARTI
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.789


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #164 : Mayıs 14, 2017, 11:14:25 ÖÖ »

@emartı: Neredeyse en kısa kodu ASM ile yazacaksın. Yalnız algoritmada ufak bir eksiklik var.

Eğer ilk isimle soyad arasından birden fazla isim varsa hepsini döndürmeli.

COMMODORE AMIGA COMPUTER BASIC ASM girdisi için
AMIGA COMPUTER BASIC döndürmesi lazım.
Logged

Sayfa: 1 ... 9 10 [11] 12 13 ... 30   Yukarı git
Yazdır
Gitmek istediğiniz yer: