موضوع مميز ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal - الصفحة 14 - منتديات الجلفة لكل الجزائريين و العرب

العودة   منتديات الجلفة لكل الجزائريين و العرب > منتديات الجامعة و البحث العلمي > منتدى الهندسة > قسم الرياضيات و الاعلام الالي

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

آخر المواضيع

ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 2012-12-26, 23:03   رقم المشاركة : 1
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة AKKAINMOH مشاهدة المشاركة
السلام عليكم ميستطيع مساعدة

écrire les fonction qui retournent
la tangente d'un réel
la factorielle d'un nombre
فقط هتان
كود:
{faire attention, le type de fact est longint, ne depasser pas 16!  }

function fact(n:integer):longint;

var
   i:integer;
   r:longint;

begin

r:=1;

for i:= 2 to n do
   r:= r*i;

fact:=r;

end; 


function tang(y:real):real;

begin

   tang:=sin(y)/cos(y);

end;








 


رد مع اقتباس
قديم 2012-12-28, 11:44   رقم المشاركة : 2
معلومات العضو
samah20
عضو مشارك
 
الصورة الرمزية samah20
 

 

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










افتراضي

شكرا على الرد اخي يوسف










رد مع اقتباس
قديم 2012-12-29, 17:26   رقم المشاركة : 3
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة خديجة حنان مشاهدة المشاركة
السلام عليكم اريد مساعدة في حل هدا التمرين (langage c)
ecrire sous forme préfixée les expression suivantes: ((3-4)/(6-12))*((7+2)/6)
nous allons implémenter une methode permettant d'évaluer la valeur d'une expression préfixée entrée sous forme de chaine de caractére c'est a dire de calculer sa valeur .pour cela,nous utiliseronsune pile,appelée pile de résultats.
Nous parcourons la chaine contenant l'expression préfixée de droite a gauche.lorsque nous rencontrons un nombre, nous l'empilons .lorsque nous rencontrons un operateur nous dépilons deux nombres ,nous effectuons l'opération et nous empilons le resultat .a la fin la pile ne contient plus qu'un nombre:c'est le resultat de l'évaluation a retourner .
اقتباس:
المشاركة الأصلية كتبت بواسطة salemk مشاهدة المشاركة
هل هذا التحليل يطابق المطلوب؟

كود:
1) la liste des opérateurs et des opérandes correspond à une chaîne de caractères
2) les opérateurs forment la première partie de la chaîne
3) les opérandes forment la deuxième partie de la chaîne
4) deux opérandes sont limités par un seul espaces
5) nombre des opérandes =  nombre des opérateurs + 1 
6) avec plus qu’un opérateur on utilise les parenthèses pour le reste
7) le premier opérateur (à gauche) est celui à utiliser le dernier dans l’expression à évaluer 
8) le dernier opérande (à droite) est celui à utiliser le dernier dans l’expression à évaluer

شكرا جزيلا على التمرين

نظرا لأننا لا ندرس c في المعاهد، سأحاول أن أجد حلا باستعمال لغة باسكال بالاعتماد على المعطيات السالفة









رد مع اقتباس
قديم 2012-12-29, 21:47   رقم المشاركة : 4
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة خديجة حنان مشاهدة المشاركة
le but du TP est d'implémenter les opérations de base sur les piles et évaluer des expressions arithmétiques au format préfixé.
dans une expression arithmétique au format préfixé, on trouve d'abord l'opérateur +,-,*,/,puis les opérandes.
par exemple, l'expression 10+2 sera écrite:+ 10 2
les opérandes peuvent etre eux memes des expressions
par exemple, l'expression (10+2)/3 sera écrite: /+ 10 2 3
اقتباس:
المشاركة الأصلية كتبت بواسطة salemk مشاهدة المشاركة

كود:
1) la liste des opérateurs et des opérandes correspond à une chaîne de caractères
2) les opérateurs forment la première partie de la chaîne
3) les opérandes forment la deuxième partie de la chaîne
4) deux opérandes sont limités par un seul espaces
5) nombre des opérandes =  nombre des opérateurs + 1 
6) avec plus qu’un opérateur on utilise les parenthèses pour le reste
7) le premier opérateur (à gauche) est celui à utiliser le dernier dans l’expression à évaluer 
8) le dernier opérande (à droite) est celui à utiliser le dernier dans l’expression à évaluer

