ورود

View Full Version : سوال: برنامه ماكزيمم و مينيمم بين چند عدد



Blunch
جمعه 09 بهمن 1388, 20:57 عصر
با سلام خدمت دوستان گرامي

اگه ميشه لطف كنيد كد برنامه اي را كه چند عدد متمايز از ورودي دريافت ميكند و ماكزيمم و مينيمم آنها را در خروجي چاپ مي كند را برام بذاريد .

qanewaisi
جمعه 09 بهمن 1388, 21:08 عصر
سلام
دوست عزیز به نظر من کسی سورس آماده نتونه بزاره(بخاطر کمبود وقت)!
ولی اگه برنامه شو خودت نوشتی و یه جاهایی اشکال داری،برنامه رو بزار که رفع مشکل کنیم.

Blunch
جمعه 09 بهمن 1388, 21:27 عصر
با سلام
ممنون

.MODEL SMALL
.STACK 64
.DATA
;----------------------DATA-------------
MAX_NUM DB 0
MIN_NUM DB 0
STR DB "CONTINUE ? $"
MAXSTR DB "MAX IS : $"
ENDL DB 0AH,0DH,'$'
MINSTR DB " MIN IS : $"
S DB "ENTER NUM : $"
;---------------------------------------
.CODE
MAIN PROC FAR

MOV AX,@DATA
MOV DS,AX
MOV ES,AX
MOV AH,09H
LEA DX,S
INT 21H


MOV AH,01H
INT 21H
MOV MIN_NUM,AL
MOV MAX_NUM,AL

MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B
INT 10H

JMP L2

FOR:

MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B
INT 10H

MOV AH,02H
MOV BX,0
MOV DX,0
INT 10H

MOV AH,09H
LEA DX,S
INT 21H


MOV AH,01H
INT 21H


SUB AL,30H

CMP MAX_NUM,AL
JNA L4
ADD AL,30H
MOV MAX_NUM,AL

L4:
CMP AL,30H
JB L5
CMP AL,39H
JA L5
CMP MIN_NUM,AL
JNB L2
ADD AL,30H
MOV MIN_NUM,AL

JMP L2

L5:
SUB AL,30H
CMP MIN_NUM,AL
JNB L2
ADD AL,30H
MOV MIN_NUM,AL


;---------


L2:
;SOAL

;CLEAR SCREAN


MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B
INT 10H

;------MOV X,Y

MOV AH,02H
MOV BX,0
MOV DX,0
INT 10H

;------
MOV AH,09H
LEA DX,STR
INT 21H

MOV AH,01H
INT 21H
CMP AL,'Y'

JE FOR

MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001001B
INT 10H

MOV AH,09H
LEA DX,ENDL
INT 21H


MOV AH,09H
LEA DX,MAXSTR
INT 21H

MOV AH,02H

MOV DL,MAX_NUM
INT 21H

MOV AH,09H
LEA DX,ENDL
INT 21H


MOV AH,09H
LEA DX,MINSTR
INT 21H

MOV AH,02H
MOV DL,MIN_NUM
INT 21H
EXIT:
;-----------------------PAUS-------------------------------------
MOV AH,00H
INT 16H
;----------------------------------------------------------------

MOV AX,4C00H
INT 21H

MAIN ENDP
END MAIN

ممنون ميشم تا فردا بيشتر وقت نداريم!!!! ماكزيمم و مينيمم را يك عدد معرفي مي كند

Blunch
شنبه 10 بهمن 1388, 10:58 صبح
البته اين برنامه را من ننوشتم ،يكي از دوستان، در همين فروم لطف كردند مرا راهنمايي نمودند ، منتها مشكل من اين است كه ميخوام وقتي چند عدد متمايز وارد مي كنم بزرگترين و كوچكترين رو در خروجي چاپ كند نه ايتكه در ابتدا آنها را مساوي قرار بدهد .


با تشكر

$ M 3 H R D A D $
شنبه 10 بهمن 1388, 13:34 عصر
دوست عزیز یک سری کار دارم که واقعا شرمنده که نمیرسم الانم یک چند روزی حواسم به جایی گرم بود
این برنامه و من نوشتم
منطق و این گفتم که اول از همه یک عدد بگیره که هم بزرگ و هم کوچیک بشه اون
که بعدن اعداد و با این بزرگ و کوچیک مقایسه کنه که اگه عدد از کوچیکه کوچیکتر بود کوچیک بشه اوت و همینطور برای عدد بزرگ

