الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]Accept A Sentence From Keybord

بدأه ayash في 23 يوليو 2009 · 5 رد · 901 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

اذا ممكن عاوز مشروع بعمل التالي

accept a sentence from keyboard , maximum of 50 char them precess it as following

1)convert 1's letter of every word to uppercase

2)convert the remaining to lowercase 

3)remove extra space

4)convert numbers to words

5)display the result

example:-مثلا عندي الكلمة التالية

hellow man 123

تصبح بعد التنفيذ

Hello Mane One Tow Three

ملاحظة : اذا كان يوجد  فراغين يجعلهما فراغ

مثال:

hello   man 123

تصبح

Hellow man One Tow Three

الرجاء الاسراع قدر الامكان 

وشكرا لمنتدى الفريق العربي

291964_260506123967115_206850989332629_1001538_45132_n.jpg

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها

#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

هل حاولت كتابة البرنامج أم أنك تطلب منا أن نكتبه بدلا منك؟؟

ضع محاولاتك والمشاكل التى واجهتك وسيتم حلها إن شاء الله

المنتدى ليس مكانا لحل الواجبات

------------------------------------------------------------

يرجى مراجعة قوانين المنتدى

اقتباس
1. ممنوع منعاً باتاً طلب حلول واجبات/مشاريع أعمال سنة/تمارين او تنفيذ بحوث نيابة عنك، فما طلبه أستاذك في المؤسسة العلمية التي تدرس فيها، طلب منك أداءه لتقييمك أنت وليس لتقييمنا نحن.

يمكننا أن نساعدك، ولكن بعد أن ترينا محاولاتك في الحل والبحث عن حلول والمشاكل التي واجهتك.

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#3

اسف اخي الكود الذي استطعت ان اعمله يعمل على القرائة من الكيبورد والكتابة على الشاشة فقط

هذا هو الكود

.model small

.stack 100h

.data

ENTER1 db 10,10 ,'enter your statment:',10,'$'

WA DW 10,13, ?

STATMENT db 50

db 0

db 50 dup('$')

EXIT_MESS DB 10, 'PRESS A TO QUIT,OR ANY KEY ELSE TO CONTINUE $'

ARRAY DB ?

.code

;---------------------------------------------------------------------

START:

LEA DX,EXIT_MESS ;HOW TO EXIT MESSAGE

CALL PRINT

MOV AH,01

INT 21H

CMP AL,'A'

JE QUIT

CMP AL,'a'

JE QUIT

;=================================================

LEA DX,ENTER1

CALL PRINT

CALL INPUT_ST

LEA DX,WA

MOV AH,09H

INT 21H

CALL PRINT

QUIT:

JMP EXIT

;==================================================

PRINT PROC NEAR

MOV AX,@DATA

MOV DS,AX

MOV AH,09H

INT 21H

RET

PRINT ENDP

;=======================================================

INPUT_ST PROC NEAR

MOV AH,0AH

MOV DX,SEG STATMENT

MOV DS,DX

MOV DX,OFFSET STATMENT

INT 21H

RET

INPUT_ST ENDP

;==========================================================

EXIT:

MOV AH,4CH

INT 21H

END

تم تعديل هذه المشاركة بواسطة ayash في 23 يوليو 2009 في 16:09

291964_260506123967115_206850989332629_1001538_45132_n.jpg

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها

#4

وعليكم السلام ورحمة الله وبركات

لقد حاولت في التمرين وهذا لأنني أتعلم لعلي أسفيد من هذه التمرينات

لقد كتبت الكود وكن به بعض الأخطاء عليك بتصحيحها ولقد لونتها باللون الأحمر

حيث إقترضت أن المستعمل أدخل الجملة مسبقا وهي

hello world i am a man

سيقوم البرنامج بتغيير أحرف بداية الكلمات كبيرة وسينزع المسافة إذا فاقت مسافة واحدة بين الكلمات أما إذا كانت أكثر من مسافتين فلن ينزع أكثر غير في الكود حسب ما أشرت لك هناك ليعمل بشكل جيد بقي طباعة الأعا كتابة فهو بسيط حاول في تصحيح الكود وسأساعدك أعذرني لا أعرف الوصول إلى عناصر السلسلة أو الجدول هذا ما دعاني أقدم ك اكود ناقص أنتظر منك أو من الأخوة هنا تقديم درس مع بعض الأمثلة على ذلك

ومازلت أعني من هذه النقطة والتي لم أستطع تكملة برنامج MENU تفقد مشاركتي الأخيرة.

model small

.stack 100h

.data

STATMENT db item dB 'hello world i am a man$'

.code

MOV AX,@DATA

MOV DS,AX

mov cx,24,statment طول الرسالة التي إقترضنا أن المستعمل أدخلها

start1:

cmp [item+cx],20h;مقارنة العنصر الأول من السلسلة بالمسافة

JNE GO

MOV [item1+cx],[item+cx] ; لقدنسيت التصريح بها statement1 إذا كان يساوي مسافة نضعها قي اسلسلة الجدية التي سميناها

INC CX;cx ونزي في العداد

CMP [item+cx],20H;مقارنة العنصر الأول أيضا بالمسافة

JNE GO

INC CX; ونزيد في اعاد لحذف المسافة ويجب عليك وضع هذا اأمر في حلقة لحذف أكثر من مسافتينstatment1 اذا كان يساوي فارغ آخر لا نضع شيء في

GO:

CMP [item+cx],64H;مقارنة هل عنصر السلسلة محصور قي الأحرف الإنجليزية

JL fill

CMP [item+cx],90H

JG fill

CMP [item+cx],[item+1];هنا لجعل العنصر الأول من السلسة حرف كبير

JE go1

CMP [item+cx-1],20H

JNE FILL

GO1:

sub [item+cx],20H;ascii هنا تحويل الحرف الصغير إلى كبير أنظر إلى جدول

FILL:

MOV [item1+cx],[item+cx];هذا الذي يجب عليك بطباعته لتظهر لك النتائج

loop START1

END

عليك بتحيح الكو وأنظر إلى الناتج :P

تم تعديل هذه المشاركة بواسطة hatem في 23 يوليو 2009 في 19:41

#5

السلام عليكــم ورحمـة الله وبركاتــه ،،

مشكور اخي ان شاء الله في ميزان حسناتك

وشكرا للمنتدى

291964_260506123967115_206850989332629_1001538_45132_n.jpg

اللهم إني أعوذ بك من علم لا ينفع ، ومن قلب لا يخشع ، ومن نفس لا تشبع ، ومن دعوة لا يستجاب لها

#6

أريد أن أرى الكود النهائي الذي توصل إليه أخي ayash

كما أريد أن أسألك إن كانت هناك تمرينات أخرى :lol:

مواضيع مشابهة