Recent

Author Topic: شاركـ ببرنامج  (Read 18611 times)

pascal111

  • Moderator
  • Sr. Member
  • *****
  • Posts: 423
  • Un trabajo en equipo para programas serias.
Re: شاركـ ببرنامج
« Reply #15 on: October 07, 2021, 01:45:03 pm »
لا يخطر على بالي شي حاليا
لكن كانت لدي هنالك فكرة نقل كود للغة BASIC من السي للباسكال، مهتمه تنفيذ مشاريع لغة بيسك بسيطة
الصراحة اني وجدته بسيط جدا و جميل فأحببت انت اتركه لاحدهم لكي يتعلم منه
قم بالمحاولة بتحويله
https://gist.github.com/pmachapman/661f0fff9814231fde48

يبدو الكود حقّاً رائعا! لكن خبرتي في الـ C++ ضعيفة ولا تكفني فهم كل عناصر هذا الكود ،هذا مُفسّر BASICمكتوب برشاقة .
« Last Edit: October 08, 2021, 02:26:36 pm by pascal111 »
La chose par la chose est rappelé.

Zaher

  • Hero Member
  • *****
  • Posts: 679
    • parmaja.org
Re: شاركـ ببرنامج
« Reply #16 on: October 07, 2021, 01:57:10 pm »
لا، الكود مكتوب ببساطة، و اعتبرها فترة تجربة جميلة و يمكنك قرائته بسهولة، كنوع من التمرين، او اعتبره تحدي
أو حوله لأحد آخر

pascal111

  • Moderator
  • Sr. Member
  • *****
  • Posts: 423
  • Un trabajo en equipo para programas serias.
Re: شاركـ ببرنامج
« Reply #17 on: October 08, 2021, 02:25:55 pm »
لا، الكود مكتوب ببساطة، و اعتبرها فترة تجربة جميلة و يمكنك قرائته بسهولة، كنوع من التمرين، او اعتبره تحدي
أو حوله لأحد آخر


ليس لدي وقت للتحدي ،فلا يعنيني هذا المستوى من التفكير ،وأمّا رؤيتكـ أنّ الكود مكتوب ببساطة فيبدو أنّ قدراتكـ أعلى من قدراتنا في فهم الأكواد وأمّا أنا فلا أراهُ بسيطاً ،وأمّا تحويله ﻷحدٍ آخر فليتفضّل أيّاً من الأعضاء في ذلكـ فليس فرضاً على أحد والموضوع جلّهُ هواية فمن يهوى تحويل الكود للـ Pascal فليفعل.

La chose par la chose est rappelé.

pascal111

  • Moderator
  • Sr. Member
  • *****
  • Posts: 423
  • Un trabajo en equipo para programas serias.
Re: شاركـ ببرنامج
« Reply #18 on: October 08, 2021, 11:42:52 pm »
هذه لعبة Acey Ducey ،النسخة الأصليّة مبرمجة بلغة الـ BASIC وقد قمت ببرمجتها برمجة مرئيّة باستخدام Lazarus ولكن من يطلب نسخة مُجرّدة عن إضافات البرمجة المرئيّة فلديّ نسخة بكود الـ C++ لمن يرغب في تحويلها إلى كود Pascal باستخدام الـ Terminal.

https://github.com/pascal111-fra/aceyducey

