ITCS103 -CSC103-ITCS111-ITCS101 للدراسة و المناقشة الجماعيه 2014-2015

هاي المطلوب


كود:
[B][U]PART A[/U][/B]
Write a function readRainFall() that takes parameter a two-dimensional array named, [B]figures[/B] of size 4 x 7. The function should read rainfall figures week by week and store them in the array figures in which each row represent a week and each column represent a day.
 
[B][U]PART B[/U][/B]
Write a function [B]generateReport()[/B] that displays the total rainfall for each week and the most wettest day. The function takes as parameter a two-dimensional array named, [B]figures[/B] of size 4 x 7, that contains rainfall figures in which each row represent a week and each column represent a day.
 
For example, if the array contains the following rainfall data:
 
[TABLE="align: center"]
[TR]
[TD][/TD]
[TD="colspan: 7"]Days[/TD]
[/TR]
[TR]
[TD][/TD]
[TD]0[/TD]
[TD]1[/TD]
[TD]2[/TD]
[TD]3[/TD]
[TD]4[/TD]
[TD]5[/TD]
[TD]6[/TD]
[/TR]
[TR]
[TD]Week 0[/TD]
[TD]3[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]7[/TD]
[TD]8[/TD]
[TD]21[/TD]
[TD]0[/TD]
[/TR]
[TR]
[TD]Week 1[/TD]
[TD]0[/TD]
[TD]1[/TD]
[TD]1[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]4[/TD]
[/TR]
[TR]
[TD]Week 2[/TD]
[TD]9[/TD]
[TD]6[/TD]
[TD]7[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]0[/TD]
[/TR]
[TR]
[TD]Week 3[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]0[/TD]
[TD]1[/TD]
[/TR]
[/TABLE]

 
Then the output of the function should be displayed as follows:

[TABLE="align: left"]
[TR]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][TABLE="width: 100%"]
[TR]
[TD]Week                  Rainfall data                        Total
                           1  2  3  4  5  6    7
1                         3  0  0  7  8  21  0     39
2                         0  1  1  0  0  0    4     6
3                         9  6  7  0  0  0    0     22
4                         0  0  0  0  0  0    1     1
 
Wettest Week   3   3   3  1 1  1    2
 
[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]
 
 
 
 
 
 
 
 
 
 
 

[B][U]PART C[/U][/B]
Write a main function to call the above functions in PART A and B.

اعتقد المثال اللي حاطينه فيه غلط ..
الفروض على حسب السؤال
function generateReport() that displays the total rainfall for each week and the most wettest day
يبي في البداية تطلع المجموع مال كل اسبوع و في الأخير تطبع wettest day :rolleyes2: يعني عليك تحدد اليوم بس
 
اعتقد المثال اللي حاطينه فيه غلط ..
الفروض على حسب السؤال

يبي في البداية تطلع المجموع مال كل اسبوع و في الأخير تطبع wettest day :rolleyes2: يعني عليك تحدد اليوم بس


اذا ماعليك امر اشرح لي بارت a وبارت b
 
اذا ماعليك امر اشرح لي بارت a وبارت b

PART A
Write a function readRainFall() that takes parameter a two-dimensional array named, figures of size 4 x 7. The function should read rainfall figures week by week and store them in the array figures in which each row represent a week and each column represent a day.
المطلوب فنكشن readRainFall() تاخد أري بأسم figures نوعها 2d 4 x 7 .. وظيفة الفنكشن تقرأ الأرقام مال هطول الأمطار و تحطهم في الأري figures.
الأرقام بيصيرون بشكل إسبوعي، يعني أول تقرأ 7 أرقام للأسبوع الأول و تخليهم في أول صف .. إلى 4 اسابيع

PART B
Write a function generateReport() that displays the total rainfall for each week and the most wettest day. The function takes as parameter a two-dimensional array named, figures of size 4 x 7, that contains rainfall figures in which each row represent a week and each column represent a day.
المطلوب فنكشن generateReport() تعرض مجموع كمية المطر في كل إسبوع و أكثر يوم ممطر.
البيانات تاخذهم من أري figures اللي حطيت فيها الأرقام في part A
 
المطلوب فنكشن readRainFall() تاخد أري بأسم figures نوعها 2d 4 x 7 .. وظيفة الفنكشن تقرأ الأرقام مال هطول الأمطار و تحطهم في الأري figures.
الأرقام بيصيرون بشكل إسبوعي، يعني أول تقرأ 7 أرقام للأسبوع الأول و تخليهم في أول صف .. إلى 4 اسابيع





