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

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

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

آخر المواضيع

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

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 2013-04-06, 02:31   رقم المشاركة : 391
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة razokix مشاهدة المشاركة
ارجو مساعدتي قليل اخي ربي يجازيك والله حاولت وما نفعت
ساعدني في الجزئ الاول فقط الدي يجعل الرقم لثاني المماثل 0
كود:
Soit le tableau T suivant :
|10| 7| 9| 7|10| 6| 7| 4| 8| 8|

Pour chaque élément de T on ne garde que sa première occurrence et on remplace les autres par 0.
|10| 7| 9| 0| 0| 6| 0| 4| 8| 0|

On regroupe les éléments restants au début du tableau T.
|10| 7| 9| 6| 4| 8| 0| 0| 0| 0|

Ecrire un programme Pascal  qui fait le traitement ci-dessus pour un tableau T de n (2 <= n <= 20) entiers positifs non nuls et détermine et affiche le nombre d'éléments différents de T.
كود:
program ex;
uses wincrt;
type
tab=array[1..20] of integer;

procedure remplir(var u:tab;var x:integer);
var i:integer;
begin

repeat
writeln('donner la dimension du tableau');
readln(x);
until x in [2..20];

for i:=1 to x do
begin
repeat
writeln('donner l''element n°',i,' du tableau');
readln(u[i]);
until (u[i]<>0);
end;
end;





procedure remplacer(var v :tab;y:integer);
var
i,j:integer;
begin
i:=1;
while i<=y do
begin
for j:=i+1 to y do
begin
if( v[i] = v [j] ) and (v[i]<>0) then
v[j]:=0;
end;
i:=i+1;
end;
end;

procedure regrouper(var w:tab;z:integer);
var
i,j,nb,aux:integer;
begin
for i:=1 to z-1 do
for j:= i+1 to z do
if ((w[j]<>w[i]) and (w[i]=0)) then
begin
aux:=w[i];
w[i]:=w[j];
w[j]:=aux
end;
nb:=0;
i:=1;
while ((w[i]<>0) and (i<=z)) do
begin
nb:=nb+1;
i:=i+1;
end; 
writeln('le nombre des entiers différents est de ',nb);
end;


procedure afficher(v:tab;y:integer);
var
i:integer;
begin
for i :=1 to y do
write(v[i]:3);
writeln;
end;


var
t:tab;
n:integer;
begin
remplir(t,n);
afficher(t,n);
remplacer(t,n);
afficher(t,n);
regrouper(t,n);
afficher(t,n);
end.








 


رد مع اقتباس
قديم 2013-04-07, 13:30   رقم المشاركة : 392
معلومات العضو
amine0007
بائع مسجل (ب)
 
الصورة الرمزية amine0007
 

 

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










افتراضي

من لديه التوقيت الاسبوعي للسنة الثانية اعلام الي بجامعة سطيف










رد مع اقتباس
قديم 2013-04-09, 19:29   رقم المشاركة : 393
معلومات العضو
عودة امل
عضو مميّز
 
الصورة الرمزية عودة امل
 

 

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










افتراضي

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

لنفرض مثلا انني ادخلت تاريخ
1/1/1990
واريد ان احسب عدد الايام الى غاية تاريخ 05/04/2013


عدد ايام الاهشر ثابت بغض النظر عن السنة
ما عدا عدد ايام شهر فيفري الدي في كل 4 سنوات نضيف يوم
طيب من
1/1/1990
الى
1/1/1991
توجد سنة

طيب نفرض ان في سنة 1990 شهر فيفري فيه 29 يوم
طيب
من 1/1/1990 الى 1/1/1991 توجد سنة
هده السنة كم عدد ايامها؟
365 صحيح؟
طيب لمادا 356 وليس 366؟
هدا لان 1990 عام يكون فيه شهر فيفري فيه 29 يوم
يعني العام الدي يكون فيه شهر فيفري 29 يوم والبتالي السنة 366 يوم هو سنة 1994 ثم 1998 وهكدا
اهدا من جهة
من جهة اخرى
ادا كان عدد الشهور مختلفا ولكن اليوم نفسه مثلا
من 1/3/1990 الى 1/1/200
فهنا
نحسب عدد الشهور التي تنقصنا حتى نصل الى سنة 1991 ثم من سنة 1991 الى 2000 الامر بسيط