هذه محاولة قد لا توافق المطلوب وتحتمل الكثير من التحسين لكن "هذاكة حد الجهيد "

كود:

program djelfa;
uses wincrt;

procedure lecture (var ch,operande,operateur:string);
          function verif(ch:string):boolean;
          var
              i:integer;
          begin
          i:=1;
          while ((i<=length(ch)) and (ch[i] in ['0'..'9','+','-','*','/',' '])) do
          begin
               i:=i+1;
          end;
      
          verif:=((ch<>'') and (i>length(ch)));
          end; 

var
    i,j,nbespace:integer;
    nombre:string;

begin
repeat
    writeln('Saisir l''exprission à évaluer formée par des opérateurs et des opérandes');
    writeln('----- opérandes puis opérateurs ---- (exemple /+ 10 2 3)');
    readln(ch);

          while ch[length(ch)] = ' ' do
          begin
               delete(ch,length(ch),1);
          end;

          j:=1;

          while j<= length(ch) do
          begin
               while ((ch[j]=' ') and (not(ch[j+1] in ['0'..'9']))) do
               begin
                    delete(ch,j,1);
               end;
          j:=j+1;
          end;

    i:=1;
    nbespace:=0;
    operateur:='';
    operande:='';
    nombre:='';

          while ((ch[i] in ['+','-','*','/',' ']) and (i<=length(ch))) do
          begin
               if ch[i]<>' ' then
                  operateur:=operateur+ch[i];
                  i:=i+1;
          end;

          while ((ch[i] in ['0'..'9',' ']) and (i<=length(ch)))do
          begin

               while ((ch[i]<>' ') and (i<=length(ch))) do
               begin
                    nombre:=nombre+ch[i];
                    i:=i+1;
               end;
               operande:=operande+' '+nombre;
               i:=i+1;
               nombre:='';
          end;
    for i:=1 to length(operande) do
          if operande[i]=' ' then
               nbespace:=nbespace+1;

until ((verif(ch)) and (length(operateur)+1=nbespace) and (length(operateur)+length(operande)=length(ch)));
end;



function evaluation(operande,operateur:string):real;

var
     resultat:real;
     operan:string;
     i,erreur,d:integer;


begin

     writeln;writeln;
     resultat:=0;
     delete(operande,1,1);
     operan:=copy(operande,1,pos(' ',operande)-1);
     delete(operande,1,pos(' ',operande));
     val(operan,d,erreur);
     resultat:=d;
     operan:='';

     for i:= length(operateur) downto 1 do
     begin
          repeat
                operan:=operan+operande[1];
                delete(operande,1,1);
          until ((operande[1]=' ') or (operande=''));
     val(operan,d,erreur);
     operan:='';

          case operateur[i] of
               '+':resultat:=resultat+d;
               '-':resultat:=resultat-d;
               '*':resultat:=resultat*d;
               '/':resultat:=resultat/d;
          end;

     end;

     evaluation:=resultat;
end;




var
     s,p1,p2:string;

begin
     lecture (s,p1,p2);
     writeln('le resultat de l''evaluation de l''exprission ',s,chr(13),'est', evaluation(p1,p2));
end.









رد مع اقتباس
قديم 2012-12-31, 11:44   رقم المشاركة : 5
معلومات العضو
خديجة حنان
عضو نشيط
 
الصورة الرمزية خديجة حنان
 

 

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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة salemk مشاهدة المشاركة
هذه محاولة قد لا توافق المطلوب وتحتمل الكثير من التحسين لكن "هذاكة حد الجهيد "

كود:

program djelfa;
uses wincrt;

procedure lecture (var ch,operande,operateur:string);
          function verif(ch:string):boolean;
          var
              i:integer;
          begin
          i:=1;
          while ((i<=length(ch)) and (ch[i] in ['0'..'9','+','-','*','/',' '])) do
          begin
               i:=i+1;
    
          verif:=((ch<>'') and (i>length(ch)));
          end; 