المطلوب فنكشن readRainFall() تاخد أري بأسم figures نوعها 2d 4 x 7 .. وظيفة الفنكشن تقرأ الأرقام مال هطول الأمطار و تحطهم في الأري figures.
الأرقام بيصيرون بشكل إسبوعي، يعني أول تقرأ 7 أرقام للأسبوع الأول و تخليهم في أول صف .. إلى 4 اسابيع

------------------


من وين ايب الارقام ؟ وشلون اقرى ؟
 
المطلوب فنكشن readRainFall() تاخد أري بأسم figures نوعها 2d 4 x 7 .. وظيفة الفنكشن تقرأ الأرقام مال هطول الأمطار و تحطهم في الأري figures.
الأرقام بيصيرون بشكل إسبوعي، يعني أول تقرأ 7 أرقام للأسبوع الأول و تخليهم في أول صف .. إلى 4 اسابيع

------------------


من وين ايب الارقام ؟ وشلون اقرى ؟
المقصود بالقراءة انك انت الي تدخل الأرقام للأريه بواسطة اليوزر ، من خلال انك تسوي كول فنكشن ريد رين فل
 
المقصود بالقراءة انك انت الي تدخل الأرقام للأريه بواسطة اليوزر ، من خلال انك تسوي كول فنكشن ريد رين فل

ممكن تشوف الاخطاء

كود:
#include<iostream>
using namespace std;
void  readRainFall(int list[4][7],int listsize){
int index ; 
cout<<"enter a value for item"<<endl;
for(int index =0;index<listsize;index++)
    cin>>list[index];
}


void generateReport(const int list[],int listsize){
    int index ; int sum = 0 ; 
cout<<"Week"<<"\t"<<"Rainfall data"<<"\t"<<"Total"<<endl;
cout<<"\t"<<""<<"1 2 3 4 5 6 7"<<"\t"<<endl;
for (index = 0 ; index<listsize ; index ++) 
    cout<<list[index]<<" " ;
    sum = sum +list[index];
    cout<<sum ; 
}




int main()
{
    int x[4][7] ; 
 readRainFall(x,4);
 generateReport(x,4);
 system("pause");
 return 0;
    
}
 
ممكن تشوف الاخطاء

كود:
#include<iostream>
using namespace std;
void  readRainFall(int list[4][7],int listsize){
int index ; 
cout<<"enter a value for item"<<endl;
for(int index =0;index<listsize;index++)
    cin>>list[index];
}


void generateReport(const int list[],int listsize){
    int index ; int sum = 0 ; 
cout<<"Week"<<"\t"<<"Rainfall data"<<"\t"<<"Total"<<endl;
cout<<"\t"<<""<<"1 2 3 4 5 6 7"<<"\t"<<endl;
for (index = 0 ; index<listsize ; index ++) 
    cout<<list[index]<<" " ;
    sum = sum +list[index];
    cout<<sum ; 
}




