งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

(String Processing). Outline ทบทวน String การประมวลผลสายอักขระ (String Processing) Pattern Matching Encryption/Decryption Compression.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "(String Processing). Outline ทบทวน String การประมวลผลสายอักขระ (String Processing) Pattern Matching Encryption/Decryption Compression."— ใบสำเนางานนำเสนอ:

1 (String Processing)

2 Outline ทบทวน String การประมวลผลสายอักขระ (String Processing) Pattern Matching Encryption/Decryption Compression

3 ทบทวน String การประกาศตัวแปรเพื่อเก็บ ข้อความ การรับและการแสดงผลข้อความ การกำหนดค่าให้กับตัวแปรเก็บ ข้อความ ฟังก์ชันที่ใช้กับข้อความและอักขระ

4 การประกาศตัวแปรเพื่อเก็บ ข้อความ รูปแบบ char ชื่อตัวแปร [ จำนวนอักขระ ] โดยที่ จำนวนอักขระต้องมากกว่าจำนวนอักขระที่เก็บจริง 1 ช่อง เพราะช่องสุดท้ายต้องเก็บอักขระ NULL ซึ่งเขียนแทน ด้วย ‘\0’ เพื่อบอกให้ตัวแปลภาษารู้ว่าเป็นข้อความ ตัวอย่าง char name[10]; หมายถึง ตัวแปรชื่อ name เก็บข้อความยาว 9 อักขระ char color[ ]; หมายถึง ตัวแปรชื่อ color เก็บข้อความโดยไม่ กำหนดขนาด ซึ่งในกรณีนี้ตัวแปลภาษาจะกำหนด ขนาดให้เท่ากับจำนวนอักขระบวก 1

5 การรับข้อมูล การรับข้อความโดยใช้ฟังก์ชัน scanf() รูปแบบ : scanf (“%s”, ชื่อตัวแปร ) ตัวอย่าง #include char massage[ 20]; void main ( ) { scanf (“%s”, message); printf (“%s”, message); }

6 การรับข้อมูล รับข้อมูลทีละตัวอักษรด้วยฟังก์ชัน getchar ( ) การทำงาน >> เมื่อผู้ใช้กรอกตัวอักษรแล้ว จะต้องกดปุ่ม Enter โปรแกรมจึงจะกลับไปทำงานต่อ โดยอักขระที่ผู้ใช้ กรอก จะปรากฏขึ้นมาให้เห็นบนหน้าจอด้วย รูปแบบ : ชื่อตัวแปร = getchar() ตัวอย่าง #include void main ( ) { char ch; ch = getchar(); printf("You type a character is...%c \n",ch); }

7 การรับข้อมูล รับข้อความด้วยฟังก์ชัน gets ( ) รูปแบบ : gets( ชื่อตัวแปร ) ตัวอย่าง #include void main ( ) { char str[20]; gets(str); printf("You type a string is...%s \n",str); }

8 การแสดงผลลัพธ์ การแสดงผลข้อความโดยใช้ฟังก์ชัน printf รูปแบบ : printf (“%s”, ชื่อตัวแปร ); ตัวอย่าง #include void main ( ) { char str[20]; gets(str); printf("You type a string is...%s \n",str); }

9 การแสดงผลลัพธ์ การแสดงผลทีละตัวอักษรโดยใช้ฟังก์ชัน printf รูปแบบ : printf (“%c”, ชื่อตัวแปร ); ตัวอย่าง #include void main ( ) { char str[20]; gets(str); for(i=0;i<20;i++) printf("You type a string is...%c \n",str[i] ); }

10 การแสดงผลลัพธ์ การแสดงผลทีละตัวอักษรด้วยฟังก์ชัน putchar() รูปแบบ :putchar (argument) argument : ตัวแปร, ค่าคงที่, ฟังก์ชัน ตัวอย่าง #include void main ( ) { char ch; ch = ‘A’; putchar(ch); }

11 การแสดงผลลัพธ์ การแสดงผลข้อความด้วยฟังก์ชัน puts() รูปแบบ :puts(string) เมื่อ string คือตัวแปรที่เก็บข้อความหรือข้อความที่อยู่ ใต้เครื่องหมาย “ ” ตัวอย่าง #include char message[ ] = “C Language”; void main ( ) { puts (message); puts (“Easy and Fun”); } ผลการรัน C Language Easy and Fun

12 ตัวอย่างโปรแกรม #include char x [30]; void main ( ) { printf ( “ Enter your name : ” ); gets(x); printf ( “ Your name :%s\n ”, x); } ผลลัพธ์ Enter your name : manee dee Your name : manee dee

13 การกำหนดค่าให้กับตัวแปรเก็บ ข้อความ Example #include void main ( ) { char mass[11] = “C Language”; char book[4] = {‘A’, ‘B’, ‘C’, ‘\0’}; printf (“%s\n”, mass); printf (“%s\n”, book); printf (“%c\n”, mass[3]); } ผลการรัน C Language ABC a

14 ฟังก์ชันที่ใช้กับข้อความและ อักขระ #include ชื่อฟังก์ชันรูปแบบความหมาย strcpy( )strcpy(str1,str2) คัดลอกข้อมูลจาก str2 ไปยัง str1 strcat( )strcat(str1,str2) ใช้เชื่อมต่อข้อความ str1 กับ str2 เข้าด้วยกัน และ เก็บผลลัพธ์ไว้ใน str1 strlen( )strlen(s) ใช้หาความยาวของข้อความ s strcmp()strcmp(str1,str2) เปรียบเทียบข้อความ str1 กับ str2

