اريد حل تمرين في الالغوريتم - منتديات الجلفة لكل الجزائريين و العرب

العودة   منتديات الجلفة لكل الجزائريين و العرب > منتديات الجامعة و البحث العلمي > الحوار الأكاديمي والطلابي > قسم أرشيف منتديات الجامعة

قسم أرشيف منتديات الجامعة القسم مغلق بحيث يحوي مواضيع الاستفسارات و الطلبات المجاب عنها .....

في حال وجود أي مواضيع أو ردود مُخالفة من قبل الأعضاء، يُرجى الإبلاغ عنها فورًا باستخدام أيقونة تقرير عن مشاركة سيئة ( تقرير عن مشاركة سيئة )، و الموجودة أسفل كل مشاركة .

آخر المواضيع

اريد حل تمرين في الالغوريتم

 
 
أدوات الموضوع انواع عرض الموضوع
قديم 2013-02-08, 10:52   رقم المشاركة : 8
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة -asma- مشاهدة المشاركة
أولا شكرا جزيلا لك أخي يوسف بارك الله فيك وجعلها في ميزان حسناتك إن شاء الله
أما بالنسبة لحذف المواد فالمطلوب هو عدم إظهار الأمور المتعلقة بها فقظ للتمكن من استعادة هذه المعلومات عند الحاجة إليها ومشكور مرة أخرى

في هذه الحالة لدينا خيار
اننا نقوم بقراءة رمز المادة التي اردنا حذفها
مثلا
الفصل الاول
مواده تاخذ الرمز من 1 الى 9
فتصير هكذا
1
2
3
4
5
6
7
8
9

في هذه الحالة مثلا اردنا حذف المادة 3فنقوم بقراءة مثلا
y

نرجع الى بروسيدور اظهار مواد الفصل ونقوم باضافة السطر التالي في الدالة فور
if i<>y do
writeln(...);
نقوم بتشغيل الجالة
في الحالة 1
لدينا ايي ياخذ القيمة1 التي تختلف عن 3 يقوم باظهار المادة
ثنيا لدينا 2 يختلف عن 3 يقوم بالاظهار
اثلثا لدينا 3 يساوي 3 لا يقوم بالاظهار
رابعا لدينا 4 يختلف عن 3 يقوم بالاظهار

وهكذا

رغم بساطة الامر الا انه لم يشتغل عندما برمجته
لذلك اما ان تحاولي برمجته بهذه الطريقة فقد اكون نسيت بعض الامور او تكتبه على شكل الغوريتم فهو صحيح

ولكن في هذه الحالة يجب ان تكون رموز المواد
code matier
تنتمي الى نفس مجال
i
يعني المواد تكون مرمزة ما بين 1 الى 18
المادة الاولى رمزها 1
الثانية 2 وهكذا
--------------------
الحالة الثانية وهي معقدة نوعا ما
وهي ان نقوم بعمل تعديل
بحيث تصير المواد 17
n-1
اذا كانت لدينا مثلا هذا التريتيب
1-analyse
2-algeber
3-info
4-mec
5-ele
6-beru
7-chimie
8-tec
9-ang

اردت ان احذف
ele
فيصير التريتب التالي

1-analyse
2-algeber
3-info
4-mec
5-beru
6-chimie
7-tec
8-ang

واظن ان الالغوريتم لهذه الحالة لديكم

ولكن لا ننسى ان لدينا ايضا مواد الفصل الثاني والتي عوض ما يكون ترميزها من 10 الى 18
تصبح مرمزة من 9 الى 17

فيصبح لدينا هكذا
كود:
 
procedure supp;
begin
writeln('Entrez le code matier que vouler supprimer');
readln(cc); 
for i := cc + 1 to n do begin
t[i-1].nom:=t[i].nom;
t[i-1].cod:=t[i].cod;
t[i-1].uni:=t[i].uni;
t[i-1].cre:=t[i].cre;
t[i-1].coe:=t[i].coe;
t[i-1].lib:=t[i].lib;
end;
n:=n-1;
end;
الان نلاحظ ان في البرنامج النهائي البروسيدور الاول يشتغل والبقية لا تشتغل
رغم انها كانت تشغل جيدا قبل اضافة بروسيدور الحذف

فعند اضافة بروسيدور الحذف لم تعد تشتغل جيدا وهذا اظن يعود لاخطاء في البرنامج *-* رغم انني اعتقد انه صحيح *-* او لحجم البرنامج الكبير

البرنامج النهائي مكتوب بشكل جيد *-* الالغوريتم صحيح ولكن البرنامج ليس شغال*-*

