Loading...

BTC Address to donate : [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]


b0y مراقب
  • شكراً: 3113
  • تم شكره 2558 مرة في 509 مشاركة

السلام عليكم

التطبيقات إن شاء الله ستشمل الدروس من الأول للخامس. سينقسم الموضوع إلى عدة تطبيقات لكل تطبيق مستواه
التطبيقات هي كالتالي:

- آلة حاسبة: السكربت يجب أن يحتوي على العمليات الحسابيه التالي: + - * / **. السكربت عند تشغيله يجب أن يطبع header يحتوي على :

simple perl calculator
[email protected]
تطبيق أول:
ثم يطلب الرقم المدخل الأول ثم الoperator (+ - * / ...) ثم الرقم المدخل الثاني و بعد طباعة الناتج يعود لطلب إدخال الرقم الأول.
و تطبيق ثاني:
أن يآخذ الرقم الأول و الoperator و الرقم الثاني من الcommand line و يطبع مع الheader طريقة التشغيل.
مثال لتطبيقي أنا:

الأول:


الثاني:


- أداة cat : الأداة مثل الأمر cat تقرأ جميع الملفات المعطاه من الcomand line مع طبع إسم كل ملف. و في حال عدم كاتبة أي ملف يطبع طريقة الإستخدام
تطبيقي:



hints: الarray ARGV هي لقرائة المعطيات من الcommand line. للقرائة يمكننا إستعمال الopen function . و للطباعة الprint function.
// الدروس التالية تطبيقاتها سترفق معها إن شاء الله
// عند الإنتهاء من كتابة أي سكربت يرجى إرساله برسالة خاصة. سيتم وضع سكربتات كل الأعضاء بعد إنتهاء الجميع إن شاء الله.

الحلول وصلت ل:
للتطبيق الأول من:
UzunDz
للتطبيق الثاني من:
UzunDz
للتطبيق الثالث من:

UzunDz
---- الحلول

التطبيق الأول:
الحل:

كود:
print q(
+ simple perl calculator
+ @sec4ever
);
a:
print "first number: ";
$fnum = <stdin>;
chomp($fnum);
print "operator: ";
$op = <stdin>;
chomp($op);
print "second number: ";
$snum = <stdin>;
chomp($snum);
$op eq "+" ? $result = $fnum+$snum : die "Operator $op is not suported";
$op eq "*" ? $result = $fnum*$snum : die "Operator $op is not suported";
$op eq "-" ? $result = $fnum-$snum : die "Operator $op is not suported";
$op eq "/" ? $result = $fnum/$snum : die "Operator $op is not suported";
$op eq "**" ? $result = $fnum**$snum : die "Operator $op is not suported";
print "result: $result\n";
goto a;
التحليل:

في البداية طبعنا :
+ simple perl calculator
+ @sec4ever
عبر الأمر print
ثم وضعنا ركيزة للgoto loop
a:
ثم أخذنا المعطيات و حفظناها في متغييرات عبر:

print "first number: ";
$fnum = <stdin>;
chomp($fnum);
print "operator: ";
$op = <stdin>;
chomp($op);
print "second number: ";
$snum = <stdin>;
chomp($snum);
ثم وضعنا للتحقق إن كانت الoperator مدعومة من قبل الأداة و إلا بسيطبع خطأ و يخرج:
$op eq "+" ? $result = $fnum+$snum : die "Operator $op is not suported";
$op eq "*" ? $result = $fnum*$snum : die "Operator $op is not suported";
$op eq "-" ? $result = $fnum-$snum : die "Operator $op is not suported";
$op eq "/" ? $result = $fnum/$snum : die "Operator $op is not suported";
$op eq "**" ? $result = $fnum**$snum : die "Operator $op is not suported";
(هنا إستعملنا نوع من الif operator و هو : cond ? true : false)
ثم طبعنا الناتج عبر:
print "result: $result\n";
و أغلقنا الgo to loop عبر:
goto a;
الحل من UzunDz:

كود:
#UzunDz
print "[+] simple perl calculator\n[+] UzunDz\@sec4ever.com\n";

