تمارين برمجة باسكال

عودة للموسوعة

تمارين برمجة باسكال

نبذة

هذه الصفحة هي بالاصل مأخوذة من كتاب تمارين برمجة محلولة خطوة على طريق البرمجة (نسخة باسكال ) إعداد وسيم أبوزينة طالما كنت تملك حلولاً اخرى تقدر وضع الحل الذي تراه مناسباً بعد اضافة سطر يحوي طريقة اخرى .

ساهم بشكل رئيسي في تحرير هذا الموضوع


الفصل الاول تمارين ابتدائية

1-اخط برنامج بلغة T.Pascal لقراءة عددين سليمين وطباعة نواتج عملية الضرب والقسمة والجمع والطرح لهذين العددين

 Program   Calc (output) ;
  Var  x,y:integer;
 Begin
     Writeln(Enter Two number  );
     Readln(x,y);
     Writeln(The Result of  ,x,  + ,y,    =  ,x+y);
     Writeln(The Result of  ,x,  * ,y,    =  ,x*y); 
     Writeln(The Result of  ,x,  - ,y,    =  ,x-y);
     Writeln(The Result of  ,x, / ,y,    =  ,x/y);
 End.


2-اخط برنامج بلغة T.pascal يقوم بقراءة عدد سليم X وعدد سليم موجب n ثم يقوم بحساب Xn

 Program   Power_To_ppl ;
 Var  x,n,i,Res:integer;
  Begin
    Res :=1;
    Writeln(Enter Two numbers X, and n );
    Readln(x,n)
    For i=1 to n do 
      Res= Res *X;
   
    Writeln(The Result is ,Res);
  End.

3-اخط برنامج لقلب عدد سليم مدخل مثال العدد المدخل 1234 يصبح 4321

 Program   Flip_Flop ;
   Var  n,m,num:integer;
  Begin
    Writeln(Enter The Number );
    Readln(n);
    while (n div 10 <>0 )do
      begin
        m:=      n mod 10;
        num:=  m+num*10;
        n:=        n div 10;
      end;
    Writeln(The Number After Flipping ,n);
   end.


4-اخط برنامج يقوم بحساب قيمة تقريبية ل ex بحيث

مع الفهم انه يتوقف الحساب عندما تكون قيمة الحد الأخير الذي نصل إليه اصغر آوتساوي

 Program   Damn_The_e  ;
 Var  x,n,i,counter  :integer;
       Power,fact ,res:real
 Begin
  fact :=1;      counter=2;         res =0;
  Writeln(Enter Two numbers X );
  Readln(x);
  Power=x;
  While (power div fact < 10 ^(-5)) do
    begin
        For i=2 to counter do 
             begin
                     power= power *X;
                     fact = fact *i;
              end; 
        Counter = counter +1;
        Power =x;                     fact= 1;
         Res= Res + (power div fact);
    End;
  Writeln(The Result is ,Res);
 End.

5-أخط خوارزمية تقوم بقراءة عددين A,B وطباعة الأعداد المحصورة بينهما بكيفية تنازلية دون فهم أي العددين A,B هوالأكبر .

2-أخط خوارزمية تقوم بقراءة عدد N وطباعة مجموع الأعداد الزوجية المحصورة بين n والصفر .

3-أخط خوارزمية تقوم بقراءة رقمm ما وطباعة عدد خاناته .

.
 program  Numberz;
 var 
    Digit_counter,m, i,a,b,min,max,sum,first,last:integer;
 begin
  Readln(a,b);
  If (a>b)then
      Max =a;  min =b
  Else
      max=b;   min =a
  first=min ; last =max
  while (first <=max ) do
    begin 
      last = last -1
      fisrt = first +1
      writeln(last)
    end;
 end.
2: 
 Readln(n)
 Sum=0;
 For i=0 to n do
    If i mod 2 =0 then
        Sum= sum+i;
3:
 Readln(m)
 Digit_counter=0;
 While (m <>0) do
   begin
      Digit_counter =  Digit_counter+1;
      M = m div 10;
   End;     
  writeln(m);
 End.


6-وضع أحد العملاء مبلغ sum في البنك لعدد year من السنوات ..

ما هي قيمة هذا المبلغ بعد هذه السنوات فهماً حتى العميل يتقاضى على المبلغ فائدة (مركبة) سنوية p%

2-وضع أحد العملاء مبلغ sum في البنك فإذا فهمت حتى العميل يتقاضى على المبلغ فائدة (مركبة )سنوية p% بعد كم سنة يتضاعف المبلغ ..؟؟،يا ترى؟

 program Banks;
  var i,num,year,value:integer;
      p :float ;
  begin
1:
  Readln(year,num,p)
  For i=1 to year do
    Num = num + Num *p;

2:
    Y=0;                  Value =2*num;
    While (num<= value )do
        begin
              num= num +num *p;
              Y=Y+1;
         End;
    Writeln(y);
end;


7-لدينا فاتورة مشتريات تحوي البيانات التالية : عدد المواد N

عدد الوحدات من جميع مادة q

ثمن الوحدة unit price

يقوم التاجر بحسم جزء من قيمة الفاتورة إذا كانت هذه القيمة مرتفعة كما يلي : حسم 10% إذا كانت قيمة الفاتورة أكبر من 25000

حسم 15% إذا كانت قيمة الفاتورة أكبر من 50000

حسم 20% إذا كانت قيمة والفاتورة أكبر من 100000

والمطلوب: كتابة برنامج يقوم بقراءة البيانات السابقة ثم حساب وطباعة:

الثمن الإجمالي total price (وهوقيمة الفاتورة قبل الحسم ).

الثمن الصافي net price ( قيمة الفاتورة بعد الحسم ).

 program Bills ;
 var 
     N,q,Unit_price,Total,net_price :integer;   
     q=0;    Unit_price=0 ;   Total =0;     net_price=0  ;
 begin
  Readln(n);     
  For i =1 to n do 
    begin
           Writeln(Enter the price for the product num ,i);
           Readln(Unit_price);
           Writeln(Enter the Quantity  for the product num ,i);
           Readln(q);
           Total = total +q* unit_price;
     End;
  If (tp> 100000)
              Netprice = (total * 20)/100;
  Else If (tp>  50000)
               Netprice = (total * 15)/100;
  Else If (tp> 25000)
               Netprice = (total * 10)/100;
  writeln(Netprice,    , total );
 end.