Code: C  [Select][+][-]
  1. /* Acey Ducey game,
  2. originally programmed in
  3. BASIC */
  4.  
  5.  
  6. #include <iostream>
  7. #include <cstdlib>
  8. #include <string>
  9. #include <cctype>
  10.  
  11. using namespace std;
  12.  
  13.  
  14.  
  15. string card_name(int x); // turning cards valuse into strings function
  16.  
  17. int main(void)
  18. {
  19.  
  20. int your_money=100;
  21. int card_A,
  22.     card_B, card_C;
  23.    
  24. char q;  
  25.  
  26. int bet_much;
  27.  
  28. srand(time(NULL));
  29.  
  30.  
  31.  
  32. do // 1st do
  33. {
  34.    
  35.    
  36. cout << "You've "
  37.      << your_money
  38.      << "$" << endl;
  39.      
  40.          
  41. // Generating the two cards:
  42.  
  43. do
  44. {
  45.  
  46. card_A = (rand()%13)+2;
  47. card_B = (rand()%13)+2;
  48.  
  49. } while (!(card_A < card_B) && !((card_B - card_A) >=2));
  50.  
  51.  
  52. cout << "Here are your two cards: "
  53.      << card_name(card_A) << " "
  54.      << card_name(card_B) << endl;
  55.      
  56.      
  57.  
  58. // Betting query:
  59.  
  60.  
  61. card_C = (rand()%13)+2;
  62.  
  63. do
  64. {
  65.  
  66. cout << "Do you'll bet (y/n/e = (exit))? ";
  67. cin >> q;
  68.  
  69. } while ((tolower(q)!='y') &&
  70.            (tolower(q)!='n') &&
  71.            (tolower(q)!='e'));
  72.  
  73.  
  74. // agreeing betting
  75.  
  76. if (tolower(q)=='y')
  77.  
  78. {
  79.  
  80.  
  81. do
  82. {
  83. cout << "With how much? ";
  84. cin >> bet_much;
  85.  
  86. if (bet_much>your_money)
  87.    {
  88.  
  89.      cout << "You don't have this much to bet with,"
  90.           << endl << "you have " << your_money << "$"
  91.           << endl;                    
  92.    
  93.    }
  94.        
  95. } while (!(bet_much<=your_money));
  96.  
  97.  
  98. if ((card_C>=card_A) && (card_C<=card_B)) // following agreeing betting 'if'
  99.    {
  100.    
  101.     cout << "You are right! " << endl
  102.          << "3rd card is: "
  103.          << card_name(card_C) << endl;
  104.          
  105.     your_money+=bet_much;
  106.    
  107.    }
  108.    
  109. else
  110.     {
  111.    
  112.      cout << "Oops! you are wrong!" << endl
  113.           << "3rd card is: "
  114.           << card_name(card_C) << endl;
  115.      your_money-=bet_much;
  116.    
  117.     }  
  118.  
  119. }
  120.  
  121. else // 'else if' of agreeing betting 'if'
  122.  if(tolower(q)=='e')
  123.     exit(0);
  124. else // considered final 'else' of agreeing betting 'if'
  125.  cout << "CHICKEN!!!" << endl;
  126.  
  127.  
  128. /* q='\0'; if q will be tested without,
  129.  renewing its original value. */
  130.  
  131. // Your money = 0 test
  132.  
  133. if (your_money == 0)
  134.  
  135. {
  136.  
  137.  
  138. do
  139. {
  140. cout << "Oops! you have no money to bet with,"
  141.      << endl << "do you want playing again (y/n)? ";
  142.      
  143. cin >> q;
  144.  
  145. } while ((tolower(q)!='y') &&
  146.            (tolower(q)!='n'));
  147.  
  148. if (tolower(q)=='y') // nasted in 'if money = 0'
  149. {
  150.  
  151. your_money = 100;
  152.  
  153. }
  154.  
  155. else
  156.  /* if (tolower(q)=='n') ignored because
  157.  'else' will be passed because there will be
  158.  no test in its 'if' if money isn't 0 */
  159.  
  160.  exit(0);
  161.  
  162. } // if money = 0
  163.  
  164.  
  165.  
  166. } while (true); // 1st do
  167.  
  168.  
  169.  
  170.  
  171. return 0;
  172. }
  173.  
  174.  
  175. // turning cards valuse into strings function
  176. string card_name(int x)
  177. {
  178.  
  179. string c;
  180.  
  181. switch (x)
  182. {
  183.  
  184. case 11:
  185.         c="Jack";
  186.         break;
  187.  
  188. case 12:
  189.         c="Queen";
  190.         break;
  191.        
  192. case 13:
  193.         c="King";
  194.         break;
  195.        
  196. case 14:
  197.         c="Ace";
  198.         break;
  199.        
  200. default:
  201.         c=to_string(x);
  202.  
  203.  
  204. }
  205.  
  206. return c;
  207. }
  208.  
« Last Edit: October 09, 2021, 01:26:27 am by pascal111 »
La chose par la chose est rappelé.

Al-Eid

  • Jr. Member
  • **
  • Posts: 75
Re: شاركـ ببرنامج
« Reply #19 on: October 27, 2021, 03:11:34 pm »
السلام عليكم
في الحقيقة هذا ليس برنامج ولكنه عبارة عن كود صغير وجدته في الأنترنت وأردت أن أنشره في هذا الموضوع
يعمل هذا الكود مع أداة  DBNavigator بحيث يقوم بسؤال المستخدم على تأكيد عملية الحذف
أولا نجعل قيمة الخاصية  ConfirmDelete تساوي False للأداة DBNavigator

