Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C guruları koşun


Öne çıkan mesajlar

Mesaj tarihi:
http://static.funnyjunk.com/CommentPhoto/thumbnail/616a4d20_ee5f_c3ad.jpg
mülakat soruları bakıyorum, bazılarına kafa basmadı. bi yardım edin.

1

Bugunden itibaren 2012'nin sonuna kadar kaç tane "13. Cuma" vardır?

said:
2012/1/13
2012/4/13
2011/5/13
2012/7/13
2010/8/13


şunlar.




2

Bir binary'de MIB(Most significant bit) en kolay ve en hızlı nasıl bulunur?

su değer http://upload.wikimedia.org/wikipedia/commons/thumb/7/76/Most_significant_bit.svg/280px-Most_significant_bit.svg.png




3. (bit manuplation)

Given a long bit string M and a small bit string N
Make the bits between p & q in M same as N (q-p = strlen(N))

Mesaj tarihi:
e ilki çok kolay değil mi ?
while ın içinde iki tane değer olucak, bir tanesi 7 olduğunda sıfırlanıcak, diğeri 28 den sonra if ile check edilip o ayda kaç gün varsa ona göre sıfırlanıcak. ay değişkeni 13 olduğunda hafta değişkeni kontrol edilecek, eğer cumaya denk geliyorsa kaydedilcek.
Mesaj tarihi:
tunca said:

e ilki çok kolay değil mi ?
while ın içinde iki tane değer olucak, bir tanesi 7 olduğunda sıfırlanıcak, diğeri 28 den sonra if ile check edilip o ayda kaç gün varsa ona göre sıfırlanıcak. ay değişkeni 13 olduğunda hafta değişkeni kontrol edilecek, eğer cumaya denk geliyorsa kaydedilcek.

Büyük ihtimalle bunun efektif bi algoritma olmasını istiyolar. Öyle bodos kontrolle değil de, daha hızlı bişeyle.
Mesaj tarihi:
bizde finallerde sormuşlardı bunlara çok benzer soruları.
şimdi sorsalar yapamam ama :P

o değil de ilk soruyu yapmanın en kolay yolu direk takvim database'ine ulaşım olması, o nasıl yapılır hiç denemedim...
Mesaj tarihi:
El-Barto said:

tunca said:

e ilki çok kolay değil mi ?
while ın içinde iki tane değer olucak, bir tanesi 7 olduğunda sıfırlanıcak, diğeri 28 den sonra if ile check edilip o ayda kaç gün varsa ona göre sıfırlanıcak. ay değişkeni 13 olduğunda hafta değişkeni kontrol edilecek, eğer cumaya denk geliyorsa kaydedilcek.

Büyük ihtimalle bunun efektif bi algoritma olmasını istiyolar. Öyle bodos kontrolle değil de, daha hızlı bişeyle.

onun efektif hali de 1er 1er arttırmak yerine 7şer 13er falan arttırmak olur yani başka nasıl efektif olucak
Mesaj tarihi:
tunca said:

El-Barto said:

tunca said:

e ilki çok kolay değil mi ?
while ın içinde iki tane değer olucak, bir tanesi 7 olduğunda sıfırlanıcak, diğeri 28 den sonra if ile check edilip o ayda kaç gün varsa ona göre sıfırlanıcak. ay değişkeni 13 olduğunda hafta değişkeni kontrol edilecek, eğer cumaya denk geliyorsa kaydedilcek.

Büyük ihtimalle bunun efektif bi algoritma olmasını istiyolar. Öyle bodos kontrolle değil de, daha hızlı bişeyle.

onun efektif hali de 1er 1er arttırmak yerine 7şer 13er falan arttırmak olur yani başka nasıl efektif olucak


aha sağol tunca güzel cevaplar, serpil hoca'dan mı almıştın sen c'yi:D

ama ben brute force değilde, "Doomsday Algorithm" die bir yol varmış onu bilen birini arıyorum aslında.

Pipet said:

2. soruda array'e at sayıyı sağa kaydır arrayin 0. sını al


bildiğim kadarıyla negatif sayıları sağa kaydırınca değeri yarıya bölüyosun. olmaz gibi yani.

0 1 1 1 1 1 1 1 = 127
0 1 1 1 1 1 1 0 = 126
0 0 0 0 0 0 1 0 = 2
0 0 0 0 0 0 0 1 = 1
0 0 0 0 0 0 0 0 = 0
1 1 1 1 1 1 1 1 = −1
1 1 1 1 1 1 1 0 = −2
1 0 0 0 0 0 0 1 = −127
1 0 0 0 0 0 0 0 = −128

bu soruya şöyle bir cevap buldum ama anlamadım tabi, açıklayan olursa sevinirim.
said:
static const T mask = 1 << (8*sizeof(T)-1);
Mesaj tarihi:
bise dicem, soyle birsey aklima geldi msb icin

10101011

simdi biz bastaki 1'i istiyoruz. burada 8 bit var, yani 1 byte.

ben bu sayiya int x diyorum integera cast ederek. aslinda int 4 byte olur ama burada 1 diye bakalim sonucta birsey farketmeyecek.

ben gidip (int) (x / 2^(sizeof(x)*8-1)) yaparsam
yani (int) (x / 128) oluyor bu da
sonuc 1 ise msb 1'dir degilse 0'dir
mantik 128 veya uzeriyse msb mutlaka 1dir, degilse 0dir

olur mu nasil :)
simdi buldum :)
Mesaj tarihi:
abicim c'de assembly kodları çalışmıyor mu ?
LMB ile sola kaydırcaksın buffera atıcak msbyi bufferdan da çekeceksin.

hatta yanlış hatırlamıyorsam şöyle bişiydi ama bakmak lazım :
__asm__=("LMB %d",binary);
Mesaj tarihi:
abi assembly implement etmeye fln hiç girmeyelim bence, zaten c'yi 6 sene önce gördüm shifting mifting gördükçe hatırlıyorum.

şimdi ortaya soruyorum

bitwise shifting tarzı operatorleri hatırladım ama şurda

said:
00001100 bunu << 2 yaptığımda 00110000


"şurda sonuç söylemi cıkar peki?" said:

11000110 peki bunu <<2 yaptığımda 00011011


mesela aşağıda anlatmak istediği

said:
static const T mask = 1 << (8*sizeof(T)-1);


T: 128 (yani 10000000) olsun diyelim, sizeof ne alaka? niye 8'le multiply edip 1 çıkartıyo sonra shiftliyo, neden neden
Mesaj tarihi:
Orda yaptigi sana her turlu type i test icin bir maske yaratmak.
T tipinde a adinda bir elemanin var diyelim.
sizeof sana o type in byte sayisini doner 32bitlik bir type sa 4 doner orda 1 i 31 kez shift edip MSB ye getiriyor. Yani T typei neyse bu int olur float olur char olur double olur mask elemaninda MSB de 1 gerisinde 0 yaziyor.

Bu maskeyle senin x i bitwise AND lersen msb 1 mi 0 mi bulursun her tip icin.
Mesaj tarihi:
Farklı düşünmeye kastırdım, düz hesap olmasın ,


İlk soru için, Her ay sabit bir gün, ayın 13'ü , hangi güne denk geliyoru formülize edebilirsen, çat diye hesaplatabilirsin ordan.
Yapabilirsen buraya yazar mısın? merak ettim.

http://en.wikipedia.org/wiki/Calculating_the_day_of_the_week şurda bişiler var ama? bakamadım şimdik
Mesaj tarihi:
Larva said:

Orda yaptigi sana her turlu type i test icin bir maske yaratmak.
T tipinde a adinda bir elemanin var diyelim.
sizeof sana o type in byte sayisini doner 32bitlik bir type sa 4 doner orda 1 i 31 kez shift edip MSB ye getiriyor. Yani T typei neyse bu int olur float olur char olur double olur mask elemaninda MSB de 1 gerisinde 0 yaziyor.

Bu maskeyle senin x i bitwise AND lersen msb 1 mi 0 mi bulursun her tip icin.


oh be, compiler'ın error&warning görmesin dayıboy. sağol.
×
×
  • Yeni Oluştur...