while (true){
print "first number :";
$n1 = <STDIN>;
print "operator :";
$op = <STDIN>;
print "seconde number :";
$n2 = <STDIN>;
print "result: ".eval($n1 .$op .$n2)."\n";
}
التحليل:
في البداية طباعة الهيدر عبر print :
print "[+] simple perl calculator\n[+] UzunDz\@sec4ever.com\n";
ثم إستعمل الinfinity loop أي هو لوب سيبقى يعمل إلى إغلاق الأداة فهو إستعمل condition دائما صحيح في الwhile loop :
while (true){
ثم طرب إدخال المعلومات و حفظها في متغييرات:
print "first number :";
$n1 = <STDIN>;
print "operator :";
$op = <STDIN>;
print "seconde number :";
$n2 = <STDIN>;
ثم طباعة الناتج (الeval تستعمل لتفيذ الoperator الموضوعه لها) عبر:
print "result: ".eval($n1 .$op .$n2)."\n";
ثم أغلق اللوب.

التطبيق الثاني:
الحل:
كود:
head();
$fnum = $ARGV[0];
$op = $ARGV[1];
$snum = $ARGV[2];
$op eq "+" ? $result = $fnum+$snum : "";
$op eq "*" ? $result = $fnum*$snum : "";
$op eq "-" ? $result = $fnum-$snum : "";
$op eq "/" ? $result = $fnum/$snum : "";
$op eq "**" ? $result = $fnum**$snum : "";
print "result: $result\n";
sub head {
print qq{
+ simple perl calculator
+ \@sec4ever
+ usage :
\t perl $0 firstnum operator secnum
\t ex: perl $0 10 * 2
}
}
طبعا مثل التطبيق الأول لكن هنا إستعمل subroutine بإسم head لكي يطبع لنا الheader
و أخذنا المعطيات من الcommand line عبر ال@ARGV

الحل من UzunDz:

كود:
#UzunDz
print "\n[+] simple perl calculator\n[+] UzunDz\@sec4ever.com\n";
print "[+] usage:\n\tperl $0 firstnum operator secnum\n\tex: perl $0 10 * 2";

$n1 = $ARGV[0];
$op = $ARGV[1];
$n2 = $ARGV[2];

print "\nresult: ".eval($n1 .$op .$n2)."\n";
الشيء نفسه

التطبيق الثالث:
الحل:
كود:
# perl cat
if(scalar(@ARGV) == 0)
{
print "+ usage: perl $0 file2.txt file2.txt ...";
}else{
for($i=0;$i<scalar(@ARGV);$i++)
{
print "+ reading ".$ARGV[$i]."\n";
open(cat,"<".$ARGV[$i]) or die $!;
while (<cat>) {
$line = $_;
chomp $line;
print $line."\n";
}
close cat;
}
}
التحليل:
في البداية وضعنا if statement لنرى إن كان يوجد شيء مدخل عبر الcommand line:
كود:
if(scalar(@ARGV) == 0)
{
كما نعمل فالscalar function تحتوي عدد المعطيات داخل الarray و هنا فحصنا في حال كان عدد المدخلات من الcommand line == 0 يطبع لنا طريقة الإستخدام:
print "+ usage: perl $0 file2.txt file2.txt ...";
إن لا (عبر else) أي في حال إدخال أي من الملفات وضعنا for loop لتمرر كل ملف لقرائته:
for($i=0;$i<scalar(@ARGV);$i++)
{
بدأنا من ال0 و حتا نصل لآخر ملف نزيد في كل مره 1 على المتغيير $i. ثم القرائة:
open(cat,"<".$ARGV[$i]) or die $!;
while (<cat>) {
$line = $_;
chomp $line;
print $line."\n";
}
close cat;
فتحنا الملف عبر open داخل "cat" قرأناه ثم أغلقناه عبر close
ثم أغلقنا الfor loop و الif statement.

الحل من UzunDz:

كود:
print "\n[+] simple file reader\n[+] UzunDz\@sec4ever.com\n"; #header
if(scalar(@ARGV) == 0){ # argv check
    print "[+] usage:\n\tex: perl $0 file1.txt file2.txt ...";
}else{
for($i=0;$i<scalar(@ARGV);$i++)
    {
    # reading
        print "\n[+] reading : $ARGV[$i]\n";
        open (file, "<".$ARGV[$i]);
        while($line = <file>)
        {
        print "\t".$line;
        }
        close file;
        print "\n";
    }
}
التحليل نفسه.

التطبيقات كانت سهلة و واضحة و كل شيء تم التطرق له في الدروس. أي إستفسار أو توضيح أتمنى وضعه في رد.

في أمان الله

توقيع


المشاركة الأصلية كتبت بواسطة ApOcalYpse اقتباس :
فقط توقف عن طلب النتيجة و تخيلها و السعي خلفها و قم بما عليك القيام به
...
الناس تحب النتيجة و لكنها تكره الطريق الصعب الذي يوصل اليها
المشاركة الأصلية كتبت بواسطة Sec4ever اقتباس :
فيه حكمة مهمة جدا ينقصنا نحن المسلمون العمل بها حتى تكون لنا مكانة بين الأخرين :

يجب العمل قدر المستطاع و ليس قدر الحاجة .
المشاركة الأصلية كتبت بواسطة UzunDz اقتباس :
ثانيا فيه ادمغة من العرب وموجودين معنا هنا بالمنتدى ويقدمو مواضيع ما تجدها عند الأجانب والتقليل من شان العرب امام الأجانب يسمى جهل و نقص في الشخصية ونوعية هذا الكلام لا تفيدنا الا في الرجوع الى الوراء,, وان كنت شايف نفسك متوقف في كيفية صنع ليتر فهذا لا يعني ان الجميع متوقف هناك بمعنى آخر لا تتكلم بصيغة الجمع عن العرب لأنك تمثل نفسك فقط
المشاركة الأصلية كتبت بواسطة chevr0sky اقتباس :
أنصحك بالتشمير عن سواعدك و الكد و التعب و كذلك سهر الليالي فلا توجد خلطة أو وصفة توصلك إلى مبتغاك.

10 أعضاء قالوا شكراً لـ b0y على المشاركة المفيدة:
b0y مراقب
  • شكراً: 3113
  • تم شكره 2558 مرة في 509 مشاركة

48 مشترك, شهر و نصف من بدأ الدورة, ولم يحل أي من التطبيقات أحد.
فشل زريع للدروة

توقيع


المشاركة الأصلية كتبت بواسطة ApOcalYpse اقتباس :
فقط توقف عن طلب النتيجة و تخيلها و السعي خلفها و قم بما عليك القيام به
...
الناس تحب النتيجة و لكنها تكره الطريق الصعب الذي يوصل اليها
المشاركة الأصلية كتبت بواسطة Sec4ever اقتباس :
فيه حكمة مهمة جدا ينقصنا نحن المسلمون العمل بها حتى تكون لنا مكانة بين الأخرين :

يجب العمل قدر المستطاع و ليس قدر الحاجة .
المشاركة الأصلية كتبت بواسطة UzunDz اقتباس :
ثانيا فيه ادمغة من العرب وموجودين معنا هنا بالمنتدى ويقدمو مواضيع ما تجدها عند الأجانب والتقليل من شان العرب امام الأجانب يسمى جهل و نقص في الشخصية ونوعية هذا الكلام لا تفيدنا الا في الرجوع الى الوراء,, وان كنت شايف نفسك متوقف في كيفية صنع ليتر فهذا لا يعني ان الجميع متوقف هناك بمعنى آخر لا تتكلم بصيغة الجمع عن العرب لأنك تمثل نفسك فقط
المشاركة الأصلية كتبت بواسطة chevr0sky اقتباس :
أنصحك بالتشمير عن سواعدك و الكد و التعب و كذلك سهر الليالي فلا توجد خلطة أو وصفة توصلك إلى مبتغاك.

5 أعضاء قالوا شكراً لـ b0y على المشاركة المفيدة:
Mr_AnarShi-T عضو مميز
  • شكراً: 246
  • تم شكره 718 مرة في 170 مشاركة

ههه مازلنا في الأساسيات و التفاعمل هكذا ههه لو كان المستوي أقوي شو كان رح يصير

توقيع
Perl & Java Lov3r

No perl No life
الأعضاء الذين قالوا شكراً لـ Mr_AnarShi-T على المشاركة المفيدة:
Dr.Mohamed Sec4Ever Team
  • شكراً: 1888
  • تم شكره 5755 مرة في 1425 مشاركة

المشاركة الأصلية كتبت بواسطة Mr_AnarShi-T اقتباس :
ههه مازلنا في الأساسيات و التفاعمل هكذا ههه لو كان المستوي أقوي شو كان رح يصير
القسم مغلق

مش مهم العدد
انتظروني مشغول جدااا
نتفرغ ويكون لنا كلام اخر

توقيع
...........
الأعضاء الذين قالوا شكراً لـ Dr.Mohamed على المشاركة المفيدة:
UzunDz فريق الحماية للأبد
  • شكراً: 4517
  • تم شكره 5578 مرة في 1384 مشاركة

السلام عليكم

تطبيقي الأول



الثاني



السكربت في رسالة خاصة

اشوف حظي مع الثالث لما افضى

توقيع
./logout
2 أعضاء قالوا شكراً لـ UzunDz على المشاركة المفيدة:
UzunDz فريق الحماية للأبد
  • شكراً: 4517
  • تم شكره 5578 مرة في 1384 مشاركة

التطبيق 3 :

توقيع
./logout
2 أعضاء قالوا شكراً لـ UzunDz على المشاركة المفيدة:
b0y مراقب
  • شكراً: 3113
  • تم شكره 2558 مرة في 509 مشاركة

تم طرح الحلول.
بالتوفيق إن شاء الله و أتمنى أن كل شيء واضح

توقيع


المشاركة الأصلية كتبت بواسطة ApOcalYpse اقتباس :
فقط توقف عن طلب النتيجة و تخيلها و السعي خلفها و قم بما عليك القيام به
...
الناس تحب النتيجة و لكنها تكره الطريق الصعب الذي يوصل اليها
المشاركة الأصلية كتبت بواسطة Sec4ever اقتباس :
فيه حكمة مهمة جدا ينقصنا نحن المسلمون العمل بها حتى تكون لنا مكانة بين الأخرين :

يجب العمل قدر المستطاع و ليس قدر الحاجة .
المشاركة الأصلية كتبت بواسطة UzunDz اقتباس :
ثانيا فيه ادمغة من العرب وموجودين معنا هنا بالمنتدى ويقدمو مواضيع ما تجدها عند الأجانب والتقليل من شان العرب امام الأجانب يسمى جهل و نقص في الشخصية ونوعية هذا الكلام لا تفيدنا الا في الرجوع الى الوراء,, وان كنت شايف نفسك متوقف في كيفية صنع ليتر فهذا لا يعني ان الجميع متوقف هناك بمعنى آخر لا تتكلم بصيغة الجمع عن العرب لأنك تمثل نفسك فقط
المشاركة الأصلية كتبت بواسطة chevr0sky اقتباس :
أنصحك بالتشمير عن سواعدك و الكد و التعب و كذلك سهر الليالي فلا توجد خلطة أو وصفة توصلك إلى مبتغاك.

الأعضاء الذين قالوا شكراً لـ b0y على المشاركة المفيدة:
N1r0 عضو مميز
  • شكراً: 528
  • تم شكره 558 مرة في 109 مشاركة

جميل أخي والله فقط أعذرنا هذه الأيام هنالك إمتحانات كثيرة ومشاغل ، أمل فقط الا يكون للأمر ثأثير
سلبي عليك .. قريبا سنتابع كل شيء من اوله لآخره

دمت للأفضل

توقيع

~ • سبحان الله وبحمده .. سبحان الله العظيم • ~


• كُلُّ مَنْ عَلَيْهَا فانٍ وَيَبْقَى وَجْهُ رَبِّكَ ذُو الْجَلالِ وَالإكْرَامِ •

Let me tell you where I'm
I'm Out
RIP H4ck World



الأعضاء الذين قالوا شكراً لـ N1r0 على المشاركة المفيدة:
rir1a عضو مميز
  • شكراً: 262
  • تم شكره 400 مرة في 115 مشاركة

بإذن الله ابداء فيهم انهاردا

تحياتى

توقيع
EGyShell & Sec4Ever
rir1a عضو مميز
  • شكراً: 262
  • تم شكره 400 مرة في 115 مشاركة

اول تطبيق

توقيع
EGyShell & Sec4Ever
الأعضاء الذين قالوا شكراً لـ rir1a على المشاركة المفيدة:
أدوات الموضوع
انواع عرض الموضوع


Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.

:: Security By : Sec4ever Team ::

جميع الحقوق محفوظة الحماية للأبد -Security 4 Ever
Sec4ever by Sec4ever
جميع الحقوق محفوظة الحماية للأبد -Security 4 Ever
Sec4ever by Sec4ever