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

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

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

آخر المواضيع

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

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 2012-11-03, 10:20   رقم المشاركة : 1
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










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

السلام عليكم

تم فتح هذه الصفحة لتبادل المعارف ومناقشة تمارين وحلولها

فكل من لديه تمرين صعب او يحتاج مساعدة نحن في الخدمة ان شاء الله

شكرا وارجوا التفاعل







 

رد مع اقتباس
مساحة إعلانية

قديم 2012-11-03, 11:08   رقم المشاركة : 2
معلومات العضو
binary girl
عضو نشيط
 
الصورة الرمزية binary girl
 

 

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










افتراضي

فكرة مليحة

ربي يوفقكم







رد مع اقتباس
قديم 2012-11-03, 11:55   رقم المشاركة : 3
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

نبدا على بركة الله مع تمرينين لم افهمها لاننا لم ندرس الكور او الطيدي بعد ورغم المحاولات فلا نتيجة تذكر 0_o

التمرين الاول
considerons trois suites de'entier naturels u,v,w tel que

u0=1
v0=2
w0=3
un+1=2un+3vn+wn

vn+1=un+vn+2wn

wn+1=un+4vn+wn

nous voudrions un program récursif qui demande une valeur de l'entier naturel n et affiche alors les valeur de un,vn,wn
essayer se le réécrir en mode itératif

المشاكل التي واجهتها
1-المتتاليات لا يتم حسابها بالشكل الصحيح بحيث مثلا
u2فيعوض فقط u1 ضرب 2 ويظهر النتيجة دون احتساب 3v2+w2

نفس الامر مع المتتاليات الاخرى

2- وجدت صعوبة في استدعاء دالة داخل داخل *-* استدعاء الدالة الخاصة بالمتتالية الثانية والثالثة في قلب الدالة 1 الخاصة بحساب المتتالية الاولى*-*

-------------------------
التمرين الثاني
nous souhaite retourne la somme des chiffres d'un nombre entier strictement positif
exemple
n=417 retourner 12=4+1+7

ecrir une fonction iterative
ecrire une fonction recursive

مع العلم
lenght retourne la longueur d'une chaine

copy retourne une parie bien précise d'une chaine de caractéres

ex
var texte:steing;i:integer;c:char;
';texte='123456789'
c:=texte[6]/////c=6
i:=length(texte); //// i:=9
copy(texte,3,5); ///// texte=34567
copy(texte,7,3); //// texte=789

المشاكل
copy

العمليات على les type

شكرا







رد مع اقتباس
قديم 2012-11-03, 19:31   رقم المشاركة : 4
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

التمرين الثاني

امكانية استعمال MOD et DIV

كود:
PROGRAM SOMME;
uses wincrt;
var n:integer;
function s(n:integer):integer;
begin
if n<10 then
 s:=n 
else 
s:=N MOD 10+s(n div 10);
end;
begin
repeat
readln(n);
until n>=0;
writeln(s(n));
end.
Une solution itérative

كود:
Programme somme ;
Uses wincrt ;
Var
N,s :integer ;
Begin
Readln(n) ;
Repeat 
S :=s+s mod 10 ;
N := n div 10 ;
Until n=0 ;
Writeln(s) ;
باستعمال chaine

كود:
Program somme ;
Uses wincrt ;
Var
N,s,i,d,e :integer ;
ch:string;
Begin
Readln(n) ;
str(n,ch);
for i:=1 to length(ch) do
begin
val(ch[i],d,e);
s:=s+d;
end;
writeln(s);
end.
Une solution récursive
كود:
Program somme ;
Uses wincrt ;
Var
N:integer ;
ch:string;
function som(s:string):integer;
var
   d,e:integer;
begin
if length(s)=1 then
begin
   val(s,d,e);
   som:=d;
end
   else
   begin
       val(s[1],d,e);
       som:=d+som(copy(s,2,length(s)-1));
   end;
end;


Begin
Readln(n) ;
str(n,ch);
writeln(som(ch));
end.






