Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: [YARDIM] Çeşitli orta düzey problemler  (Okunma sayısı 621 defa)

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

Çevrimdışı -Comandante

  • Delphi 1 Level 1
  • *
  • İleti: 9
  • Rep: +0/-0
Ynt: [YARDIM] Çeşitli orta düzey problemler
« Yanıtla #15 : 14 Ocak 2012 01:12:25 »
2. soru için biraz forumu kurcalayarak en büyüğü ve en küçüğü bulan 2 farklı şekilde program yaptım programlar aşağıdaki linktedir.Bunları kontrol edip nasıl en küçük üç tanesini ve en büyük 3 tanesini showmessagede yazdırabilirim.

http://www.multiupload.com/G1S01GUWDO

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: [YARDIM] Çeşitli orta düzey problemler
« Yanıtla #16 : 15 Ocak 2012 15:08:52 »
Sayıları dizi içerisinde küçükten büyüğe sıralayarak ilk 3 ve son 3 elemanla istediğinizi elde edebilirsiniz. Sıralama konusunda araştırma yapabilirsiniz. En basit sıralama
Kod:  (Unknown Language)
  1. var i,j,D:Integer;
  2. begin
  3. //n adet elemanlı Dizi sıralaması
  4.   for i:=1 to n-1 do
  5.    for j:=i+1 to n do
  6.     if Dizi[i]>Dizi[j] then begin
  7.       D:=Dizi[i];
  8.       Dizi[i]:=Dizi[j];
  9.       Dizi[j]:=D;
  10.   end;
  11. end;
şeklindedir. Sıralanmış dizide ilk 3 eleman en küçük, son 3 eleman da en büyük değerleri sırası ile verecektir.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı aligel54

  • Delphi 2006 Level 4
  • ****
  • İleti: 481
  • Rep: +1/-0
Ynt: [YARDIM] Çeşitli orta düzey problemler
« Yanıtla #17 : 19 Ocak 2012 14:43:19 »
Çoktandır foruma uğramamıştım.
Şu ilk soruya biraz kafa yorayım dedim.
Haliyle 40 basamaklı bir sayıyı StrToFloat, FloatToSTR fonksiyonlarıyla dönüştürmek pek mümkün değil
Ben de aşağıdaki fonksiyonu yazdım.
String 2 sayıyı toplayıp yine string olarak sonuç döndürüyor.

Kod: [Seç]
Function Topla(Sayi1, Sayi2:string):String;
var
  i:integer;
  Haneler1:array[1..100]of integer;
  Haneler2:array[1..100]of integer;
  Toplam, Artan:integer;
  Uzunluk, Uzunluk1, Uzunluk2:integer;
  Sonuc:String;
begin
  Artan:=0;

  For i:=0 to 100 do Haneler1[i] := 0;
  For i:=0 to 100 do Haneler2[i] := 0;

  Uzunluk1:=Length(Sayi1);
  Uzunluk2:=Length(Sayi2);

  for i:=1 to Uzunluk1 do
    Haneler1[i]:=strtointdef( Copy(Sayi1, ((Uzunluk1-i)+1), 1), 0);

  for i:=1 to Uzunluk2 do
    Haneler2[i]:=strtointdef( Copy(Sayi2, ((Uzunluk2-i)+1), 1), 0);

  if Uzunluk1>Uzunluk2 then Uzunluk:=Uzunluk1 else Uzunluk:=Uzunluk2;

  Artan:=0;

  for i:=1 to Uzunluk do
  begin
    Toplam:=Haneler1[i] + Haneler2[i] + Artan;
    Haneler1[i] := Toplam MOD 10;
    Artan := Toplam DIV 10;
  end;
  Haneler1[i] := Artan;

  if Artan>0 then Haneler1[Uzunluk+1]:=Artan;

  Sonuc:='';
  for i:=1 to Uzunluk do Sonuc:=inttostr(Haneler1[i])+Sonuc;

  Result:=Sonuc;

end;


Aşağıdaki şekilde kullanabilirsiniz.
Kod: [Seç]
Edit3.Text := Topla(Edit1.Text, Edit2.Text);

100 basamağa kadar toplar. Dizi değerlerini yükselterek elbette daha yükse basamaklı sayıları da toplayabilirsiniz.
Belki fazladan değişken ya da gereksiz kod kullanmış olabilirim. Biraz daha sadeleştirmekte yarar var...

Çevrimdışı sheshman

  • Delphi 2007 Level 1
  • *
  • İleti: 501
  • Rep: +10/-0
  • Cinsiyet: Bay
  • So others may live...
    • http://www.sheshman.com
Ynt: [YARDIM] Çeşitli orta düzey problemler
« Yanıtla #18 : 20 Ocak 2012 11:46:32 »
real tipi değişkene atandığında basamak sayısına bakmaksızın toplar gibi geliyo bana ama ? :)
Dünya sizden nefret ederse sizden önce benden nefret etmiş olduğunu bilin. Dünyadan olsaydınız dünya kendisine ait olanı severdi.
http://www.sheshman.com

Çevrimdışı cakirr42

  • Administrator
  • *****
  • İleti: 1.068
  • Rep: +5/-0
  • Cinsiyet: Bay
  • Ben Bana Kendim İçin Lazımım...
    • Ahmet Kürşat ÇAKIR
  • Delphi Sürümü: XE, XE2
Ynt: [YARDIM] Çeşitli orta düzey problemler
« Yanıtla #19 : 20 Ocak 2012 12:07:03 »
:D :D yukardaki kod biraz gereksiz :)
real değişken e atadığımızda yapabiliriz :)

Çünkü Real (5.0 x 10^-324) ile (1.7 x 10^308) arasında değer saklayabilen reel sayı tipidir.
Dönüştürdüğümüzde büyük ihtimal üs gelecektir :D ancak sonuç yanlış değildir :)
http://akcakir.net/
Dalından Kopan Yaprağın Akıbetini Rüzgar Tayin Eder
"Alparslan TÜRKEŞ"