15 ฟังก์ชันที่ใช้กับข้อความและ อักขระ #include ชื่อฟังก์ชันรูปแบบความหมาย tolower( )tolower(ch) เปลี่ยนตัวอักษรจากตัวใหญ่ให้เป็นตัวเล็ก toupper( )toupper(ch) เปลี่ยนตัวอักษรจากตัวเล็กให้เป็นตัวใหญ่

16 ตัวอย่างโปรแกรมการใช้ฟังก์ชัน ของ string #include int main() { char name1[10], name2[10], temp[10]; int res; printf("enter 2 string : "); scanf("%s %s",name1,name2); // cannot use like this //name1 = "dararat"; res = strcmp(name1,name2); if (res>0) { printf("greater\n"); strcpy(temp,name1); strcpy(name1,name2); strcpy(name2,temp); printf("%s %s\n",name1,name2); } else if (res<0) printf("less\n"); else // res == 0 { printf("same and length = "); printf("%d\n", strlen(name1) ); } return 0; }

17 Don’t Sleep Yet…

18 String Processing Pattern Matching Encryption/Decryption Compression

19 Pattern Matching given a string of n characters called text (T),and a string of m (m<=n) characters called pattern (P) find a substring of the text that match the pattern

20 Pattern Matching Pattern Matching Algorithms Brute-Force Boyer-Moore Knuth-Morris-Pratt

21 Pattern Matching Pattern Matching Algorithms Input: An array T[n] of n characters representing a text and an array P[m] of m character representing a patterm Output: The index of the first character in the text that starts a matching substring or - 1 if the search is unsuccessful

22 Brute-Force algorithm Algorithm for i  to n-m do j  0 while j< m and P[j] = T[i+j] do j  j+1 if j = m return i return -1

23 Brute-Force algorithm Example 1 T = “abacaabaccabacababb” P = “abacab” abacaabaccabb abacaabaccabacababb abacab bacab abacab acab abacab bacab abacab …. …. abacab Result = “match” 27 comparisons

24 Brute-Force algorithm Example 2 T = “a atern matching ithm” T = “a pattern matching algorithm” P = “ agor” P = “ algor” aatern matching ithm apattern matching algorithm agor algor lgor algor agor algor … algor algor Result = “match” ? comparisons

25 Boyer-Moore algorithm Algorithm create a lookup table from P create a lookup table from P เช่น T = “abacaabacabacababb” เช่น T = “abacaabadcabacababb” P = “abacab” P = “abacab” chaabcd Last(cha)453 ***Last(cha) = last position of the character in P

26 Boyer-Moore algorithm Algorithm ( ต่อ ) compare from right to left 1-by-1 if not equal at position i in T, if T i is in lookup table n = |last(T i )-last(P i )| shift comparison to the next n location of T if T i is not in lookup table shift comparison to the next m (ex. m=6) location of T

27 Boyer-Moore algorithm Example 1 T = “abacaabacabacababb” T = “abacaabadcabacababb” P = “abacab” (m = 6) abacaabacabb abacaabadcabacababb abaca abacab aba abacab abaca abacab abacab chaabcd Last(cha) comparisons

28 Boyer-Moore algorithm Example 2 T = “a atern matching ithm” T = “a pattern matching algorithm” P = “ agor” (m = 5) P = “ algor” (m = 5) a patern matcing ithm a pattern matching algorithm algo algor algor chaalgor Last(cha)01234 ? comparisons

29 Boyer-Moore algorithm แบบฝึกหัด T = “a atern matching ithm” T = “a pattern matching algorithm” P = “ rithm” (m = 5) cha Last(cha)

30 Encryption/Decryption Cryptographic computations encryption/decryption, digital signatures To support secure communication over the Internet – using cryptographic computations for information security services

31 Encryption/Decryption, the original text – called plaintext, is ed into an unrecognizable string – called ciphertext Before sending text, the original text – called plaintext, is encrypted into an unrecognizable string – called ciphertext, it is ed back to the plaintext After receiving the ciphertext, it is decrypted back to the plaintext Plaintext Ciphertext encryption decryption

32 Encryption/Decryption Basic techniques : Basic techniques : Substitution, Transposition, Bit manipulation the essential thing for each method is the essential thing for each method is the secret key Well-known Algorithms DES (Data Encryption Standard) DES (Data Encryption Standard) RSA (Rivest-Skamir-Adleman) RSA (Rivest-Skamir-Adleman) Knapsack Knapsack

33 Encryption/Decryption Example Substitution (n = 4) Transposition (3x6) Bit manipulation (b = 3)

34 Compression given a string X (ascii, unicode), encode into a small string Y given a string X (ascii, unicode), encode into a small binary string Y Huffman coding algorithm – based on character frequency to construct a binary tree, uses greedy method

35 Compression Eample “a fast runner need never be afraid of the dark” “a fast runner need never be afraid of the dark” frequency of each character frequency of each character char.abdefhiknorstuv freq

36 Compression Eample ( ต่อ ) Huffman tree ar e d … … a = ‘010’ r = ‘011’ e = ‘100’ d = ‘1010’

37 การบ้าน Knuth-Morris-Pratt algorithm Knuth-Morris-Pratt algorithm


ดาวน์โหลด ppt (String Processing). Outline ทบทวน String การประมวลผลสายอักขระ (String Processing) Pattern Matching Encryption/Decryption Compression.

งานนำเสนอที่คล้ายกัน


Ads by Google