8-اخط برنامج لقراءة نص محرف محرف ينتهي بنقطة (.) والمطلوب :

1-حساب عدد المحارف الكلي

2-حساب عدد الأحرف وعدد الأرقام وعدد علامات التنقيط

3-طباعة النص مع استبدال جميع حرف صغير في اول الحدثة بحرف كبير

4-تحويل جميع عدد إلى عدد عشري حيث ان العدد العشري =n-9 أي المتمم إلى10

 program  Reading with the stars ;
 var                               ch,ch1 : char;
                                     countchr: integer;       // Char counter
                                     countnum: integer;     // Numbers Counter
                                     counter3: integer;       // Other Char Counter
 begin
 writeln('Enter the text');
            countchr:=0;    countnum:=0;        counter3:=0;
 while (ch <> '.') do
          begin
              ch1:=ch;
              read (ch);
            case ch of
              '0'..'9' :
                    begin
                          ch:=chr(ord('9')-ord(ch) + ord('0') ) ;  //Converting Number 
                          countnum:=countnum+1;
                    end;
             'a'..'z':
                  begin
                        countchr:= countchr+1;
                        ch:=chr(ord('A')+ord(ch)-ord('a'));  // Converting to Capital
                   end;
                       if (ch1 = ' ') or (ch1= ',') or (ch1= ' "  ') then
                             counter3:=counter3+1;
           end;  // While
  write(ch);
 end;
 writeln('The number of the letters  =',countchr);
 writeln('The number of numbers are  = ',countnum);
 writeln('Number of the symbols  =  ',counter3+countnum+countchr);
 end.         // End of program

9-اخط برنامج يعطي نتيجة منطقية True آوFalse عن تناظر مصفوفة أحادية بعدها n بالنسبة لمنتصفها مثال نقول عن مصفوفة احادية انها متناظرة

في حال بعد المصفوفة

N=9 فردي

2 7 5 6 4 6 5 7 2

N=8 زوجي

2 7 5 6 6 5 7 2

نقول عن مصفوفة احادية انها غير متناظرة

7 6 5 2 1 1


program   Semitic _Arrays;

const maxn=100;

var                              A:array [1..maxn]of integer;
                                   b:boolean;
                                   n:integer;
                                   i:integer;
