Numara karşısına numara oluşturma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Numara karşısına numara oluşturma
S.a. Arkadaşlar benim yapmak istediğim bir sey var...Toplam 5 hane olması gerekiyor...
00001
00002
00003
00004
bu numaralar 99999 kadar gidiyor. Benim yapmak istediğim ise şu bu numaraların karşısında başka bir numara oluşmasını istiyorum bi mantıkla ve bu numaralar 99999 geçmeyecek ve hepsinin bir karşılığı olacak ve birbirlerine benzemeyecekler.
Örneğin 00001 karşılığı 2300 olsun 2300 de otomatikmen 00001 olmuş oluyor...99999 tane nonun karşılığına yine 99999 tane numaradan farklı karşılıklar gelmesini istiyorum bi türlü düşünemdim yapamadım. Bunun yolu nedir nasıl yapabilirim. Yardımlarınızı bekliyorum.
İyi Çalışmalar
00001
00002
00003
00004
bu numaralar 99999 kadar gidiyor. Benim yapmak istediğim ise şu bu numaraların karşısında başka bir numara oluşmasını istiyorum bi mantıkla ve bu numaralar 99999 geçmeyecek ve hepsinin bir karşılığı olacak ve birbirlerine benzemeyecekler.
Örneğin 00001 karşılığı 2300 olsun 2300 de otomatikmen 00001 olmuş oluyor...99999 tane nonun karşılığına yine 99999 tane numaradan farklı karşılıklar gelmesini istiyorum bi türlü düşünemdim yapamadım. Bunun yolu nedir nasıl yapabilirim. Yardımlarınızı bekliyorum.
İyi Çalışmalar
bence 2 tablo oluştur.
tablo1 : no1, no2
tablo2 : no_base
tablo1deki no1 alanını 1den 100e kadar doldur mesela
tablo2deki no_base alanını da 1den 100e kadar doldur.
tablo1in ilk kaydından başla ve random ile tablo2den bir kayıt seçip tablo1in no2 alanına yaz. tablo2den seçilen kaydı sil.
işlem tamamlandığı zaman tablo1 şöyle bir hal alacaktır.
no1 no2
1 -- 67
2 -- 45
3 -- 12
4 -- 65
5 -- 11
....
umarım bir fikir verebilmişimdir.
kolay gelsin.
tablo1 : no1, no2
tablo2 : no_base
tablo1deki no1 alanını 1den 100e kadar doldur mesela
tablo2deki no_base alanını da 1den 100e kadar doldur.
tablo1in ilk kaydından başla ve random ile tablo2den bir kayıt seçip tablo1in no2 alanına yaz. tablo2den seçilen kaydı sil.
işlem tamamlandığı zaman tablo1 şöyle bir hal alacaktır.
no1 no2
1 -- 67
2 -- 45
3 -- 12
4 -- 65
5 -- 11
....
umarım bir fikir verebilmişimdir.
kolay gelsin.
Biraz basit oldu ama işinize yarar umarım. Üzerinde biraz daha oynama yaparak daha fazla karıştırabilirsiniz.
Kod: Tümünü seç
function karistir1(deger:integer):integer;
var
karistirac:integer;
begin
if (deger mod 3)=0 then
karistirac:=23412; //bu rakamın 3 e bölümü 0
if (deger mod 3)=1 then
karistirac:=18631; //bu rakamın 3 e bölümü 1
if (deger mod 3)=2 then
karistirac:=34214; //bu rakamın 3 e bölümü 2
if deger>=99999-karistirac then
begin
karistir1:=99999-(deger-(99999-karistirac));
exit;
end;
karistir1:=99999-(deger+karistirac);
end;
İsterseniz bulabilirsiniz. Numaraların karşılıkları değişmiyor. Yani rastgele numaralar üretmiyor. 1 in karşılığı her zaman 81367 dir. 81367 nin karşılığıda 1.
Kod: Tümünü seç
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 99999 do
begin
memo1.Lines.Add(inttostr(i));
memo2.Lines.Add(inttostr(karistir1(i)));
end;
end;
Merhaba,
99999 a tamamlayacak şekilde kullansanız olmaz mı?
mesela 1 için karşılık 99 998 ,
2 için 99 997 yapsanız
...
25 için 99 974 gibi
yani sayıyı ve karşılığını topladığınız zaman 99 999 etsin.
Kolay gelsin.
99999 a tamamlayacak şekilde kullansanız olmaz mı?
mesela 1 için karşılık 99 998 ,
2 için 99 997 yapsanız
...
25 için 99 974 gibi
yani sayıyı ve karşılığını topladığınız zaman 99 999 etsin.
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
@delphist
- Sanıyorum veri şifreleme -pardon şifreleme yanlış veya eksik oldu- gerçek verilere erişimi, üçüncü şahıslar için zorlaştırma üzerine bir çalışma yapmak isteniyor.
- Redhouse sözlük (7 mb'lık veritabanı olan eski sürümü sanıyorum, 34000 kelime hazneli idi ve tümü rahatlıkla görüntülenebiliyor) bu metodu kullanıyor ama çok büyük bir hata yapmış, bunları sıralı kullanmış...
- Kendi projende sıralı olmasına mani ol ki, çözümü zor olsun. Kaynak numaradan yola çıkıldığında, sonuçlar da sıralı çözümler sunacağından riski ortadan kaldırmıyor.
- Sanıyorum veri şifreleme -pardon şifreleme yanlış veya eksik oldu- gerçek verilere erişimi, üçüncü şahıslar için zorlaştırma üzerine bir çalışma yapmak isteniyor.
- Redhouse sözlük (7 mb'lık veritabanı olan eski sürümü sanıyorum, 34000 kelime hazneli idi ve tümü rahatlıkla görüntülenebiliyor) bu metodu kullanıyor ama çok büyük bir hata yapmış, bunları sıralı kullanmış...

- Kendi projende sıralı olmasına mani ol ki, çözümü zor olsun. Kaynak numaradan yola çıkıldığında, sonuçlar da sıralı çözümler sunacağından riski ortadan kaldırmıyor.
Olay anladığım kadarı ile muharrem abinin dediği gibi sözlük tarzında bir program. Redhouse veri tabanını bende görmüştüm ama nasıl olduğunu tam olarak hatırlamıyorum.
-Şimdi olayı sözlük yapımı gibi birşey olarak düşünürsek. İki tablomuz var birinde türkçe kelimler diğerinde ingilizce kelimeler var.
-1 nolu tabloda türkçe kelimelerin yanlarındaki bir alanda ikinci tablodaki ingilizce karşılığı olan kelimenin sira numarası yazıyor. diyelim 1 yazıyor. diğer tablodan gidip 1 nolu kelimeye baktığımızda türkçe kelimenin ingilizce karşılığını buluyoruz.
Anladığım kadarı ile bizim burdaki amacımız 3. şahıs bu tabloya baktığında kelimeleri eşleştiremesin. Yani yukarıdaki gibi kullanmamız gerekiyor.
- Eğer birinci tabloda bir kelimenin yanıda 1 yazıyorsa bu diğer tabloda mesala 12742 tekabül edecekki biri baktığında eşleştiremesin.
Anlamış mıyım?
Muharrem abi demişki:
Sonuçta 2. tabloya gidebilmesi ve o tablodan geriye dönebilmesi için(adam kelimenin ingilizcesine baktığında türkçeyi bulmak için) belli bir mantık ile gidip gelmesi gerekir. Yani random yapamayız.
-Şimdi olayı sözlük yapımı gibi birşey olarak düşünürsek. İki tablomuz var birinde türkçe kelimler diğerinde ingilizce kelimeler var.
-1 nolu tabloda türkçe kelimelerin yanlarındaki bir alanda ikinci tablodaki ingilizce karşılığı olan kelimenin sira numarası yazıyor. diyelim 1 yazıyor. diğer tablodan gidip 1 nolu kelimeye baktığımızda türkçe kelimenin ingilizce karşılığını buluyoruz.
Anladığım kadarı ile bizim burdaki amacımız 3. şahıs bu tabloya baktığında kelimeleri eşleştiremesin. Yani yukarıdaki gibi kullanmamız gerekiyor.
- Eğer birinci tabloda bir kelimenin yanıda 1 yazıyorsa bu diğer tabloda mesala 12742 tekabül edecekki biri baktığında eşleştiremesin.
Anlamış mıyım?
Muharrem abi demişki:
Eğer anlamış isem muharrem abinin dediği gibi sıralı nasıl olmayacak?- Kendi projende sıralı olmasına mani ol ki, çözümü zor olsun. Kaynak numaradan yola çıkıldığında, sonuçlar da sıralı çözümler sunacağından riski ortadan kaldırmıyor.
Sonuçta 2. tabloya gidebilmesi ve o tablodan geriye dönebilmesi için(adam kelimenin ingilizcesine baktığında türkçeyi bulmak için) belli bir mantık ile gidip gelmesi gerekir. Yani random yapamayız.