نفس الامر بالنسبة للايام
مثلا من
21/5/1990
الى
12/03/2012
نحسب عدد الايام التي تنقصنا حتى ندخل في الشهر الجديد ثم بعدها عدد الاشهر التي تنقصنا حتى ندخل في السنة الجديدة
ثم بعدها نتعامل بالسنوات ادا كان دلك ممكن
ثم بعد دلك
عندما لا نستطيع التعامل بالسنة نتعامل بالاشهر ثم بالايام

الان بقي فقط البرجمة
ممكن البرمجة لاني حاولت فيها و تجيني خاطئة,,,,, و غدا عندي









رد مع اقتباس
قديم 2013-04-11, 15:56   رقم المشاركة : 394
معلومات العضو
algeriano9354
عضو مجتهـد
 
الصورة الرمزية algeriano9354
 

 

 
الأوسمة
المواضيع المميزة 2014 
إحصائية العضو










افتراضي

السلام عليكم ،،، أريد مساعدة في تمرين يطلب عمل برنامج يقوم بالتحويل بين القواعد العديدة (changement de base) يعني مثلا نعطيع عدد في الأساس 10 base decimal و هو يقوم بالتحويل لأساس آخر (مثلا2 - base binaire)
البرنامج يتكون من 3 مراحل : 1- التحقق من العدد ( هذه المرحلة قمت بها و هي تعمل جيدا)
2- التحويل للاساس 10 : قبل التحويل لاساس المطلوب يجب اولا المرور عبر الاساس 10
3- التحويل للاساس الجديد الذي نريد التحويل له

*****************************************
المرحلة الاولى :

كود:
rogram tp4;
uses wincrt;
var
base,nbr,a:longint;

Function test(a:longint):string;
begin
test:='valide';
repeat
 a:=nbr mod 10;
 nbr:=(nbr-a) div 10;
 if a>=base then
  test:='non valide';
until nbr < 1
end;

Begin
write('entrer une valeur :');
readln(nbr);
write('entrer la base :');
readln(base);
writeln('la valeur est :',test(a));
end.









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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة algeriano9354 مشاهدة المشاركة
السلام عليكم ،،، أريد مساعدة في تمرين يطلب عمل برنامج يقوم بالتحويل بين القواعد العديدة (changement de base) يعني مثلا نعطيع عدد في الأساس 10 base decimal و هو يقوم بالتحويل لأساس آخر (مثلا2 - base binaire)
البرنامج يتكون من 3 مراحل : 1- التحقق من العدد ( هذه المرحلة قمت بها و هي تعمل جيدا)
2- التحويل للاساس 10 : قبل التحويل لاساس المطلوب يجب اولا المرور عبر الاساس 10
3- التحويل للاساس الجديد الذي نريد التحويل له

*****************************************
المرحلة الاولى :
كود:
rogram tp4;
uses wincrt;
var
base,nbr,a:longint;

Function test(a:longint):string;
begin
test:='valide';
repeat
 a:=nbr mod 10;
 nbr:=(nbr-a) div 10;
 if a>=base then
  test:='non valide';
until nbr < 1
end;

Begin
write('entrer une valeur :');
readln(nbr);
write('entrer la base :');
readln(base);
writeln('la valeur est :',test(a));
end.
تم حله تمرين مشابه لهدا وتم منحه لطالب
ساحاول التواصل معه ادا ما كان يحتفظ بالرنامج والكود لديه

بخصوص التحويل يمكن استعمال عدة اقتراحات ولكن من الاحسن استعمال دالة خاصة بلغة البرمجة
assembleur
الدالة اسمها
shr
مثلا
8
octale
=1000
en binaire
pour cela
on peut utuliser les chaine de carrectere puisgue
1+1=11
1 et un carectere
donc 1000 sera un chaine de carectere
pour rendre 1000 un nombre on fait des test et des fonction soit predefinit ou on programmer