begin
writeln('Please enter the Array Length ');
readln(n);
writeln('Please enter the elements so The Array can be initialized ‘);

For i:=1 to n do
       readln(A[i]);
b:=true;
For i:=1 to n do
        if (A[i]<>A[n-i+1]) then
                b:=false;

if (b=true) then
        writeln('The matrix is  Semitic  );
else if (b=false) then 
        writeln('The matrix is not  Semitic  ‘);
readln;
end.

10-يتم حساب رواتب الموظفين في دائرة حكومية بالشكل التالي : لكل موظف راتب اساسي يضاف إليه قيمة تعويضات يستحقها حسب نشاطه وعمله وتخصم منه قيمة حسميات حسب إجازاته وعطله اخط برنامج بلغة باسكال ينظم جداول رواتب الموظفين يطلب فيه

1-قراءة الأرقام التسلسلية للموظفين وتخزينها في جدول ارقام الموظفين

ارقام الموظفين

2-قراءة تفصيل راتبه حيث يتم التخزين في ثلاثة جداول كالتالي:

الراتب الأساسي – التعويضات –الحسميات الراتب الأساسي

التعويضات

الحسميات

3-حساب إجمالي الراتب للموظفين وتخزينه في جدول حيث اجمالي الراتب = الراتب الأساسي + التعويضات – الحسميات إجمالي الراتب

4-اظهار اكبر قيمة للراتب الأساسي

إظهار رقم الموظيف الذي يتقاضى اعلى قيمة تعويضات

إظهار رقم الوظف الذي يخصم من راتبه اقل قيمة حسميات

حساب وسطي الراتب الإجمالي وتخزين هذه القيم في جدول النتائج التالي:

النتائج

اكبر قيمة للراتب الأساسي – رقم الموظف الذي له اعلى تعويضات –رقم الموظف الذي له اقل حسميات –وسطي الراتب الإجمالي

اكبر قيمة للراتب الأساسي رقم الموظف الذي له اعلى تعويضات رقم الموظف الذي له اقل حسميات وسطي الراتب الإجمالي

5-إظهار النتائج السابقة بالشكل

رقم الموظف – الراتب الأساسي – التعويضات – الحسميات –إجمالي الراتب

النتائج

رقم الموظف – الراتب الأساسي التعويضات – الحسميات إجمالي الراتب


Program employee ;
Const    m=100;
Type Matrix =array[1..m] of integer;
Var
            Num,basic,comp,dis,total:matrix;
            I,j,max1,max2,min,sum,x,y,z:integer;
            Avg:real

Begin  {main  
  Writeln(Please Enter the whole numbers of  employees);
   Readln(z);
    Writeln(Please Enter the number of the employee);
For j =1 to z do
begin
        Readln(Num[j]);
End;

Writeln(Please Enter the basic Salary for each  employee);
For j=1 to z do
begin
         Readln(Basic[j]);
End;

Writeln(Plz Enter the compensations for each  employee);
For j=1 to z do
begin
        Readln(Comp[j])
End;

Writeln(Please Enter the Discounts for each  employee);
For j=1 to z do
begin 
        Readln(Dis[j]);
End;

For j=1 to z do
   Total[j]=Basic[j]+Comp[j]-Dis[j]

Writeln(employee No    Basic Salary    Bounces     Discounts    Total   );
Writeln;
   For j=1 to z do
     Begin
          Write(Num[j]:5,  ,Basic[j]:5,  ,Comp[j]:5,   ,Dis[j]:5,  ,Total[j]:5);
          Writeln;
     End;

Max1=Basic[1];

Mx2=Comp[1];

X=num[1];

Y =num[1];

Min=dis[1];

Sum=0;

For j=1 to z do 
Begin
If Basic[j]>max1 then 
    Max1=Basic[j];

If comp[j]>max2 then
    begin
          Max2= comp[j];
           X=num[j];
    End;

If dis[j]<min then
   Begin
           Min= dis[j];
           Y=num[j];
   End;
Sum= sum + total[j];
End;
Avg= sum/z;
Write(max1,x,y,avg);

End.

11.لدينا مصفوفة مربعة بعدها n.n يتم إدخال البعد n من قبل المستثمر والمطلوب 1-حساب مجموع عناصر محيط هذه المصفوفة

2- حساب مجموع عناصر الأسطر m الأخيرة من هذه المصفوفة

3-حساب مجموع عناصر المثلث العلوي في المصفوفة المربعة ما عدا القطر الرئيسي

4-فرز عناصر القطر الثانوي لمصفوفة مربعة تصاعدياً

program Matrix ;
const z= 100;
var                                          A: array [1..z,1..z]of integer;
                                               B: array [1..z,1..z]of integer;
                                              t, v,m,sumv, sum1,sum2, n,i,j:integer;
                      f,k,l, sumq1, sumq2, summ, sumrec, sum, sum11,sum22:integer;
                                                              g:boolean;
begin
writeln('Enter the length of the array');
readln(n);
{reading the Array 
for i:=1 to n do 
   for j:=1 to n do
       readln(A[i,j]); 
// جمع عناصر السطر الأخير والسطر الأول والعمود الأول والأخير 
sum1:=0;
for i:=1 to n do   
    sum1:=(sum1+A[i,1]);
 sum11:=0;
for i:=1 to n do 
    sum11:=sum11+A[i,n]; 
sum2:=0;
for j:=1 to n do 
   sum2:=(sum2+A[1,j]);
 sum22:=0;
for j:=1 to n do 
   sum22:=sum22+A[n,j]; 
// مجموع المحيط هومجموع الأربعة اسطر واعمدة
sum:=sum1+sum11+sum22+sum2-A[1,1]-A[1,n]-A[n,n]-A[n,1];
writeln('the sum of the circumfence is',sum);
// طباعة المصفوفة بشكل ثنائي 
for i:=1 to n do 
begin
       write(' ');
      for j:=1 to n do
      write(A[i,j],' ');
      writeln(' ');
end;
writeln('Enter m number of lines to show u the sum');
readln(m);
if (m>n) or (m<0) then 
      begin
             writeln('please try again');
             g:=false;
             readln(m);
             while (m>n) do
             readln(m)
      end
else v:=n-m;
     for j:=v+1 to n do
         for i:=1 to n do
                 sumv:=sumv+A[j,i];
writeln('the sum of the last ',m,' lines is ',sumv);
//الطلب ال3
f:=2; sumrec:=0;
for i:=1 to n do
    begin
       for j:=f to n do
          sumrec:=sumrec+A[i,j];
       f:=f+1;
    end;
writeln('the sum for the rectangle is ',sumrec);
for f := 1 to n-1 do
    begin
       j:= n;
       for i := 1 to n-f do
           begin
            if a[i,j] < a[i+1,j-1] then
                 begin
                     t := a[i,j];
                     a[i,j] := a[i+1,j-1];
                     a[i+1,j-1] := t;
                 end;
       j:= j-1
            end;
     end;
for i := 1 to n do
      begin
          writeln(' ');
          for j := 1 to n do
          write(a[i,j] , ' ');
          writeln(' ');
      end;
readln;
end.
End.


12.اخط تابع يقوم بفحص مصفوفة مربعة بعدها n فيما اذا كانت متناظرة ام لا

2-اخط اجرائية تقوم بإيجاد القيمة العظمى لعناصر مصفوفة متناظرة

3-اخط تابع يقوم بإيجاد القيمة العظمى لعناصر مصفوفة غير متناظرة

4-اخط برنامجاً يستدعي التوابع والإجرائيات السابقة لإيجاد القيمة العظمى لعناصر مصفوفة ما


program  Matrix_part2;
type mat=array[1..10,1..10]of integer;
var                                                             a:mat;
                                                         n,i,j,max:integer;
                                                            ok:boolean;

{1 
function simitric(n:integer):boolean;
           var i,j:integer;
           error:boolean;
begin
    i:=1;
   error:=false;
   while (i<=n ) and (not error) do
       begin
           j:=1;
          while (j<=n) and (not error) do
             begin
                  if a[i,j]<>a[j,i] then
                      error:=true
                 else
                       j:=j+1;
             end;
         i:=i+1;
        end;
simitric:=not error;
end; 
{end fo function simitric 
{2 
procedure max1(n:integer;var max:integer);
                         var i,j:integer;
begin
max:=a[1,1];
   for i:=1 to n do
      for j:=1 to n do
          if a[i,j]>max then
              max:=a[i,j];
end; 
{end for procedure max1  



{3 
function max2(n:integer):integer;
                      var i,j,max:integer;
begin
max:=a[1,1];
for i:= 1 to n do
     for j:=1 to n do
          if a[i,j]>max then
                max:=a[i,j];
         max2:=max;
end; 
{ end fo function max2 

{4 
begin {main  program 
writeln('please inter long the matrix');
readln(n);
for i:=1 to n do
   for j:=1 to n do
       readln(a[i,j]);

ok:=simitric(n);
 if ok=true then
       writeln('the matrix is simitric')
else
        writeln('the matrix is not simitric');
max1(n,max);
writeln('the max value in the simitric matrix by procedure =',max);
writeln('the max value in the simitric by function =', max2(n));
writeln;
for i:=1 to n do
     begin
        for j:=1 to n do
             write(a[i,j],' ');
        writeln;
     end;
readln;
End.

13.اخط اجرائية تاخذ كوسيط سلسلة محارف تمثل تعبير رياضي وتعيد نتيجة منطقية تدل على صحة هذا التعبير آوعدمه فهماً ان سلسلة المحارف تقبل فقط محارف رقمية 0-9 وتقبل العمليات *و-و+

2-اخط تابع ياخذ كوسيط سلسلة محارف تمثل تعبير رياضي ويعيد قيمة هذا التعبير فهماً ان سلسلة المحارف تقبل فقط محارف رقمية 0-9 وتقبل العمليات *و+و-

3-اخط برنامج يقرا سلسلة محارف ويستدعي الإجرائية الأولى للتأكد اذا كانت سلسلة المحارف هذه تمثل تعبير رياضي آولا وفي حال كانت تعبير عن تعبير رياضي فيطلب استنادىء التابع الثاني لإيجاد قيمة هذا التعبير


program MatExp;

type
 PStack=^Element;
 Element=record
  val:string;
  prev:PStack;
 end;

var
 a:string;
 x,c:char;
 elem:Element;
 n,n1,n2,b:integer;
 top,auxtop,ptop,Rtop:PStack;


          procedure Push(var ptop:PStack; elem:Element);
          var
           temp:PStack;
          begin
               new(temp);
               temp^:=elem;
               temp^.prev:=ptop;
               ptop:=temp;
          end;



          procedure Clear(var ptop:PStack);
          var
           temp:PStack;
          begin
                while (ptop<>nil) do
                  begin
                     temp:=ptop;
                     ptop:=ptop^.prev;
                    dispose(temp);
                  end;
          end;

          function StrToIntConvert(a:string; n:integer):integer;
          var
           conc,i,j,s:integer;
          begin
             conc:=0;
             j:=1;
             while (j<=n) do
                 begin
                   s:=(ord(a[j])-ord('0'));
                  for i:=j+1 to n do
                           s:=s*10;
                  conc:=conc+s;
                     j:=j+1;
                 end;
            StrToIntConvert:=conc;
          end;

          function Calc(n1,n2:integer; c:char):integer;
          var
           sum:integer;
          begin
            case c of
             '+': sum:=n1+n2;
             '*': sum:=n1*n2;
            end;
           Calc:=sum;
          end;





          function IntToStrConvert(b:integer):string;
          var
           t,c,i,n,d:integer;
           s:string;
          begin
                t:=b;
               n:=0;
              while (t<>0) do
                 begin
                    t:=t div 10;
                    n:=n+1;
                end;
            c:=1;
           for i:=2 to n do
              c:=c*10;
           i:=1;
           s:=' ';
           while (i<=n) do
             begin
                d:=b div c;
                s:=s+chr(ord('0')+d);
                b:=b-(d*c);
                 c:=c div 10;
                 i:=i+1;
              end;
           delete(s,1,1);
           IntToStrConvert:=s;
          end;

          function Combine(var ptemp:PStack):string;
          var
           bo:boolean;
           s:string;
          begin
            s:=ptemp^.val;
            bo:=true;
            while (bo) do
            begin
    if ((ptemp^.prev^.val='1') or (ptemp^.prev^.val='2') or (ptemp^.prev^.val='3') or (ptemp^.prev^.val='4')
               or (ptemp^.prev^.val='5') or (ptemp^.prev^.val='6') or (ptemp^.prev^.val='7') or (ptemp^.prev^.val='8')      or (ptemp^.prev^.val='9')) then
              begin
                  s:=s+ptemp^.prev^.val;
                  ptemp:=ptemp^.prev;
              end
               else
                bo:=false;
            end;
            Combine:=s;
          end;

          procedure Transfer(var top,auxtop:PStack);
          var
           d,Ssum:string;
           temp,temp1:PStack;
           check1,check2:boolean;
           num1,num2,sum:integer;
          begin
            temp:=top;
            while (temp<>nil) do
            begin
              if (temp^.val='(') then
              begin
                temp1:=temp^.prev;
                check1:=true;
                check2:=false;
                while (temp1^.val<>')') and (check1) do
                begin
                 if (temp1^.val='(') then
                   check1:=false;
                 if ((temp1^.val ='+') or (temp1^.val='*')) then
                   check2:=true;
                temp1:=temp1^.prev;
                end;

                if (check1) and (check2) then
                begin
                 temp:=temp^.prev;
                 sum:=0;
                 while (temp^.val<>')') do
                 begin
                   if ((temp^.val<>'+') and (temp^.val<>'*')) then
                   begin
                    d:=Combine(temp);
                    num1:=StrToIntConvert(d,length(d));
                    temp:=temp^.prev;
                    c:=temp^.val[1];
                    temp:=temp^.prev;
                    d:=Combine(temp);
                    num2:=StrToIntConvert(d,length(d));
                    sum:=Calc(num1,num2,c);
                    temp:=temp^.prev;
                   end
                  else
                  begin
                   num1:=sum;
                   c:=temp^.val[1];
                   temp:=temp^.prev;
                   d:=Combine(temp);
                   num2:=StrToIntConvert(d,length(d));
                   sum:=Calc(num1,num2,c);
                   temp:=temp^.prev;
                  end;
                 end;
                 Ssum:=IntToStrConvert(sum);
                 elem.val:=Ssum;
                 push(auxtop,elem);
                end
                else
                 push(auxtop,temp^);
              end
              else
               push(auxtop,temp^);
             temp:=temp^.prev;
            end;
           clear(top);
          end;

          procedure AuxTransfer(var top,auxtop:PStack);
          var
           temp:PStack;
          begin
           temp:=auxtop;
           while (temp<>nil) do
           begin
            push(top,temp^);
            temp:=temp^.prev;
           end;
           clear(auxtop);
          end;









Begin
 top:=nil;
 Rtop:=nil;
 auxtop:=nil;

writeln(plz insert a mathematical expression between parentheses and ending with "."  
 read(x);

 while (x<>'.') do
 begin
  elem.val:=x;
  push(Rtop,elem);
  read(x);
 end;

  AuxTransfer(top,Rtop);

 while (top^.prev<>nil) do
 begin
  Transfer(top,auxtop);
  AuxTransfer(top,auxtop);
 end;

 writeln;
 writeln('after calculating ... the conclusion = ', top^.val);

 readln;
 readln;

End.


الفصل الثاني مسائل ابتدائية 2

1.اخط برنامج يقرأ4 أعداد ويجد الأكبر بينهم

Read ( a,b,c,d )
If (a  >b ) then
   Max1 =a;
Else 
   Max1=b;
If (c>d)then
   Max2=c;
Else 
   Max2= d;
If (max2 >max1 )
   Max1 = Max2
Writeln( Max1)

ملاحظة برمجية عند وجود شرطين if متتالين كما في مثالنا فإن الحاسب سيقوم بفحص الشرطين معاً وفي حال عدم تحقق احدهما سينتقل إلى else الموافقة لل if للشرط المختل الحل بطريقة اخرى :

If (a>b ) And (a>c ) And (a>d) then
    Max =a
Else if (b>c) And (b>d) then
    Max =b
Else if (c>d)
    Max=c
Else max=d
Writeln(max)


2.اخط برنامج يقرأ مجموعة من الأعداد ويطبعا وإذا ادخلعشرة يتوقف البرنامج عن العمل

Readln(n)
While (n <> 10 ) do
   Writeln(n);
   Readln(n);
آو عن طريق التعليمة التالية break التي تؤمن خروج من الحلقة غير المنتهية 
 While (true)
      Readln(n)
       If (n = 10)
            Break
      Writeln(n)

3.اخط برنامج يبدل بين قيميتن مثال إذا كانت a=3 وb=2 يصبح a=2 وb=3

الطريقة الأولى :عن طريق 3 متحولات 
Temp = a;
a=b;
b=Temp;

الطريقة الثانية : عن طريق متحولين فقط 
a =a-b
b =a+b
a =b-a

4.السنة الكبيسة هي سنةقد يكون فيها عدد أيام شهر شباط 29 يوماً بدلا من 28 يوم ,تكون السنة كبيسة إذا كانت تقبل القسمة على أربعة بدون باقي ,باستثناء السنوات التي تأتي في نهاية جميع قرن حيث يجب ان تقبل القسمة على 400 بدون باقي لتكون كبيسة إلى غير ذلك فإن السنوات 1996و1940 و200 مثلا هي سنوات كبيسة في حين السنوات مثل 1995 و1969 و1900 و1800 ليست كبيسة . اخط برنامج بلغة شبه الرماز لقراءة السنة وطباعة إذا كانت كبيسة ام لا

Readln( year )
Isleap= false;
If (year mod 4 = 0 )then
    If (year mod 400 =0 )then
        Isleap= true
    Else 
        If (year mod 100 =0 )then
            Isleap=false;
       Else isleap=true;
Else
     Isleap = false
السنة تقبل القسمة على 4 و 400 = كبيسة
السنة تقبل القسمة على 4 ولا تقبل القسمة على 400 وتقبل على 100 = ليست كبيسة 
السنة تقبل القسمة على 4 ولا تقبل على 400 ولا 100 = كبيسة


5.لدى عميل في بنك مبلغ قيمته A يتقاضى فائدة سنوية قيمتها p لعدد من السنوات y احسن واطبع قيمة المبلغ بعد انقضاء عدد السنوات y

Read A,p,y
C=1
While (c<= y )do
     A = A+A*p
     C= C+1
Writeln(A)

6.اخط برنامج يقرأ مبلغ قدره A والفائدة التي يعطيها البنك لهذا المبلغ p والمطلوب طباعة بعد كم سنة يتضاعف المبلغ

Readln(a,p)
Y=0
Value =2*a;
While (a<= value )do
        A= A +A *p;
        Y=Y+1
Writeln(y)

7.اخط برنامج لقراءة عددين a,b وطباعة الأعداد المحصورة بينها تنازلياً

If (a>b)then
     Max =a;  min =b
Else
     max=b;   min =a
first=min ; last =max
while (first <=max ) do
      last = last -1
      fisrt = first +1
      writeln(last)

8.اخط برنامج لقراءة عدد سليم n وطباعة n! بحيث تعهد n!= n*(n-1)*(n-2)*(n-3)*…….1

fact: =1;
readln(n)     
for i:=1 to n do 	 
     fact:=fact*n;	
writeln)The Factor of the number ,n,is ,fact(;


9.اخط برنامج لحساب X مرفوع للقوة n بحيثقد يكون x,n ولج من المستثمر بكيفية تكرارية

Res :=1;
Readln(x,n)
For i=1 to n do 
   Res= Res *X; 
Writeln(Res);

10.اخط برنامج لحساب مجموع الأعداد الفردية من 1 إلى 100

Sum=0
For i =1 to 100 do
    Sum = sum +i

Writeln(sum)


11.اخط برنامج لجدول ضرب العدد n بجميع الأعداد من 1 إلىعشرة

Readln(n)
For i=0 to 10 do
      Prod =n *i
      Writeln( prod)

12.اخط برنامج يوجد جدول الضرب لجميع الأعداد من 1 إلىعشرة وذلك بان نوجد جدول خاص لضرب الأعداد مثلا بين 1 وبين باقي الأعداد وبين 2 وباقي الأعداد إلى غير ذلك

نحتاج إلى حلقتين كوننا نسير على مجموعتين من الأعداد

For i =1 to 10 do
   For j = 1 to 10 do
      begin
       Prod= i*j
       Writeln(prod)
      end;


13.اخط برنامج يقوم بعملية الضرب باستخدام الجمع

Readln(m,n)
mult:=0;
For i:=1 to n do
        Mult:=Mult+m;
Writeln(mult)


14.اخط برنامج لقراءة وطباعة التاريخ ويقوم بما يلي

قراءة متحول يمثل السنة 1989 إلى 2007

قراءة متحول يمثل الشهر من 1 إلى 12

قراءة متحول يمثل رقم اليوم 1 إلى b

بحيث يمكن ان نناقش اذا كانت السنة كبيسة ام لا وتعود b إلى الشهر المناسب فهناك اشهر فيها 31 يوم واخرى 30 و29 المطلوب إدخال المستخدم رقم التاريخ وإذا ادخل رقم خاطىء نطلب منه إعادة الإدخال حتى يتم الادخال السليم وعند الادخال السليم يتم أظهار التاريخ بشكل تام

Cyear =false هل هي سنة كبيسة ام لا    
Between = false
Read a,b // years
While not (between ) do
    Read (year )
    If (year >=a ) and (year <=b )
        Between =true
        If (year mod 4 =0 )
              Cyear =true  لن ندخل بكثير من التفاصيل سنقبل بالقسمة على 4 فقط ولن نتطرق إلى كافة الشروط 
        Between =false
       While not (between )do 
               Read(month)
               If (mnth >=1 ) and (month <=12 )
                   Between =true
A=1  , b=31
If (m=2)
         If cyear =true then
               B=29
         Else b=28
Else if (m=4) or (m=6) or (m=9) or (m=11)
             B=30
Between =false
While not (between)do
           Read  (day)
            If day>=1 and day<=b
                    Between =true
Writeln(day,  month, year )


15.اخط برنامج يقوم بعملية القسمة باستخدام عملية الطرح

Read m,n ;	sub:=1;
	repeat
		sub = sub+1;
		m = m-n;
	until  )m-n <>0(
Writeln)The result is ,sub(;

16.أخط برنامج يطبع n من الأعداد الموجبة بشرط ألا يطبع الأعداد الأولية:

تعريف العدد الأولي :هوالعدد الذي يقبل القسمة على نفسه والواحد فقط مثال العددسبعة عدد أولي لانه يقبل القسمة على نفسه وعلى ال1 فقط

Readln)num(;      j=0;
While )j <=n( do
     begin
      readln)m(;					{الأرقام المدخلة من المستخدم  
       isdone_ check:=false;		i:=2;
        While  )i  <=m-1(  and )not  isdone_ check) do    {true  
          if  i mod m=0 then		{ أي انه ليس أولي  
               isdone_ check:=true;
          else
                i:=i+1;
           isdone_ check:=false;
          end; {while  2 
        if  isdone_ check =true then
       write)m(;
        j = j+1;
end;					{ while 1 

شرح الطريقة

مثال لنفرض انه n =3 أي هناك ثلاثة أعداد للإدخال نقرأ العدد m ثم نسند ل i متحول من نمط عدد سليم العدد 2 لان الواحد يقبل القسمة already وهذه العملية ستبين التالي : نفرض ان تم إدخالستة ثمسبعة بالنسبة للستة سيدخل i وياخد القيم من 2 –5 وبيشوف إذا في عدد متل 2 هلق هويقبل القسمة على 2 إذا هيك بيطلع وما بيطبع العدد بينما إذا فتنا علىسبعة لح نلاقي انومافي أعداد من 2-6 بتقبل القسمة علىسبعة فلا نطبعه

17.اخط برنامج يجمع آخر عددين مدخلين

Readln  n  ;	عدد الأرقام المدخلة                  sum:=0;
for i:=1 to n do
      begin
      Readln m ;
       if i+1=n then
              sum:=sum+m;
       end;
writeln(sum)
آو طريقة أخرى نحن لا نفهم عدد الأرقام المدخلة 
Sum=0,m=0;
C :srting
While ( c <>no ) do
begin
      Writeln(Do u want to read a number )
      Readln(c)
      Sum2=m; // The old value of m 
      If c=yes then
            Readln(m)
            Sum2=m;
     Else 
            Sum =sum1 +sum2;
End;


18.اخط برنامج يطبع الشكل حيث يدخل المستخدم عدد n ليحدد عدد الأسطر

1

212

32123

4321234

Readln   n   ;
Writeln)1(;
for i:=2 to n do
for j:=i downto 2 do
write)j:4(;
for j:=1 to i do
write)j):4((;

19.اخط برنامج يدخلعشرة أعداد تكون محصورة بين 10-100 ويطبع التي لم تتكرر ملاحظة للحل :بما ان لديناعشرة أعداد فنشكل مصفوفة لا ن بعدها ثابت ونضع الأرقام ثم نطبع الأعداد غير المتكررة

var A: array]1..10[ of integer;
i:=1;
while i<=10 do
begin
read   m  
if   m in 10..100   then    {m >=10   &    m<=100 
begin
A]i[n=n  m;
i:=i+1;
end;
else  
writeln  )Enter a number which have the domain 10..100( 
j:=1;
{// طباعة غير المكرر 
while   j< 10   do    
for k:=j+1 to 10 do
begin
if A]j[  n=n  A]k[   then
found:=true
else  found:=false;
end;
if found=false then 				writeln  A]j[;
end;

20.اخط برنامج يقوم بتبديل بين أول مرتبة وآخر مرتبة بالعدد مثال : العدد 1217 يصبح 7211 سؤال وظيفة عملي


num,mid=0,n2,digits,last,first,n1=0,res   : integer;
readln num;
first =num mod   10;
n2 =num;		 digits =1;
	while )n2 div  10 <> 0( do 
	begin
		Digits = digits +1;
		n2 =n2 div  10;
		last =n2;
	end 

n2 =num div 10; 
int digit_counter =1;
	for ) i=1 to digits-2 ( do
	begin
		mid = n2 mod  10   *   powf)10,digit_counter(;  
		n1 =n1+mid;
		n2 =n2 div  10; 
		digit_counter=digit_counter+1 ;
	end


for ) m=1 to digits-1 ( do
first =first*10;

res =last+first+n1;
Writeln )  res   (

شرح الطريقة ناخذ الرقم الاول بعملية واحدة هي العدد mod ال10 بينما الرقم الأخير نقوم بحساب عدد خاناته ولنفترض لديناالرقم 1234 فينتج لدينا أربعة خانات فيكون آخر عدد 1234 مقسوم على 1000 فينتج 1 فيكون العدد الناتج هو4000+ 1 + رقم نشكله وهويمثل القسم الأوسط من العدد نقوم بعملية بسيطة لنشكل العدد 230 وهذه العملية بعد تعريف digit_counter بالقسم الأوسط من الكود


21.اخط برنامج يقوم بإدخال عدد من المستثمر ويحسب عدد خاناته

Function Number_digit )n:integer(integer;
Var digit:integer;
Begin
Digit:=0;
While n div 1o <> 0 do
begin
digit:= digit+1;
n:=n div 10 
end;
end;

22.اخط برنامج يقيوم بفهم هل الرقم المدخل بدايتوتساوي نهايتو

Readln  n  
first:=n mod 10;
while n   <>0 do
begin
last:=n div 10
n:=n div 10
end;
if first = last then 		write  first,last  ;


23.المطلوب كتابة برنامج يقوم بجمع الأعداد m المتتالية وفق القاعدة التالية :مثال: m=8 sum=1-2+3-4+5-6+7-8

Read  m 
For k:=1 to n do
    If k mod 2 = 0 then
            Sum:=sum-k;
    Else
   	    sum:=sum+k;

24.ندخل عدد الثواني ثم يقوم الحاسب بإظهار عدد الساعات ،الدقائق،الثواني على الشكل التالي h:m:s

program time;
var
hour,min,sec,temp,temp2,day,t:longint;

begin
writeln)'enter your time in the form of seconds'(;
Readln)t(;
sec:=t mod 60;
temp:=t div 60;
min:=temp mod 60;
temp2:=temp div 60;
hour:=temp2 mod 24;
day:=temp2 div 24;
writeln)'day=',day,' hour=',hour,' min=',min,' sec',sec(;
readln;
end. 
آو يمكن الحل بهذه الطريقة 
Function getTime)seconds: LongInt(: String;
  Var
    H, M, S: Integer;
  Begin
    H := seconds div 3600;
    seconds := seconds mod 3600;
    M := seconds div 60;
    S := seconds mod 60;
    getTime := IntToStr)H( + ':' + IntToStr)M( + ':' + IntToStr)S(;
  End;

25.اخط برنامج ينشى السلسة التالية : 1-1-2-3-5-8-13-21-34…..

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

x=0;
 y=1
for i=2 to n-1 do
  begin
    temp=y
    y=y+x
    x=temp
  end

26.أوجد جذر عدد مدخل موجب

الحل يهجر كوظيفة للقارىء

احدى الطرق تتمثل بان نجمع عدد الأعداد الفردية المكونة للرقم مثال جذر ال16 هوأربعة لان عدد الأعداد الفردية والتي مجموعها يساوي 16 هي أربعة أعداد فردية 1+3+5+7


الفصل الثالث مسائل على المحارف Char

بعض الملاحظات الهامة في التعامل مع المحارف في باسكال الأعداد :

متمم العدد للعدد 9 Ch:=chr)ord)0) n+n ord)9) n-n ord)ch));

متمم للعدد 10 Ch:=chr)ord)0) n+n ord)9) n-n ord)ch) n+n 1(;

متمم عدد من اجل أي عدد n جميع الحقوق محفوظة لواز

X:=n-9

Ch:=chr)ord)0( + ord)9) - ord)ch) + x(

الأحرف التحويل من حرف صغير إلى كبير a..z ch:=chr)ord)‘A’ + (ord)‘a’ - (ord)ch((; آويمكن بطريقة أخرى

ch:=chr)ord)‘Z’ ( n-n ord)‘z’ (n+n ord)ch((;

التحويل من حرف كبير إلى حرف صغير A..Z

Ch=chr(-ord(‘a’) +ord(‘A’) +ord(ch));


1.اخط برنامج لتحويل سلسلة من الحدثات من كبتل إلى اسمول وحساب أحرف العلة

تذكرة : أحرف العلة بالإنجليزية تذكرة a,u,e,o,i

S:string
for i=1 to length)s( do
if ord)s]i[ >A(     and      ord)s]i[<Z( 
s]i[ n=n chr)ord)c(n-n ord)A) n+n ord)a((

if s]i]n=n a or s]i] n=n u or ……. then
Vowel=vowel +1


