مشاهدة النسخة كاملة : موضوع مميز ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal
you92cef
2012-11-03, 10:20
السلام عليكم
تم فتح هذه الصفحة لتبادل المعارف ومناقشة تمارين وحلولها
فكل من لديه تمرين صعب او يحتاج مساعدة نحن في الخدمة ان شاء الله
شكرا وارجوا التفاعل
binary girl
2012-11-03, 11:08
فكرة مليحة
ربي يوفقكم
you92cef
2012-11-03, 11:55
نبدا على بركة الله مع تمرينين لم افهمها لاننا لم ندرس الكور او الطيدي بعد ورغم المحاولات فلا نتيجة تذكر 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
شكرا
التمرين الثاني
امكانية استعمال 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.
التمرين الاول
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.
you92cef
2012-11-03, 21:23
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:confused:
لم افهم هذه النقطة جيدا
you92cef
2012-11-03, 21:47
التمرين الثاني
امكانية استعمال 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
you92cef
2012-11-03, 21:49
التمرين الاول
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.
الحل الاول يشتغل جيدا
الحل الثاني هناك خطا *-* باللون الاحمر
وهذا ما اشرت اليه سابقا بحيث انني اجد صعوبة في استدعاء دالة داخل دالة رغم ان الاستاذ قال انه يمكنك استدعاء دالة في اي مكان تريد :confused:
عموما سوف احتفظ بالحل عندي وسوف احالو القيام بحل بالطريقة الثانية اعتمادا على الطريقة الاولى :D
you92cef
2012-11-03, 21:55
شكرا للجميع
البرنامج خاطئ اخي للاسف
مثلا لو ادخلت مثلا 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
في البرمجة وتتطوير المواقع لا يوجد خاطئ وصحيح بل يوجد وافق المطلوب أو يتطلب التحسين
pro constantino
2012-11-07, 17:51
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 :)
you92cef
2012-11-08, 18:04
أخي لا تنسى انك تستعمل البسكال
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
شكرا لك
you92cef
2012-11-08, 18:12
التمرين الاول
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.
عدل في التعليقات فقط
للحصول على البرنامج الثاني عدل في تريتب التعليقات فقط
you92cef
2012-11-08, 18:13
البرنامج الثاني
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.
you92cef
2012-11-08, 18:16
البرنامج الثاني
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 وعداد
الامر لا يحتاج الى تفكير كبير
حاول تحله بنفسك واذا لم تعرف نحن هنا نساعدك ان شاء الله
you92cef
2012-11-08, 18:18
التمرين الثالث ليس مكتوب بشكل مفهوم
حاول تكتبه من جديد سواء بالفرنسية او العربية
شكرا
شكرا اخي لمك انتبه جيدا كيف عرفت نوع n
ولكن البرنامج والاستاذ طلب ان ندخل n على اساس string
شكرا لك
Une solution récursive utilisant une chaîne formée seulement par des chiffres
Program somme ;
Uses wincrt ;
Var
N: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;
function verif(s:string):boolean;
begin
if length(s)= 0 then
verif:= true
else
begin
if not(s[1] in ['0'..'9']) then
verif := false;
verif:=verif(copy(s,2,length(s)-1));
end;
end;
Begin
repeat
Readln(N) ;
Until verif(N);
writeln(som(N));
end.
الاستاذ طلب ان ندخل n على اساس string
Une itérative
Program somme ;
Uses wincrt ;
Var
N:string;
function som(s:string):integer;
var
r,i,d,e:integer;
begin
r:=0;
for i :=1 to length(s) do
begin
val(s[i],d,e);
r:=r+d;
end;
som:=r;
end;
function verif(s:string):boolean;
var
i:integer;
begin
i:=1;
while s[i] in ['0'..'9'] do
begin
i:=i+1;
end;
verif:=i>length(s);
end;
Begin
repeat
Readln(N) ;
Until verif(N);
writeln(som(N));
end.
marwa.dz
2012-11-11, 20:30
ecrire un algorithme permettant de faire la difference entre deux horaires saisis en heure, minutes, secondes.
AKKAINMOH
2012-11-12, 17:31
النجدة ياإخوان في algotithme
lire une chaine de caractéres et l'affiche avec sa longueur
lire un caractére et affiche son successeur
ecrire un algorithme permettant de faire la difference entre deux horaires saisis en heure, minutes, secondes.
On suppose que heure2 (h2 :m2 :s2) est supérieur à heure1 (h1 :m1 :s1)
On suppose que les deux dates sont valides
Actions à faire
0) Lire les paramètres de chaque heure
1) Convertir chaque heure en seconde (rs1 et rs2)
2) Faire la différence D des deux résultats de conversion
3) Transforme D en heure (h), minute (m) et seconde (s)
Soit la séquence d’algorithme suivante
Lire (h1, m1, s1)
Lire (h2, m2, s2)
Rs1<-- h1*3600+ m1*60 +s1
Rs2 <-- h2*3600 +m2*60+s2
D <-- rs2-rs1
H <-- D div 3600
M <-- (D-H) div 60
S <-- (D mod 3600) mod 60
Ecrire (H, M, S)
الشكر أو النقد لن يكلّف كثيرا:19:
النجدة ياإخوان في algotithme
lire une chaine de caractéres et l'affiche avec sa longueur
lire un caractére et affiche son successeur
On utilise les fonctions prédéfinis longueur et successeur
Soit la séquence d’algorithme qui suit
Lire (ch)
Ecrire (ch, longeur(ch))
Lire(c)
Ecrire (succ(c))
En pascal
Read(ch);
Write(ch, length(ch));
Read(c);
Write(succ(c));
الشكر أو النقد لن يكلّف كثيرا:19:
يرجى المساعدة هنا
http://im28.gulfup.com/WYok1.png
يرجى المساعدة هنا
http://im28.gulfup.com/wyok1.png
بالنسبة للتمرين الاول عدّل هذا الحل للحصول على القيمة الاكبر فقط دون الاهتمام بالقيمة الصغرى مالوسطى
التمرين الاول
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.
عدل في التعليقات فقط
للحصول على البرنامج الثاني عدل في تريتب التعليقات فقط
الشكر أو النقد لن يكلّف كثيرا :19:
يرجى المساعدة هنا
http://im28.gulfup.com/WYok1.png
Program ex2 ;
Uses wincrt ;
Var
i ,n : integer ;
h :real ;
Begin
Repeat
Readln(n) ;
Until n >=0 ;
h :=0 ;
For i := 1 to n do
h :=h + 1/i ;
Writeln(h :12 :6) ;
End.
الشكر أو النقد لن يكلّف كثيرا :19:
you92cef
2012-11-15, 11:31
une solution récursive utilisant une chaîne formée seulement par des chiffres
program somme ;
uses wincrt ;
var
n: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;
function verif(s:string):boolean;
begin
if length(s)= 0 then
verif:= true
else
begin
if not(s[1] in ['0'..'9']) then
verif := false;
verif:=verif(copy(s,2,length(s)-1));
end;
end;
begin
repeat
readln(n) ;
until verif(n);
writeln(som(n));
end.
شكرا لك اخي البرنامج شغال ساحاول فهمه ان شاء الله
ممكن سؤال في اي سنة تدرس ؟
j'ai 2 exercices PASCAL
écrire un programme qui convertit un nombre de seconde donné en son équivalent en heures, minutes et secondes
écrire un programme permettant d'échanger les valeurs de deux entiers A et B en utilisent uniquement les deux variables A et B
مساعدة عاجلة من فضلكم
ECRIRE UN ALGORITHME PERMETTANT DE RéSOUDRE UNE éQUATION DU SECOND DEGRé DE LA FORME AX°2+BX+C=0.(considérer le cas oU a=b=c=0
ملاحظة: c'est en pascal
you92cef
2012-11-15, 20:48
j'ai 2 exercices PASCAL
écrire un programme qui convertit un nombre de seconde donné en son équivalent en heures, minutes et secondes
écrire un programme permettant d'échanger les valeurs de deux entiers A et B en utilisent uniquement les deux variables A et B
بخصوص التمرين الاول
يجب تحديد ان تدخل عدد الثواني مثلا
تستخدم 2 مرات la boucle while
lمثلا تدخل 521462 ثانية
تقوم بتقسيم العدد على 3600*-* وتقوم بعمل عداد هذا العداد سيكون عدد الساعات*-*
البوكل الثاني يعمل في حالة كان الباقي اقل من 3600 فتقسمه على 60 لتحديد الدقائق
الباقي سوف يكون اقل من 60 وهو عدد الثواني
في الاخير تظهر العدادان +الباقي
التمرين الثاني
نقوم بهذه اللوغارتيم
x:=x+y
y:=x-y
x:=x-y
نجرب مثلا ب
x=5
y:=10
x:=x+y=15
y:=x-y=15-10=05
x:=x-y=15-05=10
y:=5
x:=10
you92cef
2012-11-15, 20:56
مساعدة عاجلة من فضلكم
ECRIRE UN ALGORITHME PERMETTANT DE RéSOUDRE UNE éQUATION DU SECOND DEGRé DE LA FORME AX°2+BX+C=0.(considérer le cas oU a=b=c=0
ملاحظة: c'est en pascal
التمرين موجود في الردود السابقة فقط هو بالباسكال وليس الغوريتم عوضي الكلمات الانجليزية بالفرنسية
else---sinon
if---si
end;---finsi
readln ou read---lire
writeln ou write---- ecrire
program----algorithe
شكرا لك اخي البرنامج شغال ساحاول فهمه ان شاء الله
ممكن سؤال في اي سنة تدرس ؟
ولك جزيل الشكر،
، انا من تونس من ولاية القصرين ونحب تبسة برشا
في ما يخص الحلول المقترحة، أكون سعيدا جدا لمناقشتها :d
بارك الله فيك اخي على المساعدة
ممكن طلب:اريد برنامج باسكال لو تفضلت.
ملاحظة:انا صبي لست بنتا iهههههههه
Soit la séquence d’algorithme suivante
Lire ( D)
H <-- D div 3600
M <-- (D mod 3600) div 60
S <-- (D mod 3600) mod 60
Ecrire (H, M, S)
j'ai 2 exercices PASCAL
écrire un programme qui convertit un nombre de seconde donné en son équivalent en heures, minutes et secondes
تقبل مروري أخي you92cef فالموضوع موضوعك
الشكر أو النقد لن يكلّف كثيرا:19:
you92cef
2012-11-16, 09:52
ولك جزيل الشكر،
أدرس في السنة النهائية من التعليم الثانوي (باك) شعبة علوم اعلامية (sciences de l'informatique)، انا من تونس من ولاية القصرين ونحب تبسة برشا، الباسكال نعاوده 3 اعوام
في ما يخص الحلول المقترحة، أكون سعيدا جدا لمناقشتها :D
مشكور اخي للاسف نحن ليس لدينا شعبة الاعلام الالي هنا
بل توجد فقط في الجامعة
شكرا جزيلا لك واذا لديك دروس حول algorithme
ارجوا ان تزودني بها واطلع على برنامجكم الدراسي الخاص بمادة الاعلام الالي
you92cef
2012-11-16, 10:17
بارك الله فيك اخي على المساعدة
ممكن طلب:اريد برنامج باسكال لو تفضلت.
ملاحظة:انا صبي لست بنتا iهههههههه
عفوا اخي لم انتبه جيد ا
جرب هذا الموقع
يمنع الاشهار لموقع آخر
ستجد فيه رابط مباشر لتحميل تربو باسكال
عفوا اخي لم انتبه جيد ا
جرب هذا الموقع
.......................................
ستجد فيه رابط مباشر لتحميل تربو باسكال
شكرا اخي
قمت بتنصيب برنامج bloodshed dev-pascal لكني اريد ازالته
ولكنه لا يظهر في AJOUTER OU SUPPRIMER DES PROGRAMMES
lممكن مساعدة
سمحلي خويا والله غير سمطت عليك....جمعة مباركة
you92cef
2012-11-16, 12:14
شكرا اخي
قمت بتنصيب برنامج bloodshed dev-pascal لكني اريد ازالته
ولكنه لا يظهر في ajouter ou supprimer des programmes
lممكن مساعدة
سمحلي خويا والله غير سمطت عليك....جمعة مباركة
نعم هو لا يظهر على اساس انه برنامج مثبت ولكن لحدفه احذف كل ملف باسكال بكل محتوياته
شكرا لك وجمعة مباركة ان شاء الله
مشكور اخي للاسف نحن ليس لدينا شعبة الاعلام الالي هنا
بل توجد فقط في الجامعة
شكرا جزيلا لك واذا لديك دروس حول algorithme
ارجوا ان تزودني بها واطلع على برنامجكم الدراسي الخاص بمادة الاعلام الالي
ان شاء الله تكون شفت الروابط
you92cef
2012-11-16, 17:42
[QUOTE=salemk;12183097]ان شاء الله تكون شفت الروابط[/QUOTE
نعم انا اطلعت على الروابط وهي خاصة بالسنة اولى ولكن انا اريد دروس للسنة الثانية تخصص اعلام الي
شكرا لك
marwa.dz
2012-11-17, 08:48
Ecrire un algorithme saisissant un temps en secondes que l’on transcrira en jours,
heures minutes, secondes.
En se basant sur l'exercice precedent, ecrire un algorithme permettant de faire la-
defférence entre deux horaires saisis en heure munites suconses
بخصوص التمرين الاول
يجب تحديد ان تدخل عدد الثواني مثلا
تستخدم 2 مرات la boucle while
lمثلا تدخل 521462 ثانية
تقوم بتقسيم العدد على 3600*-* وتقوم بعمل عداد هذا العداد سيكون عدد الساعات*-*
البوكل الثاني يعمل في حالة كان الباقي اقل من 3600 فتقسمه على 60 لتحديد الدقائق
الباقي سوف يكون اقل من 60 وهو عدد الثواني
في الاخير تظهر العدادان +الباقي
التمرين الثاني
نقوم بهذه اللوغارتيم
x:=x+y
y:=x-y
x:=x-y
نجرب مثلا ب
x=5
y:=10
x:=x+y=15
y:=x-y=15-10=05
x:=x-y=15-05=10
y:=5
x:=10
مشكور أخي كثيرا بارك الله فيك وجعلها في ميزان حسناتك
you92cef
2012-11-17, 12:08
ecrire un algorithme saisissant un temps en secondes que l’on transcrira en jours,
heures minutes, secondes.
en se basant sur l'exercice precedent, ecrire un algorithme permettant de faire la-
defférence entre deux horaires saisis en heure munites suconses
algo temps;
var :n,j,jj,h,hh,m,mm:integer;
deput
ecrire ( entre le nombre de seconde);
lire(n);
si n<0 alors ecrire (entrer un autre nombre possitif) sinon
deput
{pour avoir le nombre de jour}j:= n div 86400;
jj:= n mod 86400
h:= jj div 3600
hh:= jj mod 3600
m:= hh div 60
mm:=m mod 60finsi
ecrire (j,h,m,mm);
fin.
you92cef
2012-11-17, 12:42
algo 2
le principe est d'entrer de nobre (2n,n1 est n2)
1)on ecrire le n1 sous la forme precedent (j1,h1,m1,mm
meme coose avec le n2
on fait la difference entre
j1 et j2
h1 et h2
m1 et m2
mm1 et mm2
est on affiche les resultat
remargue
j pour les jours
h pour le heures
m pour les minute
mm pour les seconde
div indique la division eucleidienne
mod indique le resye de la division eucleidiene
example
13
div
5
:=
2
------
13
mod
5
:=
3
you92cef
2012-11-17, 12:47
ارجوا زيادة التفاعل
+
تحديد المستوى هل هو اول او ثاني حتى يتم الاجابة بحسب الرصيد لكل واحد
شكرا للجميع
you92cef
2012-11-17, 12:49
exo pour les 2 eme anneé info
ecrire un programe recursive qui fait la somme de n element entre d'un tableu
puis affiche le resultat
marwa.dz
2012-11-17, 13:33
بارك الله فيك اخي على الشرح المستوى هو السنة الاولى
فقط لم افهم mm ،hh
انا فهمت اني احول وقت ما موجود بالثانية s اللى اليوم والساعة و الدقيقة والثانية
والسؤال الثاني احسب الفرق بين وقتين
ممكن تضعه لي في البسكال شكرا
you92cef
2012-11-17, 17:23
بارك الله فيك اخي على الشرح المستوى هو السنة الاولى
فقط لم افهم mm ،hh
انا فهمت اني احول وقت ما موجود بالثانية s اللى اليوم والساعة و الدقيقة والثانية
والسؤال الثاني احسب الفرق بين وقتين
ممكن تضعه لي في البسكال شكرا
hh هو الباقي فقط يحرف variable
نفس اشيء بالنسبة لmm
مثلا
اليوم فيه 86400 ثانية
مثلا اذا كان لدينا 96400 ثانية
فان 96400 فيها يوم و10000 ثانية
10000 ثانية اعطيناها رمز hh
الان علينا ان نعرف 10000 ثانية كم فيها من ساعة
والباقي نرمز له ب mm
;وهكذا
-------------
بخصوص برمجته بالباسكال للاسف الامر صعب بنوعا ما نظرا لادخال ارقام كبيرة وللقيام بعمليات على الاعداد الطبيعية الكبيرة نحتاج الى حواسيب كبيرة
lمثلا اذا عرفنا les variable على اساس integer فان المجال يكون صغير جدا وبالتالي تنتج بعض المشاكل
لذلك من الصعب ان نبرمجه بالباسكال نظرا لمشاكل les type des variable
بخصوص البرنامج الثاني نقوم بالالوغوريتم الاول فقط يكون لدينا n1et n2
سنحاول كتابته على اساس الغوريتم
you92cef
2012-11-17, 18:19
البرنامج الاول
ملاحظة يجب احترام مجال integer *-*الاعداد التي تتكون من 4 ارقام يحولها بشكل صحيح الاعداد التي تتكون من 5 ارقام ا اكثر فيها بعض المشاكل الناتجة عن type integer
program temps;
uses wincrt;
var n,j,r,h,m,s:integer;
begin
writeln('S.V.P entrer n');
readln(n);
j:=n div 86400;
r:=n mod 86400;
h:=r div 3600;
r:=r mod 3600;
m:= r div 60;
s:= r mod 60;
writeln(n,'=',j,':',h,':',m,':',s);
end.
البرنامج الثاني
program temps;
uses wincrt;
var n1,n2,n3,j1,j2,j3,r1,r2,r3,r4,r5,r6,h1,h2,h3,m1,m2 ,m3,s1,s2,s3:integer;
begin
writeln('S.V.P entrer n1,n2');
readln(n1,n2);
j1:=n1 div 86400;
r1:=n1 mod 86400;
h1:=r1 div 3600;
r2:=r1 mod 3600;
m1:= r2 div 60;
s1:= r2 mod 60;
j2:= n2 div 86400;
r3:= n2 mod 86400;
h2:=r3 div 3600;
r4:= r3 mod 3600;
m2:= r4 div 60;
s2:=r4 mod 60;
n3:=n1-n2;
j3:=n3 div 86400;
r5:=n3 mod 86400;
h3:=r5 div 3600;
r6:=r5 mod 3600;
m3:= r6 div 60;
s3:= r6 mod 60;
writeln(n1,'=',j1,':',h1,':',m1,':',s1);
writeln(n2,'=',j2,':',h2,':',m2,':',s2);
writeln('la difference est:',j3,':',h3,':',m3,':',s3);
end.
lملاحظة هامة البرنامجين ليسا شغالين بنسبة 100/100 ويجب اضافة بعض الشروط كان يكون العدد الذي تدخله موجبا وان يكونn1 من n2
حاول(ي) اضافة هذه الشروط
+احترام مجال integer
يمكن القيام بالبرنامجين بطرق مختلفة
marwa.dz
2012-11-17, 19:34
اخي هل يمكن وضع j3, h3, m3 بالقيمة المطلقة (abs j3, abs h3, abs m3)?
وشكرا لك على الشرح المفصل
البرنامج الاول
ملاحظة يجب احترام مجال integer *-*الاعداد التي تتكون من 4 ارقام يحولها بشكل صحيح الاعداد التي تتكون من 5 ارقام ا اكثر فيها بعض المشاكل الناتجة عن type integer
تعقيبا على ما سلف
Turbo Pascal fournit cinq sous types Entier. Chacun d'eux concerne
un sous-ensemble particulier des nombres
entiers:
Type Domaine Format
-----------|--------------------------------|------------------------
| |
Shortint | -128..127 | 8 bits signés
Integer | -32768..32767 | 16 bits signés
Longint | -2147483648..2147483647 | 32 bits signés
Byte | 0..255 | 8 bits non signés
Word | 0..65535 | 16 bits non signés
السلام عليكم
http://im16.gulfup.com/fdHc1.png
AKKAINMOH
2012-11-17, 20:59
on utilise les fonctions prédéfinis longueur et successeur
soit la séquence d’algorithme qui suit
lire (ch)
ecrire (ch, longeur(ch))
lire(c)
ecrire (succ(c))
en pascal
read(ch);
write(ch, length(ch));
read(c);
write(succ(c));
الشكر أو النقد لن يكلّف كثيرا:19:
مشكور أخي كثيرا بارك الله فيك وجعلها في ميزان حسناتك
لاكن ممكن توضخ أكثر
exo pour les 2 eme anneé info
ecrire un programe recursive qui fait la somme de n element entre d'un tableu
puis affiche le resultat
program expo;
uses wincrt;
type
tab = array[1..20] of integer; { disant que le programme accepte 20 entier au max}
{
Pour faire la somme des cases d'un tableau de n éléments :
Pour la case n°1 c'est le cumul de la case n°1 et des case qui précédent (dans ce cas on à pas des cases)
plus la somme des cases qui restent
Pour la case n°2 c'est le cumul de la case n°2 et des cases précédant plus la somme des cases qui restent
Pour la case n°3 c'est le cumul de la case n°3 et des cases précédant plus la somme des cases qui restent
Et ainsi de suite...
On s'arrête lorsque la case traité est celle la dernière
(la variable i désigne la case traité, la variable n désigne le nombre total des cases)
}
function somme (t:tab;i,n:integer):integer;
begin
if i<=n then
somme:=t[i] + somme (t,i+1,n)
else
somme:=0;
end;
{On ne parle d'un tableau que lorsque on 'à plus que un élément (2 ou plus)}
procedure saisir(var n:integer);
begin
readln(n);
if ((n > 20) or (n < 2)) then
saisir(n);
end;
{Pour remplir un tableau on doit saisir une valeur dans la case traitée puis
on remplit le reste du tableau (Presque même principe que la fonction somme)}
procedure remplir(var t : tab ;i,n : integer);
begin
if i <= n then
begin
readln(t[i]);
remplir(t,i+1,n);
end;
end;
{Variables globaux}
var
n :integer;
t:tab;
{Corps du programme principal}
begin
saisir(n);
remplir(t,1,n);
writeln(somme(t,1,n));
end.
مشكور أخي كثيرا بارك الله فيك وجعلها في ميزان حسناتك
لاكن ممكن توضخ أكثر
Read (x1,x2,x3…,xn) ;
Utiliser pour saisir des valeurs depuis le clavier vers des zones de la mémoire centrale, la première valeur saisie sera enregistrée dans la zone de la mémoire identifiée par le nom x1, la deuxième dans la zone identifiée par x2 … et ainsi de suite
Write (x1,x2,’A’,3…) ;
Permet d’afficher le contenu d’une variable, une valeur ou les deux à la fois sur l’écran. x1 et x2 deux variables dont le contenu sera affiché, ‘A’ et 3 se sont des valeurs à afficher.
length(ch) ;
Permet de renvoyer le nombre des caractères alphanumériques qui forment la chaîne de caractères ch
succ(c) ;
pour renvoyer le successeur d’un caractères alphanumériques, par exemple succ(‘B’) donne ‘A’, succ(‘e’) donne ‘f’
السلام عليكم
http://im16.gulfup.com/fdHc1.png
Selon Euclide
PGCD (a,b) = PGCD(a,b-a) si b>a
PGCD (a,b) = PGCD (a-b,b) si a>b
PGCD (a,b) = a (ou b) si a=b
program pgcd;
uses wincrt;
var
a,b:integer;
begin
repeat
readln(a);
until a>=0;
repeat
readln(b);
until b>=0;
while a<>b do
begin
if a>b then
a:=a-b
else if a<b then
b:=b-a;
end;
writeln(a);
end.
السلام عليكم
http://im16.gulfup.com/fdHc1.png
program premier;
uses wincrt;
var
i,d:integer;
begin
for i:=2 to 100 do
begin
d:=2;
while ((i mod d <>0) and (d <= i div 2)) do
begin
d:=d+1;
end;
if d> i div 2 then
writeln(i);
end;
end.
AKKAINMOH
2012-11-22, 00:06
merci pour tout salemk
AKKAINMOH
2012-11-22, 00:07
السلآم عليكم ورحمة الله وبركآتهُ ..
كيف نحدد عدد الأرقام بعد الفاصلة في pascal
you92cef
2012-11-22, 15:16
اخي هل يمكن وضع j3, h3, m3 بالقيمة المطلقة (abs j3, abs h3, abs m3)?
وشكرا لك على الشرح المفصل
بحسب التمرين
يعني اما نقوم بعمل القيمة المطلقة او نعمل permutetion
بحيث اذا كان الزمن 1 اصغر من الزمن 2
يصبح الزمن 2 هو الزمن الاول والزمن الاول هو الثاني
بحسب التمرين وبحسب الطلب ولكن في مثل هذه التمارين من الاحسن ان نقارن بين الزمن الاول والزمن الثاني اذا كان الزمن الثاني اكبر من الاول نخرج من البرنامج مباشرة
you92cef
2012-11-22, 15:20
program expo;
uses wincrt;
type
tab = array[1..20] of integer; { disant que le programme accepte 20 entier au max}
{
pour faire la somme des cases d'un tableau de n éléments :
Pour la case n°1 c'est le cumul de la case n°1 et des case qui précédent (dans ce cas on à pas des cases)
plus la somme des cases qui restent
pour la case n°2 c'est le cumul de la case n°2 et des cases précédant plus la somme des cases qui restent
pour la case n°3 c'est le cumul de la case n°3 et des cases précédant plus la somme des cases qui restent
et ainsi de suite...
On s'arrête lorsque la case traité est celle la dernière
(la variable i désigne la case traité, la variable n désigne le nombre total des cases)
}
function somme (t:tab;i,n:integer):integer;
begin
if i<=n then
somme:=t[i] + somme (t,i+1,n)
else
somme:=0;
end;
{on ne parle d'un tableau que lorsque on 'à plus que un élément (2 ou plus)}
procedure saisir(var n:integer);
begin
readln(n);
if ((n > 20) or (n < 2)) then
saisir(n);
end;
{pour remplir un tableau on doit saisir une valeur dans la case traitée puis
on remplit le reste du tableau (presque même principe que la fonction somme)}
procedure remplir(var t : Tab ;i,n : Integer);
begin
if i <= n then
begin
readln(t[i]);
remplir(t,i+1,n);
end;
end;
{variables globaux}
var
n :integer;
t:tab;
{corps du programme principal}
begin
saisir(n);
remplir(t,1,n);
writeln(somme(t,1,n));
end.
شكرا على البرنامج تم حله في حصة الاعمال التطبيقية
في انتظار وضع تمارين جديدة اكثر صعوبة
شكرا لك
you92cef
2012-11-22, 15:21
مشكور أخي كثيرا بارك الله فيك وجعلها في ميزان حسناتك
لاكن ممكن توضخ أكثر
هناك طرق غير هذه الطرق
هذه مصطلحات سوف تكتشفونها في الفصل الثاني والسنة ثانية ان شاء الله
+
ارجوا تحديد السنة العلمية حتى يتم معالجة المشكل حتى يفهم
شكرا
السلآم عليكم ورحمة الله وبركآتهُ ..
كيف نحدد عدد الأرقام بعد الفاصلة في pascal
On peut juste afficher un réel selon un format donné, mais on ne change pas la valeur – on ne formate que l’affichage -
Pour ce faite
writeln (variable : champ : chiffres significatifs) ;
Variable : nom de la variable (le type peut être réel, entier, chaine…)
Champ : nombre maximal des chiffres à afficher, virgules-y compris. (n’à pas de sens si la valeur est inférieur au nombre des chiffres significatif)
Chiffres significatifs : nombre des chiffres après la virgule, n'a pas de sens au-delà d’une valeur donnée – cette valeur dépond de la version du compilateur Pascal- et ne doit pas figurer si la variable est sans précision.
Encore, la valeur ne change pas, juste l’affichage qui change
ceci est un exemple
http://img15.hostingpics.net/pics/891930Sanstitre.jpg
you92cef
2012-11-22, 17:15
السلآم عليكم ورحمة الله وبركآتهُ ..
كيف نحدد عدد الأرقام بعد الفاصلة في pascal
اذا كان مثلا
x=3.2546897
فاذا كتبنا
writeln(x)
فسوف نحصل على قيمة x الكلية
اذا اردنا مثلا 4 ارقام بعد الفاصلة نكتب هكذا
writeln(x:4);
you92cef
2012-11-22, 17:19
exercise supplemainter
ecrire un programme pascal qui fait la somme des chiffres d'un nimbre
exemple
145
il affiche 10
1+4+5=10
exo pour 1er anneé
AKKAINMOH
2012-11-23, 20:02
مشكور أخي كثيرا بارك الله فيك وجعلها في ميزان حسناتك
AKKAINMOH
2012-11-23, 20:07
السلام عليكم
اريد صنع هذه العملية باستعمال لغة pascal مع تحديد les variables et son types
Lire une chaine de caractères et l'afiice avec sa longueur
lire un caractère est affiche son successeur
وشكرا
وجعلها الله في ميزان حسناتكم
AKKAINMOH
2012-11-23, 20:13
شكرا لكم أنتم ما شاء الله مبدعون الله يحفظكم
وجعلها الله في ميزان حسناتكم
AKKAINMOH
2012-11-23, 20:19
من فضلكم يا اخوان انا في مشكلة ساعدوني ففي أحد نقدمها للاستاذ
وجعلها الله في ميزان حسناتكم
you92cef
2012-11-24, 10:42
[]السلام عليكم
اريد صنع هذه العملية باستعمال لغة pascal مع تحديد les variables et son types
Lire une chaine de caractères et l'afiice avec sa longueur
lire un caractère est affiche son successeur
وشكرا
وجعلها الله في ميزان حسناتكم
program exo;
uses wincrt;
var chaine:string;
c:char;
begin
writeln('s.v.p entrer une chaine de carecterre');
readln(chaine);
writeln('la longueur de chaine est:', length(chaine));
writeln('s.v.p entrer un charecterre');
readln(c);
writeln('le succesive est:', succ(c));
end.
you92cef
2012-11-24, 10:55
de cours
le type d'un chaine de charrecterre est declare en pascal : string;
chaine:string;
pour avoir la longeur d'une chaine de charrectere il suffit d'appel le fonction prédifini en pascal length ;
chaine:string
'if chaine:= 'bonjour
alour length(chaine):=7
'if chaine:=' bonjour bonjour
alors
length(chaine):=15
car l'espace est un charecterre
toute chainne ou checterre se maitre entre 2 '..'
pour entrer un charecterre ou un chaine on n'ecrit pas '..'
en ecrit seulement en algo
length(chaine):= integer*-* toujours un nombre gui appartient dans n
pour avoir le succesive d'un checterre il suffit d'appel la fonction prédifinit en pascal succ
ile type d'un checterre est :char en pascal
chara:char;
if chara:=a
alors succ(chara):=b
succ((x):=le resutlat est de meme type gue x
a faire:= quel est le suucc de z
pourqoui
string[10]:= veut dire que on doit lire un chaine de charectere qui ne depasse pas 10 cgarecterre
you92cef
2012-11-24, 10:59
ارجوا تحديد اين وصلتم في td حتى نعرف كيف نحل التمارين
من درس les boucle يحاول يحل التمرين الذي في الاعلى exo supp
*-* خاص بالسنة الاولى *-*
boughaba mohamed
2012-11-27, 14:38
السلام عليكم
أريد مساعدتكم في كتابة خوارزمية لإنجازبرنامج يقوم بقراءة أربعة ارقام صحيحة ويطبع اصغر ثلاث ارقام من بينها
ولو امكن أيضا نموذج لترجمتها للباسكال
Selon Euclide
PGCD (a,b) = PGCD(a,b-a) si b>a
PGCD (a,b) = PGCD (a-b,b) si a>b
PGCD (a,b) = a (ou b) si a=b
program pgcd;
uses wincrt;
var
a,b:integer;
begin
repeat
readln(a);
until a>=0;
repeat
readln(b);
until b>=0;
while a<>b do
begin
if a>b then
a:=a-b
else if a<b then
b:=b-a;
end;
writeln(a);
end.
program premier;
uses wincrt;
var
i,d:integer;
begin
for i:=2 to 100 do
begin
d:=2;
while ((i mod d <>0) and (d <= i div 2)) do
begin
d:=d+1;
end;
if d> i div 2 then
writeln(i);
end;
end.
مشكور أخي لكن أريد ال Algorithme أيضا
you92cef
2012-11-28, 14:04
مشكور أخي لكن أريد ال Algorithme أيضا
بخصوص الباسكال والالغوريتم فليس هناك اختلاف يكفي فقط تعويض الكلمات الانكليزية بالفرنسية او العكس
else---sinon
if---si
end;---finsi
readln ou read---lire
writeln ou write---- ecrire
program----algorithe
you92cef
2012-11-28, 14:07
السلام عليكم
أريد مساعدتكم في كتابة خوارزمية لإنجازبرنامج يقوم بقراءة أربعة ارقام صحيحة ويطبع اصغر ثلاث ارقام من بينها
ولو امكن أيضا نموذج لترجمتها للباسكال
بخصوص هذه الانواع فهي طويلة للبرمجة والاحسن ان تكتبها باانغرام anagramme
ولكن يمكن ان تكتبها بالباسكال او الالغوريتم يكفي فقط ان تضع كل الحالات الممكنة ومن الاحسن استعمال les commaintres explicatif لكي تصحح الاخطاء ان وجدت
les commentaire explicatif هي تعليقات تساعد المبرمج ولا تظهر في برنامج باسكال وهي تكتب بهذا الشكل
{commaintre explicative}
{......................}
ساحاول برمجته بالباسكال ولكن ليس صعبا
اتمنى ان تبرمجه*-*يه*-* بنفسك
شكرا
AKKAINMOH
2012-11-29, 15:45
السلام عليكم
اريد صنع هذه العملية باستعمال لغة pascal مع تحديد les variables et son types
Lire une chaine de caractères et et avec sa longueur
وشكرا
وجعلها الله في ميزان حسناتكم
AKKAINMOH
2012-11-29, 15:46
السلام عليكم
اريد صنع هذه العملية باستعمال لغة pascal مع تحديد les variables et son types
lire un caractère est affiche son successeur
وشكرا
وجعلها الله في ميزان حسناتكم
AKKAINMOH
2012-11-29, 15:52
شكرا يا آخ you92cef لاكن اريد كل عملية وحدها
وجعلها الله في ميزان حسناتكم
tahar1974
2012-11-29, 19:30
STP
'deux noumbre N et M sont dit amis si la somme des divideurs de N égale a M et la somme des diviseurs de M égal a N écrire un programme pascal qui permet tout devérifier si deux nombre sont amis ou poim.'
stp stp stp stp stp mes amis
Morphus007
2012-11-29, 20:25
Algo
var N,M,Nsomme,Msomme,i:entier;
debut
lire(N,M);
Nsomme:=0;
Nsomme:=0;
pour i:= 1 a (N div 2)
si N mod i = 0 alors Nsomme:=Nsomme+i;
pour i:= 1 a (M div 2)
si M mod i = 0 alors Msomme:=Msomme+i;
Si (M=Nsomme) et (N=Msomme) alors
ecrire('N et M sont des amis')
sinon ecrire ('N et M ne sont pas des amis')
fin
N'oublier pas AL DOAA et remerciment
you92cef
2012-12-01, 10:44
بخصوص anagramme
فتم وضع البرنامج وهو شغال 100/100 في الحالات التي يكون ترتيب الحروف فيها مثلا
prenom
nom
true
او الحروف الغير مرتبة ايضا
مثلا ainbendraoui
abdou
true
في حالة العكس مثلا
nom
prenom
فالنتيجة تكون خاطئة
program sol;
uses wincrt;
var m1,m2:string;
d1,d2:integer;
s:boolean;
function anag(m1,m2:string):boolean;
var i,j:integer;
mot1,mot2:string;
begin
d1:=length(m1);
d2:=length(m2);
if d2>d1 then anag:=false
else
i:=1;
j:=1;
if mot1[i]=mot2[j] then begin
i:=i+1;
j:=j+1
end
else begin
j:=j+1;
anag:=anag(mot1[i],mot2[j]);
end
end;
begin
writeln('entrer mot1,mot2');
readln(m1);
readln(m2);
s:=anag(m1,m2);
writeln(s);
end.
لا تنسونا من دعائكم وارجوا ممن لديه دروس خاصة بالسنة الثانية ان يزودنا بها او تمارين واذا امكن بعض الشروحات الخاصة بها ايضا وشكرا للجميع
you92cef
2012-12-01, 11:03
شكرا يا آخ you92cef لاكن اريد كل عملية وحدها
وجعلها الله في ميزان حسناتكم
للاسف اخي لقد وضعت ردا يوم الاربعاء ولكن ربما لخلل ما الرد لم يظهر
بخصوص البرنامج الاول الخاص بحساب طول chaine de charectére
فنتستعمل الدالة المعرفة length
le type de chaine de charéctere se declare en pascal sous le nom string
var mot:string;
واذا اردنا تحديد عدد حروف الكلمة نستعمل [..]
مثال
var nom:string[20]
هذا معناه ان عدد الاحرف لا يتجاوز 20 حروف
البرنامج الاول
program ex;
uses wincrt;
var mot:string;
begin
writeln('entre le mot');
readln(mot);
writeln(length(mot));
end.
للحصول على algo نعوض الكلمات الانكليزية بالفرنسية فقط وكلمة length لا نعوضها -*- البعض قد يغيرها ويضع مكانها taille
اذا كانت لدينا كلمة واردنا اخذ حرف من هذه الكلمة
مثلا prenom
اردنا اخذ p
فنكتب
prenom[1]
معناه توجه الى الكلمة السابقة التي هي من نوع
string
وخذ الحروف الاول
[1]
نفس الشيء اذا اردنا الحرف الثاني او الثالث بينما لو كتبنا
[0] مثلا
prenom[0]
فيكتب لنا طول الكلمة
اذن يمكن استعمل
[0] بدل
length
في المثال السابق
البرنامج الثاني الخاص succesife
هناك دالة في باسكال تعطينا لاحق الحرف *-* ندخل حرف وهي تعطينا الحرف الذي يليه هذه الدالة اسمها succ
وهي خاصة بالحروف charectére
le type de charéctre en pascal est char
var charecter:char
البرنامج
program ex;
uses wincrt;
var charectere:char;
begin
writeln('entre un charectere');
readln(charectere);
writeln(succ(charectere));
end.
you92cef
2012-12-01, 22:56
اعتذر هناك بعض الاخطاء في البرنامج الخاص بanagramme
بحيث عند ادخال مثلاabdوain فالنتيجة هي true
وعليه وجب تحسين البرنامج سواء باستعمال permutation entre les carectérre de la chaine pour kil le premierre lettre de la chaine1 soit diferent de la chaine2
ou
utiliser la fonction copy
merci
pitchoudjo
2012-12-02, 13:23
لدي مسابقة على اساس الشهادة ليسانس اعلام آلي اريد مساعدة مع قديم امثلة الله يجازيكم
mino leo
2012-12-03, 22:48
Soit une chaine de caractéres S,de longueur quelconque (nombre de caractére non fixé a l'avance) .Il ssagit d'en former l'inverse de cette chaine ,ou image miroir :la chaine résultat est écrit avec les mm caractéres que S,mais dan l'ordre inverse .exemple bonjour==>ruojnob.
ecrire une fonction itérative et une fonction récursive pour obtenir l'image miroir d'une chaine de caractéres.
Lenght:retourne la longueur d'une chaine
copy:retourne une partie b1 précise d'une chaine de caractéres.
+:concaténationde deux chaine.
":chaine vide.
texte: 'abcde'
C:=texte[4]====>c=d.
i:=lenght(texte)=====>i=6
copy(texte,2,4)=====>texrte=bcde.
texte:='al'+'go===>texte=algo.
marwa.dz
2012-12-04, 09:49
السلام عليكم
ممكن كتابة برنامج حل معادلة من الدرجة الثانية
x carr +a*x +b=0
وشكرا لكم على هذه الصفحة القيمة
السلام عليكم
Ex01
Ecrire un Algorithme qui permet de lire un nombre et d'afficher le menu suivant
carré du nombre
racine carré du nombre
inverse du nombre
valeur absolu du nombre
-------------
Tapper votre choix
Lire, choisir et faire le traitement ci dessus
Lire nombre et afficher le menu
Ex02
Ecrire un Algorithme qui permet de lire la température de mois de novembre de la ville de Paris et de calculer la température moy et la température max et la température min
Ex03
Ecrire un Algorithme qui fait la table de multipli de nombre 5
Ex04
Ecrire un Algorithme qui permet de lire deux nombres positif A et B et calcule leur produit sans utiliser l'operateur de multiplication
AKKAINMOH
2012-12-05, 23:31
شكرا يا آخ you92cef
وجعلها الله في ميزان حسناتكم
you92cef
2012-12-06, 17:32
سيتم بحول الله مساءا وضع الحلول ومناقشتها
شكرا للجميع
you92cef
2012-12-06, 18:25
السلام عليكم
Ex01
Ecrire un Algorithme qui permet de lire un nombre et d'afficher le menu suivant
carré du nombre
racine carré du nombre
inverse du nombre
valeur absolu du nombre
-------------
Tapper votre choix
Lire, choisir et faire le traitement ci dessus
Lire nombre et afficher le menu
Ex02
Ecrire un Algorithme qui permet de lire la température de mois de novembre de la ville de Paris et de calculer la température moy et la température max et la température min
Ex03
Ecrire un Algorithme qui fait la table de multipli de nombre 5
Ex04
Ecrire un Algorithme qui permet de lire deux nombres positif A et B et calcule leur produit sans utiliser l'operateur de multiplication
ex01
program sol;
uses wincrt;
var n:integer;
c,r,i,v,choix:char;
begin
writeln('Entrez un nombre>0:');
readln(n);
writeln('c-->carre de nombre');
writeln('r--> racine de nombre');
writeln('i--> inverse de nombre');
writeln('v-->valeur absolu de nombre');
writeln('Entrez votre choix:');
read(choix);
case choix of
'c':writeln(sqr(n));
'r':writeln(sqrt(n):3);
'i':writeln((1/n):3);
'v':writeln(abs(n));
end;
end.
راجع الردود السابقة وعوض الكلمات الانكليزية بالفرنسية للحصول غلى الالغوريتم
you92cef
2012-12-06, 18:51
السلام عليكم
Ex01
Ecrire un Algorithme qui permet de lire un nombre et d'afficher le menu suivant
carré du nombre
racine carré du nombre
inverse du nombre
valeur absolu du nombre
-------------
Tapper votre choix
Lire, choisir et faire le traitement ci dessus
Lire nombre et afficher le menu
Ex02
Ecrire un Algorithme qui permet de lire la température de mois de novembre de la ville de Paris et de calculer la température moy et la température max et la température min
Ex03
Ecrire un Algorithme qui fait la table de multipli de nombre 5
Ex04
Ecrire un Algorithme qui permet de lire deux nombres positif A et B et calcule leur produit sans utiliser l'operateur de multiplication
ex02
program sol;
uses wincrt;
var t,max,moy,min:real;
i:integer;
begin
moy:=0;
max:=-900;
min:=900;
for i:=1 to 30 do begin
writeln('Entrez la temperature de la ',i,' jour: ');
readln(t);
if t<min then min:=t;
if t>max then max:=t;
moy:=moy+t;
end;
writeln('la temperature min=',min:3);
writeln('la temperature max=',max:3);
writeln('la temperature moy=',(moy/30):3);
end.
بخصوص الدالة
for اذا لم تتطرقوا لها بعد ممكن ان نساعد في الشرح
بخصوص القيم الاولية ل
max
و
min
فهي قيم سوف تتغير بمجرد ادخال القيمة الاولية لدرجة الحراة
بحيث اعطينا قيمة صغيرة جدا ل
max
وقمية كبيرة لل
min
يمكن ان لا نعطي قيم اولية لل
max
min
ونجعل قيمتهما الاولية هي القيمة الاولية لدرجة الحراة الخاصة باليوم الاول ونكمل الباقي بنفس الشيء
.
you92cef
2012-12-06, 19:05
ex03
program sol;
uses wincrt;
type tab=array[1..100]of integer;
var t:tab;
multi,n,i:integer;
begin
writeln('Combien de nombre vous voulez?');
readln(n);
for i:=0 to n do begin
multi:=5*i;
writeln(multi);
end;
end.
you92cef
2012-12-06, 19:15
ex04
program sol;
uses wincrt;
var a,b,i,multi:integer;
begin
multi:=0;
writeln('Entrez deux nobre>0');
read(a);
readln(b);
for i:=1 to b do
multi:=a+multi;
writeln('la mutliplication =',multi);
end.
المبدا هو ان
a*b=a+a+a+a+a+a+a
b fois
مثلا
2*3=2+2+2
نقوم بعملية الجمع على 2 الذي يمثل
a
3 مرات الذي يمثل
b
الدالة
for
تقوم بتكرار الامر مرة واحدة واذا اردنا تكرار عدة امور نكتب
begin
end;
يجب دوما اعطاء قيمة اولية للعداد *-* او الحرف الذي ياخذ قيمة العمليات الرياضية مثلا الضرب او القسمة او الجمع ....
الذي هو في هذه الحالة
multi
في هذه الحالة لدينا الجمع لذلك القيمة الاولة ل
multi تكون العنصر الحيادي لعملية الجمع الذي هو 0 لان اي رقم +0 يعطينا الرقم نفسه
بينما هو كانت لدينا عملية الضرب فالقيمة الاولية تكون 1 الذي يمثل العنصر الحيادي لان اي عدد مضروب 1 يساوي العدد نفسه
نفس الشيء بالنسبة للطرح*-* يمكن تحويلة الى جمع*-* او القسمة*-* يمكن تحويلة الى ضرب*-*
you92cef
2012-12-06, 19:18
السلام عليكم
ممكن كتابة برنامج حل معادلة من الدرجة الثانية
x carr +a*x +b=0
وشكرا لكم على هذه الصفحة القيمة
اظن تم حل هذا النوع من المسائل في هذا الموضوع راجع*-*ي*-* الردود السابقة
you92cef
2012-12-06, 19:33
بخصوص
anagramme
program sol;
uses wincrt;
var m1,m2:string;
function anag(mot1,mot2:string):boolean;
begin
if length(mot2)> length(mot1) then anag:=false;
if length(mot2)= 0 then anag:=true
else if pos(mot2[1],mot1)=0 then anag:=false
else
begin
delete(mot2,1,1);
delete(mot1,1,1);
anag:=anag(mot1,mot2);
end;
end;
begin
writeln('Entrez deux mot:');
readln(m1);
read(m2);
writeln(anag(m1,m2));
end.
مبدا عمل البرنامج
البرنامج يقوم بقراءة كلمتين
اذا كانت كل حروف الكلمة الثانية موجودة في الكلمة الاولى بغض النظر عن ترتيبها فالنتيجة تكون صحيح
مثلا
bonjour
rnob
النتيجة صحيح
من لواضح انه اذا كان عدد حروف الكلمة الثانية اكبر من عدد حروف الكلمة الاولى فالنتيجة تكون خاطئ
في الحالة التي يكون لدينا عدد حروف الكلمة الثانية اقل او يساوي عدد حروف الكلمة الاولى نقوم باستدعاء الدالة
pos
مبدا عمل الدالة هو انك تعطيها حرف
او
char
وكلمة
او
string
فهي تقوم بحساب كم من مرة تكرر هذا الحرف في الكلمة مثلا
pos(e,element):=3
في هذه الحالة ناخذ الحرف الاول من الكلمة الثانية
mot2[1]
ونبحث باستعمال الدالة
pos
عن كم من مرة تكرر في الكلمة الاولى
اذا لم يتكرر فالنتيجة تكون خاطئ
بينما لو تكرر نقوم بمقارنة كم من مرة تكرر الحرف الثاني في الكلمة الاولى من اجل هذا نستعمل دالة اخرى وهي الدالة
delete
وهو مبدا عملها حذف حرف او مجموعة حروف من كلمة
مثلا
delete(element,1,1);
تقوم بحذف الحرف الاول من الكلمة اي حذف الحرف
e
في هذه الحالة يصبح الحرف الاول من الكلمة هو
l
نقوم بنفس الشيء باستعمال الدالة
pos
وكل مرة نحذف الحرف اذا وجدناه حتى يصير طول الكلمة الثانية =0 في هذه الحالة تكون النتيجة صحيح
you92cef
2012-12-06, 19:38
لدي مسابقة على اساس الشهادة ليسانس اعلام آلي اريد مساعدة مع قديم امثلة الله يجازيكم
للاسف ليس لدينا اي علم بمثل هذه المواضيع
من الممكن ان تجد ظالتك هنا من خلال اسئلة الاعظاء
شكرا لك
you92cef
2012-12-06, 19:41
ax²+bx+c=0
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-12-06, 21:17
بسم الله الرحمـن الرحيم
السلام عليكم
مشكور أخي يوسف مسبقا على مجهوداتك
أخي الكريم لي طلب وأرجو أن تساعدني فيه
درسنا في الخوارزميات درس الجداول والحمد لله فهمته
وبعده درس المصفوفات ، وللأسف كنت غائبا بسبب المرض
طلبي هو أرجو منك أن تمدّنــي بملفات إن كان ليدك حول هذا الموضوع
بارك الله فيك وفي مجهوداتك
رزقني الله وإياك الإخلاص
بووووركت
you92cef
2012-12-07, 18:50
بسم الله الرحمـن الرحيم
السلام عليكم
مشكور أخي يوسف مسبقا على مجهوداتك
أخي الكريم لي طلب وأرجو أن تساعدني فيه
درسنا في الخوارزميات درس الجداول والحمد لله فهمته
وبعده درس المصفوفات ، وللأسف كنت غائبا بسبب المرض
طلبي هو أرجو منك أن تمدّنــي بملفات إن كان ليدك حول هذا الموضوع
بارك الله فيك وفي مجهوداتك
رزقني الله وإياك الإخلاص
بووووركت
http://im29.gulfup.com/Mdwz1.png
http://im29.gulfup.com/QHDj2.png
program ex;
uses wincrt;
type tableau=array[1..50,1..50]of integer;
var i,j,n,m:integer;
t:tableau;
begin
writeln('Entrer deux nombre>0');
read(n);
readln(m);
for i:=1 to n do
for j:=1 to m do begin
write('Entrez la valeur de [',i,',',j,']=');
read(t[i,j]);
end;
end.
you92cef
2012-12-07, 21:17
بخصوص الانواع المقبولة فهناك خطا
بحيث ان النوع المقبول هو n
والمرفوض هو r
LostDrem
2012-12-08, 11:08
من فضلكم ساعدوني على حل هذا 1. Lire deux chaînes de caractères représentant deux nombres binaires à partir du clavier et
les transformer en deux LLCs selon le modèle précédent,
2. Afficher les nombres binaires sur écran à partir des LLCs.
3. Créer une Liste représentant le résultat de l’opération OR entre les deux nombres binaires
et l’afficher sur écran.
4. Créer une Liste représentant le résultat de l’opération AND entre les deux nombres
binaires et l’afficher sur écran.
5. Créer une Liste représentant le résultat de multiplication de la première liste par deux
(2) et l’afficher sur écran.
6. Créer une Liste représentant le résultat de division de la première liste par deux (2) et
l’afficher sur écran.
7. Créer une Liste représentant le résultat d’addition des deux nombres binaires et l’afficher
sur écran.tp
Enoncé:
simulation de la listed'attente des patients d'un cabinet médical suivant la politique le premier venu est le premier servi,sauf quelque exeption ,le cas d'urgence(le plus prioritaire )et le cas des resultats des analyses medicale(qui seront géres en alternative avec les consultations
Donc ecrire un programme qui permet de
-Saisir les informations d'un patient,num sequentiel,nom,prenom,age et l'etat (urgent,consul,analyse)
-faire appel a une procedure pour inverser les patients arrivés chacun a sa liste (consul,urg,analyse)
-D'afficher le contenu de chaque liste apres l'arrivée d'un patient
-De retirer et afficher le patient approrié chacun a son tour puis afficher le contenu des trois listes
Aidez moi svp j'ai deja essayé je vais afficher ma solution plus tard
Merci d'avance
you92cef
2012-12-08, 12:48
من فضلكم ساعدوني على حل هذا 1. Lire deux chaînes de caractères représentant deux nombres binaires à partir du clavier et
les transformer en deux LLCs selon le modèle précédent,
2. Afficher les nombres binaires sur écran à partir des LLCs.
3. Créer une Liste représentant le résultat de l’opération OR entre les deux nombres binaires
et l’afficher sur écran.
4. Créer une Liste représentant le résultat de l’opération AND entre les deux nombres
binaires et l’afficher sur écran.
5. Créer une Liste représentant le résultat de multiplication de la première liste par deux
(2) et l’afficher sur écran.
6. Créer une Liste représentant le résultat de division de la première liste par deux (2) et
l’afficher sur écran.
7. Créer une Liste représentant le résultat d’addition des deux nombres binaires et l’afficher
sur écran.tp
البمدا سهل بقوم فقط بادخال رقم ونقوم بالقسمة على 2 الباقي نضعه في مصفوفة *-*tableau*-*
بعدها نقوم باظهار الجدول في سطر واحد وهكذا تكون حصلنا على القرم بالنظام 0 و1
باقي التمرين ليس صعب
اسف لانني لا يمكنني وضع الحل ظرا لان لدي امتحانات في هذه الفترة شكرا لك
you92cef
2012-12-08, 12:53
Enoncé:
simulation de la listed'attente des patients d'un cabinet médical suivant la politique le premier venu est le premier servi,sauf quelque exeption ,le cas d'urgence(le plus prioritaire )et le cas des resultats des analyses medicale(qui seront géres en alternative avec les consultations
Donc ecrire un programme qui permet de
-Saisir les informations d'un patient,num sequentiel,nom,prenom,age et l'etat (urgent,consul,analyse)
-faire appel a une procedure pour inverser les patients arrivés chacun a sa liste (consul,urg,analyse)
-D'afficher le contenu de chaque liste apres l'arrivée d'un patient
-De retirer et afficher le patient approrié chacun a son tour puis afficher le contenu des trois listes
Aidez moi svp j'ai deja essayé je vais afficher ma solution plus tard
Merci d'avance
البمدا هو استعمال دالة الادخال *-* enregistrement*-*
receord بالباسكال
تابع*-*ي*-* الشرح هنا
http://www-ipst.u-strasbg.fr/pat/program/pascal12.htm
الموقع يحتوي دروس البرمجة والالغوريتم للسنة الاولى
اليك الموقع
http://www-ipst.u-strasbg.fr/pat/program/pascal_t.htm
هناك زر للانتقال الى الصفحة الموالية اضغط عليه للانتقال الى درس اخر
لموقع مفيد جدا
بخصوص التمرين ما قلنا نستعمل الدالة record
الشرح موجود في الموقع
بعدها نقوم بتخزين المعلةومات في جدول
عند اظهار المعلومات علينا ان نعمل فحص لها بالنسبة للاولية
من اجل هذا علينا ترتيب الجدول بحسب الاولية باستعمال مبدا permutation
بعدها نظهر الجدول من جديد
merciii bcp mais je sais que je vais utiliser les enregistrement mais apres l'enregistrement je vais cree une liste vide puis les ajouté des emements sa depend la priorité des etat j'ai l'idée mais j'ai pa pu la 'appliquer
ici en utilise les listes ce n'est pas les tableaux et le probleme est chaque moment vous auraiez des patients
you92cef
2012-12-08, 17:23
للاسف لم نتطرق لدرس les listes
نعم les listes افضل في هذه الحالة من tableau
le problem est de priorité
لدي اقتراح وهو ان نقوم بعمل 3 جداول بما اننا لم ندرس les liste بعد
الجدول الاول يكون للاولوية الاولى
الثانية للاولية الثانية
الثالث للاولوية الثالثة
عند ادخال ملف كل شخص علينا ادخال الاولية في الاول
اذا كانت الاولية الاولى فاننا نملء الجدول الاول الذي هو من نوع record
وهكذا وبعدها نقوم باظهار الجداول
في انتظار درس les listes
شكرا
شكرا جزيلا بوركت اخي جعلها الله في ميزان حسناتك بانتظار الاعظاء الاخرين الذين درسو les listes
*أمة الله*
2012-12-08, 18:45
emm J'ai un problem pourqui les type char est codé entre -127 et 128 svp aider moi
you92cef
2012-12-08, 20:17
emm J'ai un problem pourqui les type char est codé entre -127 et 128 svp aider moi
je ne ce pas exactement
mais je pence que 256 carécterre c'est nombre permet d'avoir bcp des choix
ext un nombre suffisent pour un longage de programation
AKKAINMOH
2012-12-12, 21:50
السلام عليكم
اريد صنع هذه العملية باستعمال لغة pascal ةcrire le programme pascal qui permet de trouver le plus petit N;
Le nombre de termes de la série pour lequel la somme supérieure à 3
وجعلها الله في ميزان حسناتكم
عمار ابن غارداية
2012-12-12, 23:13
ييوسف أحتاج ألغوريتم pair et impair
you92cef
2012-12-13, 14:24
السلام عليكم
اريد صنع هذه العملية باستعمال لغة pascal ةcrire le programme pascal qui permet de trouver le plus petit N;
Le nombre de termes de la série pour lequel la somme supérieure à 3
وجعلها الله في ميزان حسناتكم
التمرين ناقص
نحتاج الى المتتالية :confused:
you92cef
2012-12-13, 14:26
ييوسف أحتاج ألغوريتم pair et impair
حاول ان تقوم به بنفسك
استعمل الدالتين
div
و
mod
في حالة عدم تطرقكم لهذه الدوال جرب كتابة برنامجين بسيطين
الان يقرارقمين طبيعيين ويقوم باظهار
a mod b
والثاني يقوم باظهار
a div b
you92cef
2012-12-13, 17:18
exo supp
ex01
ercire un programe pascal qui lire un nombre est qu'il affiche la somme de les chiffre de nombre
ex 1142
alors il afiiche1+1+4+2=8
ex02
ecrire un program pascal qui lire un nombre possitive (n)
une opperation mathematique
une nombre m
est il affiche tout les m cas possible*-* s'il existe*-* de avoir le nombre n a partir de l'opperation mathematique
ex
si n=9
l'opperation math est la somme
m=50
alors il affiche
0+9=9
8+1=9
7+2=9
6+3=9
5+4=9
esl s'arrete /-* il affiche que 5 nombre pas 50*-*
il n'affiche pas
4+5=9*-* repétition*-*
essayer d'avoir le programe avec meme les nombre real*-* possitive et negative avec ou sans virgule*-*l et avec des fonction comme factorielle -- exp--ln--log ext
ex03
ecrire un programme pascal qui crypter un mot ou un phrase avec le principe de decalage
ex
si le mot a crypter est abou avec declage de 2
alors il affiche
cdqw
ecrire un autre programme qui decrypter un mot ou un phrase
ex
si le mot a decrypter est cdqw avec une decalage de 2 alors il affiche abou
asma1856
2012-12-13, 18:17
حبيت نسقسيك نتوما تخدمو بالبالسكال ولا الجافا حنا نخدمو بالجافا "سنة ثانية اعلام الي"
you92cef
2012-12-13, 19:46
حبيت نسقسيك نتوما تخدمو بالبالسكال ولا الجافا حنا نخدمو بالجافا "سنة ثانية اعلام الي"
باسكال للاسف
سلام
راني معاكم نتابعكم من بعيد لبعيد......
kouzoumohamed
2012-12-14, 14:32
اريد حال هذا التمرين في اسرع وقة من فضلكم
construire l'algorithme de recherche du PPCM ( plus petit commun multiple ) de 2 nopbres A et B
you92cef
2012-12-14, 18:09
اريد حال هذا التمرين في اسرع وقة من فضلكم
construire l'algorithme de recherche du PPCM ( plus petit commun multiple ) de 2 nopbres A et B
program sol;
uses wincrt;
var a1,b1,a,b,ppcm:integer;
begin
writeln('Entrez deux nombre');
read(a);
readln(b);
a1:=a;
b1:=b;
WHILE a1<>b1 do
begin
if a1<b1 then
a1:=a1+A
else
b1:=b1+b;
end;
PPCM:=a1;
writeln(ppcm);
end.
you92cef
2012-12-14, 18:17
de cours
Il est parfois demandé de trouver le plus petit nombre divisible par le plus de nombres possibles :
PPCM(1, 2) = 2
PPCM(1, 2, 3) = 6
PPCM(1, 2, 3, 4) = 12
PPCM(1, 2, 3, 4, 5) = 60
PPCM(1, 2, 3, 4, 5, 6) = 60
PPCM(1, 2, 3, 4, 5, 6, 7) = 420
PPCM(1, 2, 3, 4, 5, 6, 7, 8) = 840
PPCM(1, 2, 3, 4, 5, 6, 7, 8, 9) = 2520
PPCM(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) = 2520
PPCM(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) = 232792560
Algorithme de calcul d'un PPCM
Méthode n° 1 : les multiples des nombres 12 et 10.
Les multiples de 12 sont : 0,12,24,36,48,60,72 etc.
Les multiples de 10 sont 0,10,20,30,40,50,60,70 etc.
Le premier multiple commun non nul est : 60.
Méthode n° 2 : la décomposition en facteurs premiers.
12 = 2 * 2 * 3
10 = 2 * 5
Il faut prendre les facteur qui figurent dans, au moins, une des décomposition ; s'ils sont répétés, il faut conserver la plus longue répétition (leur plus grand exposant)
Le PPCM est le produit de ces nombres : 2 * 2 * 3 * 5
Méthode n° 3 : en passant par le PGCD
On utilise la formule : ppcm(a, b) = a * b / pgcd(a, b)
pgcd(10, 12) = 2
ppcm(10, 12) = (10 * 12) / 2 = 60
Programmes pour calculatrices (TI, Casio)
Les calculatrices intégrent généralement les fonction de PPCM sous le nom de LCM (Lowest Common Multiple). Si vous n'avez que la fonction PGCD (ou GCD), appliquez les formules ci dessus.
ارجوا ان تبرمج*-*ي*-* انطلاقا من الطريقة الثالثة *-* الالغوريتم موجود في الطريقة الثالثة*-*
ghafour madrid
2012-12-16, 10:34
crée un algorithme qui calcul la somme carrée de 1 carrée a n carrée
donnez moi comment crrée cet algorithme en pascal
you92cef
2012-12-16, 17:29
crée un algorithme qui calcul la somme carrée de 1 carrée a n carrée
donnez moi comment crrée cet algorithme en pascal
المبدا هو عمل
variable ياخذ كل مرة قيمة الجمع
نقوم بادخال عدد
n
بما انه لدينا نفس العملية تتكرر
n
مرة
فنقوم باستدعاء الدالة
for
نقوم باخذ مربع العدد ثم نضيف لل
varible
التي وضعناها في الاول
s:=0;
read(n);
for i:=1 to n do
s:=s+sqr(i);
writeln(s);
اكمل*-*ي*-* صياغة البرنامج
ghafour madrid
2012-12-16, 18:37
شكرا اخي على اعطائي الحل لكني اريده مفصلا في برنامج باسكال لاني لا افهم قليلا الباسكال
ارجو ان تعطوني الحل في برنامج باسكال مفصلا
you92cef
2012-12-16, 19:27
شكرا اخي على اعطائي الحل لكني اريده مفصلا في برنامج باسكال لاني لا افهم قليلا الباسكال
ارجو ان تعطوني الحل في برنامج باسكال مفصلا
program ex;
uses wincrt;
var i,n,s:integer;
begin
s:=0;
writeln('Entrez un nombre');
read(n);
for i:=1to n do
s:=s+sqr(i);
writeln('La somme des nombre carree entre 1 et ',n,'=');
writeln(s);
end.
حاول ان تفهمه بنفسك اذا لم تفهمه نحن هنا للخدمة
شكرا لك
ghafour madrid
2012-12-16, 21:07
شكرااااا اخي بارك الله فيك
AKKAINMOH
2012-12-16, 22:48
السلام عليكم اريد صنع هذه العملية باستعمال لغة pascal Trouver le PPCM de eux entier A et B وجعلها الله في ميزان حسناتكم
de cours
Il est parfois demandé de trouver le plus petit nombre divisible par le plus de nombres possibles :
PPCM(1, 2) = 2
PPCM(1, 2, 3) = 6
PPCM(1, 2, 3, 4) = 12
PPCM(1, 2, 3, 4, 5) = 60
PPCM(1, 2, 3, 4, 5, 6) = 60
PPCM(1, 2, 3, 4, 5, 6, 7) = 420
PPCM(1, 2, 3, 4, 5, 6, 7, 8) = 840
PPCM(1, 2, 3, 4, 5, 6, 7, 8, 9) = 2520
PPCM(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) = 2520
PPCM(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) = 232792560
Algorithme de calcul d'un PPCM
Méthode n° 1 : les multiples des nombres 12 et 10.
Les multiples de 12 sont : 0,12,24,36,48,60,72 etc.
Les multiples de 10 sont 0,10,20,30,40,50,60,70 etc.
Le premier multiple commun non nul est : 60.
Méthode n° 2 : la décomposition en facteurs premiers.
12 = 2 * 2 * 3
10 = 2 * 5
Il faut prendre les facteur qui figurent dans, au moins, une des décomposition ; s'ils sont répétés, il faut conserver la plus longue répétition (leur plus grand exposant)
Le PPCM est le produit de ces nombres : 2 * 2 * 3 * 5
Méthode n° 3 : en passant par le PGCD
On utilise la formule : ppcm(a, b) = a * b / pgcd(a, b)
pgcd(10, 12) = 2
ppcm(10, 12) = (10 * 12) / 2 = 60
Programmes pour calculatrices (TI, Casio)
Les calculatrices intégrent généralement les fonction de PPCM sous le nom de LCM (Lowest Common Multiple). Si vous n'avez que la fonction PGCD (ou GCD), appliquez les formules ci dessus.
ارجوا ان تبرمج*-*ي*-* انطلاقا من الطريقة الثالثة *-* الالغوريتم موجود في الطريقة الثالثة*-*
شرح جيد وواضح
السلام عليكم اريد صنع هذه العملية باستعمال لغة pascal Trouver le PPCM de eux entier A et B وجعلها الله في ميزان حسناتكم
هذا تأليف اخر للطريقة الاولى في مشاركة الاخ you92cef
Si a=b alors PPCM(a,b)=a (ou b)
Sinon, chercher les multiples de a en ordre croissant et s’arrêter s’il est multiple aussi de b.
وبالتالي
En algorithme
0) Début PPCM
1) Lire (a,b)
2) Si a>b alors
Max := a
Min := b
Sinon
Max := b
Min := a
Finsi
3) Tantque (max mod min <>0) faire
Max := max+(a+b-min)
Fin tantque
4) Ecrire(max)
5) Fin PPCM
you92cef
2012-12-17, 10:41
السلام عليكم اريد صنع هذه العملية باستعمال لغة pascal trouver le ppcm de eux entier a et b وجعلها الله في ميزان حسناتكم
راجع*-*ي*-* الردود في الصفحة ال9
وبالتالي
En algorithme
0) Début PPCM
1) Lire (a,b)
2) Si a>b alors
Max := a
Min := b
Sinon
Max := b
Min := a
Finsi
3) Tantque (max mod min <>0) faire
Max := max+(a+b-min)
Fin tantque
4) Ecrire(max)
5) Fin PPCM
en Pascal
Proposition 1
program PPCM;
uses wincrt;
var
max,min,a,b:integer;
begin
readln(a,b);
if a>b then
begin
max:=a;
min:=b;
end
else
begin
max:=b;
min:=a;
end;
while max mod min <>0 do
begin
max:=max+(a+b-min);
end;
writeln(max);
end.
Proposition 2
program ppCMM;
uses wincrt;
function PPCM(x,y,m:integer):integer;
begin
if x mod y = 0 then
ppcm:=x
else
begin
ppcm:=ppcm(x+m,y,m);
end;
end;
var
a,b :integer;
begin
readln(a,b);
writeln(ppcm(a,b,a));
end.
A laide d’un Pascal on veut afficher sur l’écran le triangle de Pascal pour un rang NL donné.
• NL : nombre de lignes, (1 ≤ NL ≤ 10)
• Proposer une analyse et déduire le programme demandé
• Utiliser un tableau unidimensionnel pour calculer les coefficients et non pas une matrice
ارجو المساعدة في كيفية التعامل مع مصفوفة ببعدين على انها مجموعة مصفوفات ببعد واحد في حالة مثلث باسكال وشكرا:19:
you92cef
2012-12-17, 18:02
a laide d’un pascal on veut afficher sur l’écran le triangle de pascal pour un rang nl donné.
• nl : Nombre de lignes, (1 ≤ nl ≤ 10)
• proposer une analyse et déduire le programme demandé
• utiliser un tableau unidimensionnel pour calculer les coefficients et non pas une matrice
ارجو المساعدة في كيفية التعامل مع مصفوفة ببعدين على انها مجموعة مصفوفات ببعد واحد في حالة مثلث باسكال وشكرا:19:
هل تبحث عن مثلث باسكال ؟
you92cef
2012-12-17, 18:38
triangle de pascal
program triangle ;
uses wincrt ;
type matrice =array [1..50,1..50] of integer ;
var x:matrice ;
i,j,n,a:integer ;
begin
read(n) ;
x[1,1]:=1 ;
for i:=2 to n do
begin
for j:=2 to n do
begin
x[i,1]:=1 ;
x[i,j]:=x[i-1,j-1] + x[i-1,j] ;
end ;
end ;
for i:=1 to (n) do
begin
for j:=1 to (n) do
if x[i,j]<>0 then
write(x[i,j]:5) ;
writeln ;
end;
writeln;
writeln('appuiez sur 0 pour quiter') ;
read(a) ;
end.
you92cef
2012-12-17, 18:52
de cours
Algorithme de construction du triangle de Pascal
Présentation de l'algorithme :
Le triangle de Pascal est formé par les lignes donnant les coefficients du développement de (a+b)n.
ligne 1 : 1 1 (a+b)1 = 1*a + 1*b
ligne 2 : 1 2 1 (a+b)2 = 1*a2 + 2*a*b + 1*b2
ligne 3 : 1 3 3 1 (a+b)3 = 1*a3 + 3*a2*b + 3*a*b2 + 1*b3
ligne 4 : 1 4 6 4 1 (a+b)4 = 1*a4 + 4*a3*b + 6*a2*b2 + 4*a*b3 + 1*b4
Principe de construction du triangle :
Le premier et le dernier coefficient de chaque ligne sont toujours égaux à 1.
On obtient chaque autre coefficient en additionnant le nombre qui lui est situé au-dessus ainsi que celui qui lui est situé au-dessus à gauche.
Parmi les algorithmes possibles, celui ci-dessous utilise deux listes : une pour représenter la dernière ligne déjà construite (la liste ligne) et une autre pour construire la prochaine ligne (la liste ligne_suivante).
Le code ci-dessous construit le triangle de la ligne 2 jusqu'à la ligne n (variable dont la valeur est demandée à l'utilisateur au début).
algo
VARIABLES
ligne EST_DU_TYPE LISTE
i EST_DU_TYPE NOMBRE
j EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
ligne_suivante EST_DU_TYPE LISTE
DEBUT_ALGORITHME
LIRE n
SI (n>=2) ALORS
DEBUT_SI
ligne[1] PREND_LA_VALEUR 1
ligne[2] PREND_LA_VALEUR 1
POUR i ALLANT_DE 2 A n
DEBUT_POUR
ligne_suivante[1] PREND_LA_VALEUR 1
AFFICHER ligne_suivante[1]
POUR j ALLANT_DE 2 A i
DEBUT_POUR
ligne_suivante[j] PREND_LA_VALEUR ligne[j-1]+ligne[j]
FIN_POUR
ligne_suivante[i+1] PREND_LA_VALEUR 1
POUR j ALLANT_DE 2 A i+1
DEBUT_POUR
ligne[j] PREND_LA_VALEUR ligne_suivante[j]
AFFICHER " ; "
AFFICHER ligne[j]
FIN_POUR
AFFICHER " "
FIN_POUR
FIN_SI
FIN_ALGORITHME
laffichage
1
1 ; 2 ; 1
1 ; 3 ; 3 ; 1
1 ; 4 ; 6 ; 4 ; 1
1 ; 5 ; 10 ; 10 ; 5 ; 1
1 ; 6 ; 15 ; 20 ; 15 ; 6 ; 1
1 ; 7 ; 21 ; 35 ; 35 ; 21 ; 7 ; 1
1 ; 8 ; 28 ; 56 ; 70 ; 56 ; 28 ; 8 ; 1
1 ; 9 ; 36 ; 84 ; 126 ; 126 ; 84 ; 36 ; 9 ; 1
1 ; 10 ; 45 ; 120 ; 210 ; 252 ; 210 ; 120 ; 45 ; 10 ; 1
you92cef
2012-12-17, 18:54
Construction
http://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif
http://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/Pascal%27s_Triangle_4_paths.svg/400px-Pascal%27s_Triangle_4_paths.svg.png
Construction
http://upload.wikimedia.org/wikipedia/commons/0/0d/PascalTriangleAnimated2.gif
http://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/Pascal%27s_Triangle_4_paths.svg/400px-Pascal%27s_Triangle_4_paths.svg.png
Merci bien :D:D:D
Merci bien frère
• Pour nl = 5 on aura un triangle, dans un program Pascal, comparable à une matrice (NL X NL) remplit à moitié :
o au lieu d’une matrice on veut remplir un tableau par une ligne de la matrice puis de cette ligne on cherche la suivante et ainsi de suite
on veut utiliser un tableau et pas une matrice
• Pour nl = 5 on aura un triangle, dans un program Pascal, comparable à une matrice (NL X NL) remplit à moitié :
o au lieu d’une matrice on veut remplir un tableau par une ligne de la matrice puis de cette ligne on cherche la suivante et ainsi de suite
on veut utiliser un tableau et pas une matrice
A laide d’un Pascal on veut afficher sur l’écran le triangle de Pascal pour un rang NL donné.
• NL : nombre de lignes, (1 ≤ NL ≤ 10)
• Proposer une analyse et déduire le programme demandé
• Utiliser un tableau unidimensionnel pour calculer les coefficients et non pas une matrice
ارجو المساعدة في كيفية التعامل مع مصفوفة ببعدين على انها مجموعة مصفوفات ببعد واحد في حالة مثلث باسكال وشكرا:19:
:24:c'est bon:24::24::24::24::24:
program TrianglePascal;
uses wincrt;
var
i,j,nl:integer;
t:array[1..10] of integer;
begin
repeat
writeln('donner le nombre des lignes');
readln(nl);
until nl in [1..10] ;
for i:=1 to nl do
begin
t[i]:=1;
for j:=i-1 downto 1 do
begin
if j=1 then
t[j]:=1
else
t[j]:=t[j-1]+t[j];
end;
for j := 1 to i do
write(t[j]:5);
writeln;
end;
end.
AKKAINMOH
2012-12-19, 18:23
السلام عليكم اريد صنع هذه العملية باستعمال لغة pascal
Ecrire un programme qui permet de trier trois nombres entieres en utilisant une procédure trie qui reçoit en entrée trois entiers puis ellle les retourne triés
AKKAINMOH
2012-12-19, 18:28
ex 6 Tp
1/Ecrire une fonction qui retourne le PGCD de deux nombres entieres ;
2/Ecrire une fonction qui utilise la fonction précédent et qui retourne le PPCM de deux nombres entieres ;
3/Ecrire un programme pascal qui utilise les deux fonctions précédentes et qui permet de lire deux entires et d'afficher leur PGCD et leur PPCM
AKKAINMOH
2012-12-19, 18:29
وجعلها الله في ميزان حسناتكم
you92cef
2012-12-19, 19:49
السلام عليكم اريد صنع هذه العملية باستعمال لغة pascal
Ecrire un programme qui permet de trier trois nombres entieres en utilisant une procédure trie qui reçoit en entrée trois entiers puis ellle les retourne triés
vous pouver changer les commaintre
program sol;
uses wincrt;
var a,b,c,grand,moyen,petit:integer;
function trie(a,b,c:integer):integer;
begin
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;
begin
writeln('entrer 3 valeur');
read(a);
read(b);
read(c);
write(trie(a,b,c));
end.
you92cef
2012-12-19, 20:05
ex 6 Tp
1/Ecrire une fonction qui retourne le PGCD de deux nombres entieres ;
2/Ecrire une fonction qui utilise la fonction précédent et qui retourne le PPCM de deux nombres entieres ;
3/Ecrire un programme pascal qui utilise les deux fonctions précédentes et qui permet de lire deux entires et d'afficher leur PGCD et leur PPCM
pgcd avec procedure
program ex;
uses wincrt;
var
a,b:integer;
procedure pgcd(a,b:integer);
var a1,b1:integer;
begin
a1:=a;
b1:=b;
while a1<>b1 do
begin
if a1>b1 then
a1:=a1-b1
else if a1<b1 then
b1:=b1-a1;
end;
writeln(a1);
end;
begin
writeln('Entrez deux nombre a et b');
repeat
read(a);
readln(b);
until (a>=0) and(b>=0);
pgcd(a,b);
end.
you92cef
2012-12-19, 20:30
ex 6 Tp
1/Ecrire une fonction qui retourne le PGCD de deux nombres entieres ;
2/Ecrire une fonction qui utilise la fonction précédent et qui retourne le PPCM de deux nombres entieres ;
3/Ecrire un programme pascal qui utilise les deux fonctions précédentes et qui permet de lire deux entires et d'afficher leur PGCD et leur PPCM
pgcd
program ex;
uses wincrt;
var
a,b:integer;
function pgcd(a,b:integer):integer;
var a1,b1:integer;
begin
a1:=a;b1:=b;
while a1<>b1 do
begin
if a1>b1 then
a1:=a1-b1
else if a1<b1 then
b1:=b1-a1;
end;
pgcd:=a1;
end;
begin
writeln('Entrez deux nombre >=');
read(a);
readln(b);
writeln(pgcd(a,b));
end.
you92cef
2012-12-19, 20:34
ex 6 Tp
1/Ecrire une fonction qui retourne le PGCD de deux nombres entieres ;
2/Ecrire une fonction qui utilise la fonction précédent et qui retourne le PPCM de deux nombres entieres ;
3/Ecrire un programme pascal qui utilise les deux fonctions précédentes et qui permet de lire deux entires et d'afficher leur PGCD et leur PPCM
ppcm
راجع*-*ي*-* الرد الاول في الصفحة ال9
بالتعريف لدينا
ppcm(a,b):=(a*b)/pgcd(a,b);
program ex;
uses wincrt;
var
a,b,s,ppcm:integer;
function pgcd(a,b:integer):integer;
var a1,b1:integer;
begin
a1:=a;b1:=b;
while a1<>b1 do
begin
if a1>b1 then
a1:=a1-b1
else if a1<b1 then
b1:=b1-a1;
end;
pgcd:=a1;
end;
begin
writeln('Entrez deux nombre >=');
read(a);
readln(b);
s:=pgcd(a,b);
ppcm:=(a*b) div s;
writeln(ppcm);
end.
you92cef
2012-12-19, 20:40
ex 6 Tp
1/Ecrire une fonction qui retourne le PGCD de deux nombres entieres ;
2/Ecrire une fonction qui utilise la fonction précédent et qui retourne le PPCM de deux nombres entieres ;
3/Ecrire un programme pascal qui utilise les deux fonctions précédentes et qui permet de lire deux entires et d'afficher leur PGCD et leur PPCM
program ex;
uses wincrt;
var
a,b,s,ppcm:integer;
function pgcd(a,b:integer):integer;
var a1,b1:integer;
begin
a1:=a;b1:=b;
while a1<>b1 do
begin
if a1>b1 then
a1:=a1-b1
else if a1<b1 then
b1:=b1-a1;
end;
pgcd:=a1;
end;
begin
writeln('Entrez deux nombre >=');
read(a);
readln(b);
writeln('Le pg de ',a,' et ',b,'=',pgcd(a,b));
ppcm:=(a*b) div s;
writeln('Le pc de ',a,' et ',b,'=',ppcm );
end.
you92cef
2012-12-19, 20:41
ملاحظة: قد تظهر بعض المشاكل في البرامج الثلاثة عائدة الى الباسكال نفسه
ولكن البرامج الثلاثة صحيحة كلها
az-mohamed
2012-12-19, 21:54
Un polynôme peut être représenté par une LLC. Dire comment. Ecrire les algorithmes suivants:
- calcul du polynôme en un point x donné.
- dérivé d'un polynôme.
- somme de deux polynômes.
- produit de deux polynômes.
Est-il préférable de représenter un polynôme par un tableau ou par une LLC ? Expliquez
you92cef
2012-12-20, 13:26
un polynôme peut être représenté par une llc. Dire comment. Ecrire les algorithmes suivants:
- calcul du polynôme en un point x donné.
- dérivé d'un polynôme.
- somme de deux polynômes.
- produit de deux polynômes.
est-il préférable de représenter un polynôme par un tableau ou par une llc ? Expliquez
للاسف اخي لا يمكنني مساعدتك لاننا لم نتطرق بعد لهذه الدروس
شكرا
tahar1974
2012-12-20, 21:30
ECRIRE L’ALORITHME QUI CALCULE LA SOMME SUIVANTE :
(S=1+X1 /1 !_2 !/X2+X3 / 3 !_4 !/X4 .........N termes,(N entier et X rée.
et merci merci merci
you92cef
2012-12-21, 00:39
ECRIRE L’ALORITHME QUI CALCULE LA SOMME SUIVANTE :
(S=1+X1 /1 !_2 !/X2+X3 / 3 !_4 !/X4 .........N termes,(N entier et X rée.
et merci merci merci
iهل تقصد
s:=1+x^1/1!+x²/2!+x^3/3!+........+x^n/n!
لا اظن انها صعبة
يكفي فقط اعمل برنامج لقرائة n وx
نقوم بعمل دالة
for
التي تقوم بحساب
x اس ...
ثم تقوم بحساب
..... ناظمي
تقوم بالقسمة
الناتج تضيفه لs
you92cef
2012-12-21, 00:42
اعتذر عن الاجابة عن باقي تمارين الاعظاء نظرا لقلة المبرمجين في هذه الصفحة وعدم وجود جدية لدى الاعظاء وعدم سعيهم لتطوير مستواهم البرمجي
اتقدم بشكري لكل من ساهم في هذا المضوع في انتظار مشاركة المزيد من المبرمجين حتى نقدم السماعدة لمن يحتاجها اما اذا استمر الوضع هكذا فاعذروني قد اضظر لغلق الموضوع وعدم الرد على طلبات الاعظاء
شكرا للجميع
عمار ابن غارداية
2012-12-21, 23:51
اتمنى أن أكون بالمستوى الذي يمنحني مساعدة أي طالب
أرجو منك يا أخ يوسف أن تترك لي التمارين البسيطة أفتحها للطلاب
وبااركالله فيك على المجهود وتقديم الممساعدة
you92cef
2012-12-22, 10:47
تمارين لرفع المستوى
*-* ارجوا برمجتها بالباسكال *-*
exo supp
ex01
ercire un programe pascal qui lire un nombre est qu'il affiche la somme de les chiffre de nombre
ex 1142
alors il afiiche1+1+4+2=8
ex02
ecrire un program pascal qui lire un nombre possitive (n)
une opperation mathematique
une nombre m
est il affiche tout les m cas possible*-* s'il existe*-* de avoir le nombre n a partir de l'opperation mathematique
ex
si n=9
l'opperation math est la somme
m=50
alors il affiche
0+9=9
8+1=9
7+2=9
6+3=9
5+4=9
esl s'arrete /-* il affiche que 5 nombre pas 50*-*
il n'affiche pas
4+5=9*-* repétition*-*
essayer d'avoir le programe avec meme les nombre real*-* possitive et negative avec ou sans virgule*-*l et avec des fonction comme factorielle -- exp--ln--log ext
ex03
ecrire un programme pascal qui crypter un mot ou un phrase avec le principe de decalage
ex
si le mot a crypter est abou avec declage de 2
alors il affiche
cdqw
ecrire un autre programme qui decrypter un mot ou un phrase
ex
si le mot a decrypter est cdqw avec une decalage de 2 alors il affiche abou
أبو عبد الرحمن 87
2012-12-22, 16:53
program ex1;
var a,b,c,d,e,f,g:integer;
begin
readln(a);
f:=a div 10000 mod 10;
b:=a div 1000 mod 10;
c:=a div 100 mod 10;
d:=a div 10 mod 10;
e:=a mod 10;
g:=b+c+d+e+f;
writeln(g);
readln;
end.
ألف شكر لك أخي يوسف على مجهودك
جزاك الله كل خير
you92cef
2012-12-22, 18:01
program ex1;
var a,b,c,d,e,f,g:integer;
begin
readln(a);
f:=a div 10000 mod 10;
b:=a div 1000 mod 10;
c:=a div 100 mod 10;
d:=a div 10 mod 10;
e:=a mod 10;
g:=b+c+d+e+f;
writeln(g);
readln;
end.
ألف شكر لك أخي يوسف على مجهودك
جزاك الله كل خير
البرنامج ناقص وغير كامل
جرب بروقة وقلم ومن بعدها انقل افكارك الى الباسكال
you92cef
2012-12-22, 18:06
http://www.gulfup.com/?8yXItK
صورة توضيحة للاخطاء
خليل صلاح
2012-12-22, 21:25
Un polynôme peut être représenté par une LLC. Dire comment. Ecrire les algorithmes suivants:
- calcul du polynôme en un point x donné.
- dérivé d'un polynôme.
- somme de deux polynômes.
- produit de deux polynômes.
Est-il préférable de représenter un polynôme par un tableau ou par une LLC ? Expliquez
On peut représenté le polynome par une liste chainée ...Il doit être d'ecrire une structure avec 3 champs
le premiers champ contient le coéficient , et le deuziéme contient le degré , et un pointeur
ex
3x² +2x
est représenté 3|2|p----->2|1|NULL
ces algorithmes ne sont pas compliqué ....
calcul dans un point , par une boucle tant que on peut résoudre cette algorithmes et le même pour les autres
si l'exercice n'est pas clair pour vous ...Je peut créé une solution .
أبو عبد الرحمن 87
2012-12-24, 14:02
http://www.gulfup.com/?8yxitk
صورة توضيحة للاخطاء
كل الطرق التي وضعتها توقنعي في نفس المشكل
لو ممكن تقدم لي توجيه حتى أعرف كيف أصنع البرنامج الصحيح.
خديجة حنان
2012-12-24, 18:04
السلام عليكم اريد مساعدة في حل هدا التمرين (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 .
عمار ابن غارداية
2012-12-25, 02:28
السلام عليكم اريد مساعدة في حل هدا التمرين (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 .
لم أفهم السؤال ان امكنك بعض الشرح
خديجة حنان
2012-12-25, 08:07
لم أفهم السؤال ان امكنك بعض الشرح
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
AKKAINMOH
2012-12-25, 11:27
السلام عليكم اريد مساعدة في حل هدا التمرين
faire le multiplication de deux nombre entier positif en utilisant la division entière
عمار ابن غارداية
2012-12-25, 13:55
سلام الحل عادي على ام اظن:1:
السلام عليكم اريد مساعدة في حل هدا التمرين
faire le multiplication de deux nombre entier positif en utilisant la division entière
algorithme multiplication
var a,b,c : Entiér;
debut
écrire(" donner la valeur de a="(
lire(a)
écrire("donner la valeur de b = ")
lire(b)
c=a*b;
écrire("le multiplication =,c)
fin
عمار ابن غارداية
2012-12-25, 13:59
Salam Youcef aid me for the Exercice
Exercice 25:
1. Elaborer et exécuter un programme pour l’algorithme de l’exercice précédent, avec l’insertion d’un compteur (des compteurs) dans l’endroit (les endroits) approprié(s) pour le calcul du nombre de comparaisons de la clé, ceci sur 20 tableaux aléatoires de tailles 1000, 1500, 2000, 2500,…, 9000,9500.
2. Analyser les données résultats obtenues pour former une hypothèse concernant l’efficacité de l’algorithme dans le cas moyen.
3. Estimer le nombre de comparaisons de la clé effectuées pour un tableau de taille 10.000, généré aléatoirement, et trié par le même algorithme.
4. Reprendre les questions 1,2,3 en mesurant le temps d’exécution du programme en millisecondes.
عمار ابن غارداية
2012-12-25, 14:18
Salam Youcef aid me for the Exercice
Exercice 25:
1. Elaborer et exécuter un programme pour l’algorithme de l’exercice précédent, avec l’insertion d’un compteur (des compteurs) dans l’endroit (les endroits) approprié(s) pour le calcul du nombre de comparaisons de la clé, ceci sur 20 tableaux aléatoires de tailles 1000, 1500, 2000, 2500,…, 9000,9500.
2. Analyser les données résultats obtenues pour former une hypothèse concernant l’efficacité de l’algorithme dans le cas moyen.
3. Estimer le nombre de comparaisons de la clé effectuées pour un tableau de taille 10.000, généré aléatoirement, et trié par le même algorithme.
4. Reprendre les questions 1,2,3 en mesurant le temps d’exécution du programme en millisecondes.
AKKAINMOH
2012-12-26, 13:04
السلام عليكم اريد مساعدة في حل هدا التمرين
faire le multiplication de deux nombre entier positif en
utilisant la division entière
avec div
you92cef
2012-12-26, 16:13
كل الطرق التي وضعتها توقنعي في نفس المشكل
لو ممكن تقدم لي توجيه حتى أعرف كيف أصنع البرنامج الصحيح.
حاولي وضع ما لديك وما عليك القيام به ويتبقى في الطريق الذي تسلكينه وهو سهل
استعمل ورقة وقلم وانقل البرنامج وهدفه على ورقة وبعدها كل شيء سهل
you92cef
2012-12-26, 16:20
Salam Youcef aid me for the Exercice
Exercice 25:
1. Elaborer et exécuter un programme pour l’algorithme de l’exercice précédent, avec l’insertion d’un compteur (des compteurs) dans l’endroit (les endroits) approprié(s) pour le calcul du nombre de comparaisons de la clé, ceci sur 20 tableaux aléatoires de tailles 1000, 1500, 2000, 2500,…, 9000,9500.
2. Analyser les données résultats obtenues pour former une hypothèse concernant l’efficacité de l’algorithme dans le cas moyen.
3. Estimer le nombre de comparaisons de la clé effectuées pour un tableau de taille 10.000, généré aléatoirement, et trié par le même algorithme.
4. Reprendre les questions 1,2,3 en mesurant le temps d’exécution du programme en millisecondes.
من اين حصلت على هذه التمارين؟:confused::confused:
التمرين اول شيء ناقص
اين هو lالتمرين السابق؟
بخصوص التمرين فهو يتعلق بالالوغوريتم المتقدمة *-* les lago de recherche*-*
وهي طرق خاصة ومعقدة نوعا ما وتخصص خاص تدروسنه في الماستر
بخصوص التمرين هذا فحسب علمي فهو ليس بمستواكم لانه يتطلب زاد رياضي ومعرفة قوية ومتينة بالالغوريتم
you92cef
2012-12-26, 16:22
لم أفهم السؤال ان امكنك بعض الشرح
هذه تمارين خاصة بالسنة الثانية
للاسف لم نتطرق للبرمجة بlles liste
بعد
ولست لدي دراية كافية بلغة c
ارجوا ان تجد من يساعدك
you92cef
2012-12-26, 16:24
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
الامور نوعا ما صعبة لانها تحتاج الى معرفة قوية بطريقة عمل ual
tفهي نوعا ما معقدة وتدرسونه في السنوات القادمة لان برمجة عمليات حسابية*-* الاس -الضرب-الاقواس...*-* بهذه الطريقة صعب جدا
you92cef
2012-12-26, 16:27
السلام عليكم اريد مساعدة في حل هدا التمرين
faire le multiplication de deux nombre entier positif en utilisant la division entière
لم افهم السؤل:confused:
ممكن مثال
you92cef
2012-12-26, 17:05
سيتم وضع الحل الاول من تمارين رفع المستوى
نص التمرين:
نقوم ببرمجة برنامج بباسكال يقوم بقراءة عدد *-* مهما كان بفاصلة او بدون فاصلة *-*
ينتمي الى المجموعة N
او ينتمي الى المجموعة R
ويقوم بطباعة مجموع ارقام هذا العدد
مثال:
نقوم بادخال العدد 1144
فتكون النتيجة 10*-*1+1+4+4=10*-*
هذا هو نص البرنامج
program ex;
uses wincrt;
var i,n,s:Longint;
begin
s:=0;
read(n);
repeat
s:=n mod 10+s;
n:= n div 10;
until n<10;
if n<10 then s:=s+n;
writeln(s);
end.
ملاحظات: في التمرين قمنا باستعمال النوع
Longint لكي نسمح بقرائة عدد كبير ويعمل البرنامج بفعالية اكبر
للفهم اكثر انقل البرنامج وقم بادخال العدد التالي 999999
لاحظ النتيجة
الان قم بتغير الكلمة
Longint
ب
integer
وقم بادخال العدد السابق 999999
لاحظ النتيجة الان
يجب مراعات مجالات الاعداد لانها مهمة جدا *-* راجع الردود في الصفحة الرابعة من هذا الموضوع لفهم اكثر*-*
البرنامج كما قلنا ليس الهدف منه قرائة الاعداد التي تنتمي الى المجموعة
N
فقط
مثلا اذا اردت برمجة نفس البرنامج للمجموعة
R
فكيف يمكن برمجته من جديد؟
مثلا اقوم بادخال العدد 14.14
يجب عليه اظهار النتجة 10 *-*1+4+1+4=10*-*
المبدا في هذه الحالة هو تحويل العدد الذي ادخلناه الى عدد ينتمي الى المجموعة
N
من اجل هذا نقوم بتحويل العدد باستعمال
BOUCLE
مثلا نقوم بضرب العدد السابق في 10 فنحصل على 141.4
طالما ان العدد لا ينتمي الى المجموعة المطلوبة فنقوم برضبه مجددا في 10
حتي يصير 1414 والان يمكن بدا البرنامج
في حالة اذا كان العدد سالب فنقوم بتحويله الى عدد موجب ونقوم بنفس الخطوات الباقة مثلا
-14.14
نحوله الى
1414
ونقوم باظهار النتيجة
الان ارجوا برمجة التمرين كليا لكي يقوم باظهار النتيجة الصحيحة مهما كان العدد لذي ندخله حتى لو كان مثلا
999999999999999999999999999999999999
ويقوم باظهار النتيجة الصحيحة
حظا اوفر !
انتهت المحاضرة :D:1:
AKKAINMOH
2012-12-26, 17:34
لم افهم السؤل:confused:
ممكن مثال
c =a*b
c= a div (1divb
AKKAINMOH
2012-12-26, 17:52
السلام عليكم انشاء الله اخر طلب
écrire les fonction qui retournent
la tangente d'un réel
la factorielle d'un nombre
you92cef
2012-12-26, 19:07
السلام عليكم انشاء الله اخر طلب
écrire les fonction qui retournent
la tangente d'un réel
la factorielle d'un nombre
la somme des nombres premiers inférieur à un nombre donné N
le procédure qui permet de
la somme des nombres entiers positifs inférieur à un nombre donné N
حاول برمجتها بنفسك باستعمال ما لديم من دروس ومقررات
لا يمكنك تطوير مستواك اذا لم تبرمج
برمج بنفسك بما لديك
تابع هذا الموقع
http://www-ipst.u-strasbg.fr/pat/program/pascal.htm
اختار من اليسار الدروس التي تريدها
هناك امثلة محلولة ومشروحة
AKKAINMOH
2012-12-26, 19:37
حاول برمجتها بنفسك باستعمال ما لديم من دروس ومقررات
لا يمكنك تطوير مستواك اذا لم تبرمج
برمج بنفسك بما لديك
تابع هذا الموقع
http://www-ipst.u-strasbg.fr/pat/program/pascal.htm
اختار من اليسار الدروس التي تريدها
هناك امثلة محلولة ومشروحة
لقد برمجتها ولكن هناك اخطاء لم امفهمها
مثلا
!3=6
!8= 40320-
السلام عليكم مشاركة جديدة وارجو قبولي عضو بينكم وانا في السنة 1 رياضيات و الاعلام الالي واريد الاستفادة واريد مساعدتي في حل تماريني .
كتابة برنامج في الباسكال و الالغوريتم معادلة من الدرجة 2 و العاملي ارجو تقديم معلومات عن هده البرامج لاني لم ادرس الكثير لاني كنت غائبة ارجو المساعدة من فضلكم في اقرب وقت
you92cef
2012-12-26, 19:44
لقد برمجتها ولكن هناك اخطاء لم امفهمها
مثلا
!3=6
!8= 40320-
نعم حتى انا حصلت معي هذا المشكل
خاصة مع
8!:confused:
اما بخصوص
3!
فهي تساوي 6
3!=3*2*1
بعض الحلول النتجية عاملي يجب ان تكون تنتمي الى المجموعة R
مراعات المجالات
you92cef
2012-12-26, 19:49
لقد برمجتها ولكن هناك اخطاء لم امفهمها
مثلا
!3=6
!8= 40320-
8!=40320
يجب مراعات المجال واستعمال مجالات r
استعمال القيمة المظلقة قبل اظهار النتيجة
هناك مشاكل في الباسكال للاسف
you92cef
2012-12-26, 19:51
السلام عليكم مشاركة جديدة وارجو قبولي عضو بينكم وانا في السنة 1 رياضيات و الاعلام الالي واريد الاستفادة واريد مساعدتي في حل تماريني .
كتابة برنامج في الباسكال و الالغوريتم معادلة من الدرجة 2 و العاملي ارجو تقديم معلومات عن هده البرامج لاني لم ادرس الكثير لاني كنت غائبة ارجو المساعدة من فضلكم في اقرب وقت
راجع الردود السابقة والصفحات الاولى ففيها الحلول
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
هل هذا التحليل يطابق المطلوب؟ :rolleyes::rolleyes:
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
AKKAINMOH
2012-12-26, 22:18
السلام عليكم ميستطيع مساعدة
écrire les fonction qui retournent
la tangente d'un réel
la factorielle d'un nombre
فقط هتان
السلام عليكم ميستطيع مساعدة
é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;
السلام عليكم اريد مساعدة في حل هدا التمرين (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 .
هل هذا التحليل يطابق المطلوب؟ :rolleyes::rolleyes:
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
شكرا جزيلا على التمرين:19:
نظرا لأننا لا ندرس c في المعاهد، سأحاول أن أجد حلا باستعمال لغة باسكال بالاعتماد على المعطيات السالفة
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
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
هذه محاولة قد لا توافق المطلوب وتحتمل الكثير من التحسين لكن "هذاكة حد الجهيد:24::24::24::3: "
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.
السلام عليكم
الرجاء شرح مايلي :
le tri par comptage avec 3 tables
le tri par comptage avec 2 tables
أتمنى أن يكون الشرح بالتفصيل لأني لم أفهمهما بالاضافة الى الخوارزميات
وجزاكم الله كل خير
أيــــــــــن الردوود
الرجاء الرد في أقرب وقت ممكن
خديجة حنان
2012-12-31, 11:44
هذه محاولة قد لا توافق المطلوب وتحتمل الكثير من التحسين لكن "هذاكة حد الجهيد:24::24::24::3: "
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
مشكور على المحاولة
*=== (( ما يلفظ من قول إلا لديه رقيب عتيد )) ===*
likanram
2012-12-31, 18:52
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
you92cef
2012-12-31, 19:10
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.
you92cef
2012-12-31, 19:18
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é:
هذا موقع فيه الكثير من الدروس الخاصة بالاعلام الاللي
*-* ارجوا من الارادة عدم حذف الموقع لانه ليس اشهاري وهعو موقع تعليمي*-*
http://www.ac-nancy-metz.fr/eco-gestion/eric_crepin/algo/chap01/presentation.htm
للانتقال يكفي فقط تغير الارقام بعد
chap
في الرابط
http://www.ac-nancy-metz.fr/eco-gestion/eric_crepin/algo/chap02/presentation.htm
توجد فيه حتى دروس السنة الثانية
الموقع فيه خاصية
suivant -precedent
هاجر1991
2012-12-31, 20:38
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
you92cef
2012-12-31, 23:44
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
التمرين سهل
نقوم باستخراج المتتالية un
نقوم باستدعاء الدالة
for
ونقوم بحساب الحد الذي نريده
نقوم بعمل متغير ياخذ قيم المجموع
كل مرة نحسب الحد الجديد نضيفه للمجموع
you92cef
2013-01-01, 21:02
موقع خاص بالباسكال والالغوريتم مع شرح وامثلة
*-* الموقع فيه برنامج السنة الاولى اعلام الي مادة الاعلام الالي والخوارزميات*-*
http://www-ipst.u-strasbg.fr/pat/program/pascal.htm
يمكنكم اختيار الدروس من اليسار او استعمال خاصية
precedent-suivant
يمكن طباعة محتوى الموقع بالضغط بالزر اليمين للفارة واختيار خاصية الطبع
--------------------------------------------------------------------------------------------------------------------
الصفحة الرسمية لمؤلف الدروس تحتوي على العديد من المواقع والروابط*-* باللون الازرق*-* كل رابط يتيح امكانية معينة *-* هناك دروس اخرى خاصة بالاعلام الالي وخيارات كثيرة ويمكنك الانتقال الى دروس اخرى اذا احسنت استعمال الموقع*-*
http://www-ipst.u-strasbg.fr/pat/
--------------------------------------------------------------------------------------------------------------------
موقع خاص بالباسكال والخوارزميات يحتوي دروس السنة الاولى والثانية اعلام الي
http://www.ac-nancy-metz.fr/eco-gest...esentation.htm
يمكن اختيار الدروس على اليسار واستعمال خاصية
suivant-precedent
plan للانتقال او الرجوع
للانتقال الى دروس اخرى غير الرقم بعد
chap
في الموقع
مثلا في الرابط السابق اذا غيرنا الرقم 1 الى 2 بعد كلمة
chap
نحصل على دروس جديدة
مثال
http://www.ac-nancy-metz.fr/eco-gest...esentation.htm
------------------------------------------------------------------------------
تحميل برنامج
algobox
التعريف بالبرنامج
البرنامج يتيح كتابة الخورزميات وتشغيلها واظهار النتائج *-*يعنتي انت تكتب خوازمية وهو يقوم بتفعيل الخورازمية
البرنامج يوجد في خاصية التفعيل خطوة خطوة
execution pas a pas
وفيها يقوم بتشغيل الالغوريتم خطوة خطوة مع الشرح الذي يظهر في النافذة
لتحميل البرنامج من هنا
http://www.xm1math.net/algobox/download.html
فديو يوضح كيفية التعامل مع البرنامج
http://www.xm1math.net/algobox/demo.html
امثلة لخوارزميات
http://www.xm1math.net/algobox/gallerie.html
رابط الصفحة الرسمية للبرنامج لمزيد من المعلومات
http://www.xm1math.net/algobox/
ارجوا من الادارة عدم حذف الروابط لانها روابط تعليمية بالدرجة الاولى
هاجر1991
2013-01-01, 23:22
التمرين سهل
نقوم باستخراج المتتالية un
نقوم باستدعاء الدالة
for
ونقوم بحساب الحد الذي نريده
نقوم بعمل متغير ياخذ قيم المجموع
كل مرة نحسب الحد الجديد نضيفه للمجموع
ma3lich khoya taktabli algorithme psk siyitou fi turbo-pascal w makhdamlich
أبو عبد الرحمن 87
2013-01-02, 08:17
ma3lich khoya taktabli algorithme psk siyitou fi turbo-pascal w makhdamlich
program vds;
uses crt;
var i,n:integer;
var u,v,s,a:real;
begin
clrscr;
readln(n);
if n=0 then write('erreur')
else if n=1 then write ('U1=0 et S1=0')
else
begin
u:=0;
v:=9;
s:=9;
for i:=3 to n do
begin
a:=u;
u:=v;
v:=6*v-9*a;
s:=s+v;
end;
writeln('U',n,'= ',v,' et S',n,'= ',s);
end;
readln;
end.
يا خاوتي جاوبوني على سؤالي عندي قرن وانا نستنا
you92cef
2013-01-02, 12:59
يا خاوتي جاوبوني على سؤالي عندي قرن وانا نستنا
تم اعطاءك الالغوريتم برمجه بنفسك :confused:
ليس صعب
sun shin
2013-01-02, 18:46
السلام عليكم
اتمنى ان تساعدوني وذلك بكتابة algo لهذا التمرين لقد حاولت لكن دون جدوى
, acrire un algo demandant a l`utilisateur de saisir une valeur numerique positive n et affichant toutes les valeurs
n-1 ,n, .....2.1.0
و شكرااااااااااااااااا
marwa.dz
2013-01-02, 19:55
Une compagnie d'assurance automobile propose a ses clients quatre familles de tarifs
identifiables par une couleur, du moins au plus onereux : tarifs bleu, vert, orange et rouge. Le
tarif depend de la situation du conducteur :
• un conducteur de moins de 25 ans et titulaire du permis depuis moins de deux ans, se voit
attribuer le tarif rouge, si toutefois il n'a jamais ete responsable d'accident. Sinon, la
compagnie refuse de l'assurer.
• un conducteur de moins de 25 ans et titulaire du permis depuis plus de deux ans, ou de plus
de 25 ans mais titulaire du permis depuis moins de deux ans a le droit au tarif orange s'il n'a
jamais provoque d'accident, au tarif rouge pour un accident, sinon il est refuse.
• un conducteur de plus de 25 ans titulaire du permis depuis plus de deux ans beneficie du
tarif vert s'il n'est a l'origine d'aucun accident et du tarif orange pour un accident, du tarif
rouge pour deux accidents, et refuse au-dela
• De plus, pour encourager la fidelite des clients acceptes, la compagnie propose un contrat de
la couleur immediatement la plus avantageuse s'il est entre dans la maison depuis plus d'un an.
Ecrire l'algorithme puis le programme Pascal permettant de saisir les donnees necessaires
(sans controle de saisie) et de traiter ce probleme. Avant de se lancer a corps perdu dans cet
exercice, on pourra reflechir un peu et s'apercevoir qu'il est plus simple qu'il n'en a l'air (cela
s'appelle faire une analyse !)
fouiny 78
2013-01-02, 21:49
Système d'exploitation
SIMULATION D'ORDONNANCEMENT DE PROCESSUS
N processus sont en attente d'exécution sur un processeur. Les processus sont numérotés de 1 à N dans la file d'attente et une durée d'exécution est associée à chacun. On veut simuler ('exécution des processus en attente en utilisant les politiques d'ordonnancement vu dans le cours (FIFO, SJF et Round Robbin)
:Pour la technique Round Robbin, on fixe un quantum de temps élémentaire. Ecrire un programme en JAVA qui
• .Lit le nombre de processus, la durée d'exécution et le temps d'arrivé de chacun d'eux
• .Fixer la valeur du Quantum (Round Robbin)
• .Afficher les numéros de processus, ainsi que le temps d'attente et le temps de réponse au fur et à mesure de leur .achèvement
ارجو المساعدة ارجووووووووووووووووووووكم
lملاحظة: انا في السنة الثانيت اعلام الي
تم اعطاءك الالغوريتم برمجه بنفسك :confused:
ليس صعب
أخي أنا لم أطلب الخوارزمية بل طلبت شرح الطريقة
وشكـــــــــــــــراا
أبو عبد الرحمن 87
2013-01-03, 08:34
السلام عليكم
اتمنى ان تساعدوني وذلك بكتابة algo لهذا التمرين لقد حاولت لكن دون جدوى
, acrire un algo demandant a l`utilisateur de saisir une valeur numerique positive n et affichant toutes les valeurs
n-1 ,n, .....2.1.0
و شكرااااااااااااااااا
تفضل هذه المحاولة بالباسكل ان شاء الله تفيدك
program ef;
uses crt;
var a,c:integer;
begin
clrscr;
readln(a);
if a<0 then writeln('error') else
for c:=0 to a do
writeln(c);
readln;
end.
you92cef
2013-01-03, 13:58
أخي أنا لم أطلب الخوارزمية بل طلبت شرح الطريقة
وشكـــــــــــــــراا
مبدا
tri par comptage
هو تريب جدول او مصفوفة
من اجل هذا نحتاج الى قراءة جدول او مصفوفة
ثانيا نحتاج الى مقارنة القيم
فالقيمة الاولى للجدول نقارنها مع كل القيم الاخرى فاذا وجدنا قيمة اصغر منها نقوم بعمل تبديل بين القيم
permutation
وهكذا
ثم ناخذ القيمة الثانثة من الجدول
من الواضح اننا لا نحتاج الى ان نقارنها مع القيمة التي قبلها لانها اصغر منها نقارنها مع كل القيم واذا وجدنا قيمة اصغر منها ننقوم بعمل تبديل
اذا تلاحظ فيها هذا الالغوريتم فاننا نحتاج الى دالتين من نوع
for
الدالة الاولى تقوم بتثبيت قيمة الجدول التي نريد مقارنتها ونستعمل فيها المبدا التالي
for i:=1 to n-1
هذه الدالة تقوم باخذ قيمة الجدول فقط
نلاحظ اننا اخذنا
n-1
ولم ناخذ
n
iهذا نفمه من الدالة الثانثة
نلاحظ ان الدالة الثانية تنطلق من
i+1 to n
لماذا
لاننا لا نحتاج الى مقارنة قيمة
i
مع نفسها
فاذا كانت قيمة
i=3
n=10
فاننا نقارن القيمة الثالثة من الجدول مع القيم 4-5-6-7-8-9-10
من اجل هذا استعملنا
i+1
الدالة الاولى انتهت عند
n-1
والدالة الثانثة انتهت عند
n
لماذا؟
حتى نقارن بين القيم
فاذا انتهت قيمة الدالة الاولى عند
n
فان الدالة الاثنة لن تقوم بمقارنة قيمة
n
من اجل اجل هذا نجعل الدالة الاولى تنتهي عند
n-1
والتي تساوي 9
فالدالة الثانية تسمح بمقارنة القيمة 9 للجدول مع القيمة العاشرة
اذا كانت القيمة التاسعة اصغر من العشارة تبقي على نفس الترتيب واذا كانت اكبر تغير الترتيب
فتصبح القيمة التاسعة في المكان العاشرة والقيمة العاشرة في المكان التاسع
لفهم اكثر
سوف اعطيك اللغوريتم وارجوا ان تضعه في برنامج
اللغوريتم لديك الان قم ببرمجته
sun shin
2013-01-03, 16:21
شكرا لك جزاك الله كل خير و جعلها في ميزان حسناتك
هاجر1991
2013-01-03, 17:41
program vds;
uses crt;
var i,n:integer;
var u,v,s,a:real;
begin
clrscr;
readln(n);
if n=0 then write('erreur')
else if n=1 then write ('U1=0 et S1=0')
else
begin
u:=0;
v:=9;
s:=9;
for i:=3 to n do
begin
a:=u;
u:=v;
v:=6*v-9*a;
s:=s+v;
end;
writeln('U',n,'= ',v,' et S',n,'= ',s);
end;
readln;
end.
هل فتحنا هذا التمرين باستعمال la permittation
you92cef
2013-01-03, 18:26
هل فتحنا هذا التمرين باستعمال la permittation
لا
permutation
التبديل
هنا لا نحتاج الى تبديل المتغيرات
فقط قمنا بتعريف واعطاء قيم المتغيرات قمنا بساتدعاء الدالة
for
وضعنا العبارة العامة للمتتالية
وكل مرة نحسب الحد نضيفه للمجموع
انطلقنا من
i:=3
لاننا حسبنا القيم الاولى والثانية
في مثل هذه الحالات التي يكون لدينا عبارة مجموع علينا نا نعمل
initiation
*-*القيمة الاولية*-*
في المجموع نقوم باعطاء قيمة اولية 0*-*العنصر الحيادي للمجموع*-*
في الضرب نقوم باعطاء قيمة اولية 1*-*العنصر الحيادي للضرب*-*
you92cef
2013-01-03, 18:28
كتاب على النت يحتوي على تمارين في الباسكال مع حلولها
*-*sujet td avec solution*-*
ارجوا برمجة الخورازيميات بالباسكال لفهم اكثر
http://www.academia.edu/1906492/Algorithmique_et_Structures_de_Donnees_I
you92cef
2013-01-03, 18:38
سلسلة تمارين مع الحل لطلاب الاعلام الالي سنة ثانية
*-*sujet td avec correction*-*
http://www.academia.edu/1906505/Algorithmique_et_Structures_de_Donnees_II
مبدا
tri par comptage
هو تريب جدول او مصفوفة
من اجل هذا نحتاج الى قراءة جدول او مصفوفة
ثانيا نحتاج الى مقارنة القيم
فالقيمة الاولى للجدول نقارنها مع كل القيم الاخرى فاذا وجدنا قيمة اصغر منها نقوم بعمل تبديل بين القيم
permutation
وهكذا
ثم ناخذ القيمة الثانثة من الجدول
من الواضح اننا لا نحتاج الى ان نقارنها مع القيمة التي قبلها لانها اصغر منها نقارنها مع كل القيم واذا وجدنا قيمة اصغر منها ننقوم بعمل تبديل
اذا تلاحظ فيها هذا الالغوريتم فاننا نحتاج الى دالتين من نوع
for
الدالة الاولى تقوم بتثبيت قيمة الجدول التي نريد مقارنتها ونستعمل فيها المبدا التالي
for i:=1 to n-1
هذه الدالة تقوم باخذ قيمة الجدول فقط
نلاحظ اننا اخذنا
n-1
ولم ناخذ
n
iهذا نفمه من الدالة الثانثة
نلاحظ ان الدالة الثانية تنطلق من
i+1 to n
لماذا
لاننا لا نحتاج الى مقارنة قيمة
i
مع نفسها
فاذا كانت قيمة
i=3
n=10
فاننا نقارن القيمة الثالثة من الجدول مع القيم 4-5-6-7-8-9-10
من اجل هذا استعملنا
i+1
الدالة الاولى انتهت عند
n-1
والدالة الثانثة انتهت عند
n
لماذا؟
حتى نقارن بين القيم
فاذا انتهت قيمة الدالة الاولى عند
n
فان الدالة الاثنة لن تقوم بمقارنة قيمة
n
من اجل اجل هذا نجعل الدالة الاولى تنتهي عند
n-1
والتي تساوي 9
فالدالة الثانية تسمح بمقارنة القيمة 9 للجدول مع القيمة العاشرة
اذا كانت القيمة التاسعة اصغر من العشارة تبقي على نفس الترتيب واذا كانت اكبر تغير الترتيب
فتصبح القيمة التاسعة في المكان العاشرة والقيمة العاشرة في المكان التاسع
لفهم اكثر
سوف اعطيك اللغوريتم وارجوا ان تضعه في برنامج
اللغوريتم لديك الان قم ببرمجته
المعذرة
أليس هذا
Le tri par sélection?
الرجاء التثبت
-----------------------------------------------------------------------------------------
Le tri par sélection
Dans cet algorithme nous allons travailler sur un tableau de 10 entier.
Jeu d'essai
|52|10|1|25|62|3|8|55|3|22|
Principe :
Le tri par sélection consiste à chercher le plus petit élément du tableau pour le placer en 1er, puis de chercher le plus petit élement dans le reste et de le mettre en second, etc…
On stock dans la variable petit le 1er élément du tableau puis on reparcour le tableau en partant de l'indice en cours jusqu'à la fin pour chercher si un élement est plus petit que lui.
Si c'est le cas on va remplacer la valeur de la variable petit par la nouvelle valeur trouvé puis stocker dans la variable position à quelle position du tableau on l'a trouvé . La deuxieme boucle va nous permettre de mettre le plus petit élément trouvé à la bonne place et de décaler les autres élement.
Tournage
|52|10|1 |25|62|3 |8 |55|3 |23|
|1 |52|10|25|62|3 |8 |55|3 |23|
|1 |3 |52|10|25|3 |8 |55|3 |23|
|1 |3 |3 |52|10|25|62|8 |55|23|
|1 |3 |3 |8 |52|10|25|62|55|23|
|1 |3 |3 |8 |10|52|25|62|55|23|
|1 |3 |3 |8 |10|23|25|25|62|55|
|1 |3 |3 |8 |10|23|25|52|62|55|
|1 |3 |3 |8 |10|23|25|52|62|55|
|1 |3 |3 |8 |10|23|25|52|55|62|
أيــــــــــن الردوود
الرجاء الرد في أقرب وقت ممكن
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
أبو عبد الرحمن 87
2013-01-05, 09:04
S= 1+(x/1!)+(x²/2!)+(x*3/3!)+..........+(x*n/n!)w
* تعني اس
w لاتعني اي شيء
ما رأيك أخي يوسف في هذا الحل؟
PROGRAM FDS;
var b,n :integer;
var x,s,c,d:real;
begin
readln(n,x);
if n=1 then
s:=1
else for b:=1 to n do
s:=1;
b:=1;
c:=1;
begin
c:=c*b;
b:=b+1;
s:=exp(ln(b)*x)/c;
end;
writeln(s);
readln;
end.
marwa.dz
2013-01-06, 17:34
Ecrire un program (pascal) qui déclare et remplisse un tableau de 7 valeurs numériques en les
mettant toutes à zero
Ecrire un program (pascal) qui déclare et remplisse un tableau contenant les six voyelles de lalphabet
جهيدة جهودة
2013-01-07, 15:14
السلام عليكم
انا عندي مشكل code source d'un analyseur lexicale langage delphi
you92cef
2013-01-08, 14:24
S= 1+(x/1!)+(x²/2!)+(x*3/3!)+..........+(x*n/n!)w
* تعني اس
w لاتعني اي شيء
ما رأيك أخي يوسف في هذا الحل؟
PROGRAM FDS;
var b,n :integer;
var x,s,c,d:real;
begin
readln(n,x);
if n=1 then
s:=1
else for b:=1 to n do
s:=1;
b:=1;
c:=1;
begin
c:=c*b;
b:=b+1;
s:=exp(ln(b)*x)/c;
end;
writeln(s);
readln;
end.
ليس هو الحل المطلوب
يجب برمجة المطلوب كما هو
يعني تبرمج الدالة كما هي لا ان تغيرها وتدخل الاسية واللوغاريتم
+
لا تنسى
uses wincrt
نستعمل
var
مرة واحدة وليس مرتين
القيم الاولية
valeur initiatialisation
نضعها غالبا بعد
begin
الخاصة بالرنامج الرئيسي ما عدا في حالات خاصة
حاول استعمال التعلقات
commentaire
*-*لديهم نقطة في الامتحان او الفرض*-*
جرب ان تبرمج المطلوب
نقوم بقرائة
x
و
n
نقوم باستدعاء الدالة
for
نقوم بحساب
x**i
** تعني الاس
هذه القيمة نضيفها ل
s
بعدها نقوم بعرض
s
*-* لا تغير ابدا الدالة التي طلب منك برمجتها*-*
you92cef
2013-01-08, 14:26
السلام عليكم
انا عندي مشكل code source d'un analyseur lexicale langage delphi
للاسف ليس لدي دراية عن الملطوب او لغة البرمجة
اسف
قد يساعدك بعض الطلبة
you92cef
2013-01-08, 14:27
ecrire un program (pascal) qui déclare et remplisse un tableau de 7 valeurs numériques en les
mettant toutes à zero
ecrire un program (pascal) qui déclare et remplisse un tableau contenant les six voyelles de lalphabet
حاول*-*ي*-* برمجتها بنفسك*-*ي*-*
ضع*-*ي*-* محاولتك او الالغوريتم
you92cef
2013-01-08, 14:29
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
لذلبك لم افهم المطلوب جيدا
ارجوا ان تستمر في مساعدة الطلبة لانني سوف اغيب بسبب الامتحانات
you92cef
2013-01-08, 14:31
ارجوا قرءاة الردود السابقة ففيها مواقع مفيدة ومهمة ودروس وتمارين مشابهة لتمارين الامتحانات والفروض
سيتم وضع روابط التحميل قريبا لمن يجد صعوبة في تحميل الملفات
++++
سيتم التغيب عن الرد بسبب الامتحانات شكرا
AKKAINMOH
2013-01-09, 19:16
السلام عليكم aide moi,svp
écrire le programme pascal qui lit une phrase caractère par caractèreet l’affiche dans le sens inverse (de la fin au début) .la fin de la phrase est détecté par le caractère
السلام عليكم ورحمة الله تعالى وبركاته
أنا عندي مشكلة في طباعة l'execution تاع لبروقرام
ارجو افادتي بطريقة
you92cef
2013-01-10, 19:23
السلام عليكم ورحمة الله تعالى وبركاته
أنا عندي مشكلة في طباعة l'execution تاع لبروقرام
ارجو افادتي بطريقة
قد تكون*-*ي*-* نسيت استعمال الدالة
wincrt
لان عدم كتابتها يعني لا يكون هناك اظهار للنتائج
you92cef
2013-01-10, 19:26
السلام عليكم aide moi,svp
écrire le programme pascal qui lit une phrase caractère par caractèreet l’affiche dans le sens inverse (de la fin au début) .la fin de la phrase est détecté par le caractère
هناك العديد من الطرق لبرمجتها
يمكن استعمال
les tableau+avec des boucles
او استعمال عبارات
جرب*-*ي*-* برمجتها بنفسك
++++++
الالغوريتم موجود في *-*سلسلة التمارين في بداية سلسلة التمارين *-*td01 *-*السابقة *-*الرابطين في الاعلى*-*
النتائج تظهر لكن انا اريد طباعتها استعملت impr écran لكن لم تنفع معي
العلم طريقي
2013-01-12, 13:41
السلام عليكم
ارجو منكم المساعدة
algorithme lire 10 nombres entier aléatoire
نستعملو random مي ماعرفتش كيفاش ندير
شكرا للجميع
svp aidez moi!!!
j'avais un Tp en turbo pascal sur les boucles
voilà l'exo :
Soit la suite u definie par u1 = 0, u2 = 9 et la relation de recurrence : Pour tout n et n entier, un+2 = 6un+1 - 9un.
On pose pour tout n 2 N, Sn la somme des n premiers termes de la suite.
-Ecrire un programme en Turbo-Pascal qui demande la valeur de n puis qui calcule et affiche un.
-Completer le programme precedent, pour qu'il calcule et affiche Sn.
corrigez moi ce programme , est ce qu'il est juste ou non ??
Program suit1;
Uses crt;
Var i,n: Integer; u,v,s,aux:Real;
Begin
clrscr;
Writeln('Entrer n>0');Readln(n);
if (n=0) then writeln ('erreur')
Else
if (n=1) then Writeln ('u1=0 et s1=0')
Else
Begin
u:= 0 ; v:= 9 ; s:= 9;
For i := 3 to n Do
Begin
aux := u; u:= v ; v:= 6*v-9*aux;
s:= s+v;
end;
writeln ('u-',n,'=',v,'et s-',n,'=',s);
end;
readln;
end.
algeriano9354
2013-01-12, 17:40
svp aidez moi!!!
j'avais un Tp en turbo pascal sur les boucles
voilà l'exo :
Soit la suite u definie par u1 = 0, u2 = 9 et la relation de recurrence : Pour tout n et n entier, un+2 = 6un+1 - 9un.
On pose pour tout n 2 N, Sn la somme des n premiers termes de la suite.
1-Ecrire un programme en Turbo-Pascal qui demande la valeur de n puis qui calcule et ache un.
2-Completer le programme precedent, pour qu'il calcule et ache Sn.
أبو عبد الرحمن 87
2013-01-13, 06:39
corrigez moi ce programme , est ce qu'il est juste ou non ??
[/LEFT]
Program suit1;
Uses crt;
Var i,n: Integer; u,v,s,aux:Real;
Begin
clrscr;
Writeln('Entrer n>0');Readln(n);
if (n=0) then writeln ('erreur')
Else
if (n=1) then Writeln ('u1=0 et s1=0')
Else
Begin
u:= 0 ; v:= 9 ; s:= 9;
For i := 3 to n Do
Begin
aux := u; u:= v ; v:= 6*v-9*aux;
s:= s+v;
end;
writeln ('u-',n,'=',v,'et s-',n,'=',s);
end;
readln;
end.
هذا البرنامج صحيح
http://www11.0zz0.com/2013/01/13/05/999140551.jpg
sun shin
2013-01-13, 21:34
السلام عليكم اتمنى منكم المساعدة في هذا التمرين
Ecrire un programme qui demande à l’utilisateur de saisir une heure de début (heures + minutes) et une heure de fin (heures + minutes aussi). Ce programme doit ensuite calculer en heures + minutes le temps écoulé entre l’heure de début et l’heure de fin. Si l’utilisateur saisit 10h30 et 12h15, le programme doit lui afficher que le temps écoulé entre l’heure de début et celle de fin est 1h45. On suppose que les deux heures se trouvent dans la même journée, si celle de début se trouve après celle de fin, un message d’erreur doit s’afficher. Lors la saisie des heures, séparez les heures des minutes en demandant à l’utilisateur de saisir :
heures de début
minutes de début
heures de fin
minutes de fin
و جزاكم الله كل خير
seddik47
2013-01-14, 00:54
Montrer que si f 2 O(g), alors O(f) O(g), et O(max(f; g)) = O(g)
شكرا على الشرح
اسف لم ادرك المطلوب جيدا لاننا لم نتطرق لدرس
tri par comptage
وانما تطرقنا لدرس
tri par selection
لذلبك لم افهم المطلوب جيدا
ارجوا ان تستمر في مساعدة الطلبة لانني سوف اغيب بسبب الامتحانات
جزاك الله بفضله ورحمته وجعلها لك عنده ذخرا،
وربي يوفّقك ويجيبك في الصواب
لست دائم التواجد والانترنات ديما طايحة ولكن ساحاول قدر المستطاع
السلام عليكم
ارجو منكم المساعدة
algorithme lire 10 nombres entier aléatoire
نستعملو random مي ماعرفتش كيفاش ندير
شكرا للجميع
Avec un programme Pascal
program remplir;
uses wincrt;
var
i : integer;
t : array[1..10] of integer ;
begin
randomize; (* pour initialiser le générateur des valeurs aléatoire*)
(*sans “randomize” la liste des valeurs sera la même à chaque exécution*)
(*pour voir la différence essayez avec et sans “randomize” pour voir la différence*)
for i := 1 to 10 do
t[i]:=random(100);
(*“random(x)” renvoie une valeur de type entier entre 1 et x-1*)
(* “random” sans paramètre renvoie un réel entre 0 et 1*)
end.
السلام عليكم اتمنى منكم المساعدة في هذا التمرين
Ecrire un programme qui demande à l’utilisateur de saisir une heure de début (heures + minutes) et une heure de fin (heures + minutes aussi). Ce programme doit ensuite calculer en heures + minutes le temps écoulé entre l’heure de début et l’heure de fin. Si l’utilisateur saisit 10h30 et 12h15, le programme doit lui afficher que le temps écoulé entre l’heure de début et celle de fin est 1h45. On suppose que les deux heures se trouvent dans la même journée, si celle de début se trouve après celle de fin, un message d’erreur doit s’afficher. Lors la saisie des heures, séparez les heures des minutes en demandant à l’utilisateur de saisir :
heures de début
minutes de début
heures de fin
minutes de fin
و جزاكم الله كل خير
الرجاء مراجعة هذه الردود فقد ينفعك في شيء
http://www.djelfa.info/vb/showpost.php?p=12177680&postcount=29
http://www.djelfa.info/vb/showpost.php?p=12177680&postcount=21
you92cef
2013-01-18, 10:32
الرجاء مراجعة الموقعين السابقين الذين يحتويان سلسلة من التمارين مع حلولها ففيها تمارين مفيدة جدا وقيمة وارجوا برمجتها بالباسكال لاستعابها
http://elearn.univ-tlemcen.dz/pluginfile.php/3116/course/section/1374/73088_496085123765036_172218231_n.jpg
Ecrire un algorithme qui recherche un caractère dans un vecteur V de N=200 éléments dont ces élément sont de types caractères et indique combien de fois apparait il et a quel le position apparait il ?
S
O
U
R
I
S
…
Exemple : S il apparait 2 fois a la position : 1 ;6
you92cef
2013-01-24, 10:28
Ecrire un algorithme qui recherche un caractère dans un vecteur V de N=200 éléments dont ces élément sont de types caractères et indique combien de fois apparait il et a quel le position apparait il ?
S
O
U
R
I
S
…
Exemple : S il apparait 2 fois a la position : 1 ;6
البرنامج التالي يقوم بقرائة 200 حرف
يمكن تعديله وجعله يملء الجدول بحروف عشوائية
program ex;
uses wincrt;
type tableau=array[1..200] of char;
type tab=array[1..200]of integer;
var i,j:integer;
t:tableau;
ch:char;
p:tab;
begin
j:=0;
for i:=1 to 200 do begin
writeln('Entrez le carrecter n',i,':');
readln(t[i]);
end;
writeln('read le carectere que vous vouler chercher');
read(ch);
for i:=1 to 200 do begin
if t[i]= ch then begin
j:=j+1;
p[i]:=i;
end;
end;
writeln('le cherecter',ch,'aparaitre a les positions suivant:');
for i:= 1 to 200 do begin
if p[i]<>0 then
writeln(p[i]);
end;
writeln(ch,' figure ',j,' fois');
end.
عودة امل
2013-01-24, 12:37
ممكن تعطولنا السر لحل الألقوريثم........merciiiii
you92cef
2013-01-24, 13:28
عن اي الغوريتم ؟
ام بصفة عامة ؟
بصفة عامة كتابة الالغوريتمات ليس من تخصص المبرمج *-* ما عدى الالغوريتمات التي تمس ميدانه*-*
هناك متخصصين يكون لديهم ميول رياضية غالبا يقومون بكتابة الالغوريتمات *-*خاصة التي تتعلق بالرياضيات*-*
المبرمج يقوم بترجمة الالغوريتمات الى برنامج *-* لانه مثلا المبرمج يدرك الدوال التي يتعامل بها وادوات البرمجة
ex: if ,while,for,repeat,integer,array,length
بينما من يكتب الالغوريتم ليس لديه دراية كبيرة بهذه الاشياء
فالمشكل هنا يمكل في الحصول غلى الالغوريتم الصحيح والفعال بينما ترجمته تتعلمها مع الوقت والمحاولات
1- يجب احترام المجالات
integer,real ,string,char
لانه مثلا اذا كان المتغيران
x,y
من نوع
integer
بحيث
x:=2
y:=1
فان
x+y:=3
بينما
لو كانا من
string
بحيث
x:=2
y:=1
فان
x+y:=21
y+x:=12
فالفرق يمكن في النتيجة وفي الترتيب
البرنامج يوضح الفرق
program ex;
uses wincrt;
var x,y:char;
begin
readln(x);
readln(y);
writeln(x+y);
writeln(y+x);
end.
2-احترام البداية والنهاية
مثلا
begin
end;
يجب ان نضعها في اماكنها الصحيحة
كذلك استعمال بعض الدوال كحال
for,while,repeat,length,case,goto
يجب حسن استعمالها
3-اختصار البرنامج قدر الامكان والعمل على تطوير الممستوى دوريا
4-استعمال التعلقات
les commentaire*-*explicatif ou principale qui figure dans le program*-*
شكرا
عودة امل
2013-01-24, 13:41
مشكوووووور مشكلتي تكمن في اختيار البوكل و العلاقاث اللي لازم نسثعملهم
you92cef
2013-01-24, 18:33
مشكوووووور مشكلتي تكمن في اختيار البوكل و العلاقاث اللي لازم نسثعملهم
بخصوص البوكل
1-هناك بوكل
for
هذه البوكل تقوم باعادة الامر الى غاية الحد الاقصى لها
مثلا
for i:=1 to 10 do
فهذا يعني انها تقوم بتكرار كل العمليات التي تلي ابدا
do
يمكن استعمال
begin-----end;
اذا كانت عدد العمليات التي نريد القيام بها يفوق 1
هذه الدالة تقوم اتوماتيكيا عند الانتهاء من كل العمليات باضافة 1 الى المتغير الذي هو في هذه الحالة
i*-* incrimentation de i*-*
فاذا كانت بعد كلمة ابدا 5 عمليات للقيام بها فمجرد الانتهاء من هته العمليات تصير قيمة المتغير القيمة السابقة +1
في هذه الدالة يجب ان يكون المتغير من مجموعة الاعداد الطبيعية
i appartian t a l'ensemble z
عيوب هذه الدالة
1-المتغير يجب ان يكون من مجموعة الاعداد الطبيعية
2-يجب ان نعلم مسبقا المجال الذي ياخذه المغتير في الاحالة السابقة فان
domain i = 1,2,3,4,5,6,7,8,9,10
3- الدالة تسمح بالقيام ببعض العمليات بدون اي فائدة منها
مثلا البرنامج التالي
نريد ان نعرف اول قاسم للعدد 2 من المجال 5-200
for i:=5 to 200 do
if i mod 2 =0 then writeln (i);
نلاحظ في هذه الحالة انا الدالة سوف تقوم بالتالي
1-بالرغم من اننا نريد اظهار القاسم الاول في المجال السابق الى اننا سوف نحصل على كل قواسم العدد 2 التي تنتمي الى المجال السابق *-* والذي ليس المطلوب *-*
2-بالرغم من اننا نحصل على اول قاسم في العملية 2 الى ان الدالة سوف تستمر في العمل الى غاية القيمة200*-*تكرار العمليا من 6 الى 200 ليس له اي فائدة *-*
3-تاخر في الوقت *-* لان الدالة
for
تحتاج الى وقت كبير مقارنة بالدوال الاخرى *-*
اذن هنا المشكل يكمن في اختيار الدالة
ملاحظة:
for i:=1 to 1 do
يعني ان الدالة سوف تقوم بالقيام بعملية واحدة والتي يكون فيها قيمة المتغير تساوي 1
for i:=10 downto 1 do
نفس المبدا السابق ولكن هذه المرة تنازليا
في كل مرة يتم انقاص واحدة من القيمة السابقة للمتغير
for i:=-3 to 5 do
تعمل بشكل عادي بالرغم من القيمة السابقة لان
3appartient a z
في هذه الدالة ليس هناك
test avant ou apres chaque etape
----------------------------------------------
you92cef
2013-01-24, 18:52
الدالة
repeat
تقوم بتكرار العمليات حتى تحقق شرط التوقف
في هذه الحالة لا نستعمل
begin ..... end;
لان كل الامور والعمليات الموجودة بين
repeat ..... until
سوف نقوم بتفعليها في كل مرة
الدالة هذه مقارنة بالدالة السابقة فهي اسرع منها في العمل *-* اذا كان لدينا نفس البرنامج وقمنا بكتابته بالدالة السابقة وهذه الدالة فان البرنامج الثاني يكون اسرع من البرنامج الاول *-*
فهي هذه الدالة ليس هناك
incremantation*-* +1*-*
ou decrimentation *-* -1 *-*
واذا احتجنا الى هذه العمليات نكتبهمداخل الدالة
يمكن ان تكون القيمة الني نضيف اليها او ننقص منها تنتمي الى
R
I APPARTIENT A R
يعني
يمكن كتابة داخل هذه الدالة
i:=i+0.2;
وهذا مقبول ففي كل مرة تعمل هذه الدالة يتم اضافة 0.2 في قيمة المتغير
3-في هذه الدالة لدينا
test apres chaque iteration
هذا يعني انه حتى لو ادخلنا قيمة لا تحقق شرط التوقف فان الدالة سوف تعمل
يعني هذه الدالة تعمل على الاقل مرة واحدة ولا يمكن ابدا الا تعمل هذه الدالة *-* يعني اذا كانت لدينا هذه الدالة في برنامج فهي على الاقل سوف تعمل مرة واحدة فهنا يجب الحذر من استعمالها لانها قد تعمل حتى وان كان عملها لغير ما برمجة له
مثال
i:=0.5
repeat
writeln(i);
i:= i+0.2
y:=sqr(i);
writeln(y);
until i<0.3
نقوم بفهم كيفية عمل البرنامج
في الحالة 1
i:=0.5
المفروض البرنامج لا يشتغل
يتم اظهار 0.5
i:=0.7
يتم اظهار0.7*0.7
نقوم بعمل
test
نتوقف
بالرغم من ان القيمة الاولية للمتغير حققت شرط التوقف الا ان البرنامج اشتغل *-* عيب الدالة *-*
you92cef
2013-01-24, 19:07
الدالة
while
هذه الدالة تشبة الدالة السابقة ولكن الفرق بينهما انها تقوم بعمل
test avant chaque iteration
هذه الدالة هي اسرع الدوال الثلاث
في حالة كانت لدينا اكثر من عملية نستعمل
begin ... end;
لتحويل دالة من نوع
repeat
الى دالة من نوع
while
نقوم باخذ الشرط الذي يوجد بعد
until
ونقوم بعمل
negation
العبارة التي نحصل عليها نضعها بعد
while
بخصوص
negation
فمثلما كنتم تدرسنوها في الجبر نفس الامر
اذا كانت لدينا اكبر تصير اصغر او تساوي
او تصير و
و تصير او
يساوي تصير لا يساوي
الخ ....
هذه الدالة يكن الا تشتغل اطلاقا
في هذه الدالة ليس هناك
incrementation ou decrimentation
اذا احتجنا اليهم نضعهم داخل الدالة
مثال
i:=0.5
while i<=0.3 do begin
writeln(i);
i:=i+0.2
y:=sqr(i)
writeln(y);
end;
في الحالة الاولى لدينا 0.5=<0.3
خاطئة فالدالة لا تعمل اطلاق
اذا كانت
i:=0.2
الدالة تعمل مرة واحدة فقط
لانها عند انتهاء العملية الاولى تكون قيمة المتغير :=0.4 التي لا تحقق لشرط
لتحوبل دالة من نوع
while
الى دالة من نوع
repeat
نقوم باخذ الشرط الموجود بعد
while
نقوم بعمل
negation
والعبارة التي حصلنا عليها نقوم بوضعها بعد
until
بدون نسيان اننا لا نستعمل
begin .... end;
في الدالة
repeat
الى في الحالات التي نحتاجها
*-* لا نستعمل
begin .... end;
في الدالة
repeat
للقيام بكل العميلات لان هذه الدالة تقوم بعمل كل الاشياء الموجودة بين
repeat .... until
مهما كان عدد
بعكس الدالتين السابقتين التي اذا كان لدينا اكثر من امر علينا القيام به في كل مرة فيجب استخدام
begin .. end;
في حالة لم استعاب اي شيء اطرح*-*ي*-* الاسئلة
شكرا للجميع
عودة امل
2013-01-25, 18:03
ماشاءالله عليك شككككررررااا.............
لكن مفهمتش هذه:
for i:=-3 to 5 do
تعمل بشكل عادي بالرغم من القيمة السابقة لان
3appartient a z
في هذه الدالة ليس هناك
test avant ou apres chaque etape
you92cef
2013-01-25, 18:55
ماشاءالله عليك شككككررررااا.............
لكن مفهمتش هذه:
for i:=-3 to 5 do
تعمل بشكل عادي بالرغم من القيمة السابقة لان
3appartient a z
في هذه الدالة ليس هناك
test avant ou apres chaque etape
هذا يعني حتى لو كانت القيم لتي تاخذها
i
سالبة فان الدالة
for
تعمل بشكل عادي
مثال
program ex;
uses wincrt;
var i: integer;
begin
for i:=-3 to 5 do
writeln(i);
end.
بخصوص هذه الدالة فهي لا تحتاج الى ان نعمل مقارنة
pas de test dans ce cas
لان ترجمتها الى اللغة العربية هي
من اجل س:=1 حتى 10 افعل
يعني لا توجد عبارة اذا او لطالما
بينا في الدالتين الاخرتين فترجمتها هي
كرر العمليات حتى
والدالة الثالثة
طالما*-* او بما ان*-* افعل
يعني في الدالتين الثانية والثالثة هناك شرط لعملهما بعكس الدالة الاولى
عودة امل
2013-01-26, 09:35
نعممم شكرااااا جزيلا .........درك نزيد نفهم مليح ونعاود نرجع انشاء الله هههه
يعطيكم الصحة
انا مفهمتش هادي لاه نكتبوها ؟
حنا منديروهاش خلاص
uses wincrt;
vBulletin® v3.8.10 Release Candidate 2, Copyright ©2000-2025, TranZ by Almuhajir