AmrMonsteR
03-25-2010, 04:47 AM
بسم الله الرحمن الرحيم, و السلام عليكم و رحمة الله و بركاته :)
نَص الحلقة التانية موجود فى موضوع المسابقة و كان كالآتى:-
البرنامج ممكن يكون شكله بسيط, بس هو طلع عينى عشان أعرف ازاى أعمله..
باستخدام الحاجات اللى عندنا فى المنهج بس :D
ازاى تعمل برنامج ياخد رقم,, بس ميقبلش غير أرقام صحيحة موجبة
Positive Integers
؟؟
و الحل اللى كسب هو حلين,, بتوع moody7890 و Devastated بفرق سطر واحد عن الكود اللى فى المركز الثانى :D
و دة الحل
moody7890
#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");
}
و دى الفكرة بتاعته
هو ببساطة بيقول البرنامج لو الـceil و الـfloor بتوع رقم بيساووا بعض, خلاص يبقى تمام..
و دة مابيتحققش الا فى الرقم الصحيح
note
ceil 2.3 = 3
floor 2.3 = 2
ceil 3 = floor 3 = 3
و x لازم يبقي double و الا لو المستخدم دخل رقم فيه كسور الكمبوتر هيحوله لرقم صحيح لوحده و الشرط بتاع ceil , floor هيتحقق علي طول
ده غير ان ceil و floor مبيقبلوش integers
و y ممكن بيقي int مش فارقة
هو y ده فيدته انه يتاكد ان الuser دخل رقم مش كلام
Devastated
void main()
{
double x,y;
printf("Enter A Num (only +ve numbers accepted):\n");
scanf("%lf",&x);
if(( ( x>=0 )? 1:0)==1 && x-((int)x)==0 )
{
printf("Positive Integer\n");
}
else printf("Rejected\n");
}
و دة زى فكرة الكود اللى جاى , بس بدل مايعرف فاريابل تانى, استخدم الـ Type Casting
و عشان كدة كسب :D بفرق سطر :D
و دة الحل اللى فى المركز التانى
EngMostafa
#include<stdio.h>
main(int y, float x)
{ puts("Enter number");
scanf("%f",&x);
y=x;
if(x-y!=0 || x<0)
printf("refused");
else printf("accepted");
}
اللى هو هو الحل بتاعى
AmrMonsteR
#include "stdio.h"
void main()
{
float n;
int n1;
Error1:
printf("Enter the Number of the Students:\t");
scanf("%f",&n);
n1=n;
if(n1!=n || n<0){printf("ONLY POSTIVE INTEGER ALLOWED\n");goto Error1;}
}
و دة فكرته ان المستخدم بيحط الرقم فى فاريابل float , بعد كدة بنحط القيمة دى فى فاريابل integer , فالكسر (ان وجد) بيطير,,, فبنقول لو الـint بيساوى الـfloat يبقى كدة دة فعلا رقم صحيح مش كسر
طيب الحلقة الثالثة,, و الأخيرة فى شابتر 2 ,, نزلت فى موضوع المسابقة...
انظر موضوع المسابقة
http://www.h3sonline.com/forums/showthread.php?t=14464
و السلام ختام. :)
نَص الحلقة التانية موجود فى موضوع المسابقة و كان كالآتى:-
البرنامج ممكن يكون شكله بسيط, بس هو طلع عينى عشان أعرف ازاى أعمله..
باستخدام الحاجات اللى عندنا فى المنهج بس :D
ازاى تعمل برنامج ياخد رقم,, بس ميقبلش غير أرقام صحيحة موجبة
Positive Integers
؟؟
و الحل اللى كسب هو حلين,, بتوع moody7890 و Devastated بفرق سطر واحد عن الكود اللى فى المركز الثانى :D
و دة الحل
moody7890
#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");
}
و دى الفكرة بتاعته
هو ببساطة بيقول البرنامج لو الـceil و الـfloor بتوع رقم بيساووا بعض, خلاص يبقى تمام..
و دة مابيتحققش الا فى الرقم الصحيح
note
ceil 2.3 = 3
floor 2.3 = 2
ceil 3 = floor 3 = 3
و x لازم يبقي double و الا لو المستخدم دخل رقم فيه كسور الكمبوتر هيحوله لرقم صحيح لوحده و الشرط بتاع ceil , floor هيتحقق علي طول
ده غير ان ceil و floor مبيقبلوش integers
و y ممكن بيقي int مش فارقة
هو y ده فيدته انه يتاكد ان الuser دخل رقم مش كلام
Devastated
void main()
{
double x,y;
printf("Enter A Num (only +ve numbers accepted):\n");
scanf("%lf",&x);
if(( ( x>=0 )? 1:0)==1 && x-((int)x)==0 )
{
printf("Positive Integer\n");
}
else printf("Rejected\n");
}
و دة زى فكرة الكود اللى جاى , بس بدل مايعرف فاريابل تانى, استخدم الـ Type Casting
و عشان كدة كسب :D بفرق سطر :D
و دة الحل اللى فى المركز التانى
EngMostafa
#include<stdio.h>
main(int y, float x)
{ puts("Enter number");
scanf("%f",&x);
y=x;
if(x-y!=0 || x<0)
printf("refused");
else printf("accepted");
}
اللى هو هو الحل بتاعى
AmrMonsteR
#include "stdio.h"
void main()
{
float n;
int n1;
Error1:
printf("Enter the Number of the Students:\t");
scanf("%f",&n);
n1=n;
if(n1!=n || n<0){printf("ONLY POSTIVE INTEGER ALLOWED\n");goto Error1;}
}
و دة فكرته ان المستخدم بيحط الرقم فى فاريابل float , بعد كدة بنحط القيمة دى فى فاريابل integer , فالكسر (ان وجد) بيطير,,, فبنقول لو الـint بيساوى الـfloat يبقى كدة دة فعلا رقم صحيح مش كسر
طيب الحلقة الثالثة,, و الأخيرة فى شابتر 2 ,, نزلت فى موضوع المسابقة...
انظر موضوع المسابقة
http://www.h3sonline.com/forums/showthread.php?t=14464
و السلام ختام. :)