var
    i,j,nbespace:integer;
    nombre:string;

begin
repeat
    writeln('Saisir l''exprission à évaluer formée par des opérateurs et des opérandes');
    writeln('----- opérandes puis opérateurs ---- (exemple /+ 10 2 3)');
    readln(ch);

          while ch[length(ch)] = ' ' do
          begin
               delete(ch,length(ch),1);
          end;

          j:=1;

          while j<= length(ch) do
          begin
               while ((ch[j]=' ') and (not(ch[j+1] in ['0'..'9']))) do
               begin
                    delete(ch,j,1);
               end;
          j:=j+1;
          end;

    i:=1;
    nbespace:=0;
    operateur:='';
    operande:='';
    nombre:='';

          while ((ch[i] in ['+','-','*','/',' ']) and (i<=length(ch))) do
          begin
               if ch[i]<>' ' then
                  operateur:=operateur+ch[i];
                  i:=i+1;
          end;

          while ((ch[i] in ['0'..'9',' ']) and (i<=length(ch)))do
          begin

               while ((ch[i]<>' ') and (i<=length(ch))) do
               begin
                    nombre:=nombre+ch[i];
                    i:=i+1;
               end;
               operande:=operande+' '+nombre;
               i:=i+1;
               nombre:='';
          end;
    for i:=1 to length(operande) do
          if operande[i]=' ' then
               nbespace:=nbespace+1;

until ((verif(ch)) and (length(operateur)+1=nbespace) and (length(operateur)+length(operande)=length(ch)));
end;



function evaluation(operande,operateur:string):real;

var
     resultat:real;
     operan:string;
     i,erreur,d:integer;


begin

     writeln;writeln;
     resultat:=0;
     delete(operande,1,1);
     operan:=copy(operande,1,pos(' ',operande)-1);
     delete(operande,1,pos(' ',operande));
     val(operan,d,erreur);
     resultat:=d;
     operan:='';

     for i:= length(operateur) downto 1 do
     begin
          repeat
                operan:=operan+operande[1];
                delete(operande,1,1);
          until ((operande[1]=' ') or (operande=''));
     val(operan,d,erreur);
     operan:='';

          case operateur[i] of
               '+':resultat:=resultat+d;
               '-':resultat:=resultat-d;
               '*':resultat:=resultat*d;
               '/':resultat:=resultat/d;
          end;

     end;

     evaluation:=resultat;
end;




var
     s,p1,p2:string;

begin
     lecture (s,p1,p2);
     writeln('le resultat de l''evaluation de l''exprission ',s,chr(13),'est', evaluation(p1,p2));
end.




شكرا اخي بارك الله فيك
لكنني لا اعرف كيف احول الحل من الباسكال الى c
مشكور على المحاولة









رد مع اقتباس
قديم 2012-12-30, 12:58   رقم المشاركة : 6
معلومات العضو
yalova
عضو مميّز
 
الصورة الرمزية yalova
 

 

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










افتراضي

السلام عليكم
الرجاء شرح مايلي :
le tri par comptage avec 3 tables
le tri par comptage avec 2 tables
أتمنى أن يكون الشرح بالتفصيل لأني لم أفهمهما بالاضافة الى الخوارزميات
وجزاكم الله كل خير









رد مع اقتباس
قديم 2012-12-30, 22:21   رقم المشاركة : 7
معلومات العضو
yalova
عضو مميّز
 
الصورة الرمزية yalova
 

 

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










افتراضي

أيــــــــــن الردوود
الرجاء الرد في أقرب وقت ممكن










رد مع اقتباس
قديم 2013-01-04, 02:26   رقم المشاركة : 8
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










B9

اقتباس:
المشاركة الأصلية كتبت بواسطة yalova مشاهدة المشاركة
أيــــــــــن الردوود
الرجاء الرد في أقرب وقت ممكن
Le tri par comptage

Principe
le tri par comptage consiste pour chaque élément du tableau à compter combien d'élément sont plus petit que lui, grâce à ce chiffre on connaît la position dans le tableau résultat.

exemple