رد مع اقتباس
قديم 2012-11-03, 19:44   رقم المشاركة : 5
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

التمرين الاول

كود:
program suite;
uses wincrt;
var
n,i,u0,v0,w0,un,vn,wn:longint;
begin
u0:=1;
v0:=2;
w0:=3;
readln(n);

for i :=1 to n do
begin
un:=2*u0+3*v0+w0;
vn:=u0+v0+2*w0;
wn:=u0+4*v0+w0;
u0:=un;
v0:=vn;
w0:=wn;
end;
writeln('U(',n,')= ',u0);
writeln('V(',n,')= ',v0);
writeln('W(',n,')= ',w0);
end.
Les programmes de l’exercice1 et la solution précédant tournent bien.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Le programme qui suit est théorique car sous un éditeur Pascal lors de la déclaration des modules on s’assure de la visibilité des objets et de l’ordre des définitions qui doit être conformes aux appels des modules.
Dans U on appel V et W, pour calculer V on appel U et W et pour W on utilise U et V : c’est une récursivité croisée, l’éditeur Pascal ne permet pas une telle récursivité
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
كود:
program suite;
uses wincrt;

function u(n:longint):longint;
begin
if n=0 then
   u:=1
   else
       u:= 2*u(n-1)+3*v(n-1)+w(n-1);
end;

function v(n:longint):longint;
begin
if n=0 then
   v:=2
   else
       v:= u(n-1)+v(n-1)+2*w(n-1);
end;

function w(n:longint):longint;
begin
if n=0 then
   w:=3
   else
       w:= u(n-1)+4*v(n-1)+w(n-1);
end;

var
n: longint;

begin
readln(n);

writeln('U(',n,')= ',u(n));
writeln('V(',n,')= ',v(n));
writeln('W(',n,')= ',w(n));
end.






رد مع اقتباس
قديم 2012-11-03, 21:23   رقم المشاركة : 6
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

كود:
program sol;
uses wincrt;
var
d,i,z,j:integer;

t,f,n:string;
s:array[1..50]of string[1];
function rec(n:string):integer;
begin
d:=length(n);
for i:=1 to d do begin
t:=copy(n,1,1);
s[i]:=t;
n:=copy(n,2,d-i);
writeln('s[',i,']=',s[i]);
end;
end;
begin
readln(n);
rec(n);
end.
لقد حاولت جاهدا وهذا احسن ما قمت به بقي فقط جمع الاعداد لم اعرف كيف اجمعها بحيث اذا جمعت مثلا 8 و9 المفروض تكون النتيجة 17 الا انه يظهر النتيجة 98

لم افهم هذه النقطة جيدا






رد مع اقتباس
قديم 2012-11-03, 21:47   رقم المشاركة : 7
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

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

امكانية استعمال mod et div

كود:
program somme;
uses wincrt;
var n:integer;
function s(n:integer):integer;
begin
if n<10 then
 s:=n 
else 
s:=n mod 10+s(n div 10);
end;
begin
repeat
readln(n);
until n>=0;
writeln(s(n));
end.
une solution itérative

كود:
programme somme ;
uses wincrt ;
var
n,s :integer ;
begin
readln(n) ;
repeat 
s :=s+s mod 10 ;
n := n div 10 ;
until n=0 ;
writeln(s) ;
باستعمال chaine

كود:
program somme ;
uses wincrt ;
var
n,s,i,d,e :integer ;
ch:string;
begin
readln(n) ;
str(n,ch);
for i:=1 to length(ch) do
begin
val(ch[i],d,e);
s:=s+d;
end;
writeln(s);
end.
une solution récursive
كود:
program somme ;
uses wincrt ;
var
n:integer ;
ch:string;
function som(s:string):integer;
var
   d,e:integer;
begin
if length(s)=1 then
begin
   val(s,d,e);
   som:=d;
end
   else
   begin
       val(s[1],d,e);
       som:=d+som(copy(s,2,length(s)-1));
   end;
