محمد عنيبة

الأعضاء
  • المساهمات

    14
  • تاريخ الانضمام

  • تاريخ آخر زيارة

السُّمعة بالموقع

3 Neutral
  1. هذا برنامج استخدمت فيه التحميل الزائد للمعاملات لكن واجهتني مشكلة ألا وهي أني عندما أجعل نوع القيمة المعادة Counter يظهر خطأ class "Counter" has no suitable copy constructor رغم أنه يفترض -في هذه الحالة-أن تستدعى دالة البناء العادية لا الناسخة فلماذا تستدعى الناسخة ويخبرك أنها غير ملائمة؟ بالإمكان حل المشكلة بحذف الدالة البانية الناسخة the copy constructor التي أنشأتها وترك مهمة النسخ لو احتجتها للدالة التي تنشئها البيئة default copy constructor أو أني نغير القيمة المعادة لـint وأجعلها تعيد الcount مباشرة لكنه ليس الحل المثالي للمشكلة #include <iostream> using namespace std; class Counter { private: int count; //count public: Counter() : count(0) { } //constructor Counter(int a) : count(a) { } //constructor Counter(Counter& c ) { this->count = c.count; cout << endl<<"Copy constructor has been invoked"<<endl; } //constructor*/ int get_count() //return count { return count; } Counter operator ++ () //increment (prefix) { return Counter(++count); } int operator ! () //increment (prefix) { if (count == 0) return(1); else return(0); } Counter operator -- () //increment (prefix) { return Counter(--count); } Counter operator ++ (int) //increment (prefix) { return Counter(count++); } Counter operator -- (int) //increment (prefix) { return(count--); } Counter operator + (Counter x) { int c; c = count + x.count; return Counter(c); } }; int main() { Counter i; Counter c1, c2, c3; //define and initialize cout << "\nc1=" << c1.get_count(); //display cout << "\nc2=" << c2.get_count(); ++c1; //increment c1 ++c2; //increment c2 ++c2; //increment c2 cout << "\nc1=" << c1.get_count(); //display again cout << "\nc2=" << c2.get_count(); i = ++c2; // error cout << "\ni= " << i.get_count(); --c1; Counter c4 = c2; cout << "\nc4=" << c4.get_count() << endl; //display again cout << "\nc2=" << c2.get_count() << endl; i = c2++; c2++; cout << "i= " << i.get_count(); cout << "\nc2=" << c2.get_count() << endl; //c4 = !c2; cout << "\nc4=" << c4.get_count() << endl; c3 = c1 + c2; cout << "\nc1=" << c1.get_count(); cout << "\nc2=" << c2.get_count(); cout << "\nc3=" << c3.get_count(); return 0; }
  2. #include<iostream> using namespace std; int main() { int i, j, arr[4][3];//الإعلان عن المتغيرات for (i = 0; i < 4; i++)//حلقة للصفوف { for (j = 0; j < 3; j++)//حلقة للأعمدة { cout << "Enter number in row " << i << " and column " << j<<endl; cin >> arr[i][j];//قراءة العناصر } } return 0; }
  3. شكرا بس بالمناسبة يعني كيف تحسب طول السلسلة بدون استخدام دوال جاهزة في #C مثلا في ++C كل ماعليك فعله هو حساب الأحرف حتى '0\'
  4. هذا برنامج يحشر سلسلة s1 في سلسلة s2 عند مكان n يحدده المستخدم #include<iostream.h> void st(char s1[],char s2[],int n) {int i,j; for(i=0;s1[i]!='\0';i++); for(j=0;s2[j]!='\0';j++); for(i=i+1;i>=n-1;i--) s1[i+j]=s1[i]; for(j=0;s2[j]!='\0';j++) s1[n+j]=s2[j]; } main() {char x[100], y[10]; int n; cin.getline(x,100); cin.getline(y,10); cout<<x<<endl; cout<<y<<endl; cout<<"enter the place"<<endl; cin>>n; st(x,y,n); cout<<x<<endl; cout<<y<<endl; } جربت أحولة لـForm بلغة #C بس عند التنفيذ يظهر خطأ System.IndexOutOfRangeException عرفت أن الفهرس index لا يستطيع الوصول لكل عناصر المجموعة أو شيء من هذا القبيل فما المشكلة؟ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int i, j; for (i = 0; textBox1.Text[i] != '\0'; i++) ; for ( j = 0; textBox2.Text[j] != '\0'; j++) ; for (i = i + 1; i >= int.Parse(textBox3.Text) - 1;i--) { StringBuilder sb = new StringBuilder(textBox1.Text); sb[i + j] = textBox1.Text[i]; textBox1.Text = sb.ToString(); } for (j = 0; textBox2.Text[j] != '\0'; j++) { StringBuilder sb = new StringBuilder(textBox1.Text); sb[int.Parse(textBox3.Text) + j] = textBox2.Text[j]; textBox1.Text = sb.ToString(); } textBox4.Text = textBox1.Text; } } }
  5. شكرا بس بالمناسبة يبدو أنك أخطأت خطأ مطبعي بسيط فهذه الحلقة حلقة لا نهائية والصحيح نغير --c ل--cc
  6. #include<iostream> using namespace std; void printReversed(string str) { int size; for (int i = 0; str[i] != '\0'; i++)size = i; cout << size; for ( int i = size; i >= 0; i--) { string a; cout << str[i]; } cout << endl; } int main() { string a; cin>>a; printReversed(a); return 0; } هذا برنامج يعكس الكلمة المدخلة مثلا mohammed تطبع demmahom, كيف أُنشئ برنامج يقوم بنفس الوظيفة باستخدام المؤشرات
  7. #include <iostream> #include <string.h> using namespace std; struct stud { char n[30]; int sn; float dr[3], sum, avr; }; void read(stud x[], int n) { int i, j; for (i = 0; i < n; i++) { cout << "\n enter student " << i << " name:"; cin.getline(x[i].n, 30); cout << "\n enter student " << i << " sn:"; cin >> x[i].sn; cout << "\n enter student " << i << " 3 dr:"; x[i].sum = 0; for (j = 0; j < 3; j++) { cin >> x[i].dr[j]; x[i].sum += x[i].dr[j]; } x[i].avr = x[i].sum / 3; cin.ignore(); } } void print(stud x[], int n) { int i, j; cout <<"\nname" << "\t" << "s n\td1\td2\td3\tsum\tavg\n"; cout << "=================================================="; for (i = 0; i < n; i++) { cout << "\n" << x[i].n << "\t" << x[i].sn << " "; for (j = 0; j < 3; j++) cout << x[i].dr[j] <<" "; cout << " " << x[i].sum << " " << x[i].avr; } } void sort(stud x[], int n) { int i, j; stud t; for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) { if (strcmp(x[i].n, x[j].n) > 0) { t = x[i]; x[i] = x[j]; x[j] = t; } } } } void search(stud x[], int n) { char s[30]; cout << "enter the student you are searching for: "; cin >> s; for (int i = 0; i < n; i++) { if (x[i].n == s) { cout <<x[i].n << "\t" << x[i].sn << " "; for (int j = 0; j < 3; j++) cout << x[i].dr[j] << " "; cout << " " << x[i].sum << " " << x[i].avr; } else { cout << "wrong search"; } } } int main() { stud list[120]; int n = 3; read(list, n); print(list, n); sort(list, n); print(list, n); search(list, n); return 0; } هذا برنامج يصمم تركيبة (اسم طالب ورقمه ودرجاته في ثلاث مواد ) لثلاث طلاب ويحسب المتوسط والمجموع لكل طالب ويرتب الطلاب في النهاية يبحث عن طالب بس تلك الأخيرة فيها مشكلة فهو لا يبحث عن طالب بل يعتبر الشرط خاطئاً
  8. شكرًا
  9. هذا برنامج يطبع هرم نجوم بحلقة واحدة بلغة++ C لكنني لم أفهم على أي أساس وضعت الشروط في جملة if للتعويض عن الحلقات الناقصة
  10. كيف أنشِئ برنامج يطبع مثلث باسكال بحلقة For واحدة