Tableau1 à trier
كود:
|52|10| 1|25|62| 3| 8|55| 3|23|
On compte pour chaque élément les éléments qui lui sont inférieurs,

Après comptage, dans le tableau2, le nombre des éléments qui sont inférieurs à l’élément d’indice correspondante du tableau1 de départ



Tableau1 à trier (tableau dans l’algorithme)
كود:
|52|10|1|25|62|3|8|55|3|23|
Tableau2 (nb dans l’algorithme)
كود:
|7 |4 |0 |6 |9 |1 |3 |8 |1 |5 |
Resultat (res dans l’algorithme)
كود:
|1 |3 |3 |8 |10|23|25|52|55|62|
Algorithme

كود:
Pour i allant de 1 a (fin de tableau)
  Res(i) = 0
  Nb(i) = 0
  'calcule des compteurs
  Pour j allant de 1 a (fin de tableau)
    Si tableau(j) < tableau(i) alors
      Nb(i) = nb(i) + 1
    Fin de si
  Fin de pour
Fin de pour
Pour i allant de 1 a (fin de tableau)
  j = nb(i)
  Tant que res(j) <> 0 'cas des doubles
    j = j + 1
  Fin de tant que
  Res(j) = tableau(i)
Fin de pour









رد مع اقتباس
قديم 2013-01-08, 14:29   رقم المشاركة : 9
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة salemk مشاهدة المشاركة
Le tri par comptage

Principe
le tri par comptage consiste pour chaque élément du tableau à compter combien d'élément sont plus petit que lui, grâce à ce chiffre on connaît la position dans le tableau résultat.

exemple

Tableau1 à trier
كود:
|52|10| 1|25|62| 3| 8|55| 3|23|
On compte pour chaque élément les éléments qui lui sont inférieurs,

Après comptage, dans le tableau2, le nombre des éléments qui sont inférieurs à l’élément d’indice correspondante du tableau1 de départ



Tableau1 à trier (tableau dans l’algorithme)
كود:
|52|10|1|25|62|3|8|55|3|23|
Tableau2 (nb dans l’algorithme)
كود:
|7 |4 |0 |6 |9 |1 |3 |8 |1 |5 |
Resultat (res dans l’algorithme)
كود:
|1 |3 |3 |8 |10|23|25|52|55|62|
Algorithme

كود:
Pour i allant de 1 a (fin de tableau)
  Res(i) = 0
  Nb(i) = 0
  'calcule des compteurs
  Pour j allant de 1 a (fin de tableau)
    Si tableau(j) < tableau(i) alors
      Nb(i) = nb(i) + 1
    Fin de si
  Fin de pour
Fin de pour
Pour i allant de 1 a (fin de tableau)
  j = nb(i)
  Tant que res(j) <> 0 'cas des doubles
    j = j + 1
  Fin de tant que
  Res(j) = tableau(i)
Fin de pour
شكرا على الشرح
اسف لم ادرك المطلوب جيدا لاننا لم نتطرق لدرس
tri par comptage

وانما تطرقنا لدرس
tri par selection
لذلبك لم افهم المطلوب جيدا

ارجوا ان تستمر في مساعدة الطلبة لانني سوف اغيب بسبب الامتحانات









رد مع اقتباس
قديم 2013-01-15, 22:05   رقم المشاركة : 10
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة you92cef مشاهدة المشاركة
شكرا على الشرح
اسف لم ادرك المطلوب جيدا لاننا لم نتطرق لدرس
tri par comptage

وانما تطرقنا لدرس
tri par selection
لذلبك لم افهم المطلوب جيدا

ارجوا ان تستمر في مساعدة الطلبة لانني سوف اغيب بسبب الامتحانات

جزاك الله بفضله ورحمته وجعلها لك عنده ذخرا،
وربي يوفّقك ويجيبك في الصواب

لست دائم التواجد والانترنات ديما طايحة ولكن ساحاول قدر المستطاع









رد مع اقتباس
قديم 2012-12-31, 15:03   رقم المشاركة : 11
معلومات العضو
yalova
عضو مميّز
 
الصورة الرمزية yalova
 

 

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










افتراضي

*=== (( ما يلفظ من قول إلا لديه رقيب عتيد )) ===*