كود:
 
program ex;
uses wincrt;
type sem=array[1..2]of string;
type uu=array[1..2,1..9]of string;              
type matt =record
     cod:integer;
     nom:string;
     uni:string;
     cre:integer;
     coe:integer;
     lib:string;
     end;
type tab=array[1..9]of matt;
var i,z,n:integer;
t:tab;
ch,p,chh,m,u1,l,chc:string;
u:uu;
semm,chch,j,p1,c,e,o,m1,mm1,m3,mm3,m4,mm4,cc:integer;
procedure lire;
begin
writeln('Entrez les matiere de semestre 1');
j:=1; 
for i:=1 to 9 do begin
writeln('code');
readln(t[i].cod);
writeln('nom matiere');
readln(t[i].nom);
writeln('unite');
readln(t[i].uni);
writeln('credit');
readln(t[i].cre);
writeln('coefficient');
readln(t[i].coe);
writeln('libele');
readln(t[i].lib);
end;
for i:=1 to 9 do
u[1,i]:=t[i].nom;
writeln('Entrez les matiere de semestre 2');
j:=2; 
for i:=10 to 18 do begin
writeln('code');
readln(t[i].cod);
writeln('nom matiere');
readln(t[i].nom);
writeln('unite');
readln(t[i].uni);
writeln('credit');
readln(t[i].cre);
writeln('coefficient');
readln(t[i].coe);
writeln('libele');
readln(t[i].lib);
end;
for i:=10 to 18  do
u[2,i]:=t[i].nom;
end;
procedure mati;
begin
writeln('Entrez la matier');
readln(ch);
for i:=1 to 18 do 
if ch=t[i].nom then begin
writeln('code:',t[i].cod);
writeln('unité:',t[i].uni);
writeln('credit:',t[i].cre);
writeln('coefficient:',t[i].coe);
writeln('libelle:',t[i].lib);
end;
end;
procedure aff;
begin
i:=1;
writeln('Entrez le semestre que vous voulez afficher');
readln(chch);
if chch=1 then 
for i:=1 to 9 do 
writeln(u[1,i]);
if chch=2 then 
for i:=10 to 18 do 
writeln(u[2,i]);
end;
procedure mode;
begin
writeln('Entrez le semestre dans laquelle vous aime modifier un matiere ');
readln(p1);
writeln('Entrez la matiere que vous aime modifier');
readln(chh);
for i:=1 to n do
if chh=t[i].nom then begin
writeln('nouvelle nom');
readln(m);
t[i].nom:=m;
u[p1,i]:=t[i].nom;
writeln(' nouvelle code:');
readln(c);
t[i].cod:=c;
u[p1,i]:=t[i].nom;
writeln('nouvelle unité:');
readln(u1);
t[i].uni:=u1;
u[p1,i]:=t[i].nom;
writeln('nouvelle credit:');
readln(e);
t[i].cre:=e;
u[p1,i]:=t[i].nom;
writeln('nouvelle coefficient:');
readln(o);
t[i].coe:=o;
u[p1,i]:=t[i].nom;
writeln('nouvelle libelle:');
readln(l);
t[i].lib:=l;
u[p1,i]:=t[i].nom;
end;
end;

procedure supp;
begin
writeln('Entrez le code matier que vouler supprimer');
readln(cc); 
for i := cc + 1 to n do begin
t[i-1].nom:=t[i].nom;
t[i-1].cod:=t[i].cod;
t[i-1].uni:=t[i].uni;
t[i-1].cre:=t[i].cre;
t[i-1].coe:=t[i].coe;
t[i-1].lib:=t[i].lib;
end;
n:=n-1;
end;

begin
n:=18;
writeln('1-> lire  ,2->semestre   ,3->matiere ,4->mode,  5->supp');
repeat  
readln(ch);
if ch='1' then lire;
if ch='2' then aff;
if ch='3' then mati;
if ch='4' then mode;
if ch='5' then supp;
until ch='6';
end.
شاحاول تعديله من جديد ان كان لدي بعض الوقت لانه لدي امتحجانات









 

الكلمات الدلالية (Tags)
algorithme


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

الساعة الآن 20:41

المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى
المنتدى غير مسؤول عن أي إتفاق تجاري بين الأعضاء... فعلى الجميع تحمّل المسؤولية


2006-2024 © www.djelfa.info جميع الحقوق محفوظة - الجلفة إنفو (خ. ب. س)

Powered by vBulletin .Copyright آ© 2018 vBulletin Solutions, Inc