2.اخط برنامج يعكس جميع حدثة داخل سلسلة

first,last:integer  
s:string]100[
first=1
while i<= length)s( do
if s]i] n=n    then
    begin
        first=i+1 ; last=i-1
        for j=last downto first do 
              write s]i[ ;
         writeln;
    end;{if 
else
     i=i+1

3.اخط برنامج يأخذ أول حرف من جميع حدثة ويطبعه

Write  s]1] n:n 4 
for j=2 to length)s(do
       if s]j] n=n  then
              write)s]i+1] n:n 4(

4.اخط برنامج يعهد ان هل الحدثة تقرأ من الجانبين ام لا )بحدثة أخرى هل هي متناظرة ام لا بالنسبة للمنتصف

For i =1 to length (s) div2 do 
  begin
     If  S[i] = S[length (s) i+1] then
               Is_semtirc =true;
     Else 
             Begin
               Is_semtirc =false ;
               Break;
             End;
    End;

5.اخط برنامج تدخل سلسلة من الحدثات ويعكس جميع الحدثات ما عدا اول وآخر حدثة

إيجاد خانة البداية لثاني حدثة وآخر حدثة 
For i =1 to  length (s) do
   If S[i] =   then  {space  
          First =i
   If S[length (s) i+1 ] =    then  {space  
          Last = length (s) i+1
العمل ضمن مجال الحدثة لعكس الأحرف 
First _temp_word = first;
For i = first to last do 
    If S[i] =   then   {space  
        begin
           Last_temp_word  =    i;
           For j=  First _temp_word to  Last_temp_word div 2  do
                         S[j]= S [Last_temp_word j +1]
           First _temp_word= i+1;
        End;


6.اخط برنامج يطبع أوسط جميع حرف من جميع حدثة

First=1;
For i =1 to  length (s) do
      If S[i] =   then  {space  
              Begin
                     Last =i;
                     Writeln(S[first+last /2] )
                     First =i+1
                End;


7.اخط برنامج يطبع حدثة Capital وحدثة Small

i=1
for j=1 to length)s(
        if i mod 2=o then زوجي 
              begin
                 if ord)s]i[(>a(  and ord)s]i[ <z( then الحرف صغير 
                       write  s]i] n:n 4 
                else
                       write )chr)ord)s]i[(-ord)A(+ord)a(( 
              end {if 
           else فردي
                 if ord)s]i[(>A( and ord)s][i[<Z( then
                           write)s]i[:4(;
                   else
                          write )chr)ord)s]i[ n)+n ord)A) n-n ord)a((


8.المطلوب إدخال نص (محرف محرف ) ينتهي بنقطة ومن ثم اظهار النص المدخل وذلك بعد عكس المحارف مثال: النص المدخل .dido والنص بعد المعالجة odid.

A:array ]1..100[ of char
C:char
Repeat 
Read  c  
    A]i]   = c
     I:=i+1;
