المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : طلب تمرين مهم باسكال سنة اولى من فضلكم مساعدة


abderahim-dz
2014-01-09, 19:53
je veux la solution ji essayer en bas mais ca marche pas!!



Ecrire un algorithme qui lit une suite d’entiers terminée par 0 et qui affiche la longueur de la plus longue série d’entiers consécutifs égaux qu’elle contenait.

Exemples :
* Pour la suite (1, 2, 2, 4, 4 ,4 ,9 ,9 ,4 ,11 ,11 ,11 ,0): la longueur maximale est 3.
* Pour la suite (5, 5, 4, 9, 91, 4, 10, 0): la longueur maximale est 2.
* Pour la suite (6, 2, 1, 4, 1, 4,0): la longueur maximale est 1.


program ex;
uses wincrt;
var i,j,val,last_val:integer;

begin
writeln('Entrer les elements de la serie:');
readln(val);
if val<>0 then begin j:=1; last_val:=val; end;
repeat
if val=last_val then i:=i+1
else
begin
last_val:=val;
if j<i then j:=i;
i:=0;
end;
if j<i then j:=i;
readln(val);
until val=0;

writeln('la longugeur maximale est ',j);
readln;
end.

شوقي الجزائري
2014-01-29, 16:03
المشكل في البرنامج اذا بدأت البرقم المكرر في بداية السلسلة مثل 1.1.1.1.5.2.4 هنا تكون النتسجة صحيحة 4 ولكن اذا لم تبدأ بالعدد الاكثر تكرارا ستكون النتيجة ناقص 1 مثل 2.1.1.1.1.3.55.4 هنا النتيجة 3 حسب البرنامج والصحيح هو 4

راجع اين يكمن الخطأ في التعداد اخي..

abderahim-dz
2014-01-29, 21:46
نعم هناك خلل وطرحت الموضوع لاجاده ،، هل تمكنت من عمل البرنامج الصحيح ؟؟ ++ ممكن نعرف اي سنة شكرا

انا سنة اولى

شوقي الجزائري
2014-02-03, 00:43
انا ادرس تقني سامي برمجة قواعة بيانات مازلت في السداسي الاول...

a-s-m-a
2014-02-03, 17:55
لمشكل في البرنامج اذا بدأت البرقم المكرر في بداية السلسلة مثل 1.1.1.1.5.2.4 هنا تكون النتسجة صحيحة 4 ولكن اذا لم تبدأ بالعدد الاكثر تكرارا ستكون النتيجة ناقص 1 مثل 2.1.1.1.1.3.55.4 هنا النتيجة 3 حسب البرنامج والصحيح هو 4

راجع اين يكمن الخطأ في التعداد اخي..

abderahim-dz
2014-02-03, 20:49
لمشكل في البرنامج اذا بدأت البرقم المكرر في بداية السلسلة مثل 1.1.1.1.5.2.4 هنا تكون النتسجة صحيحة 4 ولكن اذا لم تبدأ بالعدد الاكثر تكرارا ستكون النتيجة ناقص 1 مثل 2.1.1.1.1.3.55.4 هنا النتيجة 3 حسب البرنامج والصحيح هو 4

راجع اين يكمن الخطأ في التعداد اخي..
نعم اعرف انه يوجد خلل وطرحت الموضوع من أجل حل التمرين وايجاد الخلل شكرا ،، لكن هل بامكانك حله ؟؟

حسنا ساحاول من جديد و ساضع الحل؟؟

abderahim-dz
2014-02-03, 21:38
اليكم الحل قمت بعمله في اقل من نصف ساعة


program longeur;
uses wincrt;
var t:array[1..100] of integer;
t2:array[1..50] of integer;
i,n,count,grand:integer;

begin
writeln('Programed By Abderrahim - DzCommunity.Com');

writeln('entrer une suite d''entier et terminee la serie avec un 0');
{ LIRE LES ENTIERS ET LES METTRE DANS UN TABLEAUX}
i:=1;
repeat
readln(t[i]);
i:=i+1;
n:=i;
until t[i-1]=0;

{ METTRE LA LONGUEUR DE CHAQUE SERIE AVEC DES ELEMENTS CONSECUTIFS EGAUX DANS TABLEAUX }
count:=1;
t2[count]:=1;
for i:=1 to n-2 do
if t[i]=t[i+1] then t2[count]:=t2[count]+1
else
begin
count:=count+1;
t2[count]:=1;
end;

{ CHERCHER LA PLUS GRAND VALEUR DANS LE TABLEAU DES LONGUEUR DES SERIES }
grand:=t2[1];
for i:=2 to count do
if grand<t2[i] then grand:=t2[i];

writeln('la longueur maximale est:');
writeln(grand);


{ BY MISTER Abderrahim }

end.

شوقي الجزائري
2014-02-04, 22:22
نعم هكذا صحيح اخي ...

you92cef
2014-02-06, 22:10
البرنامج خاطئ

http://www12.0zz0.com/2014/02/06/21/156372978.png

abdotv
2014-02-07, 11:59
بارك الله فيكم الاخوة

abderahim-dz
2014-02-08, 13:36
البرنامج خاطئ

http://www12.0zz0.com/2014/02/06/21/156372978.png

البرنامج يعمل يجب وضع كل عدد في سطر ووضع 0 لايقاف السلسلة مثل الصورة
http://im38.gulfup.com/Q7T9c.jpg

بارك الله فيكم الاخوة
شكرا لك

larbi_paradox
2014-02-26, 20:39
بالتوفيق يا اخي