String and Arrays
String and Arrays
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ ) (٢
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
)(٢٠١٣-٢٠١٢
اﻟﻤﺤﺎﺿﺮة )(٤
اﻟ ﺎﺿ ة
د .ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ
ﺍﻟﺮﺍﺑﻊ
ﺍﻟﻔﺼﻞﻞ ﺍﻟ ﺍ
ﺍﻟﻔ
ﺍﳉﻤﻞ ﺍﶈﺮﻓﻴﺔ ﻭﺍﳌﺼﻔﻮﻓﺎﺕ
1
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ ) (٢ .1-4ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﳉﻤﻞ ﺍﶈﺮﻓﻴﺔ .
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
)(٢٠١٣-٢٠١٢
اﻟﻤﺤﺎﺿﺮة )(٤
اﻟ ﺎﺿ ة
د .ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ
ﺍﻷﺷﻜﺎﻝ
ﺷﻴﻮﻋﺎ ﻭﻻ ﺗﻌﺪ ﻣﻦ ﻷ ﻜ
ﹰ ﺃﺷﻜﺎﻝ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻐﺮﺿﻴﺔ
ﺗﻌ ﺪ ﺍﳉﻤﻞ ﺍﶈﺮﻓﻴﺔ ) (Stringsﺃﺃﻛﺜﺮ ﺃ ﻜ
ﺍﻷﺳﺎﺳﻴﺔ ﰲ ﻟﻐﺔ ﺍﳉﺎﻓﺎ .ﻭﻛﻞ ﻣﺘﺤﻮﻝ ﻳﻌﺮﻑ ﻣﻦ ﺍﻟﺸﻜﻞ ) (Stringﻫﻮ ﻣﺘﺤﻮﻝ ﻳﺆﺷﺮ ﻋﻠﻰ ﻏﺮﺽ
ﻣﻦ ﺍﻟﺼﻒ ) . (Stringﻭﻟﻠﺼﻒ ) (Stringﳎﻤﻮﻋﺔ ﻣﻦ ﺍﻟﺪﻭﺍﻝ ﻭﺍﻟﻄﺮﺍﺋﻖ ﺍﻟﱵ ﺗﻔﻴﺪ ﰲ ﻣﻌﺎﳉﺔ ﺍﳉﻤﻞ
ﺍﶈﺮﻓﻴﺔ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﰲ ﺍﳉﺪﻭﻝ ﺍﻵﰐ :
Method Description
)char charAt(int ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﳏﺮﻓﹰﺎ ﰲ ﻣﻜﺎﻥ ﳏﺪﺩ ﻣﻦ ﺍﳉﻤﻠﺔ
ﳌﻘﺎﺭﻧﺔ ﲨﻠﺘﲔ ،ﻭﺗﻌﻴﺪ ) (-1ﺇﺫﺍ ﻛﺎﻧﺖ ﺍﳉﻤﻠﺔ ﺍﻷﻭﱃ
)int compareTo(String ﺗﺴﺒﻖ ﺍﻟﺜﺎﻧﻴﺔ ﻭ ) (0ﺇﺫﺍ ﺗﻄﺎﺑﻘﺖ ﺍﳉﻤﻠﺘﺎﻥ ﻭ ) (1ﰲ ﺣﺎﻝ
ﺍﻟﻌﻜﺲ.
)i compareToIgnoreCase(String
int TI ) C (S i ﺍﻟﺴﺎﺑﻘﺔ
ﻟﻠﺪﺍﻟﺔ ﺍﻟ ﺎ ﻘ
ﻣﺸﺎﺔ ﻟﻠ ﺍﻟ
ﺎ
)boolean contains(CharSequence ﺩﺍﻟﺔ ﺗﻌﻴﺪ ) (trueﺇﺫﺍ ﺗﻀﻤﻨﺖ ﺍﳉﻤﻠﺔ ﺍﻟﻮﺳﻴﻂ
)boolean endsWith(String ﺩﺍﻟﺔ ﺗﻌﻴﺪ ) (trueﺇﺫﺍ ﺍﻧﺘﻬﺖ ﺍﳉﻤﻠﺔ ﺑﺎﻟﻮﺳﻴﻂ
)boolean equals(String
)q ( g ﻭﺍﻟﻮﺳﻴﻂ
ﺗﻄﺎﺑﻘﺖ ﺍﳉﻤﻠﺔ ﻭ ﻮ ﻴ
ﺗﻌﻴﺪ )) ((trueﺇﺇﺫﺍ ﺑ
ﺩﺍﻟﺔ ﻴ
)boolean equalsIgnoreCase(String ﻣﺸﺎﺔ ﻟﻠﺪﺍﻟﺔ ﺍﻟﺴﺎﺑﻘﺔ
)int indexOf(char ﺗﻌﻴﺪ ﺗﺮﺗﻴﺐ ﺍﶈﺮﻑ ﰲ ﺍﳉﻤﻠﺔ ﻭ) (-1ﰲ ﺣﺎﻝ ﻋﺪﻡ ﻭﺟﻮﺩﻩ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺗﺮﺗﻴﺐ ﺍﳉﻤﻠﺔ ﺍﻟﻮﺳﻴﻂ ﻭ ) (-1ﰲ ﺣﺎﻝ ﻋﺪﻡ
)int indexOf(String
ﻭﺟﻮﺩﻩ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺗﺮﺗﻴﺐ ﲨﻠﺔ ﺍﻟﻮﺳﻴﻂ ﺑﺪﺀﹰﺍ ﻣﻦ ﺍﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ
)int indexOf(String, int start
ﻭ) (-1ﰲ ﺣﺎﻝ ﻋﺪﻡ ﻭﺟﻮﺩﻩ
) (-1ﰲ
)( 1 ﺍﻟﻮﺳﻴﻂ ﻭ
ﻑ ﺍﻟ ﻂ ﺍﻷﺧﲑ ﻟﻠﻟﻠﻤﺤﺮﻑ
ﺍﻟﺘﺮﺗﻴﺐ ﺍﻷﺧ
ﺩﺍﻟﺔ ﺗﺗﻌﻴﺪﺪ ﺍﻟﺘ ﺗ
)int lastIndexOf(char
ﺣﺎﻝ ﻋﺪﻡ ﻭﺟﻮﺩﻩ
2
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ Method Description
ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ ) (٢ ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﻟﺘﺮﺗﻴﺐ ﺍﻷﺧﲑ ﻟﻠﺠﻤﻠﺔ ﺍﻟﻮﺳﻴﻂ ﻭ ) (-1ﰲ
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ )int lastIndexOf(String
ﺣﺎﻝ ﻋﺪﻡ ﻭﺟﻮﺩﻩ
)(٢٠١٣-٢٠١٢
اﻟﻤﺤﺎﺿﺮة )(٤
اﻟ ﺎﺿ ة ﺑﺪﺀﺍ ﻣﻦ
ﺍﻟﻮﺳﻴﻂ ﺪ ﺍﹰ
ﻟﻠﺠﻤﻠﺔ ﺍﻟ ﻂ
ﺍﻷﺧﲑ ﻟﻠ ﻠﺔ
ﺍﻟﺘﺮﺗﻴﺐ ﺍﻷﺧ
ﺩﺍﻟﺔ ﺗﺗﻌﻴﺪﺪ ﺍﻟﺘ ﺗ
ﺍﻟﺔ
د .ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ
)int lastIndexOf(String, int
ﺍﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ ﻭ) (-1ﰲ ﺣﺎﻝ ﻋﺪﻡ ﻭﺟﻮﺩﻩ
)(int length ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﻃﻮﻝ ﺍﳉﻤﻠﺔ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﲨﻠﺔ ﺟﺪﻳﺪﺓ ﺑﻌﺪ ﺇﺑﺪﺍﻝ ﻛﻞ ﳏﺮﻑ ﻳﻄﺎﺑﻖ
)String replace(char, char
ﺍﻷﻭﻝ ﲟﺤﺮﻑ ﺍﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ
ﺍﻟﻮﺳﻴﻂ ﻷ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﲨﻠﺔ ﺟﺪﻳﺪﺓ ﺑﻌﺪ ﺇﺑﺪﺍﻝ ﻛﻞ ﲨﻠﺔ ﺟﺰﺋﻴﺔ
)String replaceAll(String old,String new ﺗﻄﺎﺑﻖ ﺍﻟﻮﺳﻴﻂ ﺍﻷﻭﻝ ﲜﻤﻠﺔ ﺟﺰﺋﻴﺔ ﺗﻄﺎﺑﻖ ﺍﻟﻮﺳﻴﻂ
ﺍﻟﺜﺎﱐ
ﺗﻌﻴﺪ ﲨﻠﺔ ﺟﺪﻳﺪﺓ ﺑﻌﺪ ﺇﺑﺪﺍﻝ ﺍﳉﻤﻠﺔ ﺍﳉﺰﺋﻴﺔ ﺍﻷﻭﱃ
)String replaceFirst(String old, String new ﺍﳌﻄﺎﺑﻘﺔ ﻟﻠﻮﺳﻴﻂ ﺍﻷﻭﻝ ﺑﺎﳉﻤﻠﺔ ﺍﳉﺰﺋﻴﺔ ﺍﳌﻄﺎﺑﻘﺔ
ﻟﻠﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ
)String[] split(String ﺩﺍﻟﺔ ﺗﻘﺴﻴﻢ ﺍﳉﻤﻠﺔ ﺇﱃ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﺍﳉﻤﻞ ﺍﳉﺰﺋﻴﺔ
)boolean startsWith(String ﺩﺍﻟﺔ ﺗﻌﻴﺪ ) (trueﺇﺫﺍ ﺍﺑﺘﺪﺃﺕ ﺍﳉﻤﻠﺔ ﺑﺎﳉﻤﻠﺔ ﺍﻟﻮﺳﻴﻂ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ) (trueﺇﺫﺍ ﺍﺑﺘﺪﺃﺕ ﺍﳉﻤﻠﺔ ﺑﺎﳉﻤﻠﺔ ﺍﻟﻮﺳﻴﻂ
)boolean startsWith(String, int
ﰲ ﻣﻜﺎﻥ ﳏﺪﺩ ﺑﺎﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ
ﱴ ﺎﻳﺔ
ﺍﻟﻮﺳﻴﻂ ﺣﱴ
ﺗﺮﺗﻴﺒﻪ ﻮ
ﲟﺤﺮﻑ ﺮ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﲨﻠﺔ ﺗﺒﺪﺃ ﺮ
)String substring(int
ﺍﳉﻤﻠﺔ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﲨﻠﺔ ﺗﺒﺪﺃ ﲟﺤﺮﻑ ﺗﺮﺗﻴﺒﻪ ﺍﻟﻮﺳﻴﻂ ﺍﻷﻭﻝ
)String substring(int, int
ﺣﱴ ﺍﶈﺮﻑ ﺍﻟﺬﻱ ﺗﺮﺗﻴﺒﻪ ﺍﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ
)(char[] toCharArray ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﳉﻤﻠﺔ ﺇﱃ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﺍﶈﺎﺭﻑ
)(String toLowerCase ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﳉﻤﻠﺔ ﺇﱃ ﲨﻠﺔ ﻣﻜﺘﻮﺑﺔ ﲟﺤﺎﺭﻑ ﺻﻐﲑﺓ
)(String toString ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﳉﻤﻠﺔ ﺇﱃ ﲨﻠﺔ
)(String toUpperCase ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﳉﻤﻠﺔ ﺇﱃ ﲨﻠﺔ ﻣﻜﺘﻮﺑﺔ ﲟﺤﺎﺭﻑ ﻛﺒﲑﺓ
ﺍﳉﻤﻠﺔ
ﻣﻘﺪﻣﺔ ﺍﳉ ﻠ
ﻓﺮﺍﻏﺎﺕ ﻘ
ﺍﳉﻤﻠﺔ ﺑﺪﻭﻥﻥ ﻓ ﺍﻏﺎ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﳉ ﻠ
ﺍﻟ
)(String trim
ﻭﺎﻳﺘﻬﺎ
)String valueOf(primitiveType ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﲨﻠﺔ ﻷﻱ ﺷﻜﻞ ﺃﺳﺎﺳﻲ
3
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
(٢ ) ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
(٢٠١٣-٢٠١٢) ﺣﻴﺚ ﻳﻘﻮﻡ ﲝﺴﺎﺏ ﻋﺪﺩ، (String) ﻭﻓﻴﻤﺎ ﻳﻠﻲ ﻣﺜﺎﻝ ﺑﺴﻴﻂ ﻳﻮﺿﺢ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺼﻒ
(٤) اﻟﻤﺤﺎﺿﺮة
اﻟ ﺎﺿ ة
ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ.د : ﺍﻷﺣﺮﻑ ﺍﻟﺼﻮﺗﻴﺔ ﰲ ﲨﻠﺔ ﳏﺮﻓﻴﺔ ﻳﺘﻢ ﺇﺩﺧﺎﳍﺎ ﻣﻦ ﻟﻮﺣﺔ ﺍﳌﻔﺎﺗﻴﺢ
import java.util.Scanner;
public class CountVowels
{
static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
System.out.print("Enter a string: ");
String s = sc.nextLine();
int vowelCount = 0;
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if ( (c == ‘A’) || (c == ‘a’) ||
(c == ‘E’) || (c == ‘e’) ||
(c == ‘I’) || (c == ‘i’) ||
(c == ‘O’) || (c == ‘o’) ||
(c == ‘U’) || (c == ‘u’) )
vowelCount++;
}
System.out.println("That string contains "
+ vowelCount + " vowels.");
}
}
4
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ ) (٢
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ ﻣﻼﺣﻈﺔ ) : (1-4ﻳﻌﺪ ﺻﻒ ﺍﳉﻤﻞ ﺍﶈﺮﻓﻴﺔ ) (Stringﻣﻦ ﺍﻟﺼﻔﻮﻑ ﺍﳌﺘﻤﻴﺰﺓ ﰲ ﻟﻐﺔ ﺍﳉﺎﻓﺎ،
)(٢٠١٣-٢٠١٢
اﻟﻤﺤﺎﺿﺮة )(٤
اﻟ ﺎﺿ ة ﻳﻀﻔﻲ
ﺍﺽ ﺟﺪﻳﺪﺓ ﳑﺎ ﻳﻀﻔ
ﺃﻏﺮﺍﺽﺪ ﻭﺑﻨﺎﺀ ﺃﻏ
ﺗﺸﻴﻴﺪ
ﺩﻭﻣﺎ ﺗﺸ
ﺃﻏﺮﺍﺿﻪ ﻏﲑ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻌﺪﻳﻞ ﻭﺃﻱ ﻣﻌﺎﳉﺔ ﳍﺎ ﺗﺘﻄﻠﺐ ﺩﻭﻣﺎﹰ
ﺇﻻ ﺃﻥ ﺃﻏ ﺍﺿﻪ
د .ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ
ﻋﻠﻰ ﺻﻒ ﺍﳉﻤﻞ ﺍﶈﺮﻓﻴﺔ ) (Stringﺻﻔﺔ ﺿﻌﻒ ﺍﻟﻔﻌﺎﻟﻴﺔ .ﻭﻗﺪ ﺍﻗﺘﺮﺣﺖ ﰲ ﻟﻐﺔ ﺍﳉﺎﻓﺎ ﺻﻔﺎﻥ
) . (StringBuilder, StringBufferﺍﻟﺼﻔﺎﻥ ﻣﺸﺎﺎﻥ ﻟﻠﺼﻒ ) (Stringﳊﻞ ﻫﺬﻩ ﺍﳌﺸﻜﻠﺔ ﻭﳘﺎ
ﺐ ﻮ
ﺍﻟﺘﻨﻮﻳﻪ ﺃﻥ ﺍﻟﺼﻒ ﻭﺍﻟﻄﺮﺍﺋﻖﻖ ،ﻭﻭﳚﺐ
ﺍﻟﺪﻭﺍﻝ ﻭ ﺮ
ﳎﻤﻮﻋﺔ ﻭﻭﺍﺣﺪﺓ ﻣﻦﻦ ﻭ
ﺍﻟﺴﺎﺑﻘﺎﻥ ﻣﺘﺸﺎﺎﻥ ﻭﻭﳝﺘﻠﻜﺎﻥ ﻮ
) (StringBuilderﺃﺿﻴﻒ ﻟﻠﺒﻴﺌﺔ ﺍﻟﱪﳎﻴﺔ ) (JDK 5ﻭﻫﻮ ﻏﲑ ﺁﻣﻦ ﻋﻨﺪ ﺍﺳﺘﺨﺪﺍﻣﻪ ﰲ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ
ﺍﳌﺘﻀﻤﻨﺔ ﻟﻠﻤﺴﺎﻟﻚ .ﻭﻛﻞ ﻏﺮﺽ ﻣﻦ ﻫﺬﻳﻦ ﺍﻟﺼﻔﲔ ﻳﻘﻮﻡ ﲝﺠﺰ ﻣﻜﺎﻥ ﰲ ﺍﻟﺬﺍﻛﺮﺓ ﻳﺪﻋﻰ )(buffer
ﻟﻴﻀﻊ ﻓﻴﻪ ﺍﳉﻤﻠﺔ ﺍﶈﺮﻓﻴﺔ ،ﻭﳝﻜﻦ ﳍﺬﺍ ) (bufferﺃﻥ ﻳﺰﺩﺍﺩ ﻋﻨﺪ ﺍﳊﺎﺟﺔ ﻭﺍﳌﻌﺎﳉﺔ .
(String
(String, ﺍﺧﺘﻴﺎﺭ ﺍﻟﺼﻒ ﺍﳌﻨﺎﺳﺐ ﻣﻦ ﺑﲔ ﺍﻟﺼﻔﻮﻑ
ﺗﺴﺎﻋﺪﻙ ﰲ ﺍﺧﺘ ﺎﺭ
ﻤﺎ ﻳﻠﻳﻠﻲ ﻣﻼﺣﻈﺎﺕ ﺗ ﺎﻋﺪﻙ
ﻭﻓﻓﻴﻤﺎ
):StringBuilder, StringBuffer
ﺍﺿﻪ ﻏﻏﲑ
ﺃﻏﺮﺍﺿﻪ
) (Stringﻷﻥ ﺃﻏ
ﺍﻟﺼﻒ ) (St i
ﺍﺳﺘﺨﺪﻡ ﺍﻟ ﻒ
ﻋﻨﺪﻫﺎ ﺍ ﺘﺨﺪ
ﻳﻌﺪﻝ( ﻑ
ﻳﺘﻐﲑ )ﻟ)ﻟﻦ ﺪﻝ(
ﺍﻟﻨﺺ ﻟﻟﻦ ﺘﻐ
-ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻨ
ﻗﺎﺑﻞﺓ ﻟﻠﺘﻌﺪﻳﻞ.
ﳑﻜﻦ ﻣﻦ ﺧﻼﻝ ﻣﺴﻠﻚ ﻭﺍﺣﺪ ﻓﻘﻂ ،
-ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻨﺺ ﳝﻜﻦ ﺃﻥ ﻳﺘﻐﲑ ﻭﻛﺎﻥ ﺍﻟﻮﺻﻮﻝ ﺇﻝﻩﻱ ﺍﹰ
ﻋﻨﺪﻫﺎ ﺍﺳﺘﺨﺪﻡ ﺍﻟﺼﻒ ).(StringBuilder
ﻑ
ﻋﻨﺪﻫﺎ
ﳑﻜﻦ ﻣﻦ ﺧﻼﻝ ﻋﺪﺓ ﻣﺴﺎﻟﻚ ،ﻑ
-ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﻨﺺ ﳝﻜﻦ ﺃﻥ ﻳﺘﻐﲑ ﻭﻛﺎﻥ ﺍﻟﻮﺻﻮﻝ ﺇﻝﻩﻱ ﹰﺍ
ﺍﺳﺘﺨﺪﻡ ﺍﻟﺼﻒ ).(StringBuffer
5
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ Method Description
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ )append(primitiveType ﺩﺍﻟﺔ ﺗﻀﻴﻒ ﲨﻠﺔ ﺍﻟﺸﻜﻞ ﺍﻷﺳﺎﺳﻲ ﺇﱃ ﺎﻳﺔ ﺍﳉﻤﻠﺔ -ﺍﳉﺪﻭﻝ ﺍﻵﰐ ﻳﻠﺨﺺ ﺃﻫﻢ ﺍﻟﺪﻭﺍﻝ ﻭﺍﻟﻄﺮﺍﺋﻖ ﺍﳌﺘﻮﻓﺮﺓ ﰲ ﻛﻞ ﻣﻦ ﺍﻟﺼﻔﲔ
ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ ) (٢
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ )append(Object ﺩﺍﻟﺔ ﺗﻀﻴﻒ ﲨﻠﺔ ﺍﻟﻐﺮﺽ ﺇﱃ ﺎﻳﺔ ﺍﳉﻤﻠﺔ
): (StringBuilder, StringBuffer
)(٢٠١٣-٢٠١٢ )append(CharSequence ﺩﺍﻟﺔ ﺗﻀﻴﻒ ﳎﻤﻮﻋﺔ ﳏﺎﺭﻑ ﻛﺠﻤﻠﺔ ﺇﱃ ﺎﻳﺔ ﺍﳉﻤﻠﺔ
اﻟﻤﺤﺎﺿﺮة )(٤
اﻟ ﺎﺿ ة
)(int capacity ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺣﺠﻢ ﺍﻟﻐﺮﺽ ﻣﻦ ﺍﻟﺼﻒ StringBuilder
د .ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ
)char charAt(int ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﶈﺮﻑ ﺍﻟﺬﻱ ﺗﺮﺗﻴﺒﻪ ﺍﻟﻮﺳﻴﻂ
)delete(int, int ﺩﺍﻟﺔ ﳊﺬﻑ ﳎﻤﻮﻋﺔ ﳏﺎﺭﻑ ﳏﺪﺩﺓ ﺑﺎﻟﻮﺳﻴﻄﲔ
)deleteCharAt(int ﺩﺍﻟﺔ ﳊﺬﻑ ﳏﺮﻑ ﺗﺮﺗﻴﺒﻪ ﺍﻟﻮﺳﻴﻂ
)ensureCapacity(int ﺩﺍﻟﺔ ﻟﺰﻳﺎﺩﺓ ﺣﺠﻢ ﺍﻟﻐﺮﺽ ﰲ ﺣﺎﻝ ﻛﻮﻧﻪ ﺃﻗﻞ ﻣﻦ ﺍﻟﻮﺳﻴﻂ
)int indexOf(String ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺗﺮﺗﻴﺐ ﺍﳉﻤﻠﺔ ﺍﻟﻮﺳﻴﻂ ﻭ) (-1ﰲ ﺣﺎﻝ ﻋﺪﻡ ﻭﺟﻮﺩﻩ
ﻭ(- ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺗﺮﺗﻴﺐ ﺍﳉﻤﻠﺔ ﺑﺎﻟﻮﺳﻴﻂ ﺑﺪﺀﹰﺍ ﻣﻦ ﺍﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ
)int indexOf(String, int
) 1ﰲ ﺣﺎﻝ ﻋﺪﻡ ﻭﺟﻮﺩﻩ
ﻣﻜﺎﻥ ﳏﺪﺩ ﺑﺎﻟﻮﺳﻴﻂ
ﺍﻷﺳﺎﺳﻲ ﰲ ﻜ
ﺍﻟﺸﻜﻞ ﻷ
ﺩﺍﻟﺔ ﻹﺩﺧﺎﻝ ﲨﻠﺔ ﻜ
)insert(int, primitiveType
ﺍﻷﻭﻝ
)insert(int, Object ﺩﺍﻟﺔ ﻹﺩﺧﺎﻝ ﲨﻠﺔ ﺍﻟﻐﺮﺽ ﰲ ﻣﻜﺎﻥ ﳏﺪﺩ ﺑﺎﻟﻮﺳﻴﻂ ﺍﻷﻭﻝ
ﺩﺍﻟﺔ ﻹﺩﺧﺎﻝ ﳎﻤﻮﻋﺔ ﳏﺎﺭﻑ ﻛﺠﻤﻠﺔ ﰲ ﻣﻜﺎﻥ ﳏﺪﺩ ﺑﺎﻟﻮﺳﻴﻂ
)insert(int, CharSequence
ﺍﻷ ﻝ
ﺍﻷﻭﻝ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﻟﺘﺮﺗﻴﺐ ﺍﻷﺧﲑ ﻟﻠﺠﻤﻠﺔ ﺍﻟﻮﺳﻴﻂ ﻭ ) (-1ﰲ ﺣﺎﻝ ﻋﺪﻡ
)int lastIndexOf(String
ﻭﺟﻮﺩﻩ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﻟﺘﺮﺗﻴﺐ ﺍﻷﺧﲑ ﻟﻠﺠﻤﻠﺔ ﺍﻟﻮﺳﻴﻂ ﺑﺪﺀﹰﺍ ﻣﻦ ﺍﻟﻮﺳﻴﻂ
)int lastIndexOf(String, int
ﻭﺟﻮﺩﻩ
) ((-1ﰲ ﺣﺎﻝﻝ ﻋﺪﻡﻡ ﻭﺟﻮ
ﱐ ﻭ)1
ﺍﻟﺜﺎﱐ
)(int length ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﻃﻮﻝ ﺍﳉﻤﻠﺔ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﲨﻠﺔ ﺟﺪﻳﺪﺓ ﺑﻌﺪ ﺇﺑﺪﺍﻝ ﲨﻠﺔ ﺍﶈﺎﺭﻑ ﺍﶈﺪﺩﺓ
)replace(int, int, String
ﺑﺎﻟﻮﺳﻴﻄﲔ ﺍﻷﻭﻝ ﻭﺍﻟﺜﺎﱐ ﲜﻤﻠﺔ ﺍﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﻟﺚ
)(reverse ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﲨﻠﺔ ﺑﺸﻜﻞﻞ ﻣﻌﻜﻮﺱ
ﺩﺍﻟﺔ ﺗﺴﻨﺪ ﶈﺮﻑ ﺍﳉﻤﻠﺔ ﻭﺍﻟﺬﻱ ﺗﺮﺗﻴﺒﻪ ﺍﻟﻮﺳﻴﻂ ﺍﻷﻭﻝ ﲟﺤﺮﻑ
)setCharAt(int, char
ﺍﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ
)setLength(int ﺩﺍﻟﺔ ﻹﺳﻨﺎﺩ ﻃﻮﻝ ﳏﺪﺩ ﻟﻠﻐﺮﺽ ﺍﳉﻤﻠﺔ
)String substring(int ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﲨﻠﺔ ﺗﺒﺪﺃ ﲟﺤﺮﻑ ﺗﺮﺗﻴﺒﻪ ﺍﻟﻮﺳﻴﻂ ﺣﱴ ﺎﻳﺔ ﺍﳉﻤﻠﺔ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﲨﻠﺔ ﺗﺒﺪﺃ ﲟﺤﺮﻑ ﺗﺮﺗﻴﺒﻪ ﺍﻟﻮﺳﻴﻂ ﺍﻷﻭﻝ ﺣﱴ ﺍﶈﺮﻑ
)String substring(int, int
ﺍﻟﺬﻱ ﺗﺮﺗﻴﺒﻪ ﺍﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ
)(String toString ﺩﺍﻟﺔ ﺗﻌﻴﺪ ﺍﳉﻤﻠﺔ ﺇﱃ ﲨﻠﺔ
6
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
(٢ ) ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ import java.util.Scanner;
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
(٢٠١٣-٢٠١٢) public class StringBuilderApp
(٤) اﻟﻤﺤﺎﺿﺮة
اﻟ ﺎﺿ ة {
ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ.د
static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
System.out.print("Enter a string: ");
String s = sc.nextLine();
StringBuilder sb = new StringBuilder(s);
int vowelCount = 0;
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if ( (c == 'A') || (c == 'a')
|| (c == 'E') || (c == 'e')
|| (c == 'I') || (c == 'i')
|| (c == 'O') || (c == 'o')
|| (c == 'U') || (c == 'u') )
{
sb.setCharAt(i, '*');
}
}
System.out.println();
System.out.println(s);
System.out.println(sb.toString());
}
}
7
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ import java.io.*;
(٢ ) ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ import java.util.*;
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
(٢٠١٣-٢٠١٢)
public class Rot13Input
(٤) اﻟﻤﺤﺎﺿﺮة
اﻟ ﺎﺿ ة {
ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ.د public static void main(String[ ] args) throws IOException
{
Scanner scan= new Scanner(System.in);
for(;;)
{
System.out.print("> ");
String line = scan.nextLine( );
if ((line == null) || line.equals("quit"))
break;
S i B ff buf
StringBuffer b f = new StringBuffer(line);
S i B ff (li )
for(int i = 0; i < buf.length( ); i++)
buf.setCharAt(i, rot13(buf.charAt(i)));
System.out.println(buf);
}
}
public static char rot13(char c)
{
if ((c >= 'A') && (c <= 'Z'))
{
c += 13;
if (c > 'Z')
c -= 26;
}
if ((((c >= 'a')) && (c( <= 'z'))))
{
c += 13;
if (c > 'z')
c -= 26;
}
return c;
}
}
8
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ ) (٢
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
)(٢٠١٣-٢٠١٢
اﻟﻤﺤﺎﺿﺮة )(٤
اﻟ ﺎﺿ ة
د .ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ
.2-4ﺍﳌﺼﻔﻮﻓﺎﺕ .
ﺍﳌﺼﻔﻮﻓﺔ ﲤﺜﻞ ﳎﻤﻮﻋﺔ ﻣﻦ ﺍﳌﺘﺤﻮﻻﺕ ﳝﻜﻦ ﺍﻹﺷﺎﺭﺓ ﺇﻟﻴﻬﺎ ﻣﻦ ﺧﻼﻝ ﻣﺘﺤﻮﻝ ﻭﺣﻴﺪ ﻣﺮﺗﺒﻂ
ﺑﺘﺮﻗﻴﻢ ﻳﺸﲑ ﺇﱃ ﻋﺪﺩ ﺍﳌﺘﺤﻮﻻﺕ ﰲ ﺍﻤﻮﻋﺔ ﻭﺍﻟﱵ ﻧﺪﻋﻮﻫﺎ ﺑﺎﻟﻌﻨﺎﺻﺮ .ﻭﺍﳌﺼﻔﻮﻓﺔ ﲝﺪ ﺫﺍﺎ ﲤﺜﻞ
ﻏﺮﺿﹰﺎ ،ﻛﻤﺎ ﳝﻜﻨﻬﺎ ﺃﻥ ﺗﺸﲑ ﺇﱃ ﳎﻤﻮﻋﺔ ﺃﻏﺮﺍﺽ .ﻭﺍﳌﺼﻔﻮﻓﺔ ﺫﺍﺕ ﻃﻮﻝ ﺛﺎﺑﺖ ﻋﻨﺪ ﺍﻟﺘﺸﻴﻴﺪ
ﻭﺍﳌﺼﻔﻮﻓﺔ ﻗﺪ
ﺑﺎﻹﻣﻜﺎﻥ ﺗﻐﺗﻐﻴﲑﻩ .ﺍﳌ ﻔ ﻓﺔ
ﻭﻟﻴﺲ ﺎﻹ ﻜﺎﻥ
ﺍﳌﺼﻔﻮﻓﺔ ﻟ
ﻋﻨﺎﺻﺮ ﺍﳌ ﻔ ﻓﺔ
ﻋﺪﺩ ﺎﻳﺸﲑ ﺇﱃ ﺪ ﺍﻟﻄﻮﻝﻝ ﺸﺬﺍ ﺍﻟﻄ
ﻭﺍﻹﻧﺸﺎﺀ ،ﻭﻫﺬﺍ
ﺍﻹﻧﺸﺎ
ﺗﻜﻮﻥ ﺃﺣﺎﺩﻳﺔ ﺍﻟﺒﻌﺪ ﺃﻭ ﺛﻨﺎﺋﻴﺔ ﺍﻟﺒﻌﺪ ﺃﻭ ﺛﻼﺛﻴﺔ ﺍﻟﺒﻌﺪ ﻭﻫﻜﺬﺍ .
ﻭﻣﻦ ﺍﳌﺴﺎﺋﻞ ﺍﳌﻬﻤﺔ ﰲ ﺍﺳﺘﺨﺪﺍﻡ ﺍﳌﺼﻔﻮﻓﺎﺕ ﻣﺴﺄﻟﺔ ﺍﻟﺘﺮﺗﻴﺐ .ﻛﻤﺎ ﳝﻜﻨﻨﺎ ﻋ ﺪ ﻣﺴﺄﻟﺔ ﺗﺮﺗﻴﺐ ﺍﻷﻋﺪﺍﺩ
ﺍﳌﻮﺟﻮﺩﺓ ﰲ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﺍﳌﺴﺎﺋﻞ ﺍﳌﻬﻤﺔ ﰲ ﺍﳋﻮﺍﺭﺯﻣﻴﺎﺕ ،ﻭﻫﻨﺎﻙ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﳋﻮﺍﺭﺯﻣﻴﺎﺕ ﺍﻟﱵ ﺗﻌﺎﰿ
ﺍﳌﺴﺄﻟﺔ .
ﻫﺬﻩ ﺍﳌ ﺄﻟﺔ
ﺬ
9
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
(٢ ) ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ public class SortNumbers
(٢٠١٣-٢٠١٢)
(٤) اﻟﻤﺤﺎﺿﺮة
اﻟ ﺎﺿ ة {
ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ.د public static void sort(double[ ] nums)
{
for(int i = 0; i < nums.length; i++)
{
int min = i;
for(int j = i; j < nums.length; j++)
{
if (nums[j] < nums[min])
min = j;
}
double tmp;
tmp = nums[i];
nums[i] = nums[min];
nums[min] = tmp;
}
}
10
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ ( ﻳﺘﻢ ﰲ ﺍﻟﺒﺪﺍﻳﺔ ﺗﻌﺮﻳﻒ ﻣﺼﻔﻮﻓﺔ ﺣﺠﻤﻬﺎ ﻳﺴﺎﻭﻱ: ﺧﻮﺍﺭﺯﻣﻴﺔ ﺍﳌﻨﺨﻞ ﻭﺍﻟﱵ ﺗﺘﻠﺨﺺ ﻓﻴﻤﺎ ﻳﻠﻲ ﺍﻵﰐ
(٢ ) ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
( ﲝﻴﺚ ﺗﺴﻨﺪBoolean) ﺎ ﻣﻦ ﺍﻟﺸﻜﻞ ﺍﳌﻨﻄﻘﻲ( ﻭﻣﺮﻛﺒﺎint) Math.ceil(Math.sqrt(max)) )
(٢٠١٣-٢٠١٢) ﻭﻣﻦ ﰒ ﺗﺘﻢﻢ ﻋﻤﻠﻴﺔ ﳔﻞ، (true) ( ﻭﻟﻠﻤﺮﻛﺒﺎﺕ ﺍﳌﺘﺒﻘﻴﺔ ﺍﻟﻘﻴﻤﺔfalse) ﻟﻠﻤﺮﻛﺒﺔ ﺍﻷﻭﱃ ﻭﺍﻟﺜﺎﻧﻴﺔ ﺍﻟﻘﻴﻤﺔ
(٤) اﻟﻤﺤﺎﺿﺮة
اﻟ ﺎﺿ ة
ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ.د (false) ﻭﺫﻟﻚ ﻋﻦ ﻃﺮﻳﻖ ﺇﺳﻨﺎﺩ ﺍﻟﻘﻴﻤﺔ، (3) ﻟﻸﻋﺪﺍﺩ ﺍﻷﻭﻟﻴﺔ ﺍﻷﺻﻐﺮ ﻓﺎﻷﺻﻐﺮ ﺑﺪﺀﹰﺍ ﻣﻦ ﺍﻟﻌﺪﺩ
ﻭﺑﺎﻧﺘﻬﺎﺀ ﻋﻤﻠﻴﺔ ﳔﻞ ﺍﻷﻋﺪﺍﺩ ﺍﻷﻭﻟﻴﺔ ﻳﺘﻢ ﺍﳌﺮﻭﺭ ﺑﺎﳌﺼﻔﻮﻓﺔ. ﻟﻠﻤﺮﻛﺒﺔ ﺍﳌﻘﺎﺑﻠﺔ ﻟﻠﻌﺪﺩ ﺍﻷﻭﱄ ﺍﳌﻨﺨﻮﻝ
. ( ﻭﺍﻟﱵ ﲤﺜﻞ ﺍﻟﻌﺪﺩ ﺍﻷﻭﱄ ﺍﻷﻛﱪ ﺍﳌﺮﺍﺩ ﺇﳚﺎﺩﻩfalse) ﺑﺸﻜﻞ ﻋﻜﺴﻲ ﺇﱃ ﺃﻭﻝ ﻣﺮﻛﺒﺔ ﻗﻴﻤﺘﻬﺎ
public class Sieve
{
public static void main(String[ ] args)
{
int max = 100;;
try { max = Integer.parseInt(args[0]); }
catch (Exception e) { }
boolean[ ] isprime = new boolean[max+1];
for(int i = 0; i <= max; i++)
isprime[i] = true;
isprime[0] = isprime[1] = false;
int n = (int) Math.ceil(Math.sqrt(max));
System.out.println(n);
for(int i = 0; i <= n; i++)
{
if (isprime[i])
for(int j = 2*i; j <= max; j = j + i)
isprime[j] = false;
}
int largest;
for(largest = max; !isprime[largest]; largest--) ;
System out print("The largest prime less than or equal");
System.out.print("The
System.out.println( " to " + max + " is " + largest );
}
11 }
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
(٢ ) ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
(٢٠١٣-٢٠١٢) public class BoboAndTheLockers
(٤) اﻟﻤﺤﺎﺿﺮة
اﻟ ﺎﺿ ة {
ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ.د
public static void main(String[] args)
{
boolean[] lockers = new boolean[1001];
for (int i = 1; i <= 1000; i++)
lockers[i] = false;
for (int skip = 1; skip <= 1000; skip++)
{
System.out.println("Bobo is changing every"+ skip + " lockers.");
for (int locker = skip; locker < 1000; locker += skip)
lockers[locker] = !lockers[locker];
}
System.out.println("Bobo is bored" +" now so he's going home.");
String list = "";
int openCount = 0;
for (int i = 1; i <= 1000; i++)
if (lockers[i])
{
openCount++;
list += i + " ";
}
System.out.println("Bobo left " + openCount+ " lockers open.");
System.out.println("The open lockers are: " + list);
}
}
12
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ ) (٢
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
)(٢٠١٣-٢٠١٢
اﻟﻤﺤﺎﺿﺮة )(٤
اﻟ ﺎﺿ ة
د .ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ
ﻣﻼﺣﻈﺔ ) : (2-4ﺇﺿﺎﻓﺔ ﺇﱃ ﺍﻟﻄﺮﻳﻘﺔ ﻵ
ﻭﺍﻵﻟﻴﺔ ﺍﻟﱵ ﺗﺸﻴﺪ ﺎ ﺍﳌﺼﻔﻮﻓﺎﺕ ،ﻓﺈﻥ ﻟﻐﺔ ﺍﳉﺎﻓﺎ ﻼ ﻈ
ﺗﺘﻀﻤﻦ ﳎﻤﻮﻋﺔ ﻣﻦ ﺍﻟﺪﻭﺍﻝ ﺍﻟﺴﺎﻛﻨﺔ ﺿﻤﻦ ﺍﳊﺰﻣﺔ ) (java.utilﺗﺴﻬﻢ ﺑﺸﻜﻞ ﻓﻌﺎﻝ ﰲ ﻣﻌﺎﳉﺔ
ﺍﳌﺼﻔﻮﻓﺎﺕ .ﻭﻣﻦ ﻫﺬﻩ ﺍﻟﺪﻭﺍﻝ :
Method Description
) (-1ﰲ ﺩﺍﻟﺔ ﺗﺒﺤﺚ ﻋﻦ ﺍﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ ﰲ ﺍﳌﺼﻔﻮﻓﺔ ﻭﺗﻌﻴﺪ
)static int binarySearch(array, key
ﻋﺪﻡ ﻭﺟﻮﺩﻩ
ﺣﺎﻝ ﺪ
ﺎﻝ
ﺩﺍﻟﺔ ﺗﻌﻴﺪ ) (trueﺇﺫﺍ ﺗﻄﺎﺑﻘﺖ ﻣﺮﻛﺒﺎﺕ ﺍﳌﺼﻔﻮﻓﺘﲔ
)boolean deepEquals(array1, array2
)ﻣﺼﻔﻮﻓﺎﺕ ﺫﺍﺕ ﺑﻌﺪﻳﻦ ﻭﺃﻛﺜﺮ(
ﻣﺮﻛﺒﺎﺕ ﺍﳌ ﻔ ﻓﺘﲔ
ﺍﳌﺼﻔﻮﻓﺘﲔ ﻘﺖ ﻛ ﺎﺕﺗﻄﺎﺑﻘﺖ
) (trueﺇﺫﺍ ﺗﻄﺎ
ﺗﻌﻴﺪ ) (t
ﺩﺍﻟﺔ ﺗ ﺪ
)boolean equals(array1, array2
)ﻣﺼﻔﻮﻓﺎﺕ ﺃﺣﺎﺩﻳﺔ ﺍﻟﺒﻌﺪ(
)static void fill(array,value ﺩﺍﻟﺔ ﻟﺘﻌﺒﺌﺔ ﻣﺮﻛﺒﺎﺕ ﺍﳌﺼﻔﻮﻓﺔ ﺑﺎﻟﻮﺳﻴﻂ ﺍﻟﺜﺎﱐ
ﺑﺎﻟﻮﺳﻴﻄﲔ ﺍﻟﺜﺎﱐ
ﻓﺔ ﺍﶈﺪﺩﺓ ﺎﻟ ﻄﲔ
ﺍﳌﺼﻔﻮﻓﺔ
ﺎﺕ ﺍﳌ ﻔ
ﻣﺮﻛﺒﺎﺕ
ﺩﺍﻟﺔ ﻟﺘﻟﺘﻌﺒﺌﺔﺌﺔ ﻛ
)static void fill(array,from, to, value
ﻭﺍﻟﺜﺎﻟﺚ ﺑﻘﻴﻤﺔ ﺍﻟﻮﺳﻴﻂ ﺍﻟﺮﺍﺑﻊ
)static void sort(array ﺩﺍﻟﺔ ﻟﺘﺮﺗﻴﺐ ﻣﺮﻛﺒﺎﺕ ﻣﺼﻔﻮﻓﺔ
ﺑﺎﻟﻮﺳﻴﻄﲔ ﺍﻟﺜﺎﱐ
ﻓﺔ ﺍﶈﺪﺩﺓ ﺑﺎﻟ ﻄﲔ
ﺍﳌﺼﻔﻮﻓﺔ
ﺎﺕ ﺍﳌﺼﻔ
ﻣﺮﻛﺒﺎﺕ
ﻟﺘﺮﺗﻴﺐ ﻣ ﻛ
ﺩﺍﻟﺔ ﻟﺘ ﺗ
)static void sort(array,from, to
ﻭﺍﻟﺜﺎﻟﺚ
)static String toString(array ﺩﺍﻟﺔ ﻟﺘﺤﻮﻳﻞ ﻣﺮﻛﺒﺎﺕ ﻣﺼﻔﻮﻓﺔ ﺇﱃ ﲨﻠﺔ
13
هﻨﺪﺳﺔ ﻣﻌﻠﻮﻣﺎﺗﻴﺔ
اﻟﺴﻨﺔ اﻟﺜﺎﻟﺜﺔ
(٢ ) ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ
اﻟﻔﺼﻞ اﻟﺜﺎﻧﻲ
class OverLoadedMethods .(Generics) ﺍﻟﺼﻔﻮﻑ ﻭﺍﻟﺪﻭﺍﻝ ﺍﻟﺸﺎﻣﻠﺔ.3-4
(٢٠١٣-٢٠١٢)
{
(٤) اﻟﻤﺤﺎﺿﺮة
اﻟ ﺎﺿ ة public static void printArray( Integer[] inputArray)
ﻣﻬﻨﺪ أﺣﻤﺪ رﺟﺐ.د { ﻫﻞ ﻧﺴﺘﻄﻴﻊ ﺃﻥ ﻧﻜﺘﺐ ﺩﺍﻟﺔ ﺑﺮﳎﻴﺔ ﻭﺣﻴﺪﺓ ﺗﻘﻮﻡ ﺑﺘﺮﺗﻴﺐ ﺃﻱ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﺍﻷﻋﺪﺍﺩ ﺍﻟﺼﺤﻴﺤﺔ
for ( Integer element : inputArray ) ﺃﻭ ﺃﻱ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﺍﳉﻤﻞ ﺍﶈﺮﻓﻴﺔ ؟ ﲟﻌﲎ ﺁﺧﺮ ﻫﻞ ﳝﻜﻨﻨﺎ ﺗﻌﺮﻳﻒ ﺩﺍﻟﺔ ﺷﺎﻣﻠﺔ ﳝﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻣﻦ
System.out.printf("%s", element );
System.out.println(); ﻼ ﻳﺼﻠﺢ ﻟﺘﻮﺻﻴﻒ ﺃﻱ ﺷﻜﻞ ﻣﻦ
ﻑ ﺻﻔﹰﺎ ﺷﺎﻣ ﹰﺃﺟﻞ ﺃﻱ ﺷﻜﻞ ﻣﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ ؟ ﻫﻞ ﳝﻜﻨﻨﺎ ﺃﻥ ﻧﻌﺮ
} . ﻟﺍﻟﺒﻴﺎﻧﺎﺕ ؟ ﻫﺬﺍ ﻣﺎ ﺳﺘﺤﺎﻭﻝﻝ ﻫﺬﻩ ﻟﺍﻟﻔﻘﺮﺓ ﺍﻹﺟﺎﺑﺔ ﻋﻨﻪ
public static void printArray( Double[] inputArray )
{
for ( Double element : inputArray ) ( ﺑﺜﻼﺙ ﺻﻴﻎ ﳐﺘﻠﻔﺔprintArray()) ﻣﻊ ﺍﻟﺘﻨﻮﻳﻪ ﻭﺟﻮﺩ ﺍﻟﺪﺍﻟﺔ، ﻟﻨﺤﺎﻭﻝ ﺍﻟﻨﻈﺮ ﺇﱃ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻵﰐ
System.out.printf("%s", element ); : ﱵ ﺗﻌﺎﳉﻬﺎ
ﺗﻨﺎﺳﺐ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﱵ
System.out.println();
}
public static void printArray( Character[] inputArray)
{
for ( Character element : inputArray ) public static<E> void printArray( E[] inputArray)
System.out.printf("%s", element ); {
System.out.println(); for ( E element : inputArray )
} System.out.printf("%s", element );
public static void main( String[] args ) System.out.println();
{ }
Integer[] integerArray = {1, 2, 3, 4, 5, 6};
16