المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Solution algorithme aide svp


Rencover
2015-12-09, 23:59
Salem khawti w khwatati
Svp mess7a9a la solution ta3 hadou les exos uregent mal9itech rassi m3ahom direct
Voilà
Exo 1:
On voudrait à partir de 2 nombres A et B, de 4 positions chacun, construire un
troisième nombre C tel que C est composé des chiffres de A et de B mais concaténés de manière alternée, c’est à
dire que C est composé du premier chiffre de A puis du premier chiffre de B, ensuite du deuxième chiffre de A
puis du deuxième chiffre de B, etc ...
Regardez attentivement l’exemple suivant :
si A = 1 2 3 4 et B = 5 6 7 8 C = 1 5 2 6 3 7 4 8

Exo 2:
Soient 2 nombres donnés A et B , tels que Ax = B10
(ou x et 10 sont les bases dans lesquelles sont écrits A et B). Construire l’algorithme qui nous permet de
savoir dans quelle base est écrit A.
Exemple : A = 20405 x et B = 845310
La base dans laquelle est écrit le nombre A est la base 8 .

sami bett
2015-12-10, 16:07
وَعليكم السَّلام وَرحمة الله تعالى وَبركاته.

يُرجى تقديم محاولاتكم أَو أفكاركم أوَّلاً حتَّى تَتَسَنَّى لنا مُساعدتكم.

Rencover
2015-12-10, 20:42
المشكلة ما عندي ادنى فكرة
على الاقل اعطوني افكار و انا نكمل

sami bett
2015-12-10, 22:50
حسنًا، بالنِّسبة للتمرين الأول يقتصر على:
تحديد طول العدد يعني الـ lenght وَليس الـ size، مثال: العدد 5758 طوله 4.
ثانيا التفكير بإنشاء arrays، مَع أنِّي أحبذ إنشائها وهميًا:
الطريقة:
باقي قسمة (حاصل القسمة الإقليدية للعدد على (10 أُسْ (طول العدد-مرتبة الرقم-1))) على 10

مثال: العدد السابق 5758 وَبعد حساب طوله (بتحويله إلى string واستخدام خاصية lenght وَهميًا) يتبين التَّالي:
تطبيق القاعدة:
الرقم الذي مرتبته 0:
(5758/(10^( 4 - 0 - 1))% 10=5758/(1000))% 10=5 % 10=5 (القراءة من اليمين إلى اليسار في تطبيق القاعدة) يتبين أن الرقم الذي مرتبته 0 في العدد 5758 هو 5.
الرقم الذي مرتبته 1:
(5758/(10^(4 - 1 -1))% 10=5758/(100))% 10=57 % 10=7 (القراءة من اليمين إلى اليسار في تطبيق القاعدة) يتبين أن الرقم الذي مرتبته 1 في العدد 5758 هو 7.
الرقم الذي مرتبته 2:
(5758/(10^( 4 - 2 - 1))% 10=5758/(10))% 10=575 % 10=5 (القراءة من اليمين إلى اليسار في تطبيق القاعدة) يتبين أن الرقم الذي مرتبته 2 في العدد 5758 هو 5.
الرقم الذي مرتبته 3:
(5758/(10^(4 - 3 - 1))% 10=5758/(1))% 10=5758 % 10=8 (القراءة من اليمين إلى اليسار في تطبيق القاعدة) يتبين أن الرقم الذي مرتبته 3 في العدد 5758 هو 8.

نفس الطريقة بالنسبة للعد الآخر.

يمكنكم استخدام متغير index يحدد المرتبة التي وصلنا إليها في كلا العددين، وَمتغير آخر index1 يُحدد المرتبة التي وصلنا إليها في العدد النَّاتج (القيمة الإبتدائية لكلا المتغيرين هي 0).

نقوم بعدها بحفظ العدد الناتج في متغير string آخر وَتحويله إلى int أو بطريقة أخرى، نقوم بحفظه عن طريق أسس العشرة كما حصل في المرة السَّابقة تقريبًا، أو نقوم بطباعته مباشرة (حسب الحاجة وَكما تريدون).