 
        
        Пример программного кода
.pdf 
Разработка программных систем
Примеры программного кода
Геннадий Андреевич Чистяков
Вятский государственный университет
10 сентября 2014 г.
| Г.А. Чистяков (ВятГУ) | РПС | 10 сентября 2014 г. | 1 / 13 | 
 
Быстрое считывание
Быстрое считывание
Класс FastReader
1import j a v a . i o . ;
| 2 | import j a v a . u t i l . ; | 
 | 
 | 
 | 
 | |
| 3 | p u b l i c c l a s s FastReader { | 
 | 
 | |||
| 4 | 
 | 
 | ||||
| 5 | p r i v a t e B u f f e re d R e ad e r br ; | 
 | 
 | |||
| 6 | p r i v a t e S t r i n g T o k e n i z e r s t ; | 
 | 
 | |||
| 7 | p r i v a t e S t r i n g eat ( ) { | 
 | 
 | |||
| 8 | 
 | 
 | ||||
| 9 | t r y | { | 
 | 
 | 
 | |
| 10 | 
 | 
 | r e t u r n br . r e a d L i n e ( ) ; | 
 | 
 | |
| 11 | } catch ( IOException e ) { | 
 | 
 | |||
| 12 | 
 | 
 | System . e r r . p r i n t l n ( " E r r o r w h i l e | 
 | ||
| 
 | 
 | 
 | r e a d i n g " ) ; | 
 | 
 | |
| 13 | 
 | 
 | System . e r r . p r i n t l n ( e . getMessage ( ) ) ; | 
 | ||
| 14 | 
 | 
 | System . e r r . f l u s h ( ) ; | 
 | 
 | |
| 15 | 
 | 
 | r e t u r n n u l l ; | 
 | 
 | |
| 16 | } | 
 | 
 | 
 | 
 | 
 | 
| 17 | } | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | Г.А. Чистяков (ВятГУ) | 
 | РПС | 
 | 10 сентября 2014 г. | 2 / 13 | 
 
Быстрое считывание
Быстрое считывание (продолжение)
| Класс FastReader | 
 | 
 | 
 | 
 | 
 | ||
| 
 | 
 | 
 | 
 | 
 | |||
| 18 | p r i v a t e S t r i n g next ( ) { | 
 | 
 | 
 | 
 | ||
| 19 | w h i l e ( ! s t . hasMoreTokens ( ) ) { | 
 | 
 | ||||
| 20 | 
 | S t r i n g s t r = eat ( ) ; | 
 | 
 | |||
| 21 | 
 | i f ( s t r == n u l l ) | 
 | 
 | |||
| 22 | 
 | 
 | r e t u r n n u l l ; | 
 | 
 | ||
| 23 | 
 | s t | = new S t r i n g T o k e n i z e r ( s t r ) ; | 
 | 
 | ||
| 24 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
| 25 | r e t u r n s t . nextToken ( ) ; | 
 | 
 | ||||
| 26 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
| 27 | p r i v a t e i n t n e x t I n t ( ) throws IOException { | 
 | 
 | ||||
| 28 | 
 | 
 | |||||
| 29 | S t r i n g s t r = next ( ) ; | 
 | 
 | ||||
| 30 | i f ( s t r == n u l l ) | 
 | 
 | 
 | 
 | ||
| 31 | 
 | throw new | IOException ( " I n t e g e r | 
 | 
 | ||
| 
 | 
 | 
 | number | excepted " ) ; | 
 | 
 | |
| 32 | r e t u r n I n t e g e r . valueOf ( s t r ) ; | 
 | 
 | ||||
| 33 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | ||
| Г.А. Чистяков | (ВятГУ) | 
 | РПС | 
 | 10 сентября 2014 г. | 3 / 13 | |
 
Быстрое считывание
Быстрое считывание (продолжение)
| Класс FastReader | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 34 | p u b l i c v o i d run ( ) throws IOException { | 
 | 
 | ||||||
| 35 | i n t n = n e x t I n t ( ) ; | 
 | 
 | 
 | |||||
| 36 | f o r ( i n t | i = 0 ; i < n ; i ++) | { | 
 | 
 | ||||
| 37 | 
 | 
 | 
 | 
 | System . out . p r i n t l n ( n e x t I n t ( ) ) ; | 
 | 
 | ||
| 38 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 39 | System . out . f l u s h ( ) ; | 
 | 
 | 
 | |||||
| 40 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 41 | p u b l i c FastReader ( S t r i n g fileName ) throws | 
 | 
 | ||||||
| 42 | 
 | 
 | |||||||
| 
 | FileNotFoundException { | 
 | 
 | 
 | |||||
| 43 | br | = | new | B uf fe r e dR e a d e r (new | F i l e R e a d e r (new | 
 | 
 | ||
| 
 | 
 | 
 | 
 | F i l e ( fileName ) ) ) ; | 
 | 
 | 
 | ||
| 44 | s t | = | new | S t r i n g T o k e n i z e r ( "" ) ; | 
 | 
 | |||
| 45 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 46 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 47 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 
 | Г.А. Чистяков (ВятГУ) | 
 | 
 | 
 | РПС | 
 | 10 сентября 2014 г. | 4 / 13 | |
 
Сериализация
Сериализация
| Класс Element | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 1 | import j a v a . i o . S e r i a l i z a b l e ; | 
 | 
 | 
 | 
 | 
 | ||||
| 2 | c l a s s Element | implements | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 3 | S e r i a l i z a b l e | { | 
 | 
 | 
 | |||||
| 4 | i n t a , | b ; | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 5 | S t r i n g s t r ; | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 6 | Element l i n k ; | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 7 | Element ( i n t a , | i n t b , | 
 | 
 | 
 | 
 | 
 | |||
| 8 | S t r i n g | s t r ) { | 
 | 
 | ||||||
| 9 | 
 | t h i s . a | = | a ; | 
 | 
 | 
 | 
 | 
 | |
| 10 | 
 | t h i s . b | = | b ; | 
 | 
 | 
 | 
 | 
 | |
| 11 | 
 | t h i s . s t r = s t r ; | 
 | 
 | 
 | 
 | ||||
| 12 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 13 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 14 | Element ( Element | 
 | arg ) | { | 
 | 
 | 
 | 
 | ||
| 15 | 
 | l i n k = | arg ; | 
 | 
 | 
 | 
 | 
 | ||
| 16 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 
 | Г.А. Чистяков (ВятГУ) | 
 | 
 | 
 | РПС | 
 | 10 сентября 2014 г. | 5 / 13 | ||
 
Сериализация
Сериализация (продолжение)
Класс Element
| 17 | p u b l i c S t r i n g t o S t r i n g ( ) { | |
| 18 | i f ( l i n k != n u l l ) | |
| 19 | r e t u r n | ">" + l i n k . t o S t r i n g ( ) ; | 
| 20 | e l s e | 
 | 
| 21 | r e t u r n | " Element arguments a r e " + a | 
| 
 | + " , " + b + " , " + s t r ; | |
| 22 | } | 
 | 
| 23 | 
 | 
 | 
| 24 | } | 
 | 
| Г.А. Чистяков (ВятГУ) | РПС | 10 сентября 2014 г. | 6 / 13 | 
 
Сериализация
Сериализация (продолжение)
| Класс Main | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 1 | import j a v a . i o . ; | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 2 | p u b l i c | c l a s s Main { | 
 | 
 | 
 | 
 | 
 | 
 | |
| 3 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 4 | 
 | p u b l i c v o i d run ( ) throws IOException , | 
 | 
 | |||||
| 5 | 
 | 
 | 
 | ||||||
| 
 | 
 | ClassNotFoundException { | = new | 
 | 
 | ||||
| 6 | 
 | ObjectOutputStream oos | 
 | 
 | |||||
| 
 | 
 | 
 | ObjectOutputStream (new FileOutputStream ( " | 
 | |||||
| 
 | 
 | 
 | o b j e c t s . dat " ) ) ; | 
 | 
 | 
 | 
 | 
 | |
| 7 | 
 | Element | e1 = new Element (1 , | 10 , " Object1 " ) ; | 
 | 
 | |||
| 8 | 
 | Element | e2 = new Element ( x1 ) ; | 
 | 
 | ||||
| 9 | 
 | System . out . p r i n t l n ( " Before | 
 | s e r i a l i z a t i o n " ) ; | 
 | 
 | |||
| 10 | 
 | System . out . p r i n t l n ( " e1 : | " | + | e1 ) ; | 
 | 
 | ||
| 11 | 
 | System . out . p r i n t l n ( " e2 : | " | + | e2 ) ; | 
 | 
 | ||
| 12 | 
 | oos . w r i t e O b j e c t ( e1 ) ; | 
 | 
 | 
 | 
 | 
 | ||
| 13 | 
 | oos . w r i t e O b j e c t ( e2 ) ; | 
 | 
 | 
 | 
 | 
 | ||
| 14 | 
 | oos . c l o s e ( ) ; | 
 | 
 | 
 | 
 | 
 | ||
| 15 | 
 | . . . | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 
 | Г.А. Чистяков | (ВятГУ) | 
 | РПС | 
 | 
 | 10 сентября 2014 г. | 7 / 13 | |
 
Сериализация
Сериализация (продолжение)
Класс Main
| 16 | . . . | 
 | 
 | new | 
 | |
| 17 | ObjectInputStream o i s = | 
 | ||||
| 
 | 
 | ObjectInputStream (new | F i l e I n p u t S t r e a m ( " | |||
| 
 | 
 | o b j e c t s . dat " ) ) ; | 
 | 
 | 
 | |
| 18 | e2 | = | ( Element ) o i s . r ea d Ob j ect ( ) ; | |||
| 19 | e1 | = | ( Element ) o i s . r ea d Ob j ect ( ) ; | |||
| 20 | o i s . c l o s e ( ) ; | 
 | 
 | 
 | ||
| 21 | System . out . p r i n t l n ( " A f t e r | s e r i a l i z a t i o n " ) ; | ||||
| 22 | System . out . p r i n t l n ( " e1 : | " | + | x1 ) ; | ||
| 23 | System . out . p r i n t l n ( " e2 : | " | + | x2 ) ; | ||
| 24 | System . out . f l u s h ( ) ; | 
 | 
 | 
 | ||
| 25 | } | 
 | 
 | 
 | 
 | 
 | 
| 26 | p u b l i c s t a t i c | v o i d main ( S t r i n g [ ] | 
 | a r g s ) throws | ||
| 27 | 
 | |||||
| 
 | IOException , ClassNotFoundException { | |||||
| 28 | new Main ( ) . run ( ) ; | 
 | 
 | 
 | ||
29}
30}
| Г.А. Чистяков (ВятГУ) | РПС | 10 сентября 2014 г. | 8 / 13 | 
 
Многопоточное приложение
Многопоточное приложение
Класс Prime
| 1 | p u b l i c c l a s s Prime | implements | Runnable | { | |||
| 2 | p r i v a t e | 
 | 
 | 
 | 
 | 
 | 
 | 
| 3 | Thread th ; | 
 | 
 | 
 | |||
| 4 | p r i v a t e | i n t | l o c a l R e s = | 0 , | from , | to ; | |
| 5 | s t a t i c i n t g l o b a l R e s = 0 ; | 
 | 
 | ||||
| 6 | p u b l i c | Prime ( i n t | 
 | i n t | 
 | 
 | |
| 7 | from , | to ) | { | ||||
| 8 | 
 | t h i s . from | = from ; | 
 | 
 | ||
| 9 | 
 | t h i s . to = to ; | 
 | 
 | 
 | ||
| 10 | 
 | th | = new | Thread ( t h i s ) ; | 
 | ||
| 11 | 
 | th . s t a r t ( ) ; | 
 | 
 | 
 | ||
| 12 | } | 
 | 
 | 
 | 
 | 
 | 
 | 
| Г.А. Чистяков (ВятГУ) | РПС | 10 сентября 2014 г. | 9 / 13 | 
 
Многопоточное приложение
Многопоточное приложение (продолжение)
Класс Prime
| 13 | p u b l i c v o i d run ( ) { | 
 | 
 | 
| 14 | f o r ( i n t i = from ; | i < to ; i ++) { | |
| 15 | boolean f l a g = t r u e ; | ||
| 16 | f o r ( i n t j | = 2 ; | j <= Math . s q r t ( i + | 
| 
 | 0.0000001) ; | j++) | |
| 17 | i f ( ( i % j ) == 0) { | ||
| 18 | 
 | 
 | f l a g = f a l s e ; | 
| 19 | 
 | 
 | break ; | 
| 20 | } | 
 | 
 | 
| 21 | i f ( f l a g ) | 
 | 
 | 
| 22 | l o c a l R e s ++; | ||
| 23 | } | 
 | 
 | 
| 24 | g l o b a l R e s += l o c a l R e s ; | 
 | |
| 25 | } | 
 | 
 | 
| Г.А. Чистяков (ВятГУ) | РПС | 10 сентября 2014 г. | 10 / 13 | 
