folder Tahribat.com Forumları
linefolder Delphi - Pascal
linefolder Pascalda Function Kullanarak Alt Program İle İlgili Yardım Acilll



Pascalda Function Kullanarak Alt Program İle İlgili Yardım Acilll

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    arcahmet
    arcahmet's avatar
    Banlanmış Üye
    Kayıt Tarihi: 09/Eylül/2011
    Erkek

    merhaba arkadaşlar üniversite 1. sınıf öğrencisiyim  final nottuna katkıda bulunmak için programlama hocası 2 adet ödev verdi 

     

    biraz uğraştım ama beceremedim

    ödevler şöyle;

    1 den 100'e kadar olan sayılar içinden dik üçgenin, dik kenarlarına ait değerleri olup olmadığının tespitini yapan bir yazılım geliştiriniz..

    not: alt program olarak fonksiyon kullanılacaktır.

    bu 1. ödeve  hiç kafa yoramadım...

     

    2. ödev

    Veri satırından girilen (20 sayısıda dahil) 20 ye kadar olan sayıların faktöriyelini alan programı geliştiriniz..

    not: alt program olarak fonksiyon kullanılacaktır.

     

    for,while,bide diziyi öğrendik bunların dışında yazmayın dedi.

     

    yardımcı olabilecek arkadaş var mı

     

    2. soru için 

     

    şunu yaptım

     

         type
      dztip:array[1..20]of integer;
    
           var
             j,i:byte;
             d:array [1..20]of integer;
             function fak(x:dztip):integer;
             begin
             for i:=1 to 20 do
             begin
             for j:=1 to i do
             begin
             j:=j*i;
             fak:=j;
             end;
             end;
             end;
    
    
    begin
    
      for i:=1 to 20 do
      begin
      writeln(a,' sayisinin faktoriyeli = ',fak(d));
      readln();
      end;
    end.                             

    beceremedim faktöriyeli alıyorum fakat 20 tanesini birden yazdırabilmek için dizi gerekiyor onuda functionda yapamadım

    Bilgiakisi.com Joomla//Joomla Tema// Joomla Eklenti
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    arcahmet
    arcahmet's avatar
    Banlanmış Üye
    Kayıt Tarihi: 09/Eylül/2011
    Erkek

    yok mu 1. ödev için  programcı bir arkadaş ,yardımcı olsun

     

    2. ödevi yaptım ....

    type dizitip=array [1..20] of integer;
         var
           i,j:byte;
           a,fak:integer;
                function fakt:dizitip;
    
                begin
    
    for i:=1 to 20 do
      begin
      fak:=1;
      for j:=1 to i do
      begin
      fak:=fak*j;
      end;
    
      fakt[i]:=fak;
      end;
                  end;
    
    
    
    begin
      for a:=1 to 20 do
      begin
         writeln(a ,' - faktorieli= ',fakt[a]);
         writeln('[--------------------------]');
      end;
       readln();
    end.                                              
    arcahmet tarafından 12/Oca/14 16:34 tarihinde düzenlenmiştir

    Bilgiakisi.com Joomla//Joomla Tema// Joomla Eklenti
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blackseaboy28
    blackseaboy28's avatar
    Kayıt Tarihi: 07/Ağustos/2011
    Erkek

    1. ödevi örnekle anlatımısın hocam anlayamadım :D

    bir de bende birinci sınıftayım ama fonksiyon hiç kullanmadık heralde pascal gereksiz diye.


    Mobil uygulama geliştirilir.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    a kare + b kare = c kare ise dik üçgen olurda orda ki olayı anlamadım (100,3) kombinasyon yapıp hepsini mi deneyeceksin yoksa 0-100 arası 3 değer alıp onları mı kontrol ettireceksin ?


    Si vis pacem para bellum.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blackseaboy28
    blackseaboy28's avatar
    Kayıt Tarihi: 07/Ağustos/2011
    Erkek

    eğer kenar uzunlukları 1 ile 100 arasındaki tamsayılardan oluşan dik üçgenlerin kenar uzunluklarını bulmak istiyorsan;

    a*a+b*b=c*c olacak . b*b yi karsıya atınca c*c-b*b=a*a oluyor. burdan da (c-b)(c+b)=a*a olması lazım 

     for c:=1 to 100 do begin

    for b:=1 to 100 do begin

    while c<b do begin   // c nin b den kücük olması lazım aksi takdirde bütün sayıları 2 kere denemiş olur ve sonuc eksi cıkacagından hata filan verdirebilir. 

    a:= sqrt((b-c)*(b+c));

    end;

    end;

    end;

    bu sekilde a yı bulabilirsin gibime geliyo ama önce var kısmında a yı real , diğer ikisini de integer olarak tanımlaman lazım. 

    daha sonra a nın tamsayı olup olmadıgını denetlettirip ( nası yapacağını bilmiyorum ) bu 3 ünü birden ekrana yazdırırsın.

    bende daha amatör oldugum icin bilenler baksa daha iyi olur 


    Mobil uygulama geliştirilir.
Toplam Hit: 2595 Toplam Mesaj: 5