Nesne tabanlı programlama bu sorunun cevabı ne olabilir?

oglcn1

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

[CODE title="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[/CODE]
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

Centipat
Katılım
20 Şubat 2021
Mesajlar
459
Çö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: 37
  • Proje 2.PNG
    Proje 2.PNG
    44,1 KB · Görüntüleme: 38
  • Proje 3.PNG
    Proje 3.PNG
    8,5 KB · Görüntüleme: 36
Son düzenleme:

The Anorak

Gigapat
Katılım
2 Mart 2014
Mesajlar
6.271
Çözümler
107
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

Centipat
Katılım
20 Şubat 2021
Mesajlar
459
Çö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ı