وفي الحدث BeforeDelete للأداة SQLQuery نكتب الكود التالي
Code: Pascal  [Select][+][-]
  1.    if MessageDlg('تحذير','هل أنت متأكد من حذف',mtWarning,mbYesNo,0)<> mrYes  then Abort
  2.    else if MessageDlg('تأكيد','للتأكيد مرة ثانية'+#13+'هل أنت متأكد من حذف',mtWarning,mbYesNo,0)<> mrYes then Abort ;
  3.  

Al-Eid

  • Jr. Member
  • **
  • Posts: 75
Re: شاركـ ببرنامج
« Reply #20 on: November 24, 2021, 12:01:46 pm »
السلام عليكم
هذا برنامج لترتيب مصفوفة
Code: Pascal  [Select][+][-]
  1.  
  2. program forloop;
  3. uses crt;
  4. var a:array[1..10]of byte;
  5.    temp:byte;
  6.    i,k:byte;
  7. begin
  8.     clrscr;
  9.     (*fill the array with random numbers*)
  10.     WriteLn('fill the array with random numbers : ');
  11.  for i:=1 to 10 do
  12. begin
  13.      ReadLn(a[i]);
  14.     //random(100)+1
  15.  end;
  16.  
  17.    (*short the numbers of the array a*)
  18.  
  19.  for i:=1 to 9 do
  20. begin
  21.        for k:=i+1 to 10 do
  22.  begin
  23.           if a[i] > a[k] then
  24. begin
  25.              temp:=a[i];
  26.                a[i]:=a[k];
  27.                a[k]:=temp;
  28.           end;
  29.         end;
  30. end;
  31.    writeln;
  32.  
  33.     writeln('shorted results: ');
  34.  (*write the result to the screen*)
  35.   for i:=1 to 10 do begin       write(a[i],',');
  36.  end;
  37.   writeln;
  38.     (*press any key to quit*)
  39.     while not keypressed do continue;
  40. end.
  41. (*created by FlamingClaw 2010.02.04.*)
  42.  
  43.  
  44.  

pascal111

  • Moderator
  • Sr. Member
  • *****
  • Posts: 423
  • Un trabajo en equipo para programas serias.
Re: شاركـ ببرنامج
« Reply #21 on: May 08, 2022, 03:44:11 am »
السلام عليكم
في الحقيقة هذا ليس برنامج ولكنه عبارة عن كود صغير وجدته في الأنترنت وأردت أن أنشره في هذا الموضوع
يعمل هذا الكود مع أداة  DBNavigator بحيث يقوم بسؤال المستخدم على تأكيد عملية الحذف
أولا نجعل قيمة الخاصية  ConfirmDelete تساوي False للأداة DBNavigator

وفي الحدث BeforeDelete للأداة SQLQuery نكتب الكود التالي
Code: Pascal  [Select][+][-]
  1.    if MessageDlg('تحذير','هل أنت متأكد من حذف',mtWarning,mbYesNo,0)<> mrYes  then Abort
  2.    else if MessageDlg('تأكيد','للتأكيد مرة ثانية'+#13+'هل أنت متأكد من حذف',mtWarning,mbYesNo,0)<> mrYes then Abort ;
  3.  
إستخدام جيّد جدّاً لأساليب البرمجة المرئيّه ،أتكلّم من واقع خبرتي مع البرمجة في بيئة الـ DOS
La chose par la chose est rappelé.

pascal111

  • Moderator
  • Sr. Member
  • *****
  • Posts: 423
  • Un trabajo en equipo para programas serias.
Re: شاركـ ببرنامج
« Reply #22 on: May 08, 2022, 03:45:37 am »
السلام عليكم
هذا برنامج لترتيب مصفوفة
Code: Pascal  [Select][+][-]
  1.  
  2. program forloop;
  3. uses crt;
  4. var a:array[1..10]of byte;
  5.    temp:byte;
  6.    i,k:byte;
  7. begin
  8.     clrscr;
  9.     (*fill the array with random numbers*)
  10.     WriteLn('fill the array with random numbers : ');
  11.  for i:=1 to 10 do
  12. begin
  13.      ReadLn(a[i]);
  14.     //random(100)+1
  15.  end;
  16.  
  17.    (*short the numbers of the array a*)
  18.  
  19.  for i:=1 to 9 do
  20. begin
  21.        for k:=i+1 to 10 do
  22.  begin
  23.           if a[i] > a[k] then
  24. begin
  25.              temp:=a[i];
  26.                a[i]:=a[k];
  27.                a[k]:=temp;
  28.           end;
  29.         end;
  30. end;
  31.    writeln;
  32.  
  33.     writeln('shorted results: ');
  34.  (*write the result to the screen*)
  35.   for i:=1 to 10 do begin       write(a[i],',');
  36.  end;
  37.   writeln;
  38.     (*press any key to quit*)
  39.     while not keypressed do continue;
  40. end.
  41. (*created by FlamingClaw 2010.02.04.*)
  42.  
  43.  
  44.  

منطق ممتاز!
La chose par la chose est rappelé.

kito

  • Jr. Member
  • **
  • Posts: 78
Re: شاركـ ببرنامج
« Reply #23 on: February 19, 2023, 10:51:06 pm »
هذا برنامج بسيط كنموذج لعمل برمجة مرئيّة دون حد النموذج.

Code: Pascal  [Select][+][-]
  1. program project1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. uses
  6.   interfaces,
  7.   {$IFDEF UNIX}{$IFDEF UseCThreads}
  8.   cthreads,
  9.   {$ENDIF}{$ENDIF}
  10.   Classes, Dialogs, sysutils
  11.   { you can add units after this };
  12.  
  13. var
  14.  
  15.   x:real;
  16.   y:string;
  17.   err:integer;
  18.  
  19. begin
  20.  
  21.  
  22.   repeat
  23.   y:=inputbox('Enter...','Enter correct numeric value:','');
  24.   val(y,x,err);
  25.   until (y<>'') and (err=0);
  26.  
  27.   showmessage(floattostr(x));
  28.  
  29. end.
  30.  
  31.  

حاولت تجربة هذا المثال  لكن دائما تأتيني رسالة الخطأ المرفقة نفس رسالة الخطأ عند تنزيل الملف المرفق و تشغيله
_________________________
lazarus 2.2.4
win 11 64 bit



« Last Edit: February 19, 2023, 10:54:00 pm by kito »
We can barely feel your presence, because of the depth of your silence

 

TinyPortal © 2005-2018