بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
لقد كان لي سؤال سابق .... وهو كان سؤال تحدي ولكن للأسف لم يجب عليه أحد ، قد يكون لأن السؤال طويل وهو مكتوب باللغة الانجليزيه ولكن هذه المره سأضع جواب السؤال السابق ، وقبل ذلك سأضع سؤال التحدي الثاني وهو قصير وباللغة العربية وقد لا يكون صعب للمحترفين وأرجو من الأخوان المشاركة لما في ذلك الفائدة التي ستعم الجميع من لديه الخبره ومن هو في طور التعلم .
السؤال هو: قم بعمل برنامج بلغة السي يحول الأرقام من أي نظام رقمي إلى نظام الديسمل ، وأيضا يحول من نظام الديسمل إلى أي نظام آخر(لأي أساس).
مثال على ذلك: تحويل الرقم 10(13) إلى 7(16) أو تحويل الرقم 2(1101) إلى 10(13)
في الحالة الأولى نستخدم القسمة ( قسمة الرقم المراد تحويله على أساس النظام المطلوب التحويل إليه) ونأخد الباقي 13/7 =1والباقي هو 6 ثم 1/7=0 والباقي 1، فيكون الرقم بالنظام 7 هو 16.
أما في الحالة الثانيه فهو أسهل حيث نقوم بضرب كل رقم منفصل في اساس النظام المراد التحويل منه ولكن مرفوع لأس يبتدأ من 0 ثم يتزايد ثم نجمع الأرقام الناتجة من عملية الضرب 1*1+0*2+1*4+1*8=13
جواب سؤال التحدي الأول وهو كان عن حجز المقاعد في طائرة
اقتباس#include <stdio.h>int main()
{
int x,k,y,q,i=1,j=6,seat[11]={0};
printf("Please type 1 for \"first class\"\n"
"Please type 2 for \"economy\"\n");
scanf("%d",&x);
do{
y=0;
if(x==1) {
seat=1;
printf("Seat Number is %d in \"first class\"\n\n",i++);
}
if(x==2) {
seat[j]=1;
printf("Seat Number is %d in \"economy\"\n\n",j++);
}
printf("Please type 1 for \"first class\"\n"
"Please type 2 for \"economy\"\n");
scanf("%d",&x);
if(x==1){
for(k=1;k<=5;k++) if(seat[k]==0) y=1;
if(y==0){
printf("first class section is full.\n\n"
"Dose you acceptable to be placed in the economy section?\n"
"Enter 1 if yes or 0 if no\n");
scanf("%d",&q);
if(q==1) x=2;
if(q==0) printf("Next flight leaves in 3 hours.\n");
}
}
if(x==2){
for(k=6;k<=10;k++) if(seat[k]==0) y=1;
if(y==0) printf("economy section is full.\n");
}
}while(y==1);
return 0;
}
