الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد برنامج مع استخدام المصفوفات به

مغلق
بدأه nehal في 16 أكتوبر 2001 · 12 رد · 833 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اريد مساعدة عاجلة اليوم لو سمحتو في حل هذا البرنامج .......

Write a program that generates the morse code for a sentence that ends with a period and contains no characters besides letter and blank ,,,read each word and display its morse equevilent on a spreate line

The morse code is following

A = --. / B=---. / C= --.. ………

اهم شئ عند ادخال الجمل و الكلمات لا مسافات ولا يقبل غير حروف الهجائية ....ايضا لابد من استخدام المؤاشرات لعمل المصفوفة وما راح يكون عندنا مصفوفة عادية محدد طولها مسبقا انما نستخدم new مثلا char * ptr = new char لتعبئة مصفوفة الجمل

لابد من وجودمصفوفتين احدهما للحروف و الاخرى لمقابل هذه الحروف من شفرة مورس .

سؤال ايضا هل هناك طريقة اسهل من استخدام switch للتحويل من حروف لمورس ,,,و المشكلة التي تظهر كيف اعبئ مقابل حروف كل كلمة ما يقابلها من مورس بدون استخدام المصفوفة الثنائية البعد .. انما باستخدام new

#2

ممكن احد يساعدني بسرعة خاصةفي نقطة ملأ المصفوفة

و مورس هي شفرة زيي اي شفرة لكل حرف هجائي ما يقابله من النقاط اووو اي شكل

مثلا حرف معين يقابله شرطة ونقطة واخر نقطتين وشرطة او شرطتين و نقطة او ثلاث شرط ونقطة عدد الخانات يتغير في كل مرة وهنا المشكلة فلابد من استخدام new

B in morse ...- and C in morse --. and 4 all alpha

#3

مرحبا ،

بس آسف إذا كنت تأخرت في الاجابة :

الموضوع سهل ولا يحتاج إلى new أو ذاكرة ديناميكية .. من أجل مصفوفة مورس هي عبار عن مصفوفة أحادية البعد كل عنصر عبارة عن مؤشر إلى سلسلة وهذا يتم عن طريق التصريح التالي :

#include 

const char * const mors[3] = {
	"--.",		// A
	"---.",		// B
	"--.."		// C
			// D
			// .
			// .
};

int main(int argc, char* argv[])
{
	printf("%sn", mors['A' - 'A']);
	printf("%sn", mors['B' - 'A']);
	printf("%sn", mors['C' - 'A']);

	return 0;
}

يفضل طبعا أن يتم هذا بداخل class ويتم تحمليا المعامل [] لكي يقبل حرف ويتم ارجاع السلسلة مباشرة .. أما في السي فيمكن عمل تابع من أجل طرح قيمة المحرف من 'A' ومن ثم استخدام الناتج كدليل في المصفوفة ...

Coding on the Cloud and for the Cloud!

My Blog

#4

جزاك الله ألف ألف خير على مساعدتك

وسامحوني

سوف أستغل خبرتكم في هذه اللغة فهناك الكثير من المشاكل تواجهني .....

وجزاكم الله خير

#5

عند إدخال جملة

وأردت من البرنامج أن يجعل لي كلمة في سطر

أي عندما يمر على مسافة

spase

يعمل

cout<<"n";

كيف أكتب هذا البرنامج؟؟

#6

مع العلم أني جربت هذي الطريقة

if(sentence==" ")
           cout<<"n";

طلع لي إررور!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#7

هذاما استطعت عمله في برنامج مورس

ما هي الأخطاء فيه

علما بأني أريد كل كلمة تتشفر في سطر لوحدها

#include
#include
#include
#include
#include
#include

