-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
السلام عليكم اخواني..
سؤال في لغة C++ ...
أولاً، المطلوب برمجة للعبة المشنقة (تخمين الحروف لكلمة معينة عدد أحرفها معروف)..
الكود:
كود:
# include <iostream>
# include <fstream>
# include <iomanip>
# include <string>
# include <cstdlib>
# include <cctype>
using namespace std;
int no_of_words, no_of_letters, wrong_guesses;
char secret[ ], blanks[ ], guessed, re_play;
string from_list;
ifstream words_list;
string get_secret(int no_of_words);
void check_guessed (char guessed);
bool game_over (int wrong_guesses);
int main(){
// Opening and checking file
words_list.open("hangman.txt");
if (words_list.fail()){
cout << "Error finding file (hangman.txt)/n";
return -1;
}
// count Number of words in the file
do{
no_of_words++;
words_list >> from_list;
}while(!words_list.eof());
// Game Start..
do{
// generating new Secret Word
from_list = get_secret(no_of_words);
secret[] = from_list;
// count Number of Letters
no_of_letters = 0;
while(secret[no_of_letters] != '\0' )
no_of_letters++;
// drawing Blanks
for( int i=0; i < no_of_letters; i++)
blanks[i] = '*';
// guessing letter process
do{
cout << "\n\nPlease enter a Guessed Letter: ";
cin >> guessed;
guessed = tolower(guessed);
cout << endl;
check_guessed(guessed);
}while(!game_over(wrong_guesses));
// ask for Play Again
cout << "\n\nDo You Want To Play Again ??\t\t( Y,y OR N,n ) : ";
cin >> re_play;
cout << endl;
// Check re_play
while( !(( re_play == 'Y' ) || ( re_play == 'y' ) || ( re_play == 'N' ) || ( re_play == 'n' )) ){
cout << "Wrong answer entered\n";
cout << "\n\nDo You Want To Play Again ??\t\t( Y,y OR N,n ) : ";
cin >> re_play;
cout << endl;
}
// to Play Again
}while (( re_play == 'Y' ) || ( re_play == 'y' ));
// for Ending Game
cout << "\n\nThank You For Playing HANGMAN\n";
cout << "Programmed by:: Abbas Baqer Al-Lawati\n";
cout << "ID # :: 89569\n\n\n";
return 0;
}
// function of Generating Word
string get_secret (int no_of_words) {
// initialize Local variables
int random_word, count;
string secret_word;
// to Choose random word from list
random_word = rand() % no_of_words;
// to Get to that Random Word
for(count = 0; count <= random_word; count++){
words_list >> secret_word;
}
// returning the Choosen Secret Word
return secret_word;
}
// finction to Check the Guessed Letter
void check_guessed (char guessed){
// initialize Local variables
int count(0), no_correct(0);
bool correct = false;
do{
// Check each Letter
if (secret [count] == guessed){
// Show correct letter
blanks [count] = secret [count];
// count Number of places Exist
no_correct++;
// Correct Answer
correct = true;
}
count++;
}while(count <= no_of_letters);
// Inform user guessed letter Result
if (correct){
cout << "Letter " << guessed << " exists " << no_correct << " time(s) in the secret word\n";
}else {
cout << "Letter " << guessed << " does to exist in the secret word\n";
// Increase number of Wrong guesses
wrong_guesses++;
}
return;
}
// function to check End Guessing
bool game_over(int wrong_guesses){
// initialize Local variables
bool ending = false;
int count;
// checking Loosing game
if (wrong_guesses == 6){
ending = true;
cout << "\n\nWrong guesses reach 6 times\n";
cout << "Game Over !!\n\n";
}
// checking Winning game
else{
do{
if (blanks[count] != secret[count])
ending = true;
count++;
}while(count <= no_of_letters);
if (ending){
cout << "\n\ncongratiolations!! You Won\n\n";
}
}
// return checking Result
return ending;
}
الإررور:
كود:
(38) : error C2059: syntax error : ']'
المفروض يكون Array فارغ ليتحدد حجمه على حسب حروف الكلمة اللي بياخذها
جربت أعطيه أي رقم كبير ما تصل أي كلمة لهذا العدد من الحروف.. فطلعي إررور أخر:
كود:
error C2440: '=' : cannot convert from 'std::string' to 'char'
لكن المفروض ان الأرراي يقسم الكلمة إلى حروف وياخذ كل حرف في جزء منه فيكون char...
ENEMY
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
لـ ENEMY:
صحيح أن المتوقع أن يقسم الكلمة ويضعها في المصفوفة، إلا أن المترجم أخبرك بأنه لا يستطيع ذلك؛ "error C2440: '=' :
cannot convert from 'std::string' to 'char'".
المصفوفة يجب أن تكون ذات بعد محدد عند التحويل إلى ملف ثنائي. الحل هنا يكمن استخدام الذاكرة الديناميكية؟ العلة في هذا البرنامح تكمن في هذا السطر: ;secret[] = from_list.
الحل هنا يكمن في أن تعرف secret على أنه مؤشر لنوع char هكذا: ;char *secret.
ثم تحدد قيمته المتغير مستخدمًا دالة length الملحقة في مكتية string، وبعدها تلف عليه لتملأه كالتالي:
كود:
char *secret;
secret = new char[from_list.length()];
form(int i=0; i<from_list.length(); i++) {
secret[i] = from_list[i];
}
في أمان الله.
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
عُذراً منكَ للتأخُر في الرد ويبدو أن المُشكلة قد حُلت - والحمدُ للـه - ،
فقد كان أسبوع مليء جداً بالإمتحانات ولم أستطع الدخول إلا البارحة ^^" ،
أعتذر وبشدة وشُكراً للجميع هُنا ^__^ .
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
المشاركة الأصلية كتبت بواسطة Gh.S
لـ ENEMY:
صحيح أن المتوقع أن يقسم الكلمة ويضعها في المصفوفة، إلا أن المترجم أخبرك بأنه لا يستطيع ذلك؛ "error C2440: '=' :
cannot convert from 'std::string' to 'char'".
المصفوفة يجب أن تكون ذات بعد محدد عند التحويل إلى ملف ثنائي. الحل هنا يكمن استخدام الذاكرة الديناميكية؟ العلة في هذا البرنامح تكمن في هذا السطر: ;secret[] = from_list.
الحل هنا يكمن في أن تعرف secret على أنه مؤشر لنوع char هكذا: ;char *secret.
ثم تحدد قيمته المتغير مستخدمًا دالة length الملحقة في مكتية string، وبعدها تلف عليه لتملأه كالتالي:
كود:
char *secret;
secret = new char[from_list.length()];
form(int i=0; i<from_list.length(); i++) {
secret[i] = from_list[i];
}
في أمان الله.
شكراً أخي Gh.S..
لكني ما فهمت بالضبط..
بالنسبة لصيغة التعريف فهو معرف كـchar في البداية فلماذا أعيد التعريف؟؟
وفي التدوير انت اعتبرت from_list على أنه array رغم انه string يأخذ الكلمة العشوائية كما تعلم.. فكيف؟؟
والسطر الثاني عندي عليه أسئلة ما سؤال...
- secret هل قصدك secret[] ؟ لأنه بهذي الطريقة بيجي الإررور الأول في السؤال واللي ما أعرف سببه
- إذا كان متغير آخر ، وnewchar[] أيضا مؤشر جديد، فما صيغتهما؟ وما الفائدة منهما ومن السطر ككل؟؟
واسمحلي آخذ من جهدك ووقتك
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
ENEMY
الـ Array ليس left value. لا يمكنك أن تسند له قيم. لكن خاناته يمكنك أن تغير قيمته كل واحدة على حدة.
اقتباس:
بالنسبة لصيغة التعريف فهو معرف كـchar في البداية فلماذا أعيد التعريف؟؟
Gh.S اقترح عليك طريقة صحيحة لتعريفه== استعمال الـ pointers
اقتباس:
وفي التدوير انت اعتبرت from_list على أنه array رغم انه string يأخذ الكلمة العشوائية كما تعلم.. فكيف؟؟
string
هو ليس في حقيقة الأمر سوى عبارة عن array (a.k.a pointer)
i متكون من char.
بالنسبة لبقية الأسئلة فـ Gh.S يرمي إلى التحكم الصحيح في استعمال الذاكرة العشوائية. ابحث فليلاً على الانترنت حول الـ pointers وإن لم تفهم فضع استفسارك مجدداً :Smile:
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
المشاركة الأصلية كتبت بواسطة ENEMY
شكراً أخي Gh.S..
لكني ما فهمت بالضبط..
بالنسبة لصيغة التعريف فهو معرف كـchar في البداية فلماذا أعيد التعريف؟؟
وفي التدوير انت اعتبرت from_list على أنه array رغم انه string يأخذ الكلمة العشوائية كما تعلم.. فكيف؟؟
والسطر الثاني عندي عليه أسئلة ما سؤال...
- secret هل قصدك secret[] ؟ لأنه بهذي الطريقة بيجي الإررور الأول في السؤال واللي ما أعرف سببه
- إذا كان متغير آخر ، وnewchar[] أيضا مؤشر جديد، فما صيغتهما؟ وما الفائدة منهما ومن السطر ككل؟؟
واسمحلي آخذ من جهدك ووقتك
- أقصد أن تغير تعريفه وليس تعيد تعريفه، يعني بدل ما تخليه []char secret اجعله char *secret. بالمناسبة، هل تعرف عن المؤشرات والذاكرة الديناميكية؟ إن لا، فمن هنا: http://www.cplusplus.com/doc/tutorial/pointers/ وهنا: http://www.cplusplus.com/doc/tutorial/dynamic/
- الـ string هو array. أنا لم أعتبره، بل هو كذلك. فإذا كان السلسلة "string str = "ABC فإن str[0] = A و str[1] = B و str[2] = C. لمزيد من المعلومات: http://en.wikipedia.org/wiki/String_(C%2B%2B)
- تستخدم المؤشرات عادة لدعمها الذاكرة الديناميكية (غير معينة). أنت الآن لا تعلم بالضبط كم طول السلسلة فالمصفوفة لن تنفعك. هذا الموقع جد نافع (تعلمت منه شخصيًا): http://www.cplusplus.com/doc/tutorial/dynamic/
سأكتب معنى السطر بلغة إنسانية وحاول أن تفهمها:
اجعل المؤشر secret يشير (=) إلى ذاكرة جديدة (new) لنوع محرف (char) لكنه مصفوفة ([]) ، وطوله يكون مساو لـطول ()from_list.length.
في أمان الله.
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
شكراً إخواني
Gh.S و Akkipuden
تم حل المشكلة..
شكرا جزيلاً.. وفي أمان الله
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
السلام عليكم
عندي سوال في لغات البرمجة
اناسمعت عن لغات البرمجة انه لازم اقرا عنهم عشان احدد اللي يناسب اللي بسوي
بس صعبه اخاف اتشتت فقلت يمكن يفيدوني الاعضاء
فسوالي
" ابغى جميع الغات اللي تناسب الصوتيات "
الصور اللي تحت توضح فكرة العمل فارجوا انكم تبينون اللغات اللي تناسب اللي في الصور
اذا ماوضح خبرون
http://www.m5zn.com/uploads/2010/12/...tnkw22z45f.gif
http://www.m5zn.com/uploads/2010/12/...e0lgc2cmtn.gif
http://www.m5zn.com/uploads/2010/12/...1pc3t8ofbj.gif
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
" ابغى جميع الغات اللي تناسب الصوتيات "
لم أفهم بالضبط ما تقصدينه بالمناسب، لكن هناك VoiceXML أعرف من يعمل في مجال الهاتف ويستعمل هذه اللغة
ويكيبيديا:
http://en.wikipedia.org/wiki/VoiceXML
ليست لدي أدنى فكرة عن هذه اللغة
هناك C يناسب كل شيء، والـ assembly بالطبع لكنني أشك أنك قد ترغبين في تجربتهما.
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
المشاركة الأصلية كتبت بواسطة Akkipuden
لم أفهم بالضبط ما تقصدينه بالمناسب، لكن هناك VoiceXML أعرف من يعمل في مجال الهاتف ويستعمل هذه اللغة
ويكيبيديا:
http://en.wikipedia.org/wiki/VoiceXML
ليست لدي أدنى فكرة عن هذه اللغة
هناك C يناسب كل شيء، والـ assembly بالطبع لكنني أشك أنك قد ترغبين في تجربتهما.
ابغى جميع اللغات اللي توافق الصور "يعني اللغات اللي تناسب الاشارات الكهربائيه" كما هو موضح بالصور
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
اللغات اللي تناسب الاشارات الكهربائيه
ما أعرفه :
VHDL, VHDL-AMS, Verilog, C, Ada, Assembly, C++, Java
الأمر يعتمد على طبيعة الدارة الكهربائية (...FPGA, µC,32 bit MCU)
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
ابغى اللغات الاعلى جودة
الأمر يعتمد على طبيعة الدارة الكهربائية (...FPGA, µC,32 bit MCU)
إن كنت تعملين على FPGA/ASIC/PLD/whatever فستحتاجين أحد هذه اللغات : Verilog, VHDL, AHDL/VHDL-AMS
إن كنت تعملين على DSP أو ARM عادي فستحتاجين للـ C
إن كنت تعملين على DSP يدعم الـ Java أو C++
i فستحتاجين إحدى هاته اللغات.
إن كنت تعملين على Microcontroller فسيلزمك إما C أو Assembly.
لم أفهم ما تقصدينه بـ "لغات أعلى جودة" ولا أعتقد أنك أنت أيضاً تعلمين ما يعنيه هذا...
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقصد عمله يكون الاكثر مناسبة لل الاشارات الكهربائية
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
السلام عليكم،
أرجو من أحدكم أن يوضح لي إلى أين يعود this*?
كود:
CVector& CVector::operator= (const CVector& para) {
x = para.x;
y = para.y;
return *this;
}
في أمان الله.
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
المشاركة الأصلية كتبت بواسطة Gh.S
السلام عليكم،
أرجو من أحدكم أن يوضح لي إلى أين يعود this*?
كود:
CVector& CVector::operator= (const CVector& para) {
x = para.x;
y = para.y;
return *this;
}
في أمان الله.
this يعود إلى الـ class instance الذي تستعمله الـ member function.
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
شكرًا لك.
لم أكن أقصد this* بحد ذاتها، وإنما رجوعها إلى &CVector. بل الأصح هو أنني لم أفهم بعد الفائدة من جعل الـ function (بشكل عام) ترجع [مرجع (reference)].
فهمت المراجع اليوم إلا أن الفائدة من استخدامها في الـ function لم أفهمها. كما أن ما أثار فضولي هو أنه عندما نضعف مثلا الـ + أو - فإن الـ function تبع التضيعف تحتاج لأن ترجع قيمة، كالتالي:
x = x+5، فإن الـ + سيجمع العنصرين ويرجع قيمة الجمع ثم يقوم الـ = بنسخ الناتج إلى x (هنا يحتاج ال+ المضعف لأن يرجع قيمة تستبدل بدله لستخدمها الـ =)
أما x = y، يقوم الـ = بنسخ البيانات إلى x فقط. لا يرجع أي شيء، فلم عند تضعيفه نرجع مرجع (&CVector)، الأولى أن نضع void، وقد جربتها واشتغلت تمام.
وما زاد جنوني هو أن الـ format الأصلي لتضعيف الـ = هو أن يرجع مرجع! (قرأت هذا في الويكيبيديا وفي عدة مواقع أخرى
http://en.wikipedia.org/wiki/Reference_(C%2B%2B)
---
حصلت لتوي على موقع جيد ليس بعيدًا عن الويكي: هنا
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
الحمد لله، وجدتها! سالت في موقع داني ويب، وكان هذا الرد:
اقتباس:
You can chain together assignments, like "a = b = c;", in which case c would get assigned to b, and then b would get assigned to a, leaving a and b equal to c at the end. If an overloaded = didn't return anything, it couldn't be chained together like this.
So far as the reason for returning by reference, that means that the variable you're getting is an l-value. Basically, that means it's a non-temporary variable, you can take it's address, change it's value, etc. So if you had something like this,
كود:
class SomeClass
{
private:
int someNum;
public:
int& GetNum() { return someNum; }
};
You could do "someInstance.GetNum() = 5;" and that would set someInstance.someNum to 5. If it returned by value (i.e. "int GetNum() ..."), you couldn't set the value, because the thing returned by the function would be a temporary variable, and therefore it gets destroyed at the end of the line, and the semicolon.
اتضح كيف أن الـ = يمكن أن يكون مثل الـ + في حالة ما إذا كان أكثر من عملية مثال: x = y = z.
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
شكراص اخي القائد على الرد
لم ارى ردك من قبل icon108
ولكن المشكلة الحمدلله حلت
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
السلام عليكم و رحمة الله و بركاته
عندي سؤال وهو
كيف أكتب " بواسطة الكود ،مثال:
<< طبعاً الكود السابق لا يعمل
مالحل
Pro: Visual Studio 2010
thx
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
أخي [-lelouch-] :
وعليكُم السلام ورحمةُ اللـهِ وبركاتُه ،
لم أفهم جيداً لكن لا يجب أن يكون بين علامتي التنصيص علامة تنصيص يعني لو أزلت علامة التنصيص الثلاثة وكتبت داخل العلامتين فسوفَ يعمل الكود السابق ،
بالتوفيق ^_^ .
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
المشاركة الأصلية كتبت بواسطة الـقائد
أخي [-lelouch-] :
وعليكُم السلام ورحمةُ اللـهِ وبركاتُه ،
لم أفهم جيداً لكن لا يجب أن يكون بين علامتي التنصيص علامة تنصيص يعني لو أزلت علامة التنصيص الثلاثة وكتبت داخل العلامتين فسوفَ يعمل الكود السابق ،
بالتوفيق ^_^ .
مشكور أخوي ترا انا ما فهمت حاجة لكن حليت المشكلة وهي اني اكتب " اربع مرات يعني
textbox1.text = """"
و شكراً
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
السلام عليكم و رحمة الله و بركاته
اليوم قلت بدخل لبرمجة أي شيء في SilverLight << فيه فضول
المهم
جربت البرنامج و طلع روووووووووووووووووووووووو وووووعة و سهل جداً ، تقريباً أكواد البرنامج مشابهه للفيجوال بيسك :)
المهم
حصلت لي مشكلة و هي الكتابة باللغة العربية
لما اكتب في الtextbox1 كلمة عربية تطلع ملخبطة علماً إني حاولت تغييرالخط إلى Arial وما نفع
مالحل؟؟
وشكراً
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
غالبا مثل هذه البرامج لا تدعم العربية...
إلا إن استخدمت برنامجا مثل برنامج "أبو رشيد" للخطوط...
أو ببساطة يمكنك فتح خريطة الرموز (Character map) من ملحقات النظام (All programs>>Accessories) وكتابة الجملة بالمقلوب...
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
المشاركة الأصلية كتبت بواسطة Akkipuden
الأمر يعتمد على طبيعة الدارة الكهربائية (...FPGA, µC,32 bit MCU)
إن كنت تعملين على FPGA/ASIC/PLD/whatever فستحتاجين أحد هذه اللغات : Verilog, VHDL, AHDL/VHDL-AMS
إن كنت تعملين على DSP أو ARM عادي فستحتاجين للـ C
إن كنت تعملين على DSP يدعم الـ Java أو C++i فستحتاجين إحدى هاته اللغات.
إن كنت تعملين على Microcontroller فسيلزمك إما C أو Assembly.
لم أفهم ما تقصدينه بـ "لغات أعلى جودة" ولا أعتقد أنك أنت أيضاً تعلمين ما يعنيه هذا...
ما شاء الله، لم أتخيل ان اجد هنا في مسومس من يفهم في برمجة الدارات الكهربائية، يبدو ان مسومس بالفعل يضم الكثير من المبدعين في شتى المجالات، بارك الله فيك وسرني جدا التعرف إليك
عملت قليلا في هذا المجال وهو مجال رائع بحق وحاليا اعمل في البرمجة على الأجهزة الذكية التي تعمل في بيئة ويندوز موبايل وربما قريبا انرويد ان شاء الله تعالى
اقتباس:
المشاركة الأصلية كتبت بواسطة [-lelouch-]
مشكور أخوي ترا انا ما فهمت حاجة لكن حليت المشكلة وهي اني اكتب " اربع مرات يعني
textbox1.text = """"
و شكراً
هذا الحل ان كنت تستخدم لغة visual basic .net اما ان كنت تستخدم c# فاكتب قبل كل علامة من هذه العلامة " هذه العلامة \
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
وعليكم السلام ورحمة الله وبركاته...
أخي وجدت حلا منذ فترة ونسيت من يحتاجه فعذرا لك...
هذا البرنامج مطور عربيا عبر أحد أعضاء الفريق العربي للبرمجة وهو البرنامج الفائز بجائزة شبايك الألفي دولار...أتمنى أن يفيدك...
http://tadween.sourceforge.net
__________
حياك الله إسلام ^_^...
والله واحشتنا طلاتك..^_^
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اهلا اهلا نديمي، حياك الله، انت أوحشتني اكثر ^_^
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
[SIZE=<b><a href="javascript://"><font size="5">5</font></a></b>]السلام عليكم ورحمة الله وبركاته
شكرا لك أخي الكريم على هذا الموضوع ولن اطيل المقدمات
اللغة :c++
الإصدار:2006
البرنامج المطلوب [/SIZE]ادخل عددا صحيحا مؤلفا من واحدات وأصفار فقط (أي عددا صحيحا ثنائيا )ثم اطبع القيمة العشرية المكافئة له .....
أنا كتبت الكود التالي:
#include<iostream.h>
#include<math.h>
void main()
{
int x,n,i,a,b,c;
cin>>n;
cin>>x;
c=0;
for(i=n;i>=n;--i){
a=x%pow(10,n-i+1);
b=a/pow(10,n-i);
c+=b*pow(2,n-i);
}
cout<<c;
}
انا اختيرت الكود وتأكدت من صحته عالورق بس لما بدي طبقه بحطلي الخطأ التالي :
error C2297: '%' : illegal, right operand has type 'double'
أنا ما فهمت شو أصدو فيه وبحطلي كمان :
warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
وكمان:
warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data
بقا تركت الأمر لخبرتكون وأرجو المساعدة والحل وشكرا جزيلا
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
kaitoo-kid
السلام عليكم أخي الكريم...
بالنسبة للمتغيرين x, a انت معرفهم من نوع int بينما استخدام دالة pow() يعطيك نتيجة من نوع double على ما أعتقد,, ولهذا فإن استخدام المعادلة a=x%pow() غير صحيح.
حاول تعريف x, a على أنهما double
أما الرسالتان الثانية والثالثة فتوضح أن تحويل متغير من نوع double إلى int قد يحدث ضياع في البيانات (الأرقام بعد الفاصلة العشرية سيتم حذفها)
وهذا يحصل نتيجة اسناد متغير من نوع double إلى متغير من نوع int مثل المعادلة السابقة
أما بالنسبة للكودبشكل عام, صارلي كثير ما أبرمج console نسيت كل شي اتعلمتة بعد ما حولت إلى GUI. يجب علي استذكاره مرة أخرى^^. اعذرني لاأستطيع إفادتك فيه
هذا والله أعلم.
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
في الفيجول بيسك 2010....إكسبريس...
هل يوجد أمر يفيد أن النص المدخل هو أي نص...!!...مثلا:
[PHP]If txtbox1.text="My name is " & String then
txtbox2.text=textbox1.textlength - 11
end if[/PHP]
في هذا المثال مثلا, عندما يكون النص المدخل في مربع النص1 هو "إسمي -إسم-" فإنه يعطيك عدد حروف اسمك وذلك بطرح عدد الحروف في جملة "My name is " مع حساب المسافات طبعا...
فهل يوجد طريقة أحدد بها أن هناك نص ما...
أعني كلمة String الموجودة في الكود...ما هو البديل الصحيح لها...؟؟!!!
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
المشاركة الأصلية كتبت بواسطة ؛ّ نديمك ؛ّ
في الفيجول بيسك 2010....إكسبريس...
هل يوجد أمر يفيد أن النص المدخل هو أي نص...!!...مثلا:
[PHP]If txtbox1.text="My name is " & String then
txtbox2.text=textbox1.textlength - 11
end if[/PHP]
في هذا المثال مثلا, عندما يكون النص المدخل في مربع النص1 هو "إسمي -إسم-" فإنه يعطيك عدد حروف اسمك وذلك بطرح عدد الحروف في جملة "My name is " مع حساب المسافات طبعا...
فهل يوجد طريقة أحدد بها أن هناك نص ما...
أعني كلمة String الموجودة في الكود...ما هو البديل الصحيح لها...؟؟!!!
السلام عليكم.....
المعذرة أخي لم أفهم سؤالك...هل لك بالتوضيح!
فماذا تقصد بـ[تحديد نص ما]؟
ولم تريد تبديل String ,أقصد مالغرض الذي تريد تحقيقة من تبديلها؟
المعذرة مجدداً
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
أريد تحديد إذا ما كان هناك نص ما ... أي نص , بعد كلمة معينة أحددها...
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
المشاركة الأصلية كتبت بواسطة ؛ّ نديمك ؛ّ
أريد تحديد إذا ما كان هناك نص ما ... أي نص , بعد كلمة معينة أحددها...
السلام عليكم....
أعتذر عن التأخير, كنت مشغولاً قليلاً ^^
بحسب الذي فهمتة, هو أنك تريد معرفة إذا كان هناك نص بعد كلمة حددتها مثل (My name is)
هذا الكود يقوم بتحديد إذا ما كان هناك نص بعد (My name is) ومن ثم يقوم باستخراج هذه الكلمة. الكود مكتوب بلغة ++C ,أعتقد أنك ستستطيع تحويلة بسهولة.
أنتظر ردك...
[PHP]
String^ X = textBox1->Text;
if((X->ToUpper()->Contains("MY NAME IS")))
{
textBox2->Text = X->Substring(10, X->Length-10);
}
[/PHP]
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
سلمت يداك أخي eighteen...
المسألة حسابية إذا...
نعم فهمت الكود أخي جزاك الله خير...
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
سلمَّك وعافاك....
كنت محسب أني فهمت غلط لكن الحمد لله طلع صح ^^
لكن ماقلت لي اشتغل ولا لا لأني صراحة ماأفهم كثير في البيسك؟
وفقك الله إلى مايحب ويرضي ولإلى الأمام...
تحياتي....
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
لا كذا تمااام ^_^...
أنا كنت بس أبغى الفكرة...استخدمت موقع لترجمة الكود وأعطاني إياه بالفيجول بيسك...بس ما ضبط...
لكن فهمت الفكرة وطبقتها وطلعت تمام...
تسلم يدك ^_^
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
eighteen
شكرا أخي بس أنا جربتها قبل وما ركزت معي أصلا انا بدي المتحول x وa من النوع int
شكرا عالمساعدة
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
مشكوووووووووووووووووووووو ووووور
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
يا ريت تفتحو موضوع جديد لأن الموضوع يثقل أثناء التصفح بسبب كثرة الأكواد...
المهم...
لدي طويلب بسيط...
هل يوجد كود يمنع شاشة التوقف من الظهور أو يمنع وضع الحاسوب في وضع السبات (Hibernate أو Sleep)؟
اللغة: VB.NET أو ++C أو #C... ما قررت لسة بأي لغة بسوي البرنامج, فعطني اللي تعرف الله لا يهينك ^_^
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
ألق نظرة هنا: http://msdn.microsoft.com/en-us/library/Aa373163
لم أستعمل msdn أبداً ولا أعلم أي شيء إضافي حول الموضوع ^^"
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
جزيل الشكر لك يا يعقوب ^_^...
وفرت علي الكثير... لا أدري لماذا لا ألقي أي نظرة على المكتبة ^_^....
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
السلام عليكم وورحمة الله وبركاته،،
لدي استفسار بسيط إن شاء الله
اللغة المستخدمة: C
البرنامج المستخدم: Turbo C++
أريد معرفة طريقة عمل الـ FILE في الـ C
ما تعلمته إلى الآن هو كيفية فتح وإغلاق ملف، وما أحتاجه هو كيفية القراءة والكتابة على الملف..
شكراً لكم..
**لا بأس حتى بمراجع إنجليزية، بحثت كثيراً ولم أفهم، بعض النتائج التي توصلت لها:
http://www.mycplus.com/tutorials/c-programming-tutorials/file-handling/
http://en.wikipedia.org/wiki/C_file_input/output
http://www.exforsys.com/tutorials/c-language/file-management-in-c.html
http://www.cs.bu.edu/teaching/c/file-io/intro/#fileio1
http://www.kettaneh.net/programming/c16.htm
http://www.cprogramming.com/tutorial/cfileio.html
***يبدو أنني صعب الفهم بعد كل هذا!!
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
اقتباس:
المشاركة الأصلية كتبت بواسطة Anas Belherao
وعليكم السلام ورحمة الله وبركاته...
أعتقد أن ماتبحث عنه هو الآتي:
;()fopen لفتح ملف معين.
;()fgets للقراءة من ملف معين.
;()fputs للكتابة على ملف معين.
;()fclose لإغلاق الملف بعد الإنتهاء.
لمزيد من المعلومات راجع هذا الشرح البسيط، وإن واجهتك مشكلة فلا تتردد في وضعها.
أرجو أن أكون قد أفدتك...
في أمان الله...
-
رد: الموضوع الرسمي لإستفسارات المبرمجين في لغات البرمجة [يرجى المساهمة من جميع المبرمجين]
ابغي درس لتعليم برمجه برامج الايفون بماذا تنصحني