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

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

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

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

آخر المواضيع

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

 
 
أدوات الموضوع انواع عرض الموضوع
قديم 2013-02-07, 13:59   رقم المشاركة : 1
معلومات العضو
-asma-
عضو مبـدع
 
الصورة الرمزية -asma-
 

 

 
إحصائية العضو










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

Exercice :
Soit à gérer la table de matière du domaine Math et Informatique, le nombre de matières à gérer (18), répartir sur 2 semestre les champs de la table sont les informations concernent semestre (un champ) « 1 où 2 » des informations concernent la matière (Code matière – Libelle de la matière – Unité qui peut être Fondamentale, Méthodologique-… - Transversale- Découverte) (1 champ) – Coefficient – Les crédits.
* Travail demander :
Ecrire l’algorithme qui permettant de :
1- créer la table matière.
2- Consulter une matière donnée.
3- Afficher toute les matières d’un semestre
4- Modifier une matière.
5- Supprimer une matière quelconque.
Ces actions sont formulées à travers de procédures appelées via un menu.
ساعدوني فيه أرجوكم يا إخوتي هو إجباري و شكرا مسبقا









 


قديم 2013-02-07, 17:46   رقم المشاركة : 2
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

جاري برمجته










قديم 2013-02-07, 18:51   رقم المشاركة : 3
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

كود:
 
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:integer;
t:tab;
ch:string;
u:uu;
semm,chch,j:integer;
procedure lire;
begin
writeln('Entrez semestre');
readln(semm);
for j:=1 to 2 do 
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 j:=1 to 2 do
for i:=1 to 9 do
u[j,i]:=t[i].nom;
end;
procedure seme;
begin
for i:=1 to 9 do
writeln(u[j,i]);
end;
procedure mati;
begin
writeln('Entrez la matier');
readln(ch);
while (ch<>t[i].nom) and (i<=9) do
i:=i+1;
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
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:=1 to 9 do
writeln(u[2,i]);
end;
begin
lire;
seme;
aff;
end.

بقي فقط تجريب اذا كان يشتغل جيدا وبعض التعديلات فقط في القراءة









قديم 2013-02-07, 19:59   رقم المشاركة : 4
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

البرنامج الكامل لاجابة عن الاسئلة الثلاث الاولى

كود:
 
 
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:integer;
t:tab;
ch:string;
u:uu;
semm,chch,j: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:=1 to 9 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
writeln('Entrez le semestre que vous voulez afficher');
readln(chch);
i:=1;
if chch=1 then
repeat
writeln(u[1,i]);
i:=i+1;
until i>9;
if chch=2 then
repeat
writeln(u[2,i]);
i:=i+1;
until i>9;
end;
begin
writeln('1-> lire  ,2->semestre   ,3->matiere ,4->stop');
repeat  
readln(ch);
if ch='1' then lire;
if ch='2' then aff;
if ch='3' then mati; 
until ch='4';
end.









قديم 2013-02-07, 21:11   رقم المشاركة : 5
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

تم برمجة البرنامج ولكن ينقص بعض الامور فيه

بخصوص الحذف

فهل نحتاج الى تعقيد الامور ام تبسيطها؟

يعني هل نريد فقط الا تظهر المادة وامورها التي حذفناها عند العرض ام اننا نحذفها كليا

++










قديم 2013-02-07, 23:30   رقم المشاركة : 6
معلومات العضو
-asma-
عضو مبـدع
 
الصورة الرمزية -asma-
 

 

 
إحصائية العضو










افتراضي

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










قديم 2013-02-08, 00:22   رقم المشاركة : 7
معلومات العضو
ahmedchourar
عضو مميّز
 
إحصائية العضو










افتراضي

اي سنة هذا التمرين الوجريتم سنة ثانية اعلام الالي ؟










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










افتراضي

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

سيتم تعديل البرنامج









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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة ahmedchourar مشاهدة المشاركة
اي سنة هذا التمرين الوجريتم سنة ثانية اعلام الالي ؟

للسنة الاولى اعلام الي ولكن المفروض تدرسونه في الفصل الثاني









قديم 2013-02-08, 10:52   رقم المشاركة : 10
معلومات العضو
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.
شاحاول تعديله من جديد ان كان لدي بعض الوقت لانه لدي امتحجانات









قديم 2013-02-14, 22:23   رقم المشاركة : 11
معلومات العضو
-asma-
عضو مبـدع
 
الصورة الرمزية -asma-
 

 

 
إحصائية العضو










افتراضي

مشكور أخي الآن الهدف هو حل هذا التمرين المعقد حاولت بالطرق التي ذكرتها لكن بلا جدوى لأنه كما قلت بروسيدور الحذف عطل لي بروسيدور الأخرى وأنا آسفة إذا عطلتك
أنت تدرس سنة ثانية إعلام آلي؟ وبأي جامعة؟










قديم 2013-02-15, 11:32   رقم المشاركة : 12
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

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

جامعة تلمسان









 

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


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

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

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

الساعة الآن 01:38

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


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

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