خواستم اول کار هر دو را صفر بدم که اشتباه بود آخه همیشه کوچکترین عدد میشد 0
واسه همین اولین عدد و برابر کوچیک قرار دادم
برنامم درسته فقط اگه اول 3 وارد کنی بعد 5 کار میکنه اما اگه بعد 5 عدد 1 و بدب قاطی میکنه که واقعا نمیرسم روش فکر کنم
اما اگه شد درستش میکنم
بازم شرمنده که کامل بهت تحویل ندادم

Blunch
شنبه 10 بهمن 1388, 23:22 عصر
ممنون دوست گرامي
شرمنده، اگه براي ما ،كارگاه برنامه نويسي مي گذاشتند و ما بصورت عملي تمرين مي كرديم و فقط تئوري
نمي خونديم ، دچار اين مشكلات نمي شديم ، وظيفه جنابعالي نيست كه كد برنامه براي ما بنويسيد ولي چون سيستم آموزشي هر دانشگاه فرق مي كنه اين مشكلات رو هم داره، به هرحال ممنون از لطفتون ، فقط اگه لطف كنيد و بفرماييد كه چه منابعي را مطالعه مي كنيد كه اينقدر تسلط داريد، ممنون ميشم!
هر وقت تونستيد ،سپاسگزار ميشم اگر لطف كنيد كد برنامه را تو فروم بذاريد !!

$ M 3 H R D A D $
یک شنبه 11 بهمن 1388, 01:01 صبح
عزیز این دیگه کامل شدشه و بدون هیچ اشکالی

البته برنامه نویس باید همیچه تو خودش ضعف ببینه تا حواسشو بیشتر جمع کنه
پس میگم:اگه مشکل داشت بگو

عدد های 0 تا 9 بده و سوال کرد هم میتونی y بدی هم Y

که دوباره عدد بگیری اگه چیز دیگه بدی میاد نتیجه و چاپ میکنه

کامل تست کردم
اگه سوال یا جایی و اشکال داری همینجا بگو مخلصتم هستم

من زیاد مسلط نیستم اما امیدوارم به اونجاها برسم
ایشالا.........


کتاب زبان ماشین و اسمبلی دکتر حسن سید رضی و بخر خیلی خوبه کمک خوبیه

به امید موفقیعت همه جوونا
بای




.MODEL SMALL
.STACK 64
.DATA
;----------------------DATA-------------
MAX_NUM DB 0
MIN_NUM DB 0
STR DB "CONTINUE ? $"
MAXSTR DB "MAX IS : $"
ENDL DB 0AH,0DH,'$'
MINSTR DB "MIN IS : $"
S DB "ENTER NUM : $"
;---------------------------------------
.CODE
MAIN PROC FAR

MOV AX,@DATA
MOV DS,AX
MOV ES,AX

MOV AH,09H
LEA DX,S
INT 21H


MOV AH,01H
INT 21H
SUB AL,30H
MOV MIN_NUM,AL
MOV MAX_NUM,AL

MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001111B
INT 10H

JMP L2


FOR:

MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001111B
INT 10H

MOV AH,02H
MOV BX,0
MOV DX,0
INT 10H

MOV AH,09H
LEA DX,S
INT 21H


MOV AH,01H
INT 21H


SUB AL,30H

CMP AL,MAX_NUM
JNA L4

MOV MAX_NUM,AL

L4:

CMP AL,MIN_NUM
JNB L2
MOV MIN_NUM,AL

;---------


L2:
;SOAL

;CLEAR SCREAN


MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001111B
INT 10H

;------MOV X,Y

MOV AH,02H
MOV BX,0
MOV DX,0
INT 10H

;------
MOV AH,09H
LEA DX,STR
INT 21H

MOV AH,01H
INT 21H
CMP AL,'Y'

JE FOR
CMP AL,'y'
JE FOR

MOV AH,06H
MOV AL,0
MOV CX,0
MOV DH,24
MOV DL,79
MOV BH,00001111B
INT 10H

MOV AH,09H
LEA DX,ENDL
INT 21H

MOV AH,09H
LEA DX,MINSTR
INT 21H

MOV AH,02H
MOV DL,MIN_NUM
ADD DL,30H
INT 21H

MOV AH,09H
LEA DX,ENDL
INT 21H

MOV AH,09H
LEA DX,MAXSTR
INT 21H

MOV AH,02H
MOV DL,MAX_NUM
ADD DL,30H
INT 21H





EXIT:
;-----------------------PAUS-------------------------------------
MOV AH,00H
INT 16H
;----------------------------------------------------------------

MOV AX,4C00H
INT 21H

MAIN ENDP
END MAIN