Until c=. 
For j:=I downto 1 do
     Write)A]i[:4(

program paragraph )input,output( ;
const
  n = 10;
var
  a : array]1..n[ of char;
   i:integer;
  m:char;
 begin
   read m  ;
   writeln) ' Please enter the text in order to reverse it' ( ;
    i:=1 ;
   while )m<> ' . ' (and )i<>n(do
       begin
          a]i[ := m;
          read  m  ;
          i:= i+1;
       end;
   for i:=n downto 1 do
     begin
       write)a]i[( ;
     end;
  readln;  readln;
 end.

9.اخط برنامج بلغة باسكال يقوم بقراءة سلسلة من المحارف(string)تنتهي بالمحرف(.)ثم يقوم البرنامج بأيجاد المحرف ذي التواتر الاكبر(المحرف الذي يرد في سلسلة المحارف لاكبر عدد من المرات) وأظهاره

program test;
type
vect=array]'a'..'z'[of integer;
var	j:char;	max,i:integer;	s:string;	a:vect;	found:boolean;

begin
writeln)'write the text'(
read)s(;
i:=1;
j:='a';
while)s]i[<>'.'do
begin
found:=false;
j:='a';
      while)j<>'z' ( and)not found(do
       begin
           if)s[i] =j )then
                    begin
                      a[j]= a[j+1]
                       found:=true;
                     end;
             j:=succ(j)
          end;
       i:=i+1;
