موقع طلبة جامعة البحرين

يمكنك تصفح الموقع كزائر ولكن ندعوك لتسجيل عضوية خاصة بك لتحصل على كافة الصلاحيات مثل تنزيل ملفات المكتبة وقراءة تعليقات هيئة التدريس وغيرها. يمكنك الحصول على عضوية مجانية بالضغط على زر تسجيل. إذا قمت بالتسجيل مسبقا فيمكنك الضغط على زر دخول.

تسجيل دخول
  • قسم المكتبة الجامعية مغلق مؤقتا بعد الاستهداف التي تعرضت له بعض خدمات أمازون في البحرين، جاري استرجاع الملفات ونقلها إلى سيرفرات جديدة وسيتم بعدها اعادة افتتاح المكتبة

ITCS323 lab assignments

السلام عليكم

عندي سؤال عن أسايمنت2


  1. Write a program “sort.cpp” that reads n integers from a file and stores them in an array. The program then sorts the array and prints the sorted array.

هذا أول بارت .. يرتبط ببارت2 بس بجزء رقم3 ؟
يعني بارت ون نسوي كرييت فايل وندخل فيه قيم من عندنا وندخل القيم في أري ونسوي ليهم سورت ونطبعهم فما ليه علاقة ب unsorted.txt صح ؟

وبارت2 رقم 2 ما ليه علاقة ببارت1 له .. بحيث ما نستخدم فنكشنات بارت ون صح؟
 
السلام عليكم

عندي سؤال عن أسايمنت2


  1. Write a program “sort.cpp” that reads n integers from a file and stores them in an array. The program then sorts the array and prints the sorted array.

هذا أول بارت .. يرتبط ببارت2 بس بجزء رقم3 ؟
يعني بارت ون نسوي كرييت فايل وندخل فيه قيم من عندنا وندخل القيم في أري ونسوي ليهم سورت ونطبعهم فما ليه علاقة ب unsorted.txt صح ؟

وبارت2 رقم 2 ما ليه علاقة ببارت1 له .. بحيث ما نستخدم فنكشنات بارت ون صح؟
عليكم السلام
كلامش عدل ملف ال "unsorted" مجرد داتا بيس تاخذين منها قيم الاريه و تسوين ليهم انسيرت في الاريه بعد ما تسوين انسيرت للقيم خلاص ماله اي شغل ، الشغل بس بكون في الاريه نفسه مجرد تستخدمين فنكشن من فنكشنات السورت عشان تعيدين ترتيب الاريه و بعدين تطبعين الاريه بعد السورت ، فبارت 2 رقم 2 ماله علاقه ببارت 1 ، بارت ون مجرد تدخلين قيم الاريه من الملف و تنتهي شغلته هني و بارت 2 سورت و برنت للاريه نفسه
 
بارت ون مجرد تدخلين قيم الاريه من الملف و تنتهي شغلته هني و بارت 2 سورت و برنت للاريه نفسه

بارت 1 ندخل القيم في فايل وننقلهم الى أري ونسوي ليهم سورت

بارت 2 بعد ندخل قيم بس جنريت راندوم انتجر في unsorted ونسوي ليهم نفس بارت 1 ننقلهم الى أري ونسوي ليهم سورت
بالاضافة الى ان الجزء الاخير نشغل منه بارت 1

يعني يتشابهون البارتين .. الفرق الثاني محددة الفايلات بالضبط والقيم عشوائية مو من عند اليوزر والعمليات تتم عن طريق fork

الرابط للبارتين بس رقم 3 في بارت 2 ان انشغل اول بارت من خلاله ونستخدم wait عشان ينتظر بارت ون

هذا الي فهمته وسويته
 
بارت 1 ندخل القيم في فايل وننقلهم الى أري ونسوي ليهم سورت

بارت 2 بعد ندخل قيم بس جنريت راندوم انتجر في unsorted ونسوي ليهم نفس بارت 1 ننقلهم الى أري ونسوي ليهم سورت
بالاضافة الى ان الجزء الاخير نشغل منه بارت 1

يعني يتشابهون البارتين .. الفرق الثاني محددة الفايلات بالضبط والقيم عشوائية مو من عند اليوزر والعمليات تتم عن طريق fork

الرابط للبارتين بس رقم 3 في بارت 2 ان انشغل اول بارت من خلاله ونستخدم wait عشان ينتظر بارت ون

هذا الي فهمته وسويته
ما أعرف لسالفة ال fork لاني مو ماخذ المقرر بس حل السؤال حسب كلامش المفروض يصير بهاذي الطريقة ، كملاحظة حق الراندوم فايو استخدمت فنكشن اسمها rand من مكتبة stdlib ما ادري اذا مسموح تستخدمونها او لا أو في طريقة علموكم اياها عشان تدخلون راندوم فاليو
كود:
#include<fstream>
#include<cstdlib>
#include<iostream>
using namespace std; 