int main()
{
    int x[4][7] ; 
 readRainFall(x,4);
 generateReport(x,4);
 system("pause");
 return 0;
    
}
بالنسبة للفنكشن الأولى read rain fall فما يحتاج تخلي الفنكشن تدخل سايز للاريه ، لانه اوردي السايز محدد في السؤال 7*4 ، ثاني شي انت تتعامل مع تو دايمنشن اريه ففي الإدخال بتحتاج الى لوب داخل لوب ( نستد لوب ) ، بحيث ان الفنكشن بتدخل اللوب الأول العبارة عن الرو و داخله بكون لوب ثاني عبارة عن عدد الكولم بهاذي الطريقة :
كود:
for (int i = 0 ; i < [COLOR=#ff0000]4[/COLOR] ; i++ ){
for ( int j = 0 ; j < [COLOR=#0000ff]7[/COLOR] ; j++ ){
cin>>list[[COLOR=#ff0000]i[/COLOR]][[COLOR=#0000ff]j[/COLOR]];
}
}
لاحظ في اللوب الأول خليت اللوب يشتغل 4 مرات لان عدد الرو في الاريه 4 ، و اللوب الثاني 7 مرات لان عدد الكولم الموجودة في كل رو 7 فطريقة عمل النستد لوب بتكون كالتالي بيدخل اللوب الأول بتكون ال i تساوي 0 اقل من 4 فبيواصل لداخل اللوب فبيروح اللوب الثاني الموجود داخل اللوب الاول و بيدخل 7 المنتات للرو الحالي الي هو 0 بواسطة ال cin و بعد ما يخلص ال i بتزيد 1 و بيواصل بهاذي الطريقة الى ان يصير i يساوي 4 بيوقف اللوب

في خطأ ثاني سويته انك تعاملت في إدخال الإلمنت للأريه على انه ون دايمنشن اريه :
كود:
cin>>list[index];
بينما المفروض ينكتب بهاذي الطريقة لانه تو دايمنشن اريه :
كود:
cin>>list[i][j];

في النهاية بتكون الفنكشن بهاذي الطريقة :
كود:
void  readRainFall(int list[4][7]){
cout<<"enter a value for item"<<endl;
for (int i = 0 ; i < 4 ; i++ ){
for ( int j = 0 ; j < 7 ; j++ ){
cin>>list[i][j];
}
}
}

بالنسبة للفنكشن الثانية ، مثل الشي ما تحتاج للأريه سايز لأنه محدد مسبقاً ، و مثل غلطة الفنكشن الأولى تعاملت مع الاريه كون دايمنشن اريه بينما هو تو دايمنشن اريه :
كود:
void generateReport(const int list[],int listsize){
    int index ; int sum = 0 ; 
cout<<"Week"<<"\t"<<"Rainfall data"<<"\t"<<"Total"<<endl;
cout<<"\t"<<""<<"1 2 3 4 5 6 7"<<"\t"<<endl;
for (index = 0 ; index<listsize ; index ++) 
    cout<<[COLOR=#0000ff]list[index][/COLOR]<<" " ;
    sum = sum +[COLOR=#0000ff]list[index][/COLOR];
    cout<<sum ; 
}
فلو فرضنا ان الفنكشن اشتغلت فما بتجمع الا الرو الأول و الباقي بتكون تكرار لنفس النتيجة لانه قاعد يسوي نفس العملية لنفس الرو 4 مرات
المفروض اللوب ينكتب بهاذي الطريقة بالنسبة للجمع :
كود:
void generateReport(int list[4][7]){
int sum = 0 ;
int wettest = 0 ;
int weak = 0 ; 
for( int i=0 ; i < 4 ; i++ ){
	cout <<i+1<<"\t";
	for(int j=0 ; j < 7 ; j++){
	cout<<list[i][j]<<"\t"; 
		sum+=list[i][j];
	}
	cout<< sum << endl ; 
	if ( sum > wettest ){
	wettest = sum ;
	weak = i ; 
	sum = 0 ;
}
	else{
	sum = 0 ;
}
}
cout << "Wettest Week is : " << weak+1 << endl ;
}
لاحظ اني بعد نهاية كل لوب اصفر ال sum لاني لو ما صفرتها بنجمع قيم الرو السابق مع قيم الرو الجديد فبيطلع الجمع غلط إضافة إلى هذا الشي اقارن بين ال wettest و ال sum بحيث اشوف من الأكبر اذا ال sum هي الأكبر فأعطي قيمتها إلى ال wettest بحيث انها تكون دائماً الأكبر في نفس الوقت اخزن الرو الي صار فيه الشي و تستمر المقارنة في كل رو في النهاية بيطلع بنعرف اي ويك هو الي طاح فيه امطار أكثر ، و أعتذر على الشرح لمخربط :nosweat:
 
بالنسبة للفنكشن الأولى read rain fall فما يحتاج تخلي الفنكشن تدخل سايز للاريه ، لانه اوردي السايز محدد في السؤال 7*4 ، ثاني شي انت تتعامل مع تو دايمنشن اريه ففي الإدخال بتحتاج الى لوب داخل لوب ( نستد لوب ) ، بحيث ان الفنكشن بتدخل اللوب الأول العبارة عن الرو و داخله بكون لوب ثاني عبارة عن عدد الكولم بهاذي الطريقة :
كود:
for (int i = 0 ; i < [COLOR=#ff0000]4[/COLOR] ; i++ ){
for ( int j = 0 ; j < [COLOR=#0000ff]7[/COLOR] ; j++ ){
cin>>list[[COLOR=#ff0000]i[/COLOR]][[COLOR=#0000ff]j[/COLOR]];
}
}
لاحظ في اللوب الأول خليت اللوب يشتغل 4 مرات لان عدد الرو في الاريه 4 ، و اللوب الثاني 7 مرات لان عدد الكولم الموجودة في كل رو 7 فطريقة عمل النستد لوب بتكون كالتالي بيدخل اللوب الأول بتكون ال i تساوي 0 اقل من 4 فبيواصل لداخل اللوب فبيروح اللوب الثاني الموجود داخل اللوب الاول و بيدخل 7 المنتات للرو الحالي الي هو 0 بواسطة ال cin و بعد ما يخلص ال i بتزيد 1 و بيواصل بهاذي الطريقة الى ان يصير i يساوي 4 بيوقف اللوب

في خطأ ثاني سويته انك تعاملت في إدخال الإلمنت للأريه على انه ون دايمنشن اريه :
كود:
cin>>list[index];
بينما المفروض ينكتب بهاذي الطريقة لانه تو دايمنشن اريه :
كود:
cin>>list[i][j];

في النهاية بتكون الفنكشن بهاذي الطريقة :
كود:
void  readRainFall(int list[4][7]){
cout<<"enter a value for item"<<endl;
for (int i = 0 ; i < 4 ; i++ ){
for ( int j = 0 ; j < 7 ; j++ ){
cin>>list[i][j];
}
}
}

بالنسبة للفنكشن الثانية ، مثل الشي ما تحتاج للأريه سايز لأنه محدد مسبقاً ، و مثل غلطة الفنكشن الأولى تعاملت مع الاريه كون دايمنشن اريه بينما هو تو دايمنشن اريه :
كود:
void generateReport(const int list[],int listsize){
    int index ; int sum = 0 ; 
cout<<"Week"<<"\t"<<"Rainfall data"<<"\t"<<"Total"<<endl;
cout<<"\t"<<""<<"1 2 3 4 5 6 7"<<"\t"<<endl;
for (index = 0 ; index<listsize ; index ++) 
    cout<<[COLOR=#0000ff]list[index][/COLOR]<<" " ;
    sum = sum +[COLOR=#0000ff]list[index][/COLOR];
    cout<<sum ; 
}
فلو فرضنا ان الفنكشن اشتغلت فما بتجمع الا الرو الأول و الباقي بتكون تكرار لنفس النتيجة لانه قاعد يسوي نفس العملية لنفس الرو 4 مرات
المفروض اللوب ينكتب بهاذي الطريقة بالنسبة للجمع :
كود:
void generateReport(int list[4][7]){
int sum = 0 ;
int wettest = 0 ;
int weak = 0 ; 
for( int i=0 ; i < 4 ; i++ ){
    cout <<i+1<<"\t";
    for(int j=0 ; j < 7 ; j++){
    cout<<list[i][j]<<"\t"; 
        sum+=list[i][j];
    }
    cout<< sum << endl ; 
    if ( sum > wettest ){
    wettest = sum ;
    weak = i ; 
    sum = 0 ;
}
    else{
    sum = 0 ;
}
}
cout << "Wettest Week is : " << weak+1 << endl ;
}
لاحظ اني بعد نهاية كل لوب اصفر ال sum لاني لو ما صفرتها بنجمع قيم الرو السابق مع قيم الرو الجديد فبيطلع الجمع غلط إضافة إلى هذا الشي اقارن بين ال wettest و ال sum بحيث اشوف من الأكبر اذا ال sum هي الأكبر فأعطي قيمتها إلى ال wettest بحيث انها تكون دائماً الأكبر في نفس الوقت اخزن الرو الي صار فيه الشي و تستمر المقارنة في كل رو في النهاية بيطلع بنعرف اي ويك هو الي طاح فيه امطار أكثر ، و أعتذر على الشرح لمخربط :nosweat:

مشكوور صار ..
بس Wettest Week 3 3 3 1 1 1 2

شنو يقصدون فيها وشلون اسويها ؟
 
مشكوور صار ..
بس Wettest Week 3 3 3 1 1 1 2

شنو يقصدون فيها وشلون اسويها ؟
هذا خطأ في المثال مثل ما قال Noise-X الفنكشن المفروض ترجع الاسبوع الي فيه امطار أكثر اي بما معناه الي السم كان فيه أكبر لاحظ الفنكشن المكتوبة :
كود:
void generateReport(int list[4][7]){
int sum = 0 ;
int wettest = 0 ;
int weak = 0 ; 
for( int i=0 ; i < 4 ; i++ ){
    cout <<i+1<<"\t";
    for(int j=0 ; j < 7 ; j++){
    cout<<list[i][j]<<"\t"; 
        sum+=list[i][j];
    }
    cout<< sum << endl ; 
   if ( sum > wettest ){ [COLOR=#ff0000]// 1[/COLOR]
    wettest = sum ;[COLOR=#ff0000] //2[/COLOR]
    weak = i ;[COLOR=#ff0000] //3[/COLOR] 
    sum = 0 ; [COLOR=#ff0000]//4[/COLOR]
}
    else{
    sum = 0 ;
}
}
cout << "Wettest Week is : " << weak+1 << endl ;
}
لاحظ النقاط من 1 إلى 4 ، بعد ما أطلع مجموع الأمطار في الاسبوع الحالي ما اصفر المجموع دايركت ، أقارنه به المتغير wettest الي عرفته في بداية الفنكشن و ساويته بصفر ، بنقارن نفرض ان هذا اول رو و المجموع كان 10 ، طبعاً ال wettest لا زالت صفر ، بنقارن هل ال sum أو ال wettest أكبر ، اذا ال wettest أكبر مجرد بصفر ال sum بدون ما يسوي اي شي ثاني ، اذا كان ال sum أكبر من ال wettest فبنعطي قيمة ال sum لل wettest و بنغير قيمة ال weak الي قيمة الرو الحالي الي هو ال i على سبيل المثال :

في الرو الأول كان ال sum يساوي 20 الفنكشن بتقارن ال sum مع ال wettest و بما انه الرو الاول في ال wettest تساوي 0 فشي طبيعي انها اقل فبنغير قيمتها و بنعطيك قيمة ال sum فبتكون قيمتها 20 ، بالإضافة رقم الرو ، فبنعطي قيمة ال i إلى الويك الي هي 0
قبل الشرط :
كود:
sum =20;
wettest = 0 ;
weak = 0 ;
بعد الشرط :
كود:
sum = 0 ; 
wettest = 20 ; 
weak = 0 ; // قيمة ال i

نجي للرو الثاني نفروض ال sum كان 12 ، ال wettest حالياً قيمتها 20 و ال week تساوي 0 ( قيمة ال i الي تخزنت فيها سابقاً )
قبل الشرط :
كود:
sum = 12 
wettest  = 20 ; 
weak = 0 ;

بعد الشرط : قيمة ال sum اقل من قيمة ال wettest فما بنغير شي مجرد بنصفر السم و بنروح الرو الي بعده
كود:
sum = 0;
wettest = 20 ; 
week = 0 ;

و بتواصل الفنكشن بهاذي الطريقة الي نهاية الللوب
بعد نهاية اللوب في cout تحدد الاسبوع الي كان فيه أمطار أكثر :
كود:
cout << "Wettest Week is : " <<[COLOR=#ff0000] weak+1 [/COLOR]<< endl ;
لاحظ اني في ال cout ما طلعت بس قيمة ال week ضفت عليها واحد ، لان الاريه يبدأ بصفر ، فلو فرضنا ان اكبر كمية امطار طاحت في الاسبوع الأول ف ال week مخزن فيها قيمة ال i الي هي 0 فعشان نخليها تطلع 1 بنضيف 1 ، مثل الشي ينطبق على الاسابيع الي بعدها ، لو كان الاسبوع الثاني هو الأكثر ف ال weak بتكون قيمتها 1 ، فعشان بطلع في ال cout انه الاسبوع الثاني بنضيف 1
 
هذا خطأ في المثال مثل ما قال Noise-X الفنكشن المفروض ترجع الاسبوع الي فيه امطار أكثر اي بما معناه الي السم كان فيه أكبر لاحظ الفنكشن المكتوبة :
كود:
void generateReport(int list[4][7]){
int sum = 0 ;
int wettest = 0 ;
int weak = 0 ; 
for( int i=0 ; i < 4 ; i++ ){
    cout <<i+1<<"\t";
    for(int j=0 ; j < 7 ; j++){
    cout<<list[i][j]<<"\t"; 
        sum+=list[i][j];
    }
    cout<< sum << endl ; 
   if ( sum > wettest ){ [COLOR=#ff0000]// 1[/COLOR]
    wettest = sum ;[COLOR=#ff0000] //2[/COLOR]
    weak = i ;[COLOR=#ff0000] //3[/COLOR] 
    sum = 0 ; [COLOR=#ff0000]//4[/COLOR]
}
    else{
    sum = 0 ;
}
}
cout << "Wettest Week is : " << weak+1 << endl ;
}
لاحظ النقاط من 1 إلى 4 ، بعد ما أطلع مجموع الأمطار في الاسبوع الحالي ما اصفر المجموع دايركت ، أقارنه به المتغير wettest الي عرفته في بداية الفنكشن و ساويته بصفر ، بنقارن نفرض ان هذا اول رو و المجموع كان 10 ، طبعاً ال wettest لا زالت صفر ، بنقارن هل ال sum أو ال wettest أكبر ، اذا ال wettest أكبر مجرد بصفر ال sum بدون ما يسوي اي شي ثاني ، اذا كان ال sum أكبر من ال wettest فبنعطي قيمة ال sum لل wettest و بنغير قيمة ال weak الي قيمة الرو الحالي الي هو ال i على سبيل المثال :

في الرو الأول كان ال sum يساوي 20 الفنكشن بتقارن ال sum مع ال wettest و بما انه الرو الاول في ال wettest تساوي 0 فشي طبيعي انها اقل فبنغير قيمتها و بنعطيك قيمة ال sum فبتكون قيمتها 20 ، بالإضافة رقم الرو ، فبنعطي قيمة ال i إلى الويك الي هي 0
قبل الشرط :
كود:
sum =20;
wettest = 0 ;
weak = 0 ;
بعد الشرط :
كود:
sum = 0 ; 
wettest = 20 ; 
weak = 0 ; // قيمة ال i

نجي للرو الثاني نفروض ال sum كان 12 ، ال wettest حالياً قيمتها 20 و ال week تساوي 0 ( قيمة ال i الي تخزنت فيها سابقاً )
قبل الشرط :
كود:
sum = 12 
wettest  = 20 ; 
weak = 0 ;

بعد الشرط : قيمة ال sum اقل من قيمة ال wettest فما بنغير شي مجرد بنصفر السم و بنروح الرو الي بعده
كود:
sum = 0;
wettest = 20 ; 
week = 0 ;

و بتواصل الفنكشن بهاذي الطريقة الي نهاية الللوب
بعد نهاية اللوب في cout تحدد الاسبوع الي كان فيه أمطار أكثر :
كود:
cout << "Wettest Week is : " <<[COLOR=#ff0000] weak+1 [/COLOR]<< endl ;
لاحظ اني في ال cout ما طلعت بس قيمة ال week ضفت عليها واحد ، لان الاريه يبدأ بصفر ، فلو فرضنا ان اكبر كمية امطار طاحت في الاسبوع الأول ف ال week مخزن فيها قيمة ال i الي هي 0 فعشان نخليها تطلع 1 بنضيف 1 ، مثل الشي ينطبق على الاسابيع الي بعدها ، لو كان الاسبوع الثاني هو الأكثر ف ال weak بتكون قيمتها 1 ، فعشان بطلع في ال cout انه الاسبوع الثاني بنضيف 1


بس لو تلاحظ في المثال

كود:
[TABLE="class: cms_table, align: left"]
[TR]
[TD][TABLE="class: cms_table, width: 100%"]
[TR]
[TD]Week                  Rainfall data                        Total
                          1  2  3  4  5  6    7
1                         3  0  0  7  8  21   0     39
2                         0  1  1  0  0  0    4     6
3                         9  6  7  0  0  0    0     22
4                         0  0  0  0  0  0    1     1
 
Wettest Week   3   3   3  1 1  1    2
 
[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]

جوف تحت النمبر .. مختارين اكثر يوم امبلل في الويك الواحد
 
بس لو تلاحظ في المثال

كود:
[TABLE="class: cms_table, align: left"]
[TR]
[TD][TABLE="class: cms_table, width: 100%"]
[TR]
[TD]Week                  Rainfall data                        Total
                          1  2  3  4  5  6    7
1                         3  0  0  7  8  21   0     39
2                         0  1  1  0  0  0    4     6
3                         9  6  7  0  0  0    0     22
4                         0  0  0  0  0  0    1     1
 
Wettest Week   3   3   3  1 1  1    2
 [/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]

جوف تحت النمبر .. مختارين اكثر يوم امبلل في الويك الواحد
وظيفة الفنكشن هي :
displays the total rainfall for each week and the most wettest day.
بالنسبة للتوتل ما عندنا مشكلة بس لاحظ النقطة الثانية يبغي اكثر يوم طاح فيه المطر
بينما في الأوت بوت مطلع :
كود:
Wettest Week   3   3   3  1 1  1    2
لاحظ حتى الارقام الي مطلعنها لو بنلاحظ غلط
خل نفرض ان المطلوب مثل ما قلت انه يبغى اكثر يوم ممطر فالفمروض يطع يوم واحد مو اسبوع كامل فهذا خطأ في السؤال ، أنا و Noise-X اخذنا على الأوت بوت و قلنا انه يبغى اكثر اسبوع طاح فيه المطر فالحل كان على هالأساس ، بس لو بغينا نطلع اكثر يوم طاح فيه المطر ، فلازم نحط في بالنا احنا نبغي اي يوم مع رقم الاسبوع ماله ، او اي يوم بالنسبة للشهر لأن الحل يفرق :

لو بغينها يطلع اليوم بالنسبة للشهر الحل بكون بهاذي الطريقة :
بنعرف متغير maxDay في بداية الفنكشن و بنقارن كل اللمنت في الاريه به الى ان نعرف من الماكس و بنحتاج نخزن قيمة الرو و الكولم ، و اليوم بالنسبة للشهر بكون مضروب ال i في ال j ، للوكيشن مال ال maxDay

لو بغينا يطلع اللاسبوع و اليوم مثل العملية بس بدل الضرب بنعرف متغير ثاني day بنخزن فيه قيمة ال j الي صار فيها ال maxDay بنسوي cout للقيم المخزنة مال ال day و ال weak
 
#include <iostream>
using namespace std;
void readRainFall(int figures[4][7])
{
for (int row=0; row<4; row++)
{
for (int col=0; col<7; col++)
cin>>figures[row][col];
}
}
void generateReport(int figures[4][7])
{
int total;
int wettestweek;
int wettestday;
cout<<endl<<"Week "<<"\t"<<"\t"<<"Rainful data "<<"\t"<<"\t"<<"\t"<<"\t"<<"\t"<<"\t"<<"Total "<<endl<<"\t";
for (int y=0; y<7;y++)
cout<<"\t"<<(y+1)<<" ";
cout<<endl;
for (int row=0; row<4; row++)
{
total=0;
cout<<(row+1)<<"\t"<<"\t";
for (int col=0; col<7; col++)
{
cout<<figures[row][col]<<"\t";
total+=figures[row][col];
}
cout<<total<<endl;
}
cout<<endl<<" Wettest Week "<<"\t";
for (int col=0;col<7;col++)
{
wettestday=figures[0][col];
for (int row=0;row<4;row++)
if (figures[row][col]>wettestday)
wettestweek=(row+1);
cout<<wettestweek<<"\t";
}
cout<<endl;
}
int main()
{
int x[4][7];
cout<<" Enter Rainfall days for 4 weeks, each week in a row, 4 weeks and 7 days each:";
readRainFall(x);
generateReport(x);
return 0;
}

اول ثلاثة يطلعون صح، الباقي ليش خطأ؟ :RpS_unsure:
http://im48.gulfup.com/z6jzHd.png
 
وظيفة الفنكشن هي :
displays the total rainfall for each week and the most wettest day.
بالنسبة للتوتل ما عندنا مشكلة بس لاحظ النقطة الثانية يبغي اكثر يوم طاح فيه المطر
بينما في الأوت بوت مطلع :
كود:
Wettest Week   3   3   3  1 1  1    2
لاحظ حتى الارقام الي مطلعنها لو بنلاحظ غلط
خل نفرض ان المطلوب مثل ما قلت انه يبغى اكثر يوم ممطر فالفمروض يطع يوم واحد مو اسبوع كامل فهذا خطأ في السؤال ، أنا و Noise-X اخذنا على الأوت بوت و قلنا انه يبغى اكثر اسبوع طاح فيه المطر فالحل كان على هالأساس ، بس لو بغينا نطلع اكثر يوم طاح فيه المطر ، فلازم نحط في بالنا احنا نبغي اي يوم مع رقم الاسبوع ماله.

بس لو تلاحظ في المثال

كود:
[TABLE="class: cms_table, align: left"]
[TR]
[TD][TABLE="class: cms_table, width: 100%"]
[TR]
[TD]Week                  Rainfall data                        Total
                          1  2  3  4  5  6    7
1                         3  0  0  [COLOR=#ff0000]7  8  21[/COLOR]   0     39
2                         0  1  1  0  0  0    [COLOR=#ff0000]4[/COLOR]     6
3                         [COLOR=#ff0000]9  6  7[/COLOR]  0  0  0    0     22
4                         0  0  0  0  0  0    1     1
 
Wettest Week   3   3   3  1 1  1    2[/TD]
[/TR]
[/TABLE]
[/TD]
[/TR]
[/TABLE]

جوف تحت النمبر .. مختارين اكثر يوم امبلل في الويك الواحد

أحين فهمت وش المطلوب :RpS_lol:..

السالفة بسيطة تقدر تسوي اري [7]maxWeek ، و تخلي فيها رقم الأسبوع اللي فيه أكثر يوم ممطر مثلا في اليوم الأول عندنا في الأسبوع 3 هو أكثر يوم و في اليوم الرابع الأسبوع الأول هو أكثر يوم.
 
اول ثلاثة يطلعون صح، الباقي ليش خطأ؟ :RpS_unsure:
http://im48.gulfup.com/z6jzHd.png

لأن لما نسيتين تغيرين قيمة wettestday :rolleyes2:
و تعديل قيمة wettestweek في بداية كل لوب

كود:
cout<<endl<<" Wettest Week "<<"\t";
for (int col=0;col<7;col++)
{
    wettestday=figures[0][col];
    wettestweek=1;
    for (int row=0;row<4;row++)
        if (figures[row][col]>wettestday)
        {
            wettestweek=(row+1);
            wettestday=figures[row][col];
        }
    cout<<wettestweek<<"\t";
}
 
لأن لما نسيتين تغيرين قيمة wettestday :rolleyes2:
و تعديل قيمة wettestweek في بداية كل لوب

كود:
cout<<endl<<" Wettest Week "<<"\t";for (int col=0;col<7;col++)
{
    wettestday=figures[0][col];
    wettestweek=1;
    for (int row=0;row<4;row++)
        if (figures[row][col]>wettestday)
        {
            wettestweek=(row+1);
            wettestday=figures[row][col];
        }
    cout<<wettestweek<<"\t";
}

نفس المشكلة ما يتغير :RpS_laugh:
 
اليوم حصلت نموذج امتحان سابق و انصدمت لما شفت اسئلة ال 2D Array, كلش معقدين, عكس اللي سويناه في الصف! اللي سويناه كان مجرد ارقام انسويهم print و نحصل max and min و اشياء بسيطة. حاولت احل الأسئلة لكن ما قدرت, يصير أحد يحلهم لي :nosweat:

الأسئلة هم سؤال رقم 4 + 5 من:
https://www.uob-bh.com/forum/downloads.php?do=file&id=5098
 
اليوم حصلت نموذج امتحان سابق و انصدمت لما شفت اسئلة ال 2D Array, كلش معقدين, عكس اللي سويناه في الصف! اللي سويناه كان مجرد ارقام انسويهم print و نحصل max and min و اشياء بسيطة. حاولت احل الأسئلة لكن ما قدرت, يصير أحد يحلهم لي :nosweat:

الأسئلة هم سؤال رقم 4 + 5 من:
https://www.uob-bh.com/forum/downloads.php?do=file&id=5098
بالنسبة للسؤال الرابع بدل ما تبتدي النستد لوب من البداية بتخليه يبدأ من الرو السادس و الكولوم بتخليه يبدأ من الكولوم العاشر بهاذي الطريقة :
كود:
int sum = 0 ; 
for(int i = [COLOR=#ff0000]5[/COLOR] ; i < 10 ; i++ ){
for(int j = [COLOR=#ff0000]9[/COLOR] ; j < 12 ; j++){
sum+=employment[i][j];
}
}
فالفنكشن بتكون بهاذي الطريقة :
كود:
void findTotalEmployments( int employment[10][12] ){
int sum = 0 ; 
for(int i = 5 ; i < 10 ; i++ ){
for(int j = 9 ; j < 12 ; j++){
sum+=employment[i][j];
}
}
cout << " There are " << sum << " employments in the last 3 months of the last 5 years " << endl ; 
}

بالنسبة للسؤال الخامس :
ف Mohammed_13 حالنه من قبل تقدر تشوف هاذي المشاركة :
https://www.uob-bh.com/forum/showthread.php?t=43853&p=907067&viewfull=1#post907067

و بالتوفيق في الأمتحان :smile2:
 
السلام عليكم و رحمة الله و بركاته


تم فتح هذا الموضوع لمناقشة مقرر ITCS111 - CS103 - ITCS103


قسم المقرر في المكتبة الجامعية
https://www.uob-bh.com/forum/downloads.php?do=cat&id=4


لأي إستفسارات أو مساعدة تتعلق بهذه المقررات الرجاء طرحها هنا


بالتوفيق للجميع

 
عودة
أعلى أسفل