end;





(*this section is to count the freq for each letter *)
max:=a]'a'[;     (*comparing the max *)
for j:='a' to 'z' do
begin
     if(max<a[j] )  then
       max:=a[j] ;
end;

for j:='a' to 'z' do  (*showing off that max*)
begin
if(max=a[j] )then
begin
case j of
     'a':writeln('a');
     'b':writeln('b');
     'c':wrietln('c');
.........
     'z':writeln('z');

end;   (*case*)
end;    (*if*)
end;  (*for*)
readln;

end.

10.أخط برنامج لفصل سلسلة حرفية الى ثلاث مجاميع واحدة للحروف الكبيرة والثانية للأرقام والثالثة للحروف المتبقية من السلسلة الحرفية طبعا باستخدام ال string

Capital :array ]A..Z[ of char
Number:array ]1..9[ of integer;
ordinary:array]a..z[of char

Writeln)Enter the text(;

Read)s(;	)*s is verify as string *(;
For i:=1 to length)s( do
Case s]i[ of
A..Z	: capital]i[ =s]i[;
1..2	: number ]i[ =s]i[;
a..z	: ordinary]i[ =s]i[;


الفصل الرابع العمليات على المصفوفات

تاريخ النشر: 2020-06-04 09:21:19
التصنيفات: مشروع أكاديمية المعرفة, برمجة, باسكال

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

وزيرة البيئة: مصر حرصت خلال COP27 على دفع أجندة العمل المناخي والمفاوضات

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:42
مستوى الصحة: 57% الأهمية: 60%

القنوات الناقلة لمباريات مونديال قطر

المصدر: RT Arabic - روسيا التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:16:56
مستوى الصحة: 88% الأهمية: 94%

التحديات العالمية أمام رابطة آسيان والأولويات "2 من 2"

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:10
مستوى الصحة: 77% الأهمية: 88%

مدرب الإكوادور: أحلم بالفوز بكأس العالم

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:03
مستوى الصحة: 82% الأهمية: 85%

خريفي معتدل.. «الأرصاد» تكشف حالة الطقس حتى الخميس القادم

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:39
مستوى الصحة: 49% الأهمية: 53%

5 أرقام قياسية يستحيل تحطيمها في مونديال قطر

المصدر: RT Arabic - روسيا التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:16:55
مستوى الصحة: 94% الأهمية: 87%

الألماني موكوكو: نقاط اليابان هدية عيد ميلادي الـ18

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:08
مستوى الصحة: 88% الأهمية: 93%

تقرير أميركي يؤكد وجود "مئات المفقودين" في خيرسون

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:17:11
مستوى الصحة: 91% الأهمية: 93%

فيروس غريب يثير قلقا ورعبا في مصر .. هذه قصته الكاملة

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:17:28
مستوى الصحة: 80% الأهمية: 92%

شاهد جسماً فضائياً يخترق الأرض.. سمع سكان هذا البلد دوي انفجاره

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:05
مستوى الصحة: 93% الأهمية: 92%

وزيرة المناخ والبيئة السويدية تشيد بدور مصر فى قمة المناخ 

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:38
مستوى الصحة: 59% الأهمية: 51%

طقس الغد.. مائل للحرارة والعظمى بالقاهرة 27 درجة

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:46
مستوى الصحة: 59% الأهمية: 53%

الملك تشارلز يحظر طبقاً من الموائد الملكية.. وهذا السبب

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:12
مستوى الصحة: 91% الأهمية: 93%

مارسيل كولر يظهر في ملعب الأهلي بـ مدينة نصر

المصدر: الأهلى . كوم - مصر التصنيف: رياضة
تاريخ الخبر: 2022-11-19 15:18:22
مستوى الصحة: 31% الأهمية: 47%

الرئيس الفنزويلي يفتتح الجناح المصري بمعرض فنزويلا الدولي للكتاب

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:36
مستوى الصحة: 56% الأهمية: 70%

في زيارة مفاجئة.. ريشي سوناك يلتقي زيلينكسي في كييف

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:17:10
مستوى الصحة: 85% الأهمية: 94%

«تنسيقية شباب الأحزاب والسياسيين» تدشن يومًا رياضيًا بالبدرشين 

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:44
مستوى الصحة: 59% الأهمية: 53%

قوة تقودها واشنطن في مياه الخليج تستعد لنشر 100 سفينة مسيرة  

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:17:23
مستوى الصحة: 78% الأهمية: 100%

الناتو: مقاتلتان روسيتان حلقتا بشكل خطير فوق سفننا بالبلطيق

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:17:12
مستوى الصحة: 85% الأهمية: 90%

الرعاية الأسقفية تنظم قافلة طبية لأهالي عين شمس

المصدر: بوابة أخبار اليوم - مصر التصنيف: سياسة
تاريخ الخبر: 2022-11-19 15:18:33
مستوى الصحة: 54% الأهمية: 70%

تحميل تطبيق المنصة العربية