![]() |
|
في حال وجود أي مواضيع أو ردود
مُخالفة من قبل الأعضاء، يُرجى الإبلاغ عنها فورًا باستخدام أيقونة
( تقرير عن مشاركة سيئة )، و الموجودة أسفل كل مشاركة .
آخر المواضيع |
|
ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal
![]() |
|
أدوات الموضوع | انواع عرض الموضوع |
![]() |
رقم المشاركة : 391 | |||||
|
![]() اقتباس:
كود:
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.
|
|||||
![]() |
![]() |
رقم المشاركة : 392 | |||
|
![]() من لديه التوقيت الاسبوعي للسنة الثانية اعلام الي بجامعة سطيف |
|||
![]() |
![]() |
رقم المشاركة : 393 | ||||
|
![]() اقتباس:
|
||||
![]() |
![]() |
رقم المشاركة : 394 | |||
|
![]() السلام عليكم ،،، أريد مساعدة في تمرين يطلب عمل برنامج يقوم بالتحويل بين القواعد العديدة (changement de base) يعني مثلا نعطيع عدد في الأساس 10 base decimal و هو يقوم بالتحويل لأساس آخر (مثلا2 - base binaire) كود:
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. |
|||
![]() |
![]() |
رقم المشاركة : 395 | ||||
|
![]() اقتباس:
ساحاول التواصل معه ادا ما كان يحتفظ بالرنامج والكود لديه بخصوص التحويل يمكن استعمال عدة اقتراحات ولكن من الاحسن استعمال دالة خاصة بلغة البرمجة 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 |
||||
![]() |
![]() |
رقم المشاركة : 396 | ||||
|
![]() اقتباس:
عموما تم شرح طريقة البرمجة او يمكن بكل بساطة حساب عدد الايام بين التاريخين الدين ندخلهما ومع مراعات شهر فيفري فقط |
||||
![]() |
![]() |
رقم المشاركة : 397 | |||
|
![]() اريد مساعدة من الاخوة في حل هدا (باسكال ) ف /ن+....+ 4/27+3/12+ s = 2/9 |
|||
![]() |
![]() |
رقم المشاركة : 398 | |||
|
![]()
وضح اكثر اخي حتى نستطيع ان نساعدك
|
|||
![]() |
![]() |
رقم المشاركة : 399 | |||
|
![]() بخصوص كود التحويل من كود:
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'' |
|||
![]() |
![]() |
رقم المشاركة : 400 | |||
|
![]() يمكن تحويل عدد من قاعدة الى القاعدة 10 انطلاقا من البرنامج السابق |
|||
![]() |
![]() |
رقم المشاركة : 401 | |||
|
![]() J'ai 2 exo: |
|||
![]() |
![]() |
رقم المشاركة : 402 | ||||
|
![]() اقتباس:
https://www.djelfa.info/vb/showpost.p...&postcount=269 https://www.djelfa.info/vb/showpost.p...&postcount=270 |
||||
![]() |
![]() |
رقم المشاركة : 403 | |||
|
![]() 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 |
|||
![]() |
![]() |
رقم المشاركة : 404 | ||||
|
![]() اقتباس:
كود:
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. |
||||
![]() |
![]() |
رقم المشاركة : 405 | ||||
|
![]() اقتباس:
|
||||
![]() |
![]() |
الكلمات الدلالية (Tags) |
ملتقى, الالي, الاعلام, طلاب |
|
|
المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى
المنتدى غير مسؤول عن أي إتفاق تجاري بين الأعضاء... فعلى الجميع تحمّل المسؤولية
Powered by vBulletin .Copyright آ© 2018 vBulletin Solutions, Inc