void main()
       {
       bool B;
       char sentence[40];
       cout<<"Enter your sentence:n";
       gets(sentence);
       int L=strlen(sentence);
       cout<<"string length of sentence : "<       char *pmorse[26]={".-","-...","-.-","-..",".","..-","..-","....","..",".---","-.-",".-..","-.","---",".--","--",".-","...","-","..-","...-",".--","-..-","-.--","--.."};
       cout<<"the morse code of sentence :n";
       for(int i=0;i           {
           switch(sentence)
                 {
                 case 'A':cout<                 case 'B':cout<                 case 'C':cout<                 case 'D':cout<                 case 'E':cout<                 case 'F':cout<                 case 'G':cout<                 case 'H':cout<                 case 'I':cout<                 case 'J':cout<                 case 'K':cout<                 case 'L':cout<                 case 'M':cout<                 case 'N':cout<                 case 'O':cout<                 case 'P':cout<                 case 'Q':cout<                 case 'R':cout<                 case 'S':cout<                 case 'T':cout<                 case 'U':cout<                 case 'V':cout<                 case 'W':cout<                 case 'X':cout<                 case 'Y':cout<                 case 'Z':cout<                 default: B=true;
                }
          if(B==true)
          cout<<"there is a mestake....";
           }

        getch();
       }
#8

السلام عليكم ..

برنامجك مليئ بالأخطاء والتعقيد لاحظي مايلاي :

  • يمكنك الحصول على ترتيب شفرة مورس في المصفوفة عن طريق طرح المحرف من القيمة 'A' .
  • ليس هناك داعي من استخدام المتحول B وكان بالامكان وضع تعليمة cout للخطأ بعد ال default .
  • عبارة ال switch بتعك يجب أن تكون للمحرف وليس للمصفوفة يعني يحجب أن تستخدمي [sentence[i ..
  • يفضل ترتيب البرنامج أكثر من ذلك وترك مسافات واضافة التعليقات حتى يسهل قرائة البرنامج .

على كل أنا عدلت بالبرنامج تبعك وهذا هو :

#include 
#include 
using namespace std;

const char * const pmorse[26] = {
	".-",		// A
	"-...",		// B
	"-.-",		// C
	"-..",		// D
	".",		// E
	"..-",		// F
	"..-",		// G
	"....",		// H
	"..",		// I
	".---",		// J
	"-.-",		// K
	".-..",		// L
	"-.",		// M
	"---",		// N
	".--",		// O
	"--",		// P
	".-",		// Q
	"...",		// R
	"-",		// S
	"..-",		// T
	"...-",		// U
	".--",		// V
	"-..-",		// W
	"-.--",		// X
	"--..",		// Y 
	"xxxx"		// Z
};

void main()
{
	char strSentence[40];

	cout << "Enter your sentence : ";
	gets(strSentence);

	int l = strlen(strSentence);
	cout << "length of sentence : " << l << endl;
	cout << "the morse code of sentence :" << endl;

	for(int i = 0; i < l; i++)
	{
		int k = toupper(strSentence[ i ]) - 'A';

		if (k >= 0 && k < 26)
		{
			cout << pmorse[ k ] << endl;
		}
		else
		{
			cout << "There is a mistake." << endl;
		}
    }

	getch();
}

Coding on the Cloud and for the Cloud!

My Blog

#9

جزاك الله خيرا

لو تعلم ضعفي الشديد في هذه المادة

فهذا البرنامج منذ أسبوعين وأنا أعدل فيه .......

ثلاث واجبات لا أستحق عليها شيء من الدرجات

رغم حبي الشديد لتعلم هذه اللغة

ولكن الله قادر على أن يعلمني وأملي في الله كبير ...

ولن أستعجل على النجاح فأنا لست ممن يطلبون (النجاح)

أنا من طلاب العلم إن شاء الله ...

وجزاك الله خيرا مرة أخرى

ثم إن هذه العبارة لم ندرسها (using namespace std;) فما معناها ؟؟

وكيف يمكن أن يكتي البرنامج بدونها ؟؟

#10

إذا لا تريدين استخدام العبارة using namespace فاستبدلي الأسطر الأولى بالتالي :

#include 
#include

أما لتعرفي لماذا فراجعي الوصلة:

http://arabteam.nicmatic.com/vb/showthread...3?threadid=2461

Coding on the Cloud and for the Cloud!

My Blog

#11

عند هذه الخطوة فيه إررور

int k = toupper(strSentence) - 'A';

يقول

cannt convert (char*) to (int)

وعند هذه الخطوة

int k = toupper(strSentence) - 'A';

يقول

type mismachin parameter'--ch'in call to'toupper(int).

#12

أهلا ..

آسف لم أنتبه أن برنامج المنتدى يعتبر [ i ] (من غير مسافات) هي Italic أي لتميل الخط..

قمت باضافة مسافة فقط في الكود قبل ال i وبعدها جتى تظهر .. والكود شغال عندي ومافي مشاكل ..

Coding on the Cloud and for the Cloud!

My Blog

#13

المسافات في الجملة التي أدخلها ....يطبع لي مكانها

There is a mistake

وحاولت أن أغير شيئا في البرنامج كما ترون

لكن لم أنجح ؟؟؟؟؟؟؟أين الخطأ

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

#include

#include

#include

#include

#include

#include

const char * const pmorse[26] = {

".-", // A

"-...", // B

"-.-", // C

"-..", // D

".", // E

"..-", // F

"..-", // G

"....", // H

"..", // I

".---", // J

"-.-", // K

".-..", // L

"-.", // M

"---", // N

".--", // O

"--", // P

".-", // Q

"...", // R

"-", // S

"..-", // T

"...-", // U

".--", // V

"-..-", // W

"-.--", // X

"--..", // Y

"xxxx" // Z

};

void main()

{

char strSentence[40];

cout << "Enter your sentence : ";

gets(strSentence);

int l = strlen(strSentence);

cout << "length of sentence : " << l << endl;

cout << "the morse code of sentence :" << endl;

for(int i = 0; i < l; i++)

{

int k = toupper(strSentence) - 'A';

if (k >= 0 && k < 26)

{

cout << pmorse[k] << endl;

}

else if(pmorse[k]==" ")

{

cout<<"n";

}

else

{

cout << "There is a mistake." << endl;

}

}

getch();

}

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…