end;


begin
readln(n) ;
str(n,ch);
writeln(som(ch));
end.
البرنامج خاطئ اخي للاسف
مثلا لو ادخلت مثلا 987654321
ففي 3 برامج سوف يظهر النتيجة 17 والتي هي مجموع 9+8 ولم يقم بباقي المجموع

الا انك ساعدتني في التفكير في عبارة المجموع

وبرنامج اخر يظهر النتيجة 0






رد مع اقتباس
قديم 2012-11-03, 21:49   رقم المشاركة : 8
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

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

كود:
program suite;
uses wincrt;
var
n,i,u0,v0,w0,un,vn,wn:longint;
begin
u0:=1;
v0:=2;
w0:=3;
readln(n);

for i :=1 to n do
begin
un:=2*u0+3*v0+w0;
vn:=u0+v0+2*w0;
wn:=u0+4*v0+w0;
u0:=un;
v0:=vn;
w0:=wn;
end;
writeln('U(',n,')= ',u0);
writeln('V(',n,')= ',v0);
writeln('W(',n,')= ',w0);
end.
Les programmes de l’exercice1 et la solution précédant tournent bien.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Le programme qui suit est théorique car sous un éditeur Pascal lors de la déclaration des modules on s’assure de la visibilité des objets et de l’ordre des définitions qui doit être conformes aux appels des modules.
Dans U on appel V et W, pour calculer V on appel U et W et pour W on utilise U et V : c’est une récursivité croisée, l’éditeur Pascal ne permet pas une telle récursivité
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
كود:
program suite;
uses wincrt;

function u(n:longint):longint;
begin
if n=0 then
   u:=1
   else
       u:= 2*u(n-1)+3*v(n-1)+w(n-1);
end;

function v(n:longint):longint;
begin
if n=0 then
   v:=2
   else
       v:= u(n-1)+v(n-1)+2*w(n-1);
end;

function w(n:longint):longint;
begin
if n=0 then
   w:=3
   else
       w:= u(n-1)+4*v(n-1)+w(n-1);
end;

var
n: longint;

begin
readln(n);

writeln('U(',n,')= ',u(n));
writeln('V(',n,')= ',v(n));
writeln('W(',n,')= ',w(n));
end.
الحل الاول يشتغل جيدا

الحل الثاني هناك خطا *-* باللون الاحمر

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

عموما سوف احتفظ بالحل عندي وسوف احالو القيام بحل بالطريقة الثانية اعتمادا على الطريقة الاولى






رد مع اقتباس
قديم 2012-11-03, 21:55   رقم المشاركة : 9
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

شكرا للجميع







رد مع اقتباس
قديم 2012-11-04, 00:01   رقم المشاركة : 10
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة you92cef مشاهدة المشاركة
البرنامج خاطئ اخي للاسف
مثلا لو ادخلت مثلا 987654321
ففي 3 برامج سوف يظهر النتيجة 17 والتي هي مجموع 9+8 ولم يقم بباقي المجموع

الا انك ساعدتني في التفكير في عبارة المجموع

وبرنامج اخر يظهر النتيجة 0
أخي لا تنسى انك تستعمل البسكال
Attention frère, Le type de donné utilisé pour la variable N est entier (integer), par définition un entier sous Pascal ne doit pas dépasser 2^15 = 32768
في البرمجة وتتطوير المواقع لا يوجد خاطئ وصحيح بل يوجد وافق المطلوب أو يتطلب التحسين






رد مع اقتباس
قديم 2012-11-07, 17:51   رقم المشاركة : 11
معلومات العضو
pro constantino
عضو مشارك
 
الصورة الرمزية pro constantino
 

 

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










افتراضي

J'ai 3 Exo d Algorithme !

1/ Trier dans un ordre croissant (décroissant) X,Y,Z TROIS VARIABLES CONTENANT DES VALEURS R2ELLES

2/ Résoudre une équation du second degré (avec tout les cas possibles réels et complexes)