رد مع اقتباس
قديم 2012-12-31, 18:52   رقم المشاركة : 12
معلومات العضو
likanram
عضو جديد
 
إحصائية العضو










افتراضي

Exercice 1
Algorithmes
Soit à calculer l’expression suivante ou n,m et t sont des entier

t !*h (n,m) SI n>m
G=F(n,m,t) =
t!*h (m,n) SI m>=n

n,m et t sont des entiers ,et h(x,y) correspond le reste de la division de X par y en utilisant le logiciel visio 2010










رد مع اقتباس
قديم 2012-12-31, 19:10   رقم المشاركة : 13
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

Organisation d’un tableau (éléments triés)

Algorithme du tri simple (croissant)

Lexique
MaxTABL = constante

TABL (tab [1..MaxTABL] entier) {tableau d’entiers}
TAMPON (entier) {variable de stockage temporaire}
i,j (entier)

Début
TABL_ ç donnée
NBELEMENT ç donnée
Pour i de 1 à NBELEMENT-1 faire
Pour j de i+1 à NBELEMENT faire
Si TABL[i] > TABL[j]
alors TAMPON ç TABL[i]
TABL[i] ç TABL[j]
TABL[j] ç TAMPON
Fin Si
Fin pour j
Fin pour i
Fin

tri simple (croissant) de deux tableaux associés

Pour i de 1 à NBELEMENT-1 faire
Pour j de i+1 à NBELEMENT faire
Si TABL1[i] > TABL1[j]
alors TAMPON1 = TABL1[i]
TABL1[i] = TABL1[j]
TABL1[j] = TAMPON1


TAMPON2 = TABL2[i]
TABL2[i] = TABL2[j]
TABL2[j] = TAMPON2
Fin Si
Fin Pour j
Fin Pour i

On note que si l'on devait trier de nombreuses tables associées, il conviendrait d'utiliser une fonction d'inversion de deux éléments dans une table.

inversion d'une table

Pour i de 1 à division_entière(NBELEMENT,2) faire
TAMPON = TABL[i]
TABL[i] = TABL[NBELEMENT-i+1]
TABL[NBELEMENT-i+1] = TAMPON
Fin Pour i

Cet algorithme peut permettre de trier de façon décroissante un tableau au préalable trié de façon croissante (ou inversement) de façon beaucoup plus efficace que l'utilisation d'un nouveau tri. En effet les tris sont particulièrement consommateur en temps de traitement.










رد مع اقتباس
قديم 2012-12-31, 19:18   رقم المشاركة : 14
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

Tri Par Comptage
Algorithme Tri par comptage :
Cette méthode consiste a construire un vecteur , dans lequel on calcule la position que devrait avoir chaque élément pour que le vecteur soit trié:

هذا موقع فيه الكثير من الدروس الخاصة بالاعلام الاللي
*-* ارجوا من الارادة عدم حذف الموقع لانه ليس اشهاري وهعو موقع تعليمي*-*
https://www.ac-nancy-metz.fr/eco-gest...esentation.htm

للانتقال يكفي فقط تغير الارقام بعد
chap
في الرابط
https://www.ac-nancy-metz.fr/eco-gest...esentation.htm

توجد فيه حتى دروس السنة الثانية

الموقع فيه خاصية
suivant -precedent










رد مع اقتباس
قديم 2012-12-31, 20:38   رقم المشاركة : 15
معلومات العضو
هاجر1991
عضو مشارك
 
الصورة الرمزية هاجر1991
 

 

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










افتراضي

soit la suite u dèfinie par un =0 , u2=9 et la relation de rècurrence :
pout tout n et n entier un+2=6un+1- 9un
on pose pour tout n entier , sn la somme des n premier termes de la suite
1 : ecrire un programme en turbo-pascal qui demande la valeur de n puis qui calcule et affiche un
2 : complèter le programme prècèdent , pour qu'il calcule et affiche sn










رد مع اقتباس
إضافة رد

الكلمات الدلالية (Tags)
ملتقى, الالي, الاعلام, طلاب


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

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

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

الساعة الآن 11:36

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


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

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