مشاهدة النسخة كاملة : برنامج باسكال على طريقة PowerPoint (من برمجتي)
King Soft
2012-05-23, 18:57
السلام عليكم ورحمة الله وبركاته
اليوم اتيت لكم بمثال عن التلاعب وانفلات النص في الباسكال
ليصبح برنامجك كالباور بوتنت PowerPoint
program Skin;
uses Crt;
var i,j:integer;
procedure Titre(text:String;line,Color:byte);
begin
Textcolor(Color);
for i:=50 downto 5 do
begin
gotoxy(i,Line);
Write(Text);
Delay(20);
write(' ');
end;
end;
begin
Titre('Programation de : ',2,10);
Titre(' Abdelbaki',3,10);
Titre('profession :',6,5);
Titre(' Etudiant duniversite',7,5);
Titre('specialisation :',11,7);
Titre(' Maths et informatique ',12,7);
Titre('universite de : ',16,14);
Titre(' El oued Souf ',17,14);
Titre(' annee universitaire 2012 ',21,3);
readln;
end.
لا تتردد في السؤال
بالتوفيق
siba alg
2012-05-24, 14:49
شكرا بصح ممكن تشرح البروسيدور وقتاش نستعملوه من فضلكونصيحة فيما يخص حل الاختبار
King Soft
2012-05-24, 17:25
شكرا بصح ممكن تشرح البروسيدور وقتاش نستعملوه من فضلكونصيحة فيما يخص حل الاختبار
نلجا عادتا لاستعمال البروسيدير عند وجود تعليمة متكررة اكثر من مرة في البرنامج
فنضرع هذه التعليمة في بروسيدير تحت اسم معين وعند احتياج تلك التعليمات نكتب فقط اسم البروسيدير اختصار
لكل تلك التعليمات
بالتوفيق
imane-usa
2012-06-04, 00:14
merci pour cela
mostafa31
2012-06-04, 12:54
manakdabch 3llik mafhamtch khatar ana 3andi problem kbir fel pascal malgré ca merci
حذيفة بن اليمان
2012-06-19, 22:35
انت باين عليك مبرمج وتعرف الخوارزمية.
ممكن نتواصل معاك أخي؟
عندي ليك برنامج معقد لو تقدر تحله نستعرف بيك.
you92cef
2012-06-20, 20:12
انت باين عليك مبرمج وتعرف الخوارزمية.
ممكن نتواصل معاك أخي؟
عندي ليك برنامج معقد لو تقدر تحله نستعرف بيك.
هاته
نحلوه
you92cef
2012-06-20, 21:47
السلام عليكم ورحمة الله وبركاته
اليوم اتيت لكم بمثال عن التلاعب وانفلات النص في الباسكال
ليصبح برنامجك كالباور بوتنت PowerPoint
program Skin;
uses Crt;
var i,j:integer;
procedure Titre(text:String;line,Color:byte);
begin
Textcolor(Color);
for i:=50 downto 5 do
begin
gotoxy(i,Line);
Write(Text);
Delay(20);
write(' ');
end;
end;
begin
Titre('Programation de : ',2,10);
Titre(' Abdelbaki',3,10);
Titre('profession :',6,5);
Titre(' Etudiant duniversite',7,5);
Titre('specialisation :',11,7);
Titre(' Maths et informatique ',12,7);
Titre('universite de : ',16,14);
Titre(' El oued Souf ',17,14);
Titre(' annee universitaire 2012 ',21,3);
readln;
end.
لا تتردد في السؤال
بالتوفيق
البرنامج غير شغال
King Soft
2012-06-21, 15:28
انت باين عليك مبرمج وتعرف الخوارزمية.
ممكن نتواصل معاك أخي؟
عندي ليك برنامج معقد لو تقدر تحله نستعرف بيك.
اوكي اخي اعطيني البرنامج وباذن الله نعطيك الحل
بالملاحظة انا لا استطيع ارسال الرسائل بسبب قلة المشاركات
اي اما انك تبعثي البرنامج او تضعه في رد
you92cef
2012-06-21, 17:50
حطه هنا نحلوه في رحبة
حذيفة بن اليمان
2012-06-21, 20:34
أوكي، شكرا لكما على الرد، وإليكم السؤال:
أعمل برنامج باسكال، يعمل مصفوفة ثنائية الأبعاد 8x8.
بعدها يتم ملأ هاته المصفوفة بطريقة عشوائية برقمين فقط هما 0 و 1. يعني لن تملأ المصفوفة يدويا بل عشوائيا باستعمال الدالة Random.
بعدها، نضع في كل سطر خانة سوداء (ليكون الجدول مثل الكلمات المتقاطعة)، يمكنك أن تعتبر الخانة كراكتر مثلا #
يعني في كل سطر يكون # واحد، وفي كل سطر مكانه يختلف يعني يكون بطريقة عشوائية أيضا.
الان تحصلنا على جدول عبارة عن أرقام متقاطعة، مثل الكلمات المتقاطعة، في كل سطر هناك عدد أو عددين في النظام الثنائي (Binaire) وعلينا الآن أن نحول كل سطر إلى النظام العشري (Decimale).
(مثلا حين نحول السطر الأول (يمكنك التحويل بدالة)، السطر الأول مثلا فيه أكيد خانة سوداء # وإذا كانت هاته الخانة الأولى أو الأخيرة أكيد سيكون في السطر عدد واحد فقط، أما إذا كانت تختلف عن الأولى والأخيرة فأكيد سيوجد لنا عددان في هذا السطر، عدد قبل خانة # وعدد بعد خانة #).
هذا البرنامج كان عبارة عن مشروع طلبه أستاذ دكتور معنا في الجامعة وكنت أحاول فيه ثم أمنحه الحل ليصحح لي الأخطاء ويوجهني والحقيقة ساعدني فيه كثيرا واستفدت منه كثيرا، وقد وصلت إلى مراحل متقدمة فيه، إلا أن السنة انتهت ولم ألتق بالأستاذ مجددا.
وهذا البرنامج هو مساعدة وتطوير حقيقي لكل مبرمج.
إشرعوا في حله، ولأي استفسار أنا موجود وإن شاء الله يكون الجميع مستفيد.
King Soft
2012-06-22, 16:28
السلام عليكم اخي
لقد انهيت بفضل الله من برمجته :eek:
تفضل البرنامج
Program Cry;
uses crt;
type matx= array[1..8,1..8] of Char ;
var A,b,c,p:integer;
M:matx;
Tb:array[1..2,1..8] of string;
Td:array[1..2,1..8] of integer;
function Rand(const AValues: array of Char): Char;
begin
Result := AValues[Random(High(AValues) + 1)];
end;
Procedure Remp(var T:matx); //0 or 1
var i,j:integer;
begin
for i:= 1 to 8 do
for j:=1 to 8 do
T[i,j]:=Rand(['0','1']) ;
end;
procedure mark(var T:matx);
var i,r:integer;
begin
For i:=1 to 8 do
begin
R:=Random(8);
if R=0 then R:=2;
T[i,r]:='#';
end;
end;
function position(T:matx;l:byte):integer;
var i:integer;
begin
Result :=0;
for i:=1 to 8 do
if T[l,i]='#' then Result :=i;
end;
Function Bin2Dex(S:String) :integer;
var i,R,p:integer;
function puis(y:integer):integer;
var k:integer;
begin
puis:=1;
for k:=1 to y do
puis:=puis*2
end;
begin
r:=0;
i:=0;
While i<= length(s)do
begin
p:=length(s)-i;
if S[p]='1' then R:=R+puis(i);
i:=i+1;
end;
Result:=R;
end;
begin Remp(M);mark(M);
for A:=1 to 8 do
begin
p:=position(M,A);
for b:=1 to p-1 do
Tb[1,A]:=Tb[1,A]+M[A,b];
for c:=p+1 to 8 do
Tb[2,A]:=Tb[2,A]+M[A,c];
end;
for a:=1 to 8 do
Td[1,a]:= Bin2Dex(Tb[1,a]);
for a:=1 to 8 do
Td[2,a]:= Bin2Dex(Tb[2,a]);
For A:=1 to 8 do
For b:=1 to 8 do
begin
Gotoxy(b*5,a*3);
Write(M[a,b]);
end;
Writeln;
Writeln('le Conv en Binair ----------');
For A:=1 to 8 do
begin Writeln;
Write('Line',a);
For b:=1 to 2 do
Write(Td[b,a]:5);
end;
readln;readln;
end.
بالتوفيق
you92cef
2012-06-22, 18:52
السلام عليكم اخي
لقد انهيت بفضل الله من برمجته :eek:
تفضل البرنامج
program cry;
uses crt;
type matx= array[1..8,1..8] of char ;
var a,b,c,p:integer;
m:matx;
tb:array[1..2,1..8] of string;
td:array[1..2,1..8] of integer;
function rand(const avalues: Array of char): Char;
begin
result := avalues[random(high(avalues) + 1)];
end;
procedure remp(var t:matx); //0 or 1
var i,j:integer;
begin
for i:= 1 to 8 do
for j:=1 to 8 do
t[i,j]:=rand(['0','1']) ;
end;
procedure mark(var t:matx);
var i,r:integer;
begin
for i:=1 to 8 do
begin
r:=random(8);
if r=0 then r:=2;
t[i,r]:='#';
end;
end;
function position(t:matx;l:byte):integer;
var i:integer;
begin
result :=0;
for i:=1 to 8 do
if t[l,i]='#' then result :=i;
end;
function bin2dex(s:string) :integer;
var i,r,p:integer;
function puis(y:integer):integer;
var k:integer;
begin
puis:=1;
for k:=1 to y do
puis:=puis*2
end;
begin
r:=0;
i:=0;
while i<= length(s)do
begin
p:=length(s)-i;
if s[p]='1' then r:=r+puis(i);
i:=i+1;
end;
result:=r;
end;
begin remp(m);mark(m);
for a:=1 to 8 do
begin
p:=position(m,a);
for b:=1 to p-1 do
tb[1,a]:=tb[1,a]+m[a,b];
for c:=p+1 to 8 do
tb[2,a]:=tb[2,a]+m[a,c];
end;
for a:=1 to 8 do
td[1,a]:= bin2dex(tb[1,a]);
for a:=1 to 8 do
td[2,a]:= bin2dex(tb[2,a]);
for a:=1 to 8 do
for b:=1 to 8 do
begin
gotoxy(b*5,a*3);
write(m[a,b]);
end;
writeln;
writeln('le conv en binair ----------');
for a:=1 to 8 do
begin writeln;
write('line',a);
for b:=1 to 2 do
write(td[b,a]:5);
end;
readln;readln;
end.
بالتوفيق
حاولت تجريب البرنامج ولكن الباسكال لم يشتغل عندي
قرات برنامجك ولم افهمه جيدا
خاصةو بعض الكلمات وشكرا
you92cef
2012-06-22, 19:17
أوكي، شكرا لكما على الرد، وإليكم السؤال:
أعمل برنامج باسكال، يعمل مصفوفة ثنائية الأبعاد 8x8.
بعدها يتم ملأ هاته المصفوفة بطريقة عشوائية برقمين فقط هما 0 و 1. يعني لن تملأ المصفوفة يدويا بل عشوائيا باستعمال الدالة Random.
بعدها، نضع في كل سطر خانة سوداء (ليكون الجدول مثل الكلمات المتقاطعة)، يمكنك أن تعتبر الخانة كراكتر مثلا #
يعني في كل سطر يكون # واحد، وفي كل سطر مكانه يختلف يعني يكون بطريقة عشوائية أيضا.
الان تحصلنا على جدول عبارة عن أرقام متقاطعة، مثل الكلمات المتقاطعة، في كل سطر هناك عدد أو عددين في النظام الثنائي (Binaire) وعلينا الآن أن نحول كل سطر إلى النظام العشري (Decimale).
(مثلا حين نحول السطر الأول (يمكنك التحويل بدالة)، السطر الأول مثلا فيه أكيد خانة سوداء # وإذا كانت هاته الخانة الأولى أو الأخيرة أكيد سيكون في السطر عدد واحد فقط، أما إذا كانت تختلف عن الأولى والأخيرة فأكيد سيوجد لنا عددان في هذا السطر، عدد قبل خانة # وعدد بعد خانة #).
هذا البرنامج كان عبارة عن مشروع طلبه أستاذ دكتور معنا في الجامعة وكنت أحاول فيه ثم أمنحه الحل ليصحح لي الأخطاء ويوجهني والحقيقة ساعدني فيه كثيرا واستفدت منه كثيرا، وقد وصلت إلى مراحل متقدمة فيه، إلا أن السنة انتهت ولم ألتق بالأستاذ مجددا.
وهذا البرنامج هو مساعدة وتطوير حقيقي لكل مبرمج.
إشرعوا في حله، ولأي استفسار أنا موجود وإن شاء الله يكون الجميع مستفيد.
----------------------------------
قرات ما هو مطلوب وسوف اضع الخطوات لحل المشكل
اولا نحتاج الى تعريف جدول 8*8 وهذا سهل
ثانيا نحتاج الى استخدام دالة random مع خاصية randomize
بما اننا نحتاج الى ان نملا الجدول ب0 او 1 فقط فانصح ان نستعمل دالة random بالمجال 0الى 2*-*نستثني 2 في هذه الحالة نضع الشرط التالي اذا حصلنا على الرقم 2 نعيد اختيار رقم عشوائي*-*
ثم بعدها ناخذ الجزء الصحيح بحيث في هذه الحالة سوف يكون لنا الناتج اما 0 او 1
طبعا كل هذا يكون باستعمال الدالة for
بما اننا نضع في كل سطر خانة سوداء فاننا نحتاج الى استعمال دالة random مرتين لتوزيع الخانة السوداء في كل سطر مرة واحدة ثم نكمل السطر ب0 او 1
لهذه الحلة نستدعي الدالة randoك مرة ثانية
لناخذ مثال
سوف املا السطر الاول يعني نفرض انه السطر يكون بالشكل التالي
1-1=0 في الخانة الاولى من السطر الاول وضعت 0
نكمل الى غاية 1-8
نلاحظ الان ان i ثابت واخذ القيمة1
ونلاحظ ان jمتغير من1 الى 8
الان نستعل الدالة رندوم في المجال 1الى 9*-*لا ناخذ القفيمة 9*-*
سوف نحصل علر رقم عشوائي ناخذ الجزئ الصحيح له يعني مثلا نحصل على الرقم 5.4896521315
الجزء الصحيح هم 5
الان نقوم بتغير الخانة 1-5 ونضع في مكانها خانة سوداء
-*- في هذه الحالة سوف نحصل على سطر فيه خانة واحدة سوداء عشوائية والباقي عبارة عن 0 او 1 وهم كذلك عشوائيين *-*
-----------
نكمل نفس العمل مع باقي الاسطر
الان تحويل الرقم من نظام ثنائي الى عشري
انصح باستعمال الخاصية التالية
نستعمل الدالةfor
مع خاصية downto في هذه الحالة مثلا تكون الخانة السوداء في المكان الخامس يعني سوف اخذ الارقام من 4الى واحد
اولا علي ان اجد مكان الخانة السوداء وهذا باستعمال الشرط if
نفرض الان ان مكانها هو 5
اذن علي اخذ الارقام من 1 الى 4 وتحويلها الى التظام العشري في هذه الحالة استخدم الدالة downto مع البدا من i-1 الى 1 مع i هو ترتيب الخانة السوداء في هذها المثال i=5 اذن i-1=4 سوف اخذ الارقام من 4 الى 1 ولكن علي ان اخذها من 1 الى اربعة
باستخدام downto سوف احصل مثلا على الرقم 1011 ولكن الاصح هو 1101
لان الخانة 4 هي عبارة عن 1
الخانة 3 عبارة عن 1
الخانة 2 عبارة عن 0
الخانة 1 عبارة عن 1
بالامر downto سوف احصل على 1101
ولكن اظن ان التمرين يقول ان ناخذها من 1 الى 4 يعني لابد من اخذها بهذا الشكل 1011 ثم نحول الرقم الى رقم عشري
وهذا سهل باستعمال خاصية الاستبدال permutation
ثم نحتاج الى اخذ الارقام من 5 الى 8 يعني من i+1 الى 8 وهنا نستخدم خاصية for بشكل عادي ولا نحتاج الى تبيل permutation
الان نص التمرين ناقص ولكن اظن اننا نحتاج الى عرض النتائج وهذا سهل
اظن ان هذه هو لوغاريتم المشكل
بخصوص التحويل الى النظام العشري سهل طالما اننا خزنا الرقم مثلا 1011 في جدول يعني ناخذ قيم الجدول ونحدد مكانها ونحول بالاستعمال قواعد التحويل من النظام الثنائي الى العشري
شكرا
King Soft
2012-06-22, 21:25
حاولت تجريب البرنامج ولكن الباسكال لم يشتغل عندي
قرات برنامجك ولم افهمه جيدا
خاصةو بعض الكلمات وشكرا
البرنامج يعمل بشكل جيد افتحه ببرنامج Dev-pascal
حمل الديف باسكال من الرابط :
تحميل البرنامج (http://www.bloodshed.net/dev/devpas192.exe)
you92cef
2012-06-23, 10:08
البرنامج يعمل بشكل جيد افتحه ببرنامج dev-pascal
حمل الديف باسكال من الرابط :
تحميل البرنامج (http://www.bloodshed.net/dev/devpas192.exe)
للاسف انا استخدم تربو باسكال وحاولت تشغيل البرنامج ولكن كان هناك خطا
لذلك انا كما قلت لم افهم بعض الكلمات ارجوا ان تنظر الى اللوغاريتم الذي وضعته
you92cef
2012-06-23, 10:19
ما هي صيغة حفظ الربنامج لانه يكتب
icon file not found(please change it in project options)
maladona
2012-07-29, 01:25
merci pour cela
بارك الله فيكم وجزاكم خير الجزاء
vBulletin® v3.8.10 Release Candidate 2, Copyright ©2000-2025, TranZ by Almuhajir