3/Compter le nombre d'occurrence des valeurs nulles , positives et négative dans une suite de N (eg N=100) nombres entiers lus un par un


et merciii







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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة salemk مشاهدة المشاركة
أخي لا تنسى انك تستعمل البسكال
Attention frère, Le type de donné utilisé pour la variable N est entier (integer), par définition un entier sous Pascal ne doit pas dépasser 2^15 = 32768
في البرمجة وتتطوير المواقع لا يوجد خاطئ وصحيح بل يوجد وافق المطلوب أو يتطلب التحسين

شكرا اخي لمك انتبه جيدا كيف عرفت نوع n

ولكن البرنامج والاستاذ طلب ان ندخل n على اساس string

شكرا لك






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










افتراضي

التمرين الاول
dans un ordre croisant

كود:
program ex05;
uses wincrt;
var a,b,c,grand,moyen,petit:integer;
begin
readln(a,b,c);
if a>b then if b>c then begin
                        grand:=a;
                        moyen:=b;
                        petit:=c;
                        end
            else if a>c then begin
                             grand:=a;
                             moyen:=c;
                             petit:=b;
                             end
                  else begin
                       grand:=c;
                       moyen:=a;
                       petit:=b;
                       end
else if a>c then begin grand:=b;
                 moyen:=a;
                 petit:=c;
                 end
     else if b>c then begin grand:=c;
                      moyen:=c;
                      petit:=a;
                      end
          else begin grand:=c;
               moyen:=b;
               petit:=a;
               end;

writeln('grand:',grand);
writeln('moyen:',moyen);
writeln('petit:',petit);
end.
عدل في التعليقات فقط

للحصول على البرنامج الثاني عدل في تريتب التعليقات فقط






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










افتراضي

البرنامج الثاني

كود:
program ex07;
uses wincrt;
var a,b,c,x,x1,x2,delta:real;
begin
writeln('S.V.P entrez les valeur de a,b,c');
readln(a,b,c);
if a=0 then if b=0 then if c=0 then writeln('L''ensemble des solution est R')

                        else writeln('Pas de solution ,impossible')
            else writeln('La solution est:',-c/b:3)
else begin
delta:=sqr(b)-4*a*c;
if delta<0 then writeln('Pas de solution dans R')
else if delta=0 then writeln('Solution double',-b/(2*a):3)
     else begin 
         x1:=(-b-sqrt(delta))/(2*a);
         x2:=(-b+sqrt(delta))/(2*a);
         writeln('Les deux solution distinctes sont x1:',x1:3,'  x2:',x2:3);

 end;
 end;
 end.






رد مع اقتباس
قديم 2012-11-08, 18:16   رقم المشاركة : 15
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

البرنامج الثاني

كود:
program ex07;
uses wincrt;
var a,b,c,x,x1,x2,delta:real;
begin
writeln('S.V.P entrez les valeur de a,b,c');
readln(a,b,c);
if a=0 then if b=0 then if c=0 then writeln('L''ensemble des solution est R')

                        else writeln('Pas de solution ,impossible')
            else writeln('La solution est:',-c/b:3)
else begin
delta:=sqr(b)-4*a*c;
if delta<0 then writeln('Pas de solution dans R')
else if delta=0 then writeln('Solution double',-b/(2*a):3)
     else begin 
         x1:=(-b-sqrt(delta))/(2*a);
         x2:=(-b+sqrt(delta))/(2*a);
         writeln('Les deux solution distinctes sont x1:',x1:3,'  x2:',x2:3);

 end;
 end;
 end.
البرنامج الثالث سهل
تستعمل while
مع if وعداد

الامر لا يحتاج الى تفكير كبير
حاول تحله بنفسك واذا لم تعرف نحن هنا نساعدك ان شاء الله






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

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

أدوات الموضوع
انواع عرض الموضوع

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

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

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

الساعة الآن 21:22

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


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

Powered by vBulletin .Copyright © 2018 vBulletin Solutions, Inc