مشاهدة النسخة كاملة : حل مسابقة مادة الكمبيوتر (الحلقة الثانية)(moody7890)
moody7890
03-22-2010, 12:57 PM
شوف ده كدة :
#include "stdio.h"
#include"conio.h"
void main()
{
int y=0,i=0,z=0,j=0;
char x=48;
printf("Please enter a number:");
while(x!=13)
{
i=i+1;
x=getche();
if(!(x>=48&&x<=57))
if(x!=13)z=1;
}
if(z==0)printf("\r\nok\r\n");
else printf("\r\nError\r\n");
}
AmrMonsteR
03-22-2010, 01:20 PM
ما شاء الله يا أينش , بس المرة دى الكود بتاع أقصر (باين,, هراجعه :D )
هع هع هع هع :D
المهم,, البرنامج شغال, بس انا مش فاهم الفكرة بتاعته ياريت تشرح :D
moody7890
03-22-2010, 02:11 PM
ما شاء الله يا أينش , بس المرة دى الكود بتاع أقصر (باين,, هراجعه :D )
ماشي طب خد ده بقي:)
#include "stdio.h"
#include"conio.h"
#include "math.h"
void main()
{
double x=0,y=0;
printf("Please enter a number:\r\n");
y=scanf("%lf",&x);
if(x>=0&& ceil(x)==floor(x)&&y==1)printf("\r\nOk\r\n");
else printf("\r\nError\r\n");
}
Pussycat
03-22-2010, 02:20 PM
فين الترجمة طيب انا مش فاهمة اللى حصل
AmrMonsteR
03-22-2010, 02:21 PM
تمام يا أينش,,, ياريت تشرح فكرة البرنامج يا حبيبى عشان مازعلكش :D
AmrMonsteR
03-22-2010, 02:24 PM
هو انا فاهم البرنامج الأخير,,
هو ببساطة بيقول البرنامج لو الـceil و الـfloor بتوع رقم بيساووا بعض, خلاص يبقى تمام..
و دة مابيتحققش الا فى الرقم الصحيح
note
ceil 2.3 = 3
floor 2.3 = 2
ceil 3 = floor 3 = 3
Pussycat
03-22-2010, 02:27 PM
هو انا فاهم البرنامج الأخير,,
هو ببساطة بيقول البرنامج لو الـceil و الـfloor بتوع رقم بيساووا بعض, خلاص يبقى تمام..
و دة مابيتحققش الا فى الرقم الصحيح
note
ceil 2.3 = 3
floor 2.3 = 2
ceil 3 = floor 3 = 3
ماشى بس ليه x,y يبقوا double وy==1؟؟؟؟؟
moody7890
03-22-2010, 02:42 PM
الشرح :
البرنامج الاول:
بياخد الcharacters ب getche و يراقب كل زرار المستخدم يدخله و يشوف الascii بتاعه
لو لقا الascii بين 48 و 57 اللي هوا ascii الارقام من 0 ل 9 يشتغل عادي و يطلب رقم كمان
لو غير كدة يشتغل عادي برضه و يطلب رقم كمان بس يخلي z=1 و يطلب ارقام كمان
لو ال ascii ب 13 اللي هوا زراز enter يبطل يطلب ارقام و يشوف z بكام : لو 1 يبقي error لو zero يبقي ok
لأن zero معناها ان كل ال characters اللي دخلها الuser عبارة عن ارقام من 0 الي 9 فقط و مفهاش اشارة او نقطة
البرنامج الثاني:
زي ما amrmonster قال
و x لازم يبقي double و الا لو المستخدم دخل رقم فيه كسور الكمبوتر هيحوله لرقم صحيح لوحده و الشرط بتاع ceil , floor هيتحقق علي طول
ده غير ان ceil و floor مبيقبلوش integers
و y ممكن بيقي int مش فارقة
هو y ده فيدته انه يتاكد ان الuser دخل رقم مش كلام
Pussycat
03-22-2010, 02:46 PM
:)
ما شاء الله
AmrMonsteR
03-22-2010, 03:07 PM
الشرح :
البرنامج الاول:
بياخد الcharacters ب getche و يراقب كل زرار المستخدم يدخله و يشوف الascii بتاعه
لو لقا الascii بين 48 و 57 اللي هوا ascii الارقام من 0 ل 9 يشتغل عادي و يطلب رقم كمان
لو غير كدة يشتغل عادي برضه و يطلب رقم كمان بس يخلي z=1 و يطلب ارقام كمان
لو ال ascii ب 13 اللي هوا زراز enter يبطل يطلب ارقام و يشوف z بكام : لو 1 يبقي error لو zero يبقي ok
لأن zero معناها ان كل ال characters اللي دخلها الuser عبارة عن ارقام من 0 الي 9 فقط و مفهاش اشارة او نقطة
البرنامج الثاني:
زي ما amrmonster قال
و x لازم يبقي double و الا لو المستخدم دخل رقم فيه كسور الكمبوتر هيحوله لرقم صحيح لوحده و الشرط بتاع ceil , floor هيتحقق علي طول
ده غير ان ceil و floor مبيقبلوش integers
و y ممكن بيقي int مش فارقة
هو y ده فيدته انه يتاكد ان الuser دخل رقم مش كلام
البرنامج الأول نصاب :D
بس تمام يا أينش
http://jcpe.ie/resources/webquests/Health_Related_Fitness_WQ/Health%20Related%20Fitness%20WQ/Fitforlifegraphics/all%20images/ist2_3769272_correct.jpg
Powered by vBulletin™ Version 4.1.0 Copyright © 2012 vBulletin Solutions, TranZ by Almuhajir