Nesne tabanlı programlama bu sorunun cevabı ne olabilir?

oglcn1

Hectopat
Katılım
14 Mart 2016
Mesajlar
478
Çözümler
2
Ödevin assembly kodunu paylaşıyorum.

armut-piş-x86.asm:
.LC0:
        .string "Lutfen adinizi girin"
.LC1:
        .string "%s"
.LC2:
        .string "Lutfen yasinizi girin"
.LC3:
        .string "%d"
.LC4:
        .string "Iyi ki dogdun %s"
.LC5:
        .string "30 yasini gecmissiniz"
.LC6:
        .string "%d yil sonra 30 yasinda olacaksiniz"
main:
        push    rbp
        mov     rbp, rsp
        sub     rsp, 288
        mov     DWORD PTR [rbp-276], 0
        mov     edi, OFFSET FLAT:.LC0
        mov     eax, 0
        call    printf
        lea     rax, [rbp-272]
        mov     rsi, rax
        mov     edi, OFFSET FLAT:.LC1
        mov     eax, 0
        call    __isoc99_scanf
        mov     edi, OFFSET FLAT:.LC2
        mov     eax, 0
        call    printf
        lea     rax, [rbp-276]
        mov     rsi, rax
        mov     edi, OFFSET FLAT:.LC3
        mov     eax, 0
        call    __isoc99_scanf
        lea     rax, [rbp-272]
        mov     rsi, rax
        mov     edi, OFFSET FLAT:.LC4
        mov     eax, 0
        call    printf
        mov     eax, DWORD PTR [rbp-276]
        cmp     eax, 29
        jle     .L2
        mov     edi, OFFSET FLAT:.LC5
        mov     eax, 0
        call    printf
        jmp     .L3
.L2:
        mov     edx, DWORD PTR [rbp-276]
        mov     eax, 30
        sub     eax, edx
        mov     DWORD PTR [rbp-4], eax
        mov     edi, OFFSET FLAT:.LC6
        mov     eax, 0
        call    printf
.L3:
        mov     eax, 0
        leave
        ret
Hocam o nedir ya öyle içinden geçmişsiniz. Şahsen pek çok dil biliyorum ama assembly'ye bulaşmadım hiç.
 
KS
KS
Luser 2

Luser 2

Picopat
Katılım
20 Şubat 2021
Mesajlar
418
Çözümler
1

  1. Bu sorunun nesne yönelimli programlamayla ilgisi yok.
  2. Ödeviniz olduğu için bunun sizin yapmanız, yapamadığınız veya takıldığınız spesifik yeri sormanız gerekir.

Klavyeden kullanıcının adı ve yaşı girilerek, ekrana “iyi ki doğdun” şeklinde mesaj vererek, kaç yıl sonra 30 yaşında olacağını ya da “30 yaşını geçmişsiniz” şeklinde mesaj olarak ekrana yazan akış diyagramını yazınız. Abi soru buydu akış diyagramını böyle yaptım ve kodlama yerlerini de şu şekilde yaptım çıkan sonuç sizce doğru mudur yanlış mıdır bir hatam varsa düzeltir misiniz pazartesiye kadar yetiştirmem lazım lüften yardım edin.
 

Dosya Ekleri

  • Proje 1.PNG
    Proje 1.PNG
    25,5 KB · Görüntüleme: 31
  • Proje 2.PNG
    Proje 2.PNG
    44,1 KB · Görüntüleme: 30
  • Proje 3.PNG
    Proje 3.PNG
    8,5 KB · Görüntüleme: 30
Son düzenleme:

M.Sc Jelly Bean

Gigapat
Katılım
2 Mart 2014
Mesajlar
6.088
Çözümler
104
Yer
Master Boot Record
Yazdığınız kodlara baktığımda ciddi bir temel eksikliğiniz olduğunu görüyorum.

Yazacağınız algoritma şu şekilde olmalı.
  • Basit yaş hesabı: Yaş = Şu anın yılı - kişinin.doğumYılı. (Örnek: 2021 - 1975) Bu değerin pozitif olup olmadığını kontrol etmek isteyebilirsininiz. Gelecekten barış için gönderilen negatif yaşlı insanları üzmek istemeyiz.
  • Bu değerin >= 30 olma durumun kontrolü yapılması eğer true ise "30 yaşını geçmişsiniz." yazdırın, değilse "(30 - Yaş) yıl sonra 30 yaşında olacaksınız." yazdırın.
Bunu akış diyagramına dönüştürmek hiç bilmeyen bir kişi için bile 15-20 dakikalık iş.
Kodlama kısmında ise temeliniz eksik olduğu için benim yardım etmem size daha da zarar verecektir.
 
KS
KS
Luser 2

Luser 2

Picopat
Katılım
20 Şubat 2021
Mesajlar
418
Çözümler
1
Yazdığınız kodlara baktığımda ciddi bir temel eksikliğiniz olduğunu görüyorum.

Yazacağınız algoritma şu şekilde olmalı.
  • Basit yaş hesabı: Yaş = Şu anın yılı - kişinin.doğumYılı. (Örnek: 2021 - 1975) Bu değerin pozitif olup olmadığını kontrol etmek isteyebilirsininiz. Gelecekten barış için gönderilen negatif yaşlı insanları üzmek istemeyiz.
  • Bu değerin >= 30 olma durumun kontrolü yapılması eğer true ise "30 yaşını geçmişsiniz." yazdırın, değilse "(30 - Yaş) yıl sonra 30 yaşında olacaksınız." yazdırın.
Bunu akış diyagramına dönüştürmek hiç bilmeyen bir kişi için bile 15-20 dakikalık iş.
Kodlama kısmında ise temeliniz eksik olduğu için benim yardım etmem size daha da zarar verecektir.
Tamam çok teşekkürler.
 
Yukarı