void insertEnd( int arr[] , int length , int element  ){
	arr[length]=element;
	length++;
}


void bubbleSort(int list[], int length)
{
int temp;
int iteration;
int index;
for (iteration = 1; iteration < length; iteration++)
{
for (index = 0; index < length - iteration; index++)
if (list[index] > list[index + 1])
{
temp = list[index];
list[index] = list[index + 1];
list[index + 1] = temp;
}
}
}


int main(){ 
int n ; 
int length = 0 ;
int list[20];
ifstream fin ; 
ifstream fin2 ; 
ofstream fout ; 
fin.open("elementOfArray.txt");
fin2.open("unsorted.txt");
fout.open("unsorted.txt");[COLOR=#008000][/COLOR]


[COLOR=#ff0000]//include 10 elements from file [/COLOR]
[COLOR=#008000]int i = 11 ; [/COLOR]
[COLOR=#008000]while( i > 0 ){[/COLOR]
[COLOR=#008000]fin >> n ;[/COLOR]
[COLOR=#008000]insertEnd( list , length , n  );[/COLOR]
[COLOR=#008000]i--;[/COLOR]
[COLOR=#008000]}[/COLOR]


[COLOR=#ff0000]//Sort Element in array [/COLOR]
[COLOR=#008000]bubbleSort(list,length); [/COLOR]


[COLOR=#ff0000]//generate 10 random value and put it in file "unsorted"[/COLOR]
[COLOR=#008000]i = 11 ; [/COLOR]
[COLOR=#008000]while(i > 0 ){[/COLOR]
[COLOR=#008000]n = rand(); [/COLOR]
[COLOR=#008000]fout << n << endl ; [/COLOR]
[COLOR=#008000]i--;[/COLOR]
[COLOR=#008000]}[/COLOR]


[COLOR=#ff0000]//insert random value from "unsorted" file to array [/COLOR]
[COLOR=#008000]i = 11 ; [/COLOR]
[COLOR=#008000]while( i > 0 ){[/COLOR]
[COLOR=#008000]fin2 >> n ;[/COLOR]
[COLOR=#008000]insertEnd( list , length , n  );[/COLOR]
[COLOR=#008000]i--;[/COLOR]
[COLOR=#008000]}[/COLOR]


[COLOR=#ff0000]// Sort Array Again after insert random values that genrated in "unsorted.txt" file [/COLOR]
[COLOR=#008000]bubbleSort(list,length);[/COLOR]


[COLOR=#ff0000]// print array[/COLOR]
[COLOR=#008000]cout << " The element of array : " << endl ; [/COLOR]
[COLOR=#008000]for ( int j = 0 ; j < length ; j++){[/COLOR]
[COLOR=#008000]	cout << list[j] << " " ;[/COLOR]
[COLOR=#008000]}[/COLOR]




fin.close();
fin2.close();
fout.close();
system("pause");
return 0 ;
}
 
ما أعرف لسالفة ال fork لاني مو ماخذ المقرر بس حل السؤال حسب كلامش المفروض يصير بهاذي الطريقة ، كملاحظة حق الراندوم فايو استخدمت فنكشن اسمها rand من مكتبة stdlib ما ادري اذا مسموح تستخدمونها او لا أو في طريقة علموكم اياها عشان تدخلون راندوم فاليو


:$ واني أحسب انك تاخذ المقرر وتعرف الأسايمنت فأتكلم عن البارتات على أساس عارفهم ومو حاطة كل السؤال فتتوضح البارتات
رحم الله والديك .. تعبناكم ويانا أخي

اني استخدمت هذي الكودات بشكل عام

كود:
//random values

for(int i = 0; i < 7; i++) 
  {
   value = rand()%101;
   file << value << '\n';
  }

كود:
//store file values in array

int a, count=0;
While (myfile >> a)
  {
   arr[count]= a;
   count++;
  }
و السورت وباقي الأشياء مثل الي سويته انت
بس ما جيكتهم للحين لأن فيه كودات اضافية تعتمد على الـ linux فتحتاج برنامج غير لأن ما تشتغل على الفيجوال
فأحتاج أجيك الفنكشنات كل وحدة بروحها

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

اني استخدمت هذي الكودات بشكل عام

كود:
//random values

for(int i = 0; i < 7; i++) 
  {
   value = rand()%101;
   file << value << '\n';
  }

كود:
//store file values in array

int a, count=0;
While (myfile >> a)
  {
   arr[count]= a;
   count++;
  }
و السورت وباقي الأشياء مثل الي سويته انت
بس ما جيكتهم للحين لأن فيه كودات اضافية تعتمد على الـ linux فتحتاج برنامج غير لأن ما تشتغل على الفيجوال
فأحتاج أجيك الفنكشنات كل وحدة بروحها

شكرًا من جديد :FF:
و والديش ، عفواً :smile2:
 
السلام عليكم .. [MENTION=6243]أمواج[/MENTION]

شكلكم متخربطين في الأسايمنت :rolleyes2:

البارت الأولي تكتبون برنامج اللي هو sort.cpp .. شغلته يقرأ ارقام من ملف يرتبهم ويطبعهم بس

البارت الثاني ثلاثة أقسام:

1- تطلعون أرقام عشوائية وتحفظونها في ملف unsorted.txt
2- تاخذون الأرقام اللي في unsorted.txt و تخلونهم في array ترتبونها وتحفظونها في ملف sorted.txt
3- تشغلون البرنامج اللي في البارت الأولي.

طبعاً في البارت الثاني كل خطوة تصير في child process و الأفضل يكون لكل وحده فنكشن بروحها + كلهم لازم الـ parent process ينتظر لما يكملون.
 
شلون نحول integer الى arrayofcharacters ???
 
How to convert integer number to array of characters
 
شلون نحول integer الى arrayofcharacters ???

تعرف اراي كركتر
بعدين تقرأ الارقام من فايل وتخليهم في الاراي

في طريقة أسهل :smile2:

كود:
int arr[5]={0,1,2,3,4};
char c[5];
    
for (int i=0;i<5;i++)
    c[i]=arr[i]+'0';

إذا كنتون بتستخدمون هذي الشغلة حق read و write .. ما يحتاج تحولون إلى char ..
الفنكشن تقبل int :rolleyes2:
 
في طريقة أسهل :smile2:

كود:
int arr[5]={0,1,2,3,4};
char c[5];
    
for (int i=0;i<5;i++)
    c[i]=arr[i]+'0';

إذا كنتون بتستخدمون هذي الشغلة حق read و write .. ما يحتاج تحولون إلى char ..
الفنكشن تقبل int :rolleyes2:

ما تقبل انتجر يطلع ارقام كبيره لين سوينا run
بس كانها الطريقة ما تنفع لين عندنا ارقام اكثر من 1 digit
شكرا
 
ما تقبل انتجر يطلع ارقام كبيره لين سوينا run
بس كانها الطريقة ما تنفع لين عندنا ارقام اكثر من 1 digit
شكرا

أي لازم ارقام digit 1 لأن char سعته حرف واحد :nosweat:
يصير بعد تخلونها في string اذا كانت الارقام كبيرة وتحولونها إلى char array :smile2:

كود:
for (int i=0;i<5;i++)
    str+=arr[i]+'0';
 
* اذا بنرسل أري عبر البايب
يصير نرسله كامل مرة وحدة أو لازم كل مرة نطرش قيمة ؟

مثلاً

كود:
write(p[1], arr[], arr.length()+1);

أو ويش ؟!

* شي ثاني .. عادي نطرش في البايب أري + قيمة مثلا الـ length أو اسم الأري

* و هل اللنث للأري هو نفسه عدد البايت ؟

* في البارت الثالث .. نستخدم مثل البايب الأول أو نسوي كرييت بايب جديد
اذا نستحدم الأول شلون نخلي ان البايب يحمل 3 بروسس


ومسامحة نتعبكم ويانا
 
التعديل الأخير:
* اذا بنرسل أري عبر البايب
يصير نرسله كامل مرة وحدة أو لازم كل مرة نطرش قيمة ؟

مثلاً

كود:
write(p[1], arr[], arr.length()+1);

أو ويش ؟!

* شي ثاني .. عادي نطرش في البايب أري + قيمة مثلا الـ length أو اسم الأري

* و هل اللنث للأري هو نفسه عدد البايت ؟

* في البارت الثالث .. نستخدم مثل البايب الأول أو نسوي كرييت بايب جديد
اذا نستحدم الأول شلون نخلي ان البايب يحمل 3 بروسس


ومسامحة نتعبكم ويانا

- يصير تنرسل الأري كامل مرة وحده ..
كود:
write(p[1], arr, sizeof(arr)+1);
- اللي بيتطرش القيم اللي داخل الأري بس الإسم و length ما يتطرشون كأن :whistling:
- أي طول الأري المطلوب عشان تطرشونه لازم يكون بالبايت
- أنا استخدمت بايب جديد عشان كل واحد يكون منفصل عن الثاني،
يمكن تصير مو متأكد من الشغلة :nosweat:
 
عودة
أعلى أسفل