الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في البيرل ضروري جدا

بدأه ibu_love في 23 مايو 2009 · 6 رد · 1,910 مشاهدة · في لغة Perl
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اسئلة في البيرل

1- اوجد عدد الكلمات او الرموز التي يكون فيها الحرف الاول نفس الحرف الأخير في ملف نصي ثم اطبعها في ملف نصي آخر

2- اكتب برنامج يقرأ من ملف نصي ثم يحسب عدد الكلمات التي تبدأ بحرف كبير او صغير او رقم .

3- اذا كان لديك ملف للموظفين emp.txt يحتوي على المعلومات التالية :

Empno : name :Age : basic salary :over time :Discount

1 :A : 30 :20 : 10

2 :B : 31 :25 : 12

اكتب برنامج يقوم بطباعة رقم الموظف واسم الموظف والراتب النهائي داخل ملف يسمى salary.txt ثم يقوم البرنامج بطباعة أكبر قيمة راتب واصغر قيمة راتب واسم صاحب الراتب على شاشة Dos.

الرجاء المسااعدة في اقرب وقت

FineDesign For Graphic and WebDesign

ForEach(Minute in MyLife)

MyExperience ++;

#2

wainkom ya jama3a??

FineDesign For Graphic and WebDesign

ForEach(Minute in MyLife)

MyExperience ++;

#3

sho ma fi 7d bado ysa3ed ??????????????????????????????

FineDesign For Graphic and WebDesign

ForEach(Minute in MyLife)

MyExperience ++;

#4

الأسئلة بسيطة.. فين محاولتك فى الحل ؟

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#5

حاضر اخي أحمد يوسف ومشكور على مرورك الطيب

بالنسبة للسؤال الاول هي محاولتي فيه

$c=0;
open (ff,"t1.txt");
open (ff2,">>t2.txt");
while($h1=<ff>)
	 {
	  @a=qw($h1);
	  foreach $t(@a)
			{
			 @b=split(//,$t);
			 if($b[0] eq $b[-1])
			   {
				print ff2 ("$t\n");
				$c++;
				}
			 }
	  }
close(ff);
close(ff2);
print "the counter is:$c\n";

السؤال الثاني

$c=0;
open (tt,"t5.txt");
while($h=<tt>)
	 {
	  @a=qw($h);
	  foreach $x(@a)
			{
			 @f=split( // ,$h);
			 if($f[0]=~/ \w /)
			   {
				$c++;
			   }
			 }
	  }
print "THE COUNTER IS:$C";

السؤال الثالث

$c;
$max;
$min;
open (h7,"h7.txt");
while($t=<h7>)
	 {$c++;}
close (h7);
open (h8,">>h8.txt");
open (h7,"h7.txt");
for($i=1;$i<=$c;$i++)
   {
	$t=<h7>;
	if($i>=2)
	  {
	   ($no,$na,@a)=split(/:/,$t);
	   $m=($a[0]+$a[1]-$a[2]);
	   if($i==2)
		 {
		  $max=$m,$min=$m;
		 print h8 ("$no:$na:$m");
		 }
	   elsif($i>=3)
			{
			if($m>$max)
			  {
			   $max=$m;
			  }
			if($m<$min)
			  {
			   $min=$m;
			  }
			}
	  }
   }
print "the max : $max\n";
print "the min : $min\n";

الرجاء المساعدة ضروري جدا جدا

1

FineDesign For Graphic and WebDesign

ForEach(Minute in MyLife)

MyExperience ++;

#6

عملت ريفراكتور للكود كالتالى باللى افتكره من بيرل

حل كل سؤال q فى function بإسم q وبعدها رقم السؤال

#!usr/bin/perl

sub q1(){
	$count=0;
	$txt=shift(@_);
	@words=split(/ /, $txt);
	print "Words: ", @words, "\n";

	foreach $w (@words){
			#print $w , "\n";
			@chars=split(//, $w);
			$fchar=@chars[0];
			$lchar=@chars[-1];
			if ($fchar eq $lchar){
				print $w, "\n";
				$count++;
			}
	}
	print "Count: ", $count."\n";
}

$txt="HelloH World thats super oddo 8simple ^^";
&q1($txt);


sub q2(){
	#count upper, lower chars or nums
	$cupper=0;
	$clower=0;
	$cdigit=0;
	$txt=shift(@_);

	@words=split(/ /, $txt);
	for $w (@words){

		@chars=split(//, $w);
		$fchar=@chars[0];

		if ($fchar =~ /\p{IsUpper}/){
			$cupper++;

		}elsif ($fchar =~/\p{IsLower}/){
			$clower++;
		}elsif ($fchar =~/\p{IsDigit}/){
			$cdigit++;
		}
	}
	print("nUpper: ".$cupper."\n");
	print("nLower: ",$clower."\n");
	print("nDigit: ", $cdigit."\n");
}

&q2($txt);

#Empno : name :Age : basic salary :over time :Discount
$txt=<<END;
1 : A : 30 : 20 : 10 : 5
2 : B : 31 : 25 : 12 : 6
3 : C : 34 : 22 : 20 : 2
END

sub q3(){
	$txt=shift(@_);
	$maxsal=0;
	$minsal=0;
	@lines=split("\n", $txt);
	$nlines=@lines;
	print("nLines: ", $nlines);
	$i=0;
	while($i<$nlines){
		$line=@lines[$i];
		print "Line: ", $line, "\n";
		($empno, $name, $age, $basicsal, $overtime, $discount)=split(/ : /, $line);

		$finalsal=$basicsal + $overtime - $discount;
		if ($i==0){
			#first element set it as min, max sala
			$maxsal=$finalsal;
			$minsal=$finalsal;
		}

		if ($finalsal<$minsal){
			$minsal=$finalsal;
		}elsif($finalsal>$maxsal){
			$maxsal=$finalsal;
		}
		print "Emp: $empno, Name: $name, Age: $age, Sal: $finalsal \n";
		$i++;
	}
}
&q3($txt);

Edit: تقدر تستخدمها بإنك تمررلها النص سواء عن طريق محتوى ملف او غيره

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 27 مايو 2009 في 04:44

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#7

مشكور أخي احمد يوسف على المساعدة ،حل جميل وصلتني الفكرة ، يسلموو مرة أخرى

FineDesign For Graphic and WebDesign

ForEach(Minute in MyLife)

MyExperience ++;

مواضيع مشابهة