ou tout simplemenrt utiliser la fonction shr de langauge assempleur qui est connu en pascal *-* on peut la utilier*-*

pour tout ca essayer de resoudre le programme comme vous vouler et j'essaye de trouver le programme cher mon amin
bon chance









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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة عودة امل مشاهدة المشاركة
ممكن البرمجة لاني حاولت فيها و تجيني خاطئة,,,,, و غدا عندي
اسف على تاخر الرد
عموما تم شرح طريقة البرمجة
او يمكن بكل بساطة حساب عدد الايام بين التاريخين الدين ندخلهما ومع مراعات شهر فيفري فقط









رد مع اقتباس
قديم 2013-04-12, 14:30   رقم المشاركة : 397
معلومات العضو
haroune21
عضو جديد
 
إحصائية العضو










افتراضي


اريد مساعدة من الاخوة في حل هدا (باسكال ) ف /ن+....+ 4/27+3/12+ s = 2/9









رد مع اقتباس
قديم 2013-04-12, 17:56   رقم المشاركة : 398
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

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

اريد مساعدة من الاخوة في حل هدا (باسكال ) ف /ن+....+ 4/27+3/12+ s = 2/9
وضح اكثر اخي حتى نستطيع ان نساعدك









رد مع اقتباس
قديم 2013-04-13, 10:57   رقم المشاركة : 399
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

بخصوص كود التحويل من
octale to bin
للاسف لم اجده والعضو الدي ارسلته له لم يجده ايضا
عموما هدا برنامج وحجدته في احد المنتديات

كود:
program dec_bin_oct;
uses wincrt;
const po2:array[0..7] of byte=(1,2,4,8,16,32,64,128); {powers of 2}
      bin:array[false..true] of char='01';
      oct:array[0..7] of char='01234567';

{Decimal to binary}
function dec2bin(b:byte):string;
 var s:string;
     i:byte;
 begin
  s:='';
  for i:=7 downto 0 do
   s:=s+bin[(po2[i] and b=po2[i])];
  dec2bin:=s;
 end;

{Binary ot decimal}
function bin2dec(s:string):byte;
 var l:byte absolute s; {lenght of s}
     i,b:byte;
 begin
  b:=0;
  while l<8 do s:=bin[false]+s;
  if l>8 then s:=copy(s,l-7,8);
  for i:=1 to l do
  if s[i]=bin[true] then b:=b+po2[8-i];
  bin2dec:=b;
 end;

{Binary to octal}
function bin2oct(b:string):string;
 var s:string;
     l:byte absolute b; {lenght of b}
     i:byte;
 begin
  while ((l mod 3)<>0) do b:=bin[false]+b;
  s:='';
  for i:=1 to (l div 3) do
   s:=s+oct[bin2dec(b[pred(i)*3+1]+b[pred(i)*3+2]+b[pred(i)*3+3])];
  bin2oct:=s;
 end;

{Octal to binary}
function oct2bin(b:string):string;
 var l:byte absolute b;
     i:byte;
     s:string;
 begin
  s:='';
  for i:=1 to l do
   s:=s+copy(dec2bin(ord(b[i])-48),6,3);
  oct2bin:=s;
 end;


var n:byte;

begin
 write(#13#10,'Enter a decimal :');readln(n);
 writeln(n,' in binary :',dec2bin(n),', in decimal :',bin2dec(dec2bin(n)));
 writeln(n,' in octal :',bin2oct(dec2bin(n)),' in binary: ',oct2bin(bin2oct(dec2bin(n))));
 readln;
end.
اولا


كود:
var l:byte absolute s; {lenght of s}
فهده دالة تقوم باعطاءنا طول
la chaine de carecterre
مثلا

كود:
s:='bonjour'
l:=7
يمكن استعمال الدالة
absolute
او
length
جربت تعويضها ب
length
ولكن البرنامج لم يشتغل كاملا
ثانيا

كود:
s:=copy(s,l-7,8)
هده الدالة
تتعامل فقط مع
chaine de carrectere
بحيث انها 3 قيم لكي تعمل
القيمة الاولى وهي
la chaine de carresterre
القيمة الثانية
وهو العنصر الدي نريده ان نقوم بنسخة
القيمة الثالثة وهو عدد الحروف الدي ننسخها بعد العنصر 2
مثلا

كود:
 
s:='bonjour'
s:=copy(s,1,1)
's:='b
s:=copy(s,1,3);
s:='bon'
s:=copy(s,3,4);
s:='njou''









رد مع اقتباس
قديم 2013-04-13, 11:10   رقم المشاركة : 400
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

يمكن تحويل عدد من قاعدة الى القاعدة 10 انطلاقا من البرنامج السابق
بحيث ندخل رقم ثم ندخل القاعدة التي كتبنا فيها هدا الرقم
مثلا
25
sur la base de
6
alors on utilison le prancipe de puissancce on obtient la representation de se nombre sur la base 10
pour cela il faut utiliser une procedure ou fonction
c'est facile car on utilse simplement la maniere de calcule un nombre a une puissance
a^b:=a*a*a*a*a*a*
b fois
on sortant de procedure ou fonction on obtient la representation sur la base de 10
ensuite on fait la representation qu'on veut *-* octale ,binaire....'










رد مع اقتباس
قديم 2013-04-13, 19:25   رقم المشاركة : 401
معلومات العضو
نريمان شهرزاد
عضو مشارك
 
إحصائية العضو










افتراضي

J'ai 2 exo:
exo1:
f(n,p)=n!!!! (p fois
exemple : f(3,2)=3!!=(3!)=6!=720
exo 2:
jeu loto:générer tous les cas possibles de jeu de 6 parmi 49 nombres (calculer le nombre de cas et trouver les cas possibles)










رد مع اقتباس
قديم 2013-04-13, 23:48   رقم المشاركة : 402
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة algeriano9354 مشاهدة المشاركة
السلام عليكم ،،، أريد مساعدة في تمرين يطلب عمل برنامج يقوم بالتحويل بين القواعد العديدة (changement de base) يعني مثلا نعطيع عدد في الأساس 10 base decimal و هو يقوم بالتحويل لأساس آخر (مثلا2 - base binaire)
البرنامج يتكون من 3 مراحل : 1- التحقق من العدد ( هذه المرحلة قمت بها و هي تعمل جيدا)
2- التحويل للاساس 10 : قبل التحويل لاساس المطلوب يجب اولا المرور عبر الاساس 10
3- التحويل للاساس الجديد الذي نريد التحويل له

*****************************************
المرحلة الاولى :
كود:
rogram tp4;
uses wincrt;
var
base,nbr,a:longint;

Function test(a:longint):string;
begin
test:='valide';
repeat
 a:=nbr mod 10;
 nbr:=(nbr-a) div 10;
 if a>=base then
  test:='non valide';
until nbr < 1
end;

Begin
write('entrer une valeur :');
readln(nbr);
write('entrer la base :');
readln(base);
writeln('la valeur est :',test(a));
end.

https://www.djelfa.info/vb/showpost.p...&postcount=269

https://www.djelfa.info/vb/showpost.p...&postcount=270









رد مع اقتباس
قديم 2013-04-15, 23:05   رقم المشاركة : 403
معلومات العضو
ssissoume
عضو جديد
 
إحصائية العضو










افتراضي

svp khawti 3awnouni f pgm de changement entre base ani 7ssalt pllllllllz je veux une soluition simple par division succesive plllz c urgent w rabi yjazikom










رد مع اقتباس
قديم 2013-04-15, 23:48   رقم المشاركة : 404
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

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










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة ssissoume مشاهدة المشاركة
svp khawti 3awnouni f pgm de changement entre base ani 7ssalt pllllllllz je veux une soluition simple par division succesive plllz c urgent w rabi yjazikom
كود:
program conv1_b_10;
uses wincrt;


function puissance(x,y:integer):longint;
var
r1:longint;
i:integer;
begin
r1:=1;
for i:= 1 to y do
r1:= r1*x;
puissance:=r1;
end;


function convb_10(s:string;b:integer):longint;
var
d,e,i:integer;
r:longint;
begin
r:=0;
for i:=length(s) downto 1 do
begin
if(s[i] in ['0'..'9']) then
val(s[i],d,e)
else
    case upcase(s[i]) of
    'A': d := 10;
    'B': d := 11;
    'C': d := 12;
    'D': d := 13;
    'E': d := 14;
    'F': d := 15;
    end;
r:= r + d * puissance(b,length(s)-i);
end;
convb_10:=r;
end;


function convb1_10(s:string;b:integer):longint;
var
d,e,i:integer;
r:longint;
begin
r:=0;
for i:=1 to length(s) do
begin
if(s[i] in ['0'..'9']) then
val(s[i],d,e)
else
    case upcase(s[i]) of
    'A': d := 10;
    'B': d := 11;
    'C': d := 12;
    'D': d := 13;
    'E': d := 14;
    'F': d := 15;
    end;
r:= r*b + d ;
end;
convb1_10:=r;
end;


function conv10_b1(n:longint;b:integer):string;
var
s,c:string;
d:integer;

begin
s:='';
repeat
d:=n mod b;
n:= n div b;
if d in [0..9] then
str(d,c)
else
    case d of
    10 : c := 'A';
    11 : c := 'B';
    12 : c := 'C';
    13 : c := 'D';
    14 : c := 'E';
    15 : c := 'F';
    end;
s:=c+s;
until n = 0;
conv10_b1:=s;
end;





var
ch:string;
b,b1:integer;


begin
readln(ch);
readln(b);
readln(b1);
writeln(conv10_b1(convb1_10(ch,b),b1));


end.









رد مع اقتباس
قديم 2013-04-16, 21:13   رقم المشاركة : 405
معلومات العضو
ssissoume
عضو جديد
 
إحصائية العضو










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة salemk مشاهدة المشاركة
كود:
 
program conv1_b_10;
uses wincrt;
 
 
function puissance(x,y:integer):longint;
var
r1:longint;
i:integer;
begin
r1:=1;
for i:= 1 to y do
r1:= r1*x;
puissance:=r1;
end;
 
 
function convb_10(s:string;b:integer):longint;
var
d,e,i:integer;
r:longint;
begin
r:=0;
for i:=length(s) downto 1 do
begin
if(s[i] in ['0'..'9']) then
val(s[i],d,e)
else
    case upcase(s[i]) of
    'A': d := 10;
    'B': d := 11;
    'C': d := 12;
    'D': d := 13;
    'E': d := 14;
    'F': d := 15;
    end;
r:= r + d * puissance(b,length(s)-i);
end;
convb_10:=r;
end;
 
 
function convb1_10(s:string;b:integer):longint;
var
d,e,i:integer;
r:longint;
begin
r:=0;
for i:=1 to length(s) do
begin
if(s[i] in ['0'..'9']) then
val(s[i],d,e)
else
    case upcase(s[i]) of
    'A': d := 10;
    'B': d := 11;
    'C': d := 12;
    'D': d := 13;
    'E': d := 14;
    'F': d := 15;
    end;
r:= r*b + d ;
end;
convb1_10:=r;
end;
 
 
function conv10_b1(n:longint;b:integer):string;
var
s,c:string;
d:integer;
 
begin
s:='';
repeat
d:=n mod b;
n:= n div b;
if d in [0..9] then
str(d,c)
else
    case d of
    10 : c := 'A';
    11 : c := 'B';
    12 : c := 'C';
    13 : c := 'D';
    14 : c := 'E';
    15 : c := 'F';
    end;
s:=c+s;
until n = 0;
conv10_b1:=s;
end;
 
 
 
 
 
var
ch:string;
b,b1:integer;
 
 
begin
readln(ch);
readln(b);
readln(b1);
writeln(conv10_b1(convb1_10(ch,b),b1));
 
 
end.
mercii lah yhanik









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

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


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

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

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

الساعة الآن 05:08

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


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

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