21 Aralık 2009 Pazartesi

neden Pascal ?

Şu an Algoritma derslerinde Pascal dilini öğreniyoruz.
Biraz ısınma turlarından sonra Python ve Ruby için de yazılarım olacak.

2_tahmin_oyunu

Klasik sayı tahmini .
İçinde 0 ve aynı sayılar olmayan  4 rakamlı sayıyı bulmaya çalışıyorsunuz.
Basamak yerleri doğru her rakam için " + " sayısını ,
Basamak yerleri hatalı her rakam için " - "  sayısını üretiyor.
not : Kodu yazdıktan sonra bilg. tuttuğu sayıyı gizlemesi için
writeln('rnd');  satırını silin.

uses crt;


var

r1,r2,r3,r4,my1,my2,my3,my4:real;

mynum,rnd,arti,eksi,j:integer;

k:char;

label

basla,sayi,bitti;

begin

r1:=0;

r2:=0;

r3:=0;

r4:=0;

arti:=0;

eksi:=0;

basla:

rnd:=1;

randomize;

rnd:=random(9876);

clrscr;

writeln(rnd);

r1:=rnd div 1000;

r2:=(rnd div 100)-(r1*10);

r3:=(rnd div 10)-((rnd div 100) *10);

r4:=rnd-((rnd div 10) *10);

if rnd<1234

then

goto basla;

if(r1=0) or (r2=0)or(r3=0)or(r4=0)or(r2=r1)or(r3=r1)or(r4=r1)or(r2=r3)or(r2=r4)or(r3=r4)

then

goto basla;

j:=0;

writeln;

writeln('icinde 0 ve ayni sayi olmayan 4 basamakli bir sayi tahmin ediniz ');

writeln('herhangibir anda oyundan cikmak icin " 1 " e bas');

sayi:

j:=j+1;

arti:=0;

eksi:=0;

writeln;

writeln(j,' nci tahmin sayinizi giriniz');

writeln;

readln(mynum);

if mynum=1

then goto bitti;

my1:=mynum div 1000;

my2:=(mynum div 100)-(my1*10);

my3:=(mynum div 10)-((mynum div 100) *10);

my4:=mynum-((mynum div 10) *10);

if (mynum<1234) or (mynum>9876)

then

goto sayi;

if(my1=0) or (my2=0)or(my3=0)or(my4=0)or(my2=my1)or(my3=my1)or(my4=my1)or(my2=my3)or(my2=my4)or(my3=my4)

then

{writeln(rnd);}

goto sayi;

{writeln(rnd);}

{writeln(mynum);}

if my1=r1

then arti:=arti+1;

if my2=r2

then arti:=arti+1;

if my3 = r3

then arti:=arti+1;

if my4 = r4

then arti:=arti+1;

if my1=r2

then eksi:=eksi+1;

if my1=r3

then eksi:=eksi+1;

if my1=r4

then eksi:=eksi+1;

if my2=r1

then eksi:=eksi+1;

if my2=r3

then eksi:=eksi+1;

if my2=r4

then eksi:=eksi+1;

if my3=r1

then eksi:=eksi+1;

if my3=r2

then eksi:=eksi+1;

if my3=r4

then eksi:=eksi+1;

if my4=r1

then eksi:=eksi+1;

if my4=r2

then eksi:=eksi+1;

if my4=r3

then eksi:=eksi+1;

writeln;

writeln(arti,' arti.....',eksi,' eksi.....');

if mynum<>rnd

then goto sayi;

writeln;

writeln(arti,' arti.....',eksi,' eksi.....',' **** tebrikler sayiyi ',j,' tahminde buldunuz ***' );

writeln;

writeln('tamam mi ? // devam mi? =====> E / H ');

writeln;

readln(k);

if (k='E') or (k='e')

then

goto basla;

bitti:

writeln('game over...ENTER');

readln;

end.

20 Aralık 2009 Pazar

1_sayi_tahmin

aşağıdaki kod tam olarak çalışmıyor. birden fazla aynı sayıları rastgele alıyor.
sorun halledilince buraya cevabı yazılacak.


program tahmin;
uses crt;
var
i,j,k:integer;
label
basla;
begin
basla:
i:=0;
j:=0;
{writeln(i,' ',j);}
randomize;
i:=random(15);
{randomize;}
j:=random(10);
k:=i+j;
writeln('i = ',i,' j = ',j,' k= ', k );
if k<14 then
goto basla;
writeln('i = ',i,' j = ',j,' ===TAMAMDIR===');
readln;
end.

arabada fren ne işe yarar ?

bir çok kişiye bunu sorduklarında durmak için cevabı vermişlerdir.
ama hızı 150 - 300 km olan formula pilotu için fren o hızda durmak için olamaz.
zaten verdikleri cevapta ; güvenli ve kontrollü sürüş için demişlerdir.