Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Software Engineer
Seçkin Üye
Katılım
22 Eyl 2016
Mesajlar
360
Çözümler
2
Tepki puanı
155
Ödüller
8
9 HİZMET YILI

ayrac.png

:not:
SQL:
/*
Bir şirket bazı verilerini telefon aracılığıyla başka bir yere iletmek istemektedir ama telefonlarının dinlendiğinden şüphelenmektedir. Bütün veriler dört basamaklı tamsayılar şeklinde iletilecektir. Size verilen görev ise bu verileri daha güvenli bir şekilde iletilmeleri için şifrelemenizdir. Programınız şifrelemeyi şu şekilde yapmalıdır:
Her basamağı 7 ile toplamının 2’lik sistemdeki eşitiyle değiştirmeli ve birinci basamağı üçüncü basamak, ikinci basamağı da dördüncü basamak ile yer değiştirmelisiniz.
1. Bir döngü kurun
2. 1000-9999 narası 10 sayı üretim
3. Birinci sütun sayının kendisi, ikinci sütun sayının şifrelenmiş hali olacak şekilde bir tabloda gösterin
*/

Yukarıda verdiğim soruyu SQL kullanarak çözünüz.

ayrac.png

Çözemeyenler için çözüm :
SQL:
Create Function FN_DecimalToBinary
(
    @Sayi INT
)
RETURNS VARCHAR(4)
As
Begin
Declare @intvalue int = @Sayi
Declare @vsresult varchar(4)
Declare @inti int
Select @inti = 4, @vsresult = ''
while @inti>0
  Begin
    Select @vsresult=convert(char(1), @intvalue % 2)+@vsresult
    Select @intvalue = convert(int, (@intvalue / 2)), @inti=@inti-1
  End
Return @vsresult
End
Go
/* Problemin Çözümü */
Declare @SifreTablosu Table
(
    Kod Int,
    Sifre Varchar(20)
)
Declare @i INT = 1
Declare [USER=546016]@kod[/USER] INT
Declare [USER=191864]@sifre[/USER] VARCHAR(20)
Declare @binler INT,@yuzler INT, @onlar INT,@birler INT
While @i <= 10
Begin
    Set [USER=546016]@kod[/USER] = FLOOR(RAND()*(9999-1000+1)+1000)
    Set @binler = [USER=546016]@kod[/USER] / 1000
    Set @yuzler = ([USER=546016]@kod[/USER] % 1000) / 100
    Set @onlar = ([USER=546016]@kod[/USER] % 100) / 10
    Set @birler = [USER=546016]@kod[/USER] % 10


    Set [USER=191864]@sifre[/USER] = dbo.FN_DecimalToBinary(@onlar)+' '+dbo.FN_DecimalToBinary(@birler)+' '+dbo.FN_DecimalToBinary(@binler)+' '+dbo.FN_DecimalToBinary(@yuzler)

    Insert Into @SifreTablosu
    Select @kod,[USER=191864]@sifre[/USER]

    Set @i = @i+1
End

Select * From @SifreTablosu
ayrac.png
 
Seçkin Üye
Katılım
10 Eyl 2017
Mesajlar
348
Tepki puanı
23
Yaş
27
8 HİZMET YILI
Sql kullabını bilşrdim unutmuşum şimdi iyi geceler.
 
Seçkin Üye
Katılım
20 Haz 2020
Mesajlar
298
Çözümler
2
Tepki puanı
3
Ödüller
3
Sosyal
5 HİZMET YILI
saglıklı kodlar klavyenize saglık
 
Üye
Katılım
9 Tem 2020
Mesajlar
49
Tepki puanı
0
Yaş
25
5 HİZMET YILI
güzel bir bilgi emegine yüregine saglık teşekkür ederim dostum
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst