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 2 3 [4] 5 6 ... 30   Aşağı git
Yazdır
Gönderen Konu: C64 BASIC Kısa Kod Yarışması - irqHack64 Ödüllü  (Okunma Sayısı 237633 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
emarti
Uzman
*****
Mesaj Sayısı: 2.592


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #45 : Nisan 23, 2017, 02:27:16 ÖÖ »

@delimavi kodu tüm tam sayılarda illegal quantity error vermeden çalışıyor bence onun hakkı.

Kod:
1 inputa$:printmid$("ciftek ",(val(right$(a$,1))and1)*3+1,4)



bundaki problem şu, reel sayı girince (sallıyorum 1233.55) dağılıyor. wizofwor keşke tam sayının ötesinde tam sayı aralığını da verseydi.

sayı değil karakter girişinde de çift olarak algılıyor yani soruya göre zaten girdi tamsayı olmalı ondalık olmamalı.
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.787


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #46 : Nisan 23, 2017, 02:28:41 ÖÖ »

Alıntı
Sadece tam sayı girdiler için verilen sayının tek mi çift mi olduğunu bulan bir program yazın.
Program tek sayılar için 'TEK' çift sayılar için 'CIFT' yazmalı.

Soru sadece tam sayı girdiler için geçerli. Yani programları sadece tam sayılarla test ediyorum. Bu durumda Skate'in cevabı geçerli oluyor.

32767'den büyük sayılarda hata vermesi'de BASIC'in integer tanımından gelen bir kısıtlama olduğu için sorun değil.

Logged

Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.756


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #47 : Nisan 23, 2017, 02:32:11 ÖÖ »

Abi platform C64 olduğuna göre bence integer 16 bit signed'dır, bu aralıkta (-32768 ile 32767 aralığı) girilen sayıları girdiğimizde doğru sonuç dönüyorsa geçerlidir bence.

Edit: Gökhan da aynısını yazmış zaten.
« Son Düzenleme: Nisan 23, 2017, 02:33:49 ÖÖ Gönderen: Simon (Özay Turay) » Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
emarti
Uzman
*****
Mesaj Sayısı: 2.592


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #48 : Nisan 23, 2017, 02:32:31 ÖÖ »

Alıntı
Sadece tam sayı girdiler için verilen sayının tek mi çift mi olduğunu bulan bir program yazın.
Program tek sayılar için 'TEK' çift sayılar için 'CIFT' yazmalı.

Soru sadece tam sayı girdiler için geçerli. Yani programları sadece tam sayılarla test ediyorum. Bu durumda Skate'in cevabı geçerli oluyor.

32767'den büyük sayılarda hata vermesi'de BASIC'in integer tanımından gelen bir kısıtlama olduğu için sorun değil.



Tam sayı C64 için 16 bit ama son kullanıcı için sonsuz. Soru o zaman 16 bitlik tamsayılarda geçerli olmak şartı ile sorulmalıydı.
Logged

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

READY.
SYS(64767): EMARTI
maverick
Deneyimli
*****
Mesaj Sayısı: 764



Üyelik Bilgileri
« Yanıtla #49 : Nisan 23, 2017, 02:36:50 ÖÖ »

1 inputc:printmid$("21",2^(cand1),1)

Bende tek çift yazısını alıyorum ve 2 / 1 olarak değiştiriyorum (Kodun sahibine de şapka çıkarıp saygılarımı ileterek) 32767 'ye kadar çalışıyor sonrası illegal felan, kodu arakladığımızı anlıyor sanırım
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #50 : Nisan 23, 2017, 02:38:11 ÖÖ »

emarti, c64'ün input buffer'ı 80 karakterdir. yani iki satırı geçemez. bu durumda kullanıcı 81 basamaklı bir sayıyı hiç bir zaman test edemez. hani bu tür detaylara takılacaksak diye söylüyorum. basic'i override edip, kendi input yöntemini kullanmaya başladığın zaman da 60k basamağı geçen sayılar hafızaya sığmayacaktır. ince düşünceyi sınırlandırmak gerekiyor anlayacağın.
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #51 : Nisan 23, 2017, 02:42:05 ÖÖ »

1 inputc:printmid$("21",2^(cand1),1)

Bende tek çift yazısını alıyorum ve 2 / 1 olarak değiştiriyorum (Kodun sahibine de şapka çıkarıp saygılarımı ileterek) 32767 'ye kadar çalışıyor sonrası illegal felan, kodu arakladığımızı anlıyor sanırım

2 / 1 yerine 1 / 0 kullansak?
Kod:
1 inputc:print(cand1)
Logged
maverick
Deneyimli
*****
Mesaj Sayısı: 764



Üyelik Bilgileri
« Yanıtla #52 : Nisan 23, 2017, 02:45:19 ÖÖ »

 
Logged

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



Üyelik Bilgileri WWW
« Yanıtla #53 : Nisan 23, 2017, 02:50:15 ÖÖ »

Şöyle diyeyim "Sadece tam sayı girdiler için" dendiği zaman şu iki şey anlanabilir,

1. Program tam sayı girdi kabul edecek
2. Program'a input her zaman tam sayı olarak verilecek.

Ben ilki gibi anlamışım. Yorum farkı.

@wizofwor : sorularda tümevarım yaparken kullanılan yöntemdeki gibi input için minimum değer, sonra gelen bir kaç değer, maksimum değer ve her biri için beklenen sonuç şeklinde belirtilirse hepimiz aynı noktada oluruz.
Logged

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

twitter | blog
wolfiem
Deneyimli
*****
Mesaj Sayısı: 1.276


May the source be with you!


Üyelik Bilgileri
« Yanıtla #54 : Nisan 23, 2017, 02:51:10 ÖÖ »

16bit üstündeki sayılar için en kısa versiyonu da not düşelim:
Kod:
1 inputa$:printmid$("ciftek",4^(val(right$(a$,1))and1),4)

Bu yaklaşım @wizofwor @Simon'ın kodunun 16bit üzeri sayılarda çalıştığını söylediği zaman aklıma gelmişti. Sonuçta yarışma c64 üzerindeyse onun limitlerini dikkate almalıyız. Benim yaklaşım işin eğlencesi olsun. Bu turun sonuna kadar daha kısası çıkmazsa @skate bu turun galibidir bence
Logged

Commodore & Amiga & Amstrad & Retro Macintosh Fan
k2.bbs.tr - Çok yakında!
i_r_on
Uzman
*****
Mesaj Sayısı: 2.873



Üyelik Bilgileri WWW
« Yanıtla #55 : Nisan 23, 2017, 02:58:07 ÖÖ »

i_r_on, a% kullandığında da 100.5 için değer üretir. a% ile sen input anında casting yapıyorsun. and operatörü ise ileride otomatik casting yapıyor. sonuç her iki kodda da aynı.

uzun sayılar için çözüm isteyenler daha uzun bir koda katlanmak zorundalar.

Kod:
0 inputa$:printmid$("ciftek",4^(val(mid$(a$,len(a$)))and1),4)

ama günümüzde 64 bit mimaride de bir üst sınır var. bu yüzden 16 bit integer limitine takılmak anlamsız.

yok ben 16 bit sınırına takılmadım. wizofwor'un son açıklamasına göre zaten onun niyeti programı tam sayılarla denemekmiş. benim anladığım ise program tam sayı input kabul edecek şekildeydi.

hani 100.5 dediğinde ne çift ne de tek demesi lazım şeklinde yorumladım. bu tabii tamamen benim koda yaklaşımım ile alakalı
Logged

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

twitter | blog
maverick
Deneyimli
*****
Mesaj Sayısı: 764



Üyelik Bilgileri
« Yanıtla #56 : Nisan 23, 2017, 02:59:10 ÖÖ »

Bu turun sonuna kadar daha kısası çıkmazsa @skate bu turun galibidir bence
Kesinlikle katılıyorum

Son bir zorlama olarak:(Print listeleyince uzuyor biliyorum ama son bir ümit Kahkaha )

0 inputz:?(zand1)
Logged

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


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #57 : Nisan 23, 2017, 03:19:40 ÖÖ »

Bu turun sonuna kadar daha kısası çıkmazsa @skate bu turun galibidir bence
Kesinlikle katılıyorum

Son bir zorlama olarak:(Print listeleyince uzuyor biliyorum ama son bir ümit Kahkaha )

0 inputz:?(zand1)

Kod:
0inputz:?(zaN1)

input# sağolsun, en kısası bu.
Logged
maverick
Deneyimli
*****
Mesaj Sayısı: 764



Üyelik Bilgileri
« Yanıtla #58 : Nisan 23, 2017, 04:21:36 ÖÖ »

0inputa:?(aaN1)

evet input için iN kısaltması INPUT# ile sonuçlanıyor ve kurtarmıyor, z değişkenini a yapıyor bi daha da kodu mıncıklamıyorum. Zaten a yapmışsın b yapmışsın farketmeyecek bir değişiklik. (6 nolu kuralı da iç ettik )

Logged

| Amiga 1200 | C= 64 | PS1 | PSone | Commodore Dergileri |
Oğuzhan
Genel Yönetici
*****
Mesaj Sayısı: 5.152


There's no place like 127.0.0.1


Üyelik Bilgileri
« Yanıtla #59 : Nisan 23, 2017, 14:18:41 ÖS »

1PRINT"TEK"
run

11 karakter Deneyen kişinin bir kere deneyeceği, kod içeriğini önemsemeyeceğini düşünürsek %50 ödül benim değil mi anlamadım
Logged

Amiga 500/500+/1200/4000
Commodore 64
Atari 1040STe/Falcon 030/Jaguar/2600
Roland MT-32 Rev.A&B/SC-88
Sony PS 1-2-3-4-5/PSP/PVM 9"/TV 9"/TV 11"
Sega SMS2FR/MD1FR/MD1JP/MD2/Saturn/Dreamcast/GG
Nintendo NES/SNES/DMG/GBC/GBP/GBA/GBASP
Sayfa: 1 2 3 [4] 5 6 ... 30   Yukarı git
Yazdır
Gitmek istediğiniz yer: