15 Ağustos 2008

damacana sular neden 19 litredir?

Çeşme sularını içemiyoruz artık! Öyle klor kokuyorki bazen İstanbulda elimi yüzümü bile yıkamak istemiyorum. Bu nedenle çoğu kişi damacana su alıyor evine, işyerine. İşte bu vesileyle tanıştık damacanayla.



Damacana kelimesinin kökeni hakkında kutsal bilgi kaynağında bir yazı : #damacana/12
Damacana pompasının hikayesi : #damacana/11

Her şey iyi güzel de bu damacanalar neden 19litre? 20 değil, 15 değil. 19 çok ilginç bi rakam.

Bunun sebebi kullandığımız damacanaların sıvıların hacmini litre ile ölçen kişilerce değilde galon diye tabir edilen 3.79 litreye denk gelen ölçü birimini kullanan Amerikalılar tarafından yapılmış olması. Bizim damacanalar 5 galon olarak satışa çıksaydı belki alışırdık belki de içine ne koymuşlar diye kimse almazdı. Yani 3.79*5 yaklaşık olarak 19litre bizim damacanalarda o nedenle 19 litre.

Her yeni damacanada galon hesabını hatırlayalım lütfen!

06 Ağustos 2008

iki sayı arasındaki asal sayılar

bu da çok eskiden yazdığım bir kod, o zamanlar visual basic kullanmışım ondan sonra bir daha visual basic kullandığımı sanmıyorum :). kodlar çok saçma veya gereksiz olabilir ama hatıra olsun diye üzerinde hiç bir değişiklik yapmadan yayınlayacağım.

programın yaptığı, yazdığınız iki sayı arasındaki asal sayıları bulmak. çalışmasını denemek için 2 Listbox, 2 Textbox, 1 Command Box eklemelisiniz.
Dim a, b, i, c As Long
Private Sub Command1_Click()
List1.Clear 'list1 i temizliyelim ki 2. kez araninca üst üste binmesin'
k = Val(Text1.Text) - 1 'k yi ilk sayidan bir eksige ayarliyoruz cunku sonra ekliycez'
l = Val(Text2.Text) - 1 '2. sayiyi dahil etmemek icin ondan da 1 cikariyoruz'
1: 'eger sayi asal degilse burdan baslasin'
k = k + 1 'iste k ye 1 ekliyoruz "soz verdigimiz gibi"'
For a = k To l 'k ile l arasindaki sayilar'
c = a 2 + 1 'iste program fazla yorulmasin diye yarisina kadar aratiyorz'
For i = 2 To c 'yarisina kadar aratmamin sebebi yarisindan büyük'
'bir sayiya zaten bölünemiyecegi'
b = a Mod (i) 'daha basit bir kod olsun diye modu kullandim'
If b = 0 Then GoTo 1 'eger sayimiz asal degilse yeni sayi denemek icin basa dönsün'
Next i '...'
List1.AddItem (a) 'eger sayi for döngüsünden kurtuldu ise asal demektir ve'
'list e eklenmeye hak kazanmıstir'
Next a '...'
End Sub 'sizce analamsiz kodlar olabilir ama bu benim ilk projem'
've sanirim ÖSS sinavina hazirlanmamdan dolayi 2. si'
'uzun bir zaman sonra olacak'

05 Ağustos 2008

delphi ile heceleme programı

çok önceden delphi ile yaptığım bir heceleme algoritması. uzun zaman sonra görünce, buraya da yazmak istedim. programın algoritmasını yazarken nasıl hecelediğimizi keşfetmiştim. o nedenle severim bu algoritmayı. ayrıca bu ve benzeri kodları yayınlarken kodları renklendirebileceğim bi wp plugini bilen var mı?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ALScrollingText;


type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
function sesli(harf:string):boolean;
public
{ Public declarations }
end;


var
Form1: TForm1;


implementation
{$R *.dfm}


function tform1.sesli(harf:string):boolean;
begin
result:=false;
if harf='a'then result:=true;
if harf='e'then result:=true;
if harf='ı'then result:=true;
if harf='i'then result:=true;
if harf='o'then result:=true;
if harf='ö'then result:=true;
if harf='u'then result:=true;
if harf='ü'then result:=true;
if harf='A'then result:=true;
if harf='E'then result:=true;
if harf='I'then result:=true;
if harf='İ'then result:=true;
if harf='O'then result:=true;
if harf='Ö'then result:=true;
if harf='U'then result:=true;
if harf='Ü'then result:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
Memo2.Text := EmptyStr;
for i := 1 to length(Memo1.Text) do
begin
if
not sesli(copy(Memo1.Text,i,1))
and sesli(copy(Memo1.Text,i+1,1))
and not (copy(Memo1.Text,i,1)=' ')
and not (copy(Memo1.Text,i-1,1)=' ')
and not (copy(Memo1.Text,i+1,1)=' ')
then
begin
Memo2.text := Memo2.text+'-';
end;
if sesli(copy(memo1.Text,i,1))
and sesli(copy(memo1.Text,i-1,1))
then
begin
Memo2.text := Memo2.text+'-';
end;
Memo2.Text := Memo2.Text + copy(Memo1.Text,i,1);
end;

if copy(Memo2.Text,1,1) = '-' then
begin
Memo2.Text := copy(Memo2.Text,2,length(Memo2.text)-1);
end;
end;
end.