Şimdi Ara

Delphi Ödev

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
481
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba iyi günler delphi için ödevim bir çok yerde araştırdım fakat bu kadar ayrıntılı bulamadım yardımcı olursanız çok sevinirim


    Soru1: Form aşağıda görülen şekilde tasarlanmıştır.
    üDelphi Ödev
    a. Kişilerin Vücut kitle indeksini hesaplayıp, ilgili hücreye yazdıran kodu yazınız ve kodları açıklayınız. (Vücut kitle indeksi (VKİ), vücut ağırlığının (kg), boy uzunluğunun metre cinsinden karesine bölünmesiyle hesaplanır. Vücut Kitle İndeksi (VKİ) = Vücut Ağırlığı (kg) / (Boy Uzunluğunun Karesi)(10Puan)
    b. Kişilerin ağırlıklarının Harmonik Ortalamasını bulan ve sonucu mesaj olarak veren kodu yazınız ve kodları açıklayınız.(10Puan)
    c. Hesaplanan Vücut kitle indeksini göz önünde bulundurarak Sınıflandırma kısmını VKİ Sınıflandırma 20.0’den küçük Zayıf 20.0-24.9 Normal 25.0-29.9 Hafif şişman 30.0 ve üstü Şişman olacak şekilde, her kişi için ilgili hücreye yazdırınız ve kodları açıklayınız. (10Puan)
    d. En butonuna basıldığında, En ağır (ağırlık değeri en büyük olan) olan kişiLERin isim, ağırlık, boy, vki ve sınıflandırma değerlerini aralarında noktalı virgül (;) olacak şekilde her kişi için ayrı satırlarda C:\Veri\En.txt’ye yazdıran kodu yazınız ve kodları açıklayınız. (10Puan)
    e. Sınıflandırma Kaydet butonuna basıldığında, Sınıflandırma kısmına göre Zayıf kişilerin bilgilerini (isim, ağırlık, boy, vki ve sınıflandırma değerlerini) C:\Veri\Zayıf.Txt, Normal kişilerin bilgilerini C:\Veri\Normal.Txt, Hafif Şişman kişilerin bilgilerini C:\Veri\Hafifşişman.Txt, Şişman kişilerin bilgilerini C:\Veri\Şişman.Txt içerisine yazdıran kodu yazınız ve kodları açıklayınız. (10Puan)
    f. Form üzerinde, içerisinde satırları sıralı şekilde (A’dan Z’ye) alfabedeki Büyük Harfler olan bir Combobox bileşeni bulunmaktadır. Comboboxtan bir harf seçilip İsim Kaydet butonuna basıldığında, İsim sütununda bulunan isimlerden baş (ilk) harfi Combobox’tan seçilen harf olan isimleri C:\Veri\İsim.txt dosyasına yazdıran kodu yazınız ve kodları açıklayınız. (10 Puan)
    Soru2. Form aşağıda görülen şekilde tasarlanmıştır. Aşağıdaki butonlar ve/veya comboboxlardan 10 tanesini Wordpad Programında çalışacak şekilde yazınız ve kodları açıklayınız? (40 Puan)
    Delphi Ödev



    < Bu mesaj bu kişi tarafından değiştirildi oguzdindar98 -- 26 Nisan 2020; 20:5:33 >







  • O ne be öyle karınca duası gibi :)

    Bu arada Delphi TIOBE (programlama dilleri popülerlik) endeksinde ilk 20 den çıktı.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Çıktı fakat ege sağolsun hala devam ediyor dersleri pascal dahil
  • Aslında Delphi iyi bir dil ve IDE'dir fakat derste zorunlu olarak kullanılması pek iyi değil. Ödev Delphi değil de Java Swing olsaydı o zaman belki bir kısmını yapardım.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Olsun yinede teşekkür ederim
  • ilk soru için wpf olsaydı aşağıda birtane yaptım ama delphiyi bırakalı çok zaman oldu


    using System;
    using System.Collections.ObjectModel;
    using System.ComponentModel;

    namespace VucutKitle
    {
    public class Veriler : INotifyPropertyChanged
    {
    private string isim;
    private double ağırılık;
    private double boy;
    private double vki;
    private string sınıflandırma;

    public string İsim
    {
    get { return isim; }

    set
    {
    if (isim != value)
    {
    isim = value;
    OnPropertyChanged(nameof(İsim));
    }
    }
    }
    public double Ağırılık
    {
    get { return ağırılık; }
    set
    {
    if (ağırılık != value)
    {
    ağırılık = value;
    OnPropertyChanged(nameof(Ağırılık));
    OnPropertyChanged(nameof(Vki));
    OnPropertyChanged(nameof(Sınıflandırma));

    }
    }
    }
    public double Boy
    {
    get { return boy; }
    set
    {
    if (boy != value)
    {
    boy = value;
    OnPropertyChanged(nameof(Boy));
    OnPropertyChanged(nameof(Vki));
    OnPropertyChanged(nameof(Sınıflandırma));

    }
    }
    }
    public double Vki
    {
    get
    {
    vki = Ağırılık / (Math.Pow(Boy / 100, 2));
    return vki;
    }

    set
    {
    if (vki != value)
    {
    vki = value;

    OnPropertyChanged(nameof(Vki));

    }
    }
    }
    public string Sınıflandırma
    {
    get
    {
    if (Vki < 20)
    {
    sınıflandırma = "Zayıf";
    }
    if (Vki >= 20 && Vki < 24.9)
    {
    sınıflandırma = "Normal";
    }
    if (Vki >= 25 && Vki < 29.9)
    {
    sınıflandırma = "Hafif Şişman";
    }
    if (Vki > 30)
    {
    sınıflandırma = "Şişman";
    }
    return sınıflandırma;
    }
    set
    {
    if (sınıflandırma != value)
    {
    sınıflandırma = value;

    OnPropertyChanged(nameof(Sınıflandırma));
    }
    }
    }
    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }


    public class VerilerViewModel
    {
    public ObservableCollection<Veriler> Veriler { get; set; }

    public VerilerViewModel()
    {
    Veriler = new ObservableCollection<Veriler>
    {
    new Veriler() { İsim = "Ali", Ağırılık = 60, Boy = 150 },
    new Veriler() { İsim = "Veli", Ağırılık = 80, Boy = 140 },
    new Veriler() { İsim = "Deli", Ağırılık = 50, Boy = 170 }
    };
    }


    }
    }




    using System.Linq;
    using System.Windows;

    namespace VucutKitle
    {
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
    public MainWindow()
    {
    InitializeComponent();
    DataContext = new VerilerViewModel();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
    string metin = "";
    (DataContext as VerilerViewModel)?.Veriler.OrderByDescending(z => z.Boy).ToList().ForEach(z => metin = ${metin}={$"{z.İsim};{z.Boy};{z.Ağırılık};{z.Sınıflandırma}"}");
    MessageBox.Show(metin);
    }
    }
    }




    <Window x:Class="VucutKitle.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:local="clr-namespace:VucutKitle"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    Width="400" Height="400"
    mc:Ignorable="d">
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition />
    <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <DataGrid Grid.Column="0"
    d:DataContext="{d:DesignInstance Type=local:VerilerViewModel}"
    AutoGenerateColumns="False"
    ItemsSource="{Binding Veriler}">
    <DataGrid.Columns>
    <DataGridTextColumn Header="Ad" Binding="{Binding İsim}" />
    <DataGridTextColumn Header="Ağırlık" Binding="{Binding Ağırılık, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
    <DataGridTextColumn Header="Boy" Binding="{Binding Boy, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
    <DataGridTextColumn Header="Vki"
    Binding="{Binding Vki, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    IsReadOnly="True" />
    <DataGridTextColumn Header="Sınıflandırma"
    Binding="{Binding Sınıflandırma, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    IsReadOnly="True" />
    </DataGrid.Columns>
    </DataGrid>
    <Button Grid.Column="1"
    Content="Hesapla"
    Click="Button_Click" />
    </Grid>
    </Window>

    https://www.dosyaupload.com/o1dz



    < Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 26 Nisan 2020; 22:17:33 >




  • quote:

    Orijinalden alıntı: Gökşen PASLI

    ilk soru için wpf olsaydı aşağıda birtane yaptım ama delphiyi bırakalı çok zaman oldu


    using System;
    using System.Collections.ObjectModel;
    using System.ComponentModel;

    namespace VucutKitle
    {
    public class Veriler : INotifyPropertyChanged
    {
    private string isim;
    private double ağırılık;
    private double boy;
    private double vki;
    private string sınıflandırma;

    public string İsim
    {
    get { return isim; }

    set
    {
    if (isim != value)
    {
    isim = value;
    OnPropertyChanged(nameof(İsim));
    }
    }
    }
    public double Ağırılık
    {
    get { return ağırılık; }
    set
    {
    if (ağırılık != value)
    {
    ağırılık = value;
    OnPropertyChanged(nameof(Ağırılık));
    OnPropertyChanged(nameof(Vki));
    OnPropertyChanged(nameof(Sınıflandırma));

    }
    }
    }
    public double Boy
    {
    get { return boy; }
    set
    {
    if (boy != value)
    {
    boy = value;
    OnPropertyChanged(nameof(Boy));
    OnPropertyChanged(nameof(Vki));
    OnPropertyChanged(nameof(Sınıflandırma));

    }
    }
    }
    public double Vki
    {
    get
    {
    vki = Ağırılık / (Math.Pow(Boy / 100, 2));
    return vki;
    }

    set
    {
    if (vki != value)
    {
    vki = value;

    OnPropertyChanged(nameof(Vki));

    }
    }
    }
    public string Sınıflandırma
    {
    get
    {
    if (Vki < 20)
    {
    sınıflandırma = "Zayıf";
    }
    if (Vki >= 20 && Vki < 24.9)
    {
    sınıflandırma = "Normal";
    }
    if (Vki >= 25 && Vki < 29.9)
    {
    sınıflandırma = "Hafif Şişman";
    }
    if (Vki > 30)
    {
    sınıflandırma = "Şişman";
    }
    return sınıflandırma;
    }
    set
    {
    if (sınıflandırma != value)
    {
    sınıflandırma = value;

    OnPropertyChanged(nameof(Sınıflandırma));
    }
    }
    }
    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }


    public class VerilerViewModel
    {
    public ObservableCollection<Veriler> Veriler { get; set; }

    public VerilerViewModel()
    {
    Veriler = new ObservableCollection<Veriler>
    {
    new Veriler() { İsim = "Ali", Ağırılık = 60, Boy = 150 },
    new Veriler() { İsim = "Veli", Ağırılık = 80, Boy = 140 },
    new Veriler() { İsim = "Deli", Ağırılık = 50, Boy = 170 }
    };
    }


    }
    }




    using System.Linq;
    using System.Windows;

    namespace VucutKitle
    {
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
    public MainWindow()
    {
    InitializeComponent();
    DataContext = new VerilerViewModel();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
    string metin = "";
    (DataContext as VerilerViewModel)?.Veriler.OrderByDescending(z => z.Boy).ToList().ForEach(z => metin = ${metin}={$"{z.İsim};{z.Boy};{z.Ağırılık};{z.Sınıflandırma}"}");
    MessageBox.Show(metin);
    }
    }
    }




    <Window x:Class="VucutKitle.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:local="clr-namespace:VucutKitle"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    Width="400" Height="400"
    mc:Ignorable="d">
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition />
    <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <DataGrid Grid.Column="0"
    d:DataContext="{d:DesignInstance Type=local:VerilerViewModel}"
    AutoGenerateColumns="False"
    ItemsSource="{Binding Veriler}">
    <DataGrid.Columns>
    <DataGridTextColumn Header="Ad" Binding="{Binding İsim}" />
    <DataGridTextColumn Header="Ağırlık" Binding="{Binding Ağırılık, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
    <DataGridTextColumn Header="Boy" Binding="{Binding Boy, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
    <DataGridTextColumn Header="Vki"
    Binding="{Binding Vki, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    IsReadOnly="True" />
    <DataGridTextColumn Header="Sınıflandırma"
    Binding="{Binding Sınıflandırma, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    IsReadOnly="True" />
    </DataGrid.Columns>
    </DataGrid>
    <Button Grid.Column="1"
    Content="Hesapla"
    Click="Button_Click" />
    </Grid>
    </Window>

    https://www.dosyaupload.com/o1dz
    Teşekkür ederim hocam delphide tstringgrid ile yapılcak büyük ihtimalle ama internette'de hiç bir kaynak bulamadım çok eski program




  • var
    agirlik,boy,vki:Double;
    siniflandirma:string;
    begin
    agirlik:=StringGrid1.RowCount;
    boy:=StringGrid1.ColCount;
    vki:=agirlik / (boy * boy);
    StringGrid1.Cells[0,0]:='İsim';
    StringGrid1.Cells[0,1]:='Can';
    StringGrid1.Cells[0,2]:='Efe';
    StringGrid1.Cells[0,3]:='Ali';
    StringGrid1.Cells[0,4]:='Deniz';
    StringGrid1.Cells[1,0]:='Ağırlık';
    StringGrid1.Cells[1,1]:='50';
    StringGrid1.Cells[1,2]:='70';
    StringGrid1.Cells[1,3]:='80';
    StringGrid1.Cells[1,4]:='90';
    StringGrid1.Cells[2,0]:='Boy';
    StringGrid1.Cells[2,1]:='160';
    StringGrid1.Cells[2,2]:='150';
    StringGrid1.Cells[2,3]:='190';
    StringGrid1.Cells[2,4]:='180';
    StringGrid1.Cells[3,0]:='VKİ';
    StringGrid1.Cells[4,0]:='Sınıflandırma';
    StringGrid1.Cells[3,1]:=FloatToStr(vki);
    StringGrid1.Cells[3,2]:=FloatToStr(vki);
    StringGrid1.Cells[3,3]:=FloatToStr(vki);
    StringGrid1.Cells[3,4]:=FloatToStr(vki);
    end;
    end.



    Acaba nerde hatam var bmi yapmaya çalışıyorum vücüt kitle indeksi düzenlerken bu boyları bide kilolaları nasıl alıcam kod olarak yani sütünlardan ona göre bide if koşuluyla sınıflandırmaya yazdırıcam




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.