home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-11-18 | 57.7 KB | 1,637 lines |
- - 98 -
-
-
- 5.ô¬áºáΓѽ¿ ¿ ¼áßß¿óδ
-
- ô¬áºáΓѽ∞ - φΓ« »ÑαѼѡ¡á∩, ß«ñÑαªáΘá∩ áñαÑß ñαπú«⌐ »Ñ-
- αѼѡ¡«⌐. π¬áºáΓѽ¿ «τÑ¡∞ Φ¿α«¬« ¿ß»«½∞ºπεΓß∩ ó ∩ºδ¬Ñ "C".
- ¥Γ« »α«¿ßσ«ñ¿Γ «ΓτáßΓ¿ »«Γ«¼π, τΓ« ¿¡«úñá «¡¿ ñáεΓ Ññ¿¡ßΓ-
- óÑ¡¡πε 󫺼«ª¡«ßΓ∞ óδαếΓ∞ ¡πª¡«Ñ ñÑ⌐ßΓó¿Ñ, á «ΓτáßΓ¿ »«Γ«-
- ¼π, τΓ« «¡¿ «íδτ¡« óÑñπΓ ¬ í«½ÑÑ ¬«¼»á¬Γ¡δ¼ ¿ φΣΣÑ¬Γ¿ó¡δ¼
- »α«úαá¼¼á¼, τѼ ΓÑ, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ »«½πτÑ¡δ ñαπú¿¼¿ ß»«-
- ß«íἿ.
- ô¬áºáΓѽ¿ «íδτ¡« ß¼ÑΦ¿óáεΓ ó «ñ¡π ¬πτπ ß «»ÑαáΓ«αἿ
- GOTO, σáαá¬ΓÑਧπ∩ ¿σ ¬á¬ τπñÑß¡δ⌐ ß»«ß«í ¡á»¿ßá¡¿∩ »α«ú-
- αá¼¼, ¬«Γ«αδÑ ¡Ñ󫺼«ª¡« »«¡∩Γ∞. ¥Γ« íѺπß½«ó¡« ß»αAóÑñ½¿ó«,
- Ñß½¿ π¬áºáΓѽ¿ ¿ß»«½∞ºπεΓß∩ íѺºáí«Γ¡«; «τÑ¡∞ »α«ßΓ« óóÑßΓ¿
- π¬áºáΓѽ¿, ¬«Γ«αδÑ π¬áºδóáεΓ ¡á τΓ«-Γ« ß«óÑαΦÑ¡¡« ¡Ñ«ª¿ñá¡-
- ¡«Ñ. Äñ¡á¬«, »α¿ «»αÑñѽѡ¡«⌐ ñ¿ßµ¿»½¿¡Ñ, ¿ß»«½∞º«óá¡¿Ñ π¬á-
- ºáΓѽÑ⌐ »«¼«úáÑΓ ñ«ßΓ¿τ∞ ∩ß¡«ßΓ¿ ¿ »α«ßΓ«Γδ. ê¼Ñ¡¡« φëà áß-
- »Ñ¬Γ ¼δ »«»δΓáѼß∩ ºñÑß∞ »α«¿½½εßΓα¿α«óáΓ∞.
-
- 5.1. ô¬áºáΓѽ¿ ¿ áñαÑßá
-
- Æá¬ ¬á¬ π¬áºáΓѽ∞ ß«ñÑαª¿Γ áñαÑß «íΩѬΓá, φΓ« ñáÑΓ ó«º-
- ¼«ª¡«ßΓ∞ "¬«ßóÑ¡¡«ú«" ñ«ßΓπ»á ¬ φΓ«¼π «íΩѬΓπ τÑαѺ π¬áºá-
- Γѽ∞. ÅαÑñ»«½«ª¿¼, τΓ« σ - »ÑαѼѡ¡á∩, ¡á»α¿¼Ñα, Γ¿»á INT, á
- ασ - π¬áºáΓѽ∞, ß«ºñá¡¡δ⌐ ¡Ñ¬¿¼ ÑΘÑ ¡Ñ π¬áºá¡¡δ¼ ß»«ß«í«¼.
- ô¡áα¡á∩ «»Ñαᵿ∩ & óδñáÑΓ áñαÑß «íΩѬΓá, ΓᬠτΓ« «»ÑαáΓ«α
-
- ασ = &σ;
-
- »α¿ßóá¿óáÑΓ áñαÑß σ »ÑαѼѡ¡«⌐ ασ; ú«ó«α∩Γ, τΓ« ασ "π¬á-
- ºδóáÑΓ" ¡á σ. Ä»Ñαᵿ∩ & »α¿¼Ñ¡¿¼á Γ«½∞¬« ¬ »ÑαѼѡ¡δ¼ ¿
- φ½Ñ¼Ñ¡Γá¼ ¼áßß¿óá, ¬«¡ßΓαπ¬µ¿¿ ó¿ñá &(σ-1) ¿ &3 ∩ó½∩εΓß∩ ¡Ñ-
- ºá¬«¡¡δ¼¿. ìѽ∞º∩ Γá¬ªÑ »«½πτ¿Γ∞ áñαÑß αÑú¿ßΓα«ó«⌐ »ÑαѼѡ-
- ¡«⌐.
- ô¡áα¡á∩ «»Ñαᵿ∩ * αáßß¼áΓα¿óáÑΓ ßó«⌐ «»Ñαá¡ñ ¬á¬ áñαÑß
- ¬«¡Ñτ¡«⌐ µÑ½¿ ¿ «íαáΘáÑΓß∩ »« φΓ«¼π áñαÑßπ, τΓ«íδ ¿ºó½Ñτ∞
- ß«ñÑন¼«Ñ. æ½Ññ«óáΓѽ∞¡«, Ñß½¿ Y Γ«ªÑ ¿¼ÑÑΓ Γ¿» INT, Γ«
-
- Y = *ασ;
-
- »α¿ßóá¿óáÑΓ Y ß«ñÑন¼«Ñ Γ«ú«, ¡á τΓ« π¬áºδóáÑΓ ασ. Æá¬ »«ß-
- ½Ññ«óáΓѽ∞¡«ßΓ∞
-
- ασ = &σ;
- Y = *ασ;
-
- »α¿ßóá¿óáÑΓ Y Γ« ªÑ ßá¼«Ñ º¡áτÑ¡¿Ñ, τΓ« ¿ «»ÑαáΓ«α
-
- Y = X;
-
- ÅÑαѼѡ¡δÑ, πτáßΓóπεΘ¿Ñ ó« óßѼ φΓ«¼ ¡Ñ«íσ«ñ¿¼« «»¿ßáΓ∞:
-
- INT X, Y;
- INT *PX;
-
- - 99 -
-
- ß «»¿ß᡿Ѽ ñ½∩ X ¿ Y ¼δ πªÑ ¡Ñ«ñ«¡«¬αáΓ¡« óßΓαÑτ὿ß∞.
- Ä»¿ßá¡¿Ñ π¬áºáΓѽ∩
-
- INT *PX;
-
- ∩ó½∩ÑΓß∩ ¡«óδ¼ ¿ ñ«½ª¡« αáßß¼áΓα¿óáΓ∞ß∩ ¬á¬ ¼¡Ñ¼«¡¿τÑ߬«Ñ;
- «¡« ú«ó«α¿Γ, τΓ« ¬«¼í¿¡áµ¿∩ *PX ¿¼ÑÑΓ Γ¿» INT. ¥Γ« «º¡áτáÑΓ,
- τΓ« Ñß½¿ PX »«∩ó½∩ÑΓß∩ ó ¬«¡ΓѬßΓÑ *PX, Γ« φΓ« φ¬ó¿óá½Ñ¡Γ¡«
- »ÑαѼѡ¡«⌐ Γ¿»á INT. öá¬Γ¿τÑ߬¿ ß¿¡Γá¬ß¿ß «»¿ßá¡¿∩ »ÑαѼѡ-
- ¡«⌐ ¿¼¿Γ¿απÑΓ ß¿¡Γá¬ß¿ß óδαáªÑ¡¿⌐, ó ¬«Γ«αδσ φΓá »ÑαѼѡ¡á∩
- ¼«ªÑΓ »«∩ó½∩Γ∞ß∩. ¥Γ« ºá¼Ñτá¡¿Ñ »«½Ñº¡« ó« óßÑσ ß½πτá∩σ,
- ßó∩ºá¡¡δσ ß« ß½«ª¡δ¼¿ «»¿ßá¡¿∩¼¿. ìá»α¿¼Ñα,
-
- DOUBLE ATOF(), *DP;
-
- ú«ó«α¿Γ, τΓ« ATOF() ¿ *DP ¿¼ÑεΓ ó óδαáªÑ¡¿∩σ º¡áτÑ¡¿∩ Γ¿»á
- DOUBLE.
-
- éδ ñ«½ª¡δ Γá¬ªÑ ºá¼ÑΓ¿Γ∞, τΓ« ¿º φΓ«ú« «»¿ßá¡¿∩ ß½Ññπ-
- ÑΓ, τΓ« π¬áºáΓѽ∞ ¼«ªÑΓ π¬áºδóáΓ∞ Γ«½∞¬« ¡á «»αÑñѽѡ¡δ⌐ ó¿ñ
- «íΩÑ¬Γ«ó.
- ô¬áºáΓѽ¿ ¼«úπΓ óσ«ñ¿Γ∞ ó óδαáªÑ¡¿∩. ìá»α¿¼Ñα, Ñß½¿ PX
- π¬áºδóáÑΓ ¡á µÑ½«Ñ X, Γ« *PX ¼«ªÑΓ »«∩ó½∩Γ∞ß∩ ó ½εí«¼ ¬«¡-
- ΓѬßΓÑ, úñÑ ¼«ªÑΓ óßΓαÑΓ¿Γ∞ß∩ X. Æá¬ «»ÑαáΓ«α
-
- Y = *PX + 1
-
- »α¿ßóá¿óáÑΓ Y º¡áτÑ¡¿Ñ, ¡á 1 í«½∞ΦÑÑ º¡áτÑ¡¿∩ X;
-
- PRINTF("%D\N", *PX)
-
- »ÑτáΓáÑΓ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ X;
-
- D = SQRT((DOUBLE) *PX)
-
- »«½πτáÑΓ ó D ¬óáñαáΓ¡δ⌐ ¬«αÑ¡∞ ¿º X, »α¿τѼ ñ« »ÑαÑñáτ¿ Σπ¡-
- ¬µ¿¿ SQRT º¡áτÑ¡¿Ñ X »αÑ«íαáºπÑΓß∩ ¬ Γ¿»π DOUBLE. (漫Γα¿
- ú½áóπ 2).
- é óδαáªÑ¡¿∩σ ó¿ñá
-
- Y = *PX + 1
-
- π¡áα¡δÑ «»Ñαᵿ¿ * ¿ & ßó∩ºá¡δ ß« ßó«¿¼ «»Ñαá¡ñ«¼ í«½ÑÑ
- ¬αÑ»¬«, τѼ áα¿Σ¼ÑΓ¿τÑ߬¿Ñ «»Ñαᵿ¿, ΓᬠτΓ« Γá¬«Ñ óδαáªÑ¡¿Ñ
- íÑαÑΓ Γ« º¡áτÑ¡¿Ñ, ¡á ¬«Γ«α«Ñ π¬áºδóáÑΓ PX, »α¿íáó½∩ÑΓ 1 ¿
- »α¿ßóá¿óáÑΓ αѺπ½∞ΓáΓ »ÑαѼѡ¡«⌐ Y. îδ ó߬«αÑ óÑα¡Ñ¼ß∩ ¬ Γ«-
- ¼π, τΓ« ¼«ªÑΓ «º¡áτáΓ∞ óδαáªÑ¡¿Ñ
-
- Y = *(PX + 1)
-
- æß佬¿ ¡á π¬áºáΓѽ¿ ¼«úπΓ »«∩ó½∩Γ∞ß∩ ¿ ó ½Ñó«⌐ τáßΓ¿
- »α¿ßóá¿óá¡¿⌐. àß½¿ PX π¬áºδóáÑΓ ¡á X, Γ«
-
- *PX = 0
-
- - 100 -
-
- »«½áúáÑΓ X αáó¡δ¼ ¡π½ε, á
-
- *PX += 1
-
- πóѽ¿τ¿óáÑΓ Ñú« ¡á Ññ¿¡¿µπ, ¬á¬ ¿ óδαáªÑ¡¿Ñ
-
- (*PX)++
-
- èαπú½δÑ ß¬«í¬¿ ó »«ß½Ññ¡Ñ¼ »α¿¼ÑαÑ ¡Ñ«íσ«ñ¿¼δ; Ñß½¿ ¿σ «»πß-
- Γ¿Γ∞, Γ« »«ß¬«½∞¬π π¡áα¡δÑ «»Ñαᵿ¿, »«ñ«í¡δÑ * ¿ ++, óδ»«½-
- ¡∩εΓß∩ ß»αáóá ¡á½Ñó«, φΓ« óδαáªÑ¡¿Ñ πóѽ¿τ¿Γ PX, á ¡Ñ Γπ »Ñ-
- αѼѡ¡πε, ¡á ¬«Γ«απε «¡ π¬áºδóáÑΓ.
- ê ¡á¬«¡Ñµ, Γᬠ¬á¬ π¬áºáΓѽ¿ ∩ó½∩εΓß∩ »ÑαѼѡ¡δ¼¿, Γ« ß
- ¡¿¼¿ ¼«ª¡« «íαáΘáΓ∞ß∩, ¬á¬ ¿ ß «ßΓá½∞¡δ¼¿ »ÑαѼѡ¡δ¼¿. àß½¿
- PY - ñαπú«⌐ π¬áºáΓѽ∞ ¡á »ÑαѼѡ¡πε Γ¿»á INT, Γ«
-
- PY = PX
-
- ¬«»¿απÑΓ ß«ñÑন¼«Ñ PX ó PY, ó αѺπ½∞ΓáΓÑ τÑú« PY π¬áºδóáÑΓ
- ¡á Γ« ªÑ, τΓ« ¿ PX.
-
- 5.2. ô¬áºáΓѽ¿ ¿ áαúπ¼Ñ¡Γδ Σπ¡¬µ¿⌐
-
- Æá¬ ¬á¬ ó "ß" »ÑαÑñáτá áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿∩¼ «ßπΘÑßΓó½∩ÑΓ-
- ß∩ "»« º¡áτÑ¡¿ε", óδºóá¡¡á∩ »α«µÑñπαá ¡Ñ ¿¼ÑÑΓ ¡Ñ»«ßαÑñßΓ-
- óÑ¡¡«⌐ 󫺼«ª¡«ßΓ¿ ¿º¼Ñ¡¿Γ∞ »ÑαѼѡ¡πε ¿º óδºδóáεΘÑ⌐ »α«ú-
- αá¼¼δ. ùΓ« ªÑ ñѽáΓ∞, Ñß½¿ óá¼ ñÑ⌐ßΓó¿Γѽ∞¡« ¡áñ« ¿º¼Ñ¡¿Γ∞
- áαúπ¼Ñ¡Γ? ¡á»α¿¼Ñα, »α«úαá¼¼á ß«αΓ¿α«ó¬¿ ºáσ«Γѽá íδ »«¼Ñ-
- ¡∩Γ∞ ñóá ¡áαπΦáεΘ¿σ »«α∩ñ«¬ φ½Ñ¼Ñ¡Γá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ ß
- ¿¼Ñ¡Ñ¼ SWAP. ä½∩ φΓ«ú« ¡Ññ«ßΓáΓ«τ¡« ¡á»¿ßáΓ∞
-
- SWAP(A, B);
-
- «»αÑñѽ¿ó Σπ¡¬µ¿ε SWAP »α¿ φΓ«¼ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- SWAP(X, Y) /* WRONG */
- INT X, Y;
- {
- INT TEMP;
-
- TEMP = X;
- X = Y;
- Y = TEMP;
- }
-
- ¿º-ºá ó맮óá »« º¡áτÑ¡¿ε SWAP ¡Ñ ¼«ªÑΓ ó«ºñÑ⌐ßΓó«óáΓ∞ ¡á
- áúπ¼Ñ¡Γδ A ¿ B ó óδºδóáεΘÑ⌐ Σπ¡¬µ¿¿.
- è ßτáßΓ∞ε, óßÑ ªÑ ¿¼ÑÑΓß∩ 󫺼«ª¡«ßΓ∞ »«½πτ¿Γ∞ ªÑ½áѼδ⌐
- φΣΣѬΓ. éδºδóáεΘá∩ »α«úαá¼¼á »ÑαÑñáÑΓ π¬áºáΓѽ¿ »«ñ½ÑªáΘ¿σ
- ¿º¼Ñ¡Ñ¡¿ε º¡áτÑ¡¿⌐:
-
- SWAP(&A, &B);
-
-
- - 101 -
-
- Γᬠ¬á¬ «»Ñαᵿ∩ & óδñáÑΓ áñαÑß »ÑαѼѡ¡«⌐, Γ« &A ∩ó½∩ÑΓß∩
- π¬áºáΓѽѼ ¡á A. é ßἫ⌐ SWAP áαúπ¼Ñ¡Γδ «»¿ßδóáεΓß∩ ¬á¬ π¬á-
- ºáΓѽ¿ ¿ ñ«ßΓπ» ¬ Σá¬Γ¿τÑ߬¿¼ «»Ñαá¡ñá¼ «ßπΘÑßΓó½∩ÑΓß∩ τÑαѺ
- ¡¿σ.
-
- SWAP(PX, PY) /* INTERCHANGE *PX AND *PY */
- INT *PX, *PY;
- {
- INT TEMP;
-
- TEMP = *PX;
- *PX = *PY;
- *PY = TEMP;
- }
-
- ô¬áºáΓѽ¿ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γ«ó «íδτ¡« ¿ß»«½∞ºπεΓß∩ ó
- Σπ¡¬µ¿∩σ, ¬«Γ«αδÑ ñ«½ª¡δ ó«ºóαáΘáΓ∞ í«½ÑÑ «ñ¡«ú« º¡áτÑ¡¿∩.
- (¡« ߬áºáΓ∞, τΓ« SWAP óOºóαáΘáÑΓ ñóá º¡áτÑ¡¿∩, ¡«óδÑ º¡á-
- τÑ¡¿∩ ÑÑ áαúπ¼Ñ¡Γ«ó). é ¬áτÑßΓóÑ »α¿¼Ñαá αáßß¼«Γα¿¼ Σπ¡¬µ¿ε
- GETINT, ¬«Γ«αá∩ «ßπΘÑßΓó½∩ÑΓ »αÑ«íαẫóá¡¿Ñ »«ßΓπ»áεΘ¿σ ó
- ßó«í«½¡«¼ Σ«α¼áΓÑ ñá¡¡δσ, αáºñѽ∩∩ »«Γ«¬ ß¿¼ó«½«ó ¡á µÑ½δÑ
- º¡áτÑ¡¿∩, »« «ñ¡«¼π µÑ½«¼π ºá «ñ¡« «íαáΘÑ¡¿Ñ. öπ¡¬µ¿∩ GETINT
- ñ«½ª¡á ó«ºóαáΘáΓ∞ ½¿í« ¡á⌐ñÑ¡¡«Ñ º¡áτÑ¡¿Ñ, ½¿í« »α¿º¡á¬ ¬«¡-
- µá Σá⌐½á, Ñß½¿ óσ«ñ¡δÑ ñá¡¡δÑ »«½¡«ßΓ∞ε ¿ßτÑα»á¡δ. ¥Γ¿ º¡á-
- τÑ¡¿∩ ñ«½ª¡δ ó«ºóαáΘáΓ∞ß∩ ¬á¬ «Γñѽ∞¡δÑ «íΩѬΓδ, ¬á¬«Ñ íδ
- º¡áτÑ¡¿Ñ ¡¿ ¿ß»«½∞º«óὫß∞ ñ½∩ EOF, ñáªÑ Ñß½¿ φΓ« º¡áτÑ¡¿Ñ
- óó«ñ¿¼«ú« µÑ½«ú«.
- Äñ¡« ¿º αÑΦÑ¡¿⌐, «ß¡«óδóáεΘÑÑß∩ ¡á «»¿ßδóáѼ«⌐ ó ú½áóÑ 7
- Σπ¡¬µ¿¿ óó«ñá SCANF, ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ »α¿ óδσ«ñÑ ¡á ¬«-
- ¡Ñµ Σá⌐½á GETINT ó«ºóαáΘá½á EOF ó ¬áτÑßΓóÑ º¡áτÑ¡¿∩ Σπ¡¬µ¿¿;
- ½εí«Ñ ñαπú«Ñ ó«ºóαáΘÑ¡¡«Ñ º¡áτÑ¡¿Ñ ú«ó«α¿Γ « ¡áσ«ªñÑ¡¿¿ ¡«α-
- ¼á½∞¡«ú« µÑ½«ú«. ù¿ß½Ñ¡¡«Ñ ªÑ º¡áτÑ¡¿Ñ ¡á⌐ñÑ¡¡«ú« µÑ½«ú«
- ó«ºóαáΘáÑΓß∩ τÑαѺ áαúπ¼Ñ¡Γ, ¬«Γ«αδ⌐ ñ«½ªÑ¡ íδΓ∞ π¬áºáΓѽѼ
- µÑ½«ú«. ¥Γá «αúá¡¿ºáµ¿∩ αáºñѽ∩ÑΓ ßΓáΓπß ¬«¡µá Σá⌐½á ¿ τ¿ß-
- ½Ñ¡¡δÑ º¡áτÑ¡¿∩.
- æ½ÑñπεΘ¿⌐ µ¿¬½ ºá»«½¡∩ÑΓ ¼áßß¿ó µÑ½δ¼¿ ß »«¼«Θ∞ε «íαáΘÑ-
- ¡¿⌐ ¬ Σπ¡¬µ¿¿ GETINT:
-
- INT N, V, ARRAY[SIZE];
-
- FOR (N = 0; N < SIZE && GETINT(&V) != EOF; N++)
- ARRAY[N] = V;
-
- é αѺπ½∞ΓáΓÑ ¬áªñ«ú« «íαáΘÑ¡¿∩ V ßΓá¡«ó¿Γß∩ αáó¡δ¼ ß½ÑñπεΘÑ-
- ¼π µÑ½«¼π º¡áτÑ¡¿ε, ¡á⌐ñÑ¡¡«¼π ó« óσ«ñ¡δσ ñá¡¡δσ. ÄíαáΓ¿ΓÑ
- 󡿼᡿Ñ, τΓ« ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γá GETINT ¡Ñ«íσ«ñ¿¼« π¬áºáΓ∞
- &V á ¡Ñ V. êß»«½∞º«óá¡¿Ñ »α«ßΓ« V ߬«αÑÑ óßÑú« »α¿óÑñÑΓ ¬
- «Φ¿í¬Ñ áñαÑßᵿ¿, »«ß¬«½∞¬π GETINT »«½áúáÑΓ, τΓ« «¡á αáí«Γá-
- ÑΓ ¿¼Ñ¡¡« ß π¬áºáΓѽѼ.
-
- - 102 -
-
- æá¼á GETINT ∩ó½∩ÑΓß∩ «τÑó¿ñ¡«⌐ ¼«ñ¿Σ¿¬áµ¿Ñ⌐ ¡á»¿ßá¡¡«⌐
- ¡á¼¿ αá¡ÑÑ Σπ¡¬µ¿¿ ATOI:
-
- GETINT(PN) /* GET NEXT INTEGER FROM INPUT */
- INT *PN;
- {
- INT C,SIGN;
-
- WHILE ((C = GETCH()) == ' ' \!\! C == '\N'
- \!\! C == '\T'); /* SKIP WHITE SPACE */
- SIGN = 1;
- IF (C == '+' \!\! C == '-') { /* RECORD
- SIGN */
- SIGN = (C == '+') ? 1 : -1;
- C = GETCH();
- }
- FOR (*PN = 0; C >= '0' && C <= '9'; C = GETCH())
- *PN = 10 * *PN + C - '0';
- *PN *= SIGN;
- IF (C != EOF)
- UNGETCH(C);
- RETURN(C);
- }
-
- éδαáªÑ¡¿Ñ *PN ¿ß»«½∞ºπÑΓß∩ óßεñπ ó GETINT ¬á¬ «íδτ¡á∩ »ÑαÑ-
- ¼Ñ¡¡á∩ Γ¿»á INT. îδ Γá¬ªÑ ¿ß»«½∞º«ó὿ Σπ¡¬µ¿¿ GETCH ¿
- UNGETCH («»¿ßá¡¡δÑ ó ú½áóÑ 4) , ΓᬠτΓ« «ñ¿¡ ½¿Φ¡¿⌐ ß¿¼ó«½,
- ¬«Γ«Γαδ⌐ »α¿σ«ñ¿Γß∩ ßτ¿ΓδóáΓ∞, ¼«ªÑΓ íδΓ∞ »«¼ÑΘÑ¡ «íαáΓ¡« ó«
- óó«ñ.
- ô»α᪡ѡ¿Ñ 5-1.
- ---------------
- ìá»¿Φ¿ΓÑ Σπ¡¬µ¿ε GETFLOAT, á¡á½«ú GETINT ñ½∩ τ¿ßѽ ß
- »½áóáεΘÑ⌐ Γ«τ¬«⌐. èᬫ⌐ Γ¿» ñ«½ª¡á ó«ºóαáΘáΓ∞ GETFLOAT ó ¬á-
- τÑßΓóÑ º¡áτÑ¡¿∩ Σπ¡¬µ¿¿?
-
- 5.3. ô¬áºáΓѽ¿ ¿ ¼áßß¿óδ
-
- é ∩ºδ¬Ñ "C" ßπΘÑßΓóπÑΓ ß¿½∞¡á∩ óºá¿¼«ßó∩º∞ ¼Ñªñπ π¬áºá-
- Γѽ∩¼¿ ¿ ¼áßß¿óἿ , ¡áßΓ«½∞¬« ß¿½∞¡á∩, τΓ« π¬áºáΓѽ¿ ¿ ¼áß-
- ß¿óδ ñÑ⌐ßΓó¿Γѽ∞¡« ß½ÑñπÑΓ αáßß¼áΓα¿óáΓ∞ «ñ¡«óαѼѡ¡«. ïεíπε
- «»Ñαᵿε, ¬«Γ«απε ¼«ª¡« óδ»«½¡¿Γ∞ ß »«¼«Θ∞ε ¿¡ñѬ߫ó ¼áßß¿-
- óá, ¼«ª¡« ßñѽáΓ∞ ¿ ß »«¼«Θ∞ε π¬áºáΓѽÑ⌐. óáα¿á¡Γ ß π¬áºáΓÑ-
- ½∩¼¿ «íδτ¡« «¬áºδóáÑΓß∩ í«½ÑÑ íδßΓαδ¼, ¡« ¿ ¡Ñ߬«½∞¬« í«½ÑÑ
- Γαπñ¡δ¼ ñ½∩ ¡Ñ»«ßαÑñßΓóÑ¡¡«ú« »«¡¿¼á¡¿∩, »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ñ½∩
- ¡áτ¿¡áεΘÑú«. «»¿ßá¡¿Ñ
-
- INT A[10]
-
- «»αÑñѽ∩ÑΓ ¼áßß¿ó αẼÑαá 10, Γ.Ñ. ìáí«α ¿º 10 »«ß½Ññ«óá-
- Γѽ∞¡δσ «íΩÑ¬Γ«ó, ¡áºδóáѼδσ A[0], A[1], ..., A[9]. çỿß∞
- A[I] ß««ΓóÑΓßΓóπÑΓ φ½Ñ¼Ñ¡Γπ ¼áßß¿óá τÑαѺ I »«º¿µ¿⌐ «Γ ¡áτá-
- ½á. àß½¿ PA - π¬áºáΓѽ∞ µÑ½«ú«, «»¿ßá¡¡δ⌐ ¬á¬
-
- - 103 -
-
- INT *PA
-
- Γ« »α¿ßóá¿óá¡¿Ñ
-
- PA = &A[0]
-
- »α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« PA π¬áºδóáÑΓ ¡á ¡π½Ñó«⌐ φ½Ñ¼Ñ¡Γ ¼áßß¿óá
- A; φΓ« «º¡áτáÑΓ, τΓ« PA ß«ñÑαª¿Γ áñαÑß φ½Ñ¼Ñ¡Γá A[0]. ÆÑ»Ñα∞
- »α¿ßóá¿óá¡¿Ñ
-
- X = *PA
-
- íπñÑΓ ¬«»¿α«óáΓ∞ ß«ñÑন¼«Ñ A[0] ó X.
- àß½¿ PA π¬áºδóáÑΓ ¡á ¡Ñ¬«Γ«αδ⌐ «»αÑñѽѡ¡δ⌐ φ½Ñ¼Ñ¡Γ ¼áß-
- ß¿óá A, Γ« »« «»αÑñѽѡ¿ε PA+1 π¬áºδóáÑΓ ¡á ß½ÑñπεΘ¿⌐ φ½Ñ-
- ¼Ñ¡Γ, ¿ ó««íΘÑ PA-I π¬áºδóáÑΓ ¡á φ½Ñ¼Ñ¡Γ, ßΓ«∩Θ¿⌐ ¡á I »«º¿-
- µ¿⌐ ñ« φ½Ñ¼Ñ¡Γá, π¬áºδóáѼ«ú« PA, á PA+I ¡á φ½Ñ¼Ñ¡Γ, ßΓ«∩Θ¿⌐
- ¡á I »«º¿µ¿⌐ »«ß½Ñ. Æá¬¿¼ «íαẫ¼, Ñß½¿ PA π¬áºδóáÑΓ ¡á
- A[0], Γ«
-
- *(PA+1)
-
- ßßδ½áÑΓß∩ ¡á ß«ñÑন¼«Ñ A[1], PA+I - áñαÑß A[I], á *(PA+I) -
- ß«ñÑন¼«Ñ A[I].
- ¥Γ¿ ºá¼Ñτá¡¿∩ ß»αáóÑñ½¿óδ ¡Ñºáó¿ß¿¼« «Γ Γ¿»á »ÑαѼѡ¡δσ
- ó ¼áßß¿óÑ A. æπΓ∞ «»αÑñѽѡ¿∩ "ñ«íáó½Ñ¡¿∩ 1 ¬ π¬áºáΓѽε", á
- Γá¬ªÑ Ñú« αáß»α«ßΓαá¡Ñ¡¿∩ ¡á óßε áα¿Σ¼ÑΓ¿¬π π¬áºáΓѽÑ⌐, ß«ß-
- Γ«¿Γ ó Γ«¼, τΓ« »α¿αáΘÑ¡¿Ñ ¼áßΦΓáí¿απÑΓß∩ αẼÑα«¼ »á¼∩Γ¿,
- ºá¡¿¼áѼ«⌐ «íΩÑ¬Γ«¼, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ π¬áºáΓѽ∞. Æá¬¿¼
- «íαẫ¼, I ó PA+I »ÑαÑñ »α¿íáó½Ñ¡¿Ñ¼ π¼¡«ªáÑΓß∩ ¡á αẼÑα
- «íΩÑ¬Γ«ó, ¡á ¬«Γ«αδÑ π¬áºδóáÑΓ PA.
- ÄτÑó¿ñ¡« ßπΘÑßΓóπÑΓ «τÑ¡∞ ΓÑß¡«Ñ ß««ΓóÑΓßΓó¿Ñ ¼Ñªñπ ¿¡-
- ñѬßᵿÑ⌐ ¿ áα¿Σ¼ÑΓ¿¬«⌐ π¬áºáΓѽÑ⌐. ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ¬«¼-
- »¿½∩Γ«α »αÑ«íαáºπÑΓ ßß佬π ¡á ¼áßß¿ó ó π¬áºáΓѽ∞ ¡á ¡áτὫ
- ¼áßß¿óá. é αѺπ½∞ΓáΓÑ φΓ«ú« ¿¼∩ ¼áßß¿óá ∩ó½∩ÑΓß∩ π¬áºáΓѽ∞-
- ¡δ¼ óδαáªÑ¡¿Ñ¼. ÄΓßεñá óδΓѬáÑΓ ¡Ñ߬«½∞¬« óÑß∞¼á »«½Ñº¡δσ
- ß½ÑñßΓó¿⌐. Æá¬ ¬á¬ ¿¼∩ ¼áßß¿óá ∩ó½∩ÑΓß∩ ß¿¡«¡¿¼«¼ ¼ÑßΓ«»«½«-
- ªÑ¡¿∩ Ñú« ¡π½Ñó«ú« φ½Ñ¼Ñ¡Γá, Γ« »α¿ßóá¿óá¡¿Ñ PA=&A[0] ¼«ª¡«
- ºá»¿ßáΓ∞ ¬á¬
-
- PA = A
-
- àΘÑ í«½ÑÑ πñ¿ó¿Γѽ∞¡δ¼, »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ¡á »Ñαóδ⌐ óºú-
- ½∩ñ, ¬áªÑΓß∩ ëà Σá¬Γ, τΓ« ßß佬π ¡á A[I] ¼«ª¡« ºá»¿ßáΓ∞ ó
- ó¿ñÑ *(A+I). Åα¿ á¡á½¿º¿α«óá¡¿¿ óδαáªÑ¡¿∩ A[I] ó ∩ºδ¬Ñ "C"
- «¡« ¡Ñ¼Ññ½Ñ¡¡« »αÑ«íαáºπÑΓß∩ ¬ ó¿ñπ *(A+I); φΓ¿ ñóÑ Σ«α¼δ
- ß«óÑαΦÑ¡¡« φ¬ó¿óá½Ñ¡Γ¡δ. àß½¿ »α¿¼Ñ¡¿Γ∞ «»Ñαᵿε & ¬ «íÑ¿¼
- τáßΓ∩¼ Γᬫú« ß««Γ¡«ΦÑ¡¿∩ φ¬ó¿óá½Ñ¡Γ¡«ßΓ¿, Γ« ¼δ »«½πτ¿¼,
- τΓ« &A[I] ¿ A+I Γ«ªÑ ¿ñÑ¡Γ¿τ¡δ: A+I - áñαÑß I-ú« φ½Ñ¼Ñ¡Γá «Γ
- ¡áτá½á A. æ ñαπú«⌐ ßΓ«α«¡δ, Ñß½¿ PA ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ, Γ«
- ó óδαáªÑ¡¿∩σ Ñú« ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ß ¿¡ñѬ߫¼: PA[I] ¿ñÑ¡-
- Γ¿τ¡« *(PA+I). è«α«τÑ, ½εí«Ñ óδαáªÑ¡¿Ñ, ó¬½ετáεΘÑÑ ¼áßß¿óδ ¿
- ¿¡ñѬßδ, ¼«ªÑΓ íδΓ∞ ºá»¿ßá¡« τÑαѺ π¬áºáΓѽ¿ ¿ ß¼ÑΘÑ¡¿∩ ¿
- ¡á«í«α«Γ, »α¿τѼ ñáªÑ ó «ñ¡«¼ ¿ Γ«¼ ªÑ πΓóÑαªñÑ¡¿¿.
-
- - 104 -
-
- ê¼ÑÑΓß∩ «ñ¡« αẽ¿τ¿Ñ ¼Ñªñπ ¿¼Ñ¡Ñ¼ ¼áßß¿óá ¿ π¬áºáΓѽѼ,
- ¬«Γ«α«Ñ ¡Ñ«íσ«ñ¿¼« ¿¼ÑΓ∞ ó ó¿ñπ. π¬áºáΓѽ∞ ∩ó½∩ÑΓß∩ »ÑαѼѡ-
- ¡«⌐, ΓᬠτΓ« «»Ñαᵿ¿ PA=A ¿ PA++ ¿¼ÑεΓ ß¼δß½. ì« ¿¼∩ ¼áßß¿-
- óá ∩ó½∩ÑΓß∩ ¬«¡ßΓá¡Γ«⌐, á ¡Ñ »ÑαѼѡ¡«⌐: ¬«¡ßΓαπ¬µ¿¿ Γ¿»á
- A=PA ¿½¿ A++,¿½¿ P=&A íπñπΓ ¡Ñºá¬«¡¡δ¼¿.
- è«úñá ¿¼∩ ¼áßß¿óá »ÑαÑñáÑΓß∩ Σπ¡¬µ¿¿, Γ« ¡á ßἫ¼ ñѽÑ
- Ñ⌐ »ÑαÑñáÑΓß∩ ¼ÑßΓ«»«½«ªÑ¡¿Ñ ¡áτá½á φΓ«ú« ¼áßß¿óá. é¡πΓα¿
- óδºóá¡¡«⌐ Σπ¡¬µ¿¿ Γᬫ⌐ áαúπ¼Ñ¡Γ ∩ó½∩ÑΓß∩ Γ«τ¡« Γᬫ⌐ ªÑ »Ñ-
- αѼѡ¡«⌐, ¬á¬ ¿ ½εíá∩ ñαπúá∩, ΓᬠτΓ« ¿¼∩ ¼áßß¿óá ó ¬áτÑßΓóÑ
- áαúπ¼Ñ¡Γá ñÑ⌐ßΓó¿Γѽ∞¡« ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ, Γ.Ñ. ÅÑαѼѡ-
- ¡«⌐, ß«ñÑαªáΘÑ⌐ áñαÑß. ¼δ ¼«ªÑ¼ ¿ß»«½∞º«óáΓ∞ φΓ« «íßΓ«∩Γѽ∞-
- ßΓó« ñ½∩ ¡á»¿ßá¡¿∩ ¡«ó«ú« óáα¿á¡Γá Σπ¡¬µ¿¿ STRLEN, óδτ¿ß½∩ε-
- ΘÑ⌐ ñ½¿¡π ßΓ᫬¿.
-
- STRLEN(S) /* RETURN LENGTH OF STRING S */
- CHAR *S;
- {
- INT N;
-
- FOR (N = 0; *S != '\0'; S++)
- N++;
- RETURN(N);
- }
-
- Ä»Ñαᵿ∩ πóѽ¿τÑ¡¿∩ S ß«óÑαΦÑ¡¡« ºá¬«¡¡á, »«ß¬«½∞¬π φΓá
- »ÑαѼѡ¡á∩ ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ; S++ ¡¿¬á¬ ¡Ñ ó½¿∩ÑΓ ¡á ß¿¼-
- ó«½∞¡πε ßΓ᫬π ó «íαáΓ¿óΦÑ⌐ß∩ ¬ STRLEN Σπ¡¬µ¿¿, á Γ«½∞¬«
- πóѽ¿τ¿óáÑΓ ½«¬á½∞¡πε ñ½∩ Σπ¡¬µ¿¿ STRLEN ¬«»¿ε áñαÑßá. Ä»¿-
- ßá¡¿∩ Σ«α¼á½∞¡δσ »áαá¼ÑΓα«ó ó «»αÑñѽѡ¿¿ Σπ¡¬µ¿¿ ó ó¿ñÑ
-
- CHAR S[];
- CHAR *S;
-
- ß«óÑαΦÑ¡¡« φ¬ó¿óá½Ñ¡Γ¡δ; ¬á¬«⌐ ó¿ñ «»¿ßá¡¿∩ ß½ÑñπÑΓ »αÑñ»«-
- τÑßΓ∞, «»αÑñѽ∩ÑΓß∩ ó º¡áτ¿Γѽ∞¡«⌐ ßΓѻѡ¿ ΓѼ, ¬á¬¿Ñ óδαá-
- ªÑ¡¿∩ íπñπΓ ¿ß»«½∞º«óá¡δ »α¿ ¡á»¿ßá¡¿¿ Σπ¡¬µ¿¿. àß½¿ Σπ¡¬µ¿¿
- »ÑαÑñáÑΓß∩ ¿¼∩ ¼áßß¿óá, Γ« ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, τΓ« πñ«í-
- ¡ÑÑ, ¼«ª¡« »«½áúáΓ∞, τΓ« Σπ¡¬µ¿∩ «»Ñα¿απÑΓ ½¿í« ß ¼áßß¿ó«¼,
- ½¿í« ß π¬áºáΓѽѼ, ¿ ñÑ⌐ßΓó«óáΓ∞ ñá½ÑÑ ß««ΓóÑΓóπεΘ¿¼ «íαá-
- º«¼. ¡« ñáªÑ ¿ß»«½∞º«óáΓ∞ «íá ó¿ñá «»Ñαᵿ⌐, Ñß½¿ φΓ« ¬á-
- ªÑΓß∩ π¼ÑßΓ¡δ¼ ¿ ∩ß¡δ¼.
- ¡« »ÑαÑñáΓ∞ Σπ¡¬µ¿¿ τáßΓ∞ ¼áßß¿óá, Ñß½¿ ºáñáΓ∞ ó ¬á-
- τÑßΓóÑ áαúπ¼Ñ¡Γá π¬áºáΓѽ∞ ¡áτá½á »«ñ¼áßß¿óá. ìá»α¿¼Ñα, Ñß½¿
- A - ¼áßß¿ó, Γ« ¬á¬
-
- F(&A[2])
-
- ¬á¬ ¿
-
- F(A+2)
-
- - 105 -
-
- »ÑαÑñáεΓ Σπ¡¬µ¿¿ F áñαÑß φ½Ñ¼Ñ¡Γá A[2], »«Γ«¼π τΓ« ¿ &A[2],
- ¿ A+2 ∩ó½∩εΓß∩ π¬áºáΓѽ∞¡δ¼¿ óδαáªÑ¡¿∩¼¿, ßßδ½áεΘ¿¼¿ß∩ ¡á
- ΓαÑΓ¿⌐ φ½Ñ¼Ñ¡Γ A. ó¡πΓα¿ Σπ¡¬µ¿¿ F «»¿ßá¡¿∩ áαúπ¼Ñ¡Γ«ó ¼«úπΓ
- »α¿ßπΓßΓó«óáΓ∞ ó ó¿ñÑ:
-
- F(ARR)
- INT ARR[];
- {
- ...
- }
-
- ¿½¿
-
- F(ARR)
- INT *ARR;
- {
- ...
- }
-
- ùΓ« ¬áßáÑΓß∩ Σπ¡¬µ¿¿ F, Γ« ëà Σá¬Γ, τΓ« ÑÑ áαúπ¼Ñ¡Γ ó ñÑ⌐ß-
- Γó¿Γѽ∞¡«ßΓ¿ ßßδ½áÑΓß∩ ¬ τáßΓ¿ í«½∞ΦÑú« ¼áßß¿óá,¡Ñ ¿¼ÑÑΓ ñ½∩
- ¡ÑÑ ¡¿¬á¬¿σ »«ß½ÑñßΓó¿⌐.
-
- 5.4. ÇñαÑß¡á∩ áα¿Σ¼ÑΓ¿¬á
-
- àß½¿ P ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ, Γ« ¬á¬«ó íδ ¡¿ íδ½ ß«αΓ
- «íΩѬΓá, ¡á ¬«Γ«αδ⌐ «¡ π¬áºδóáÑΓ, «»Ñαᵿ∩ P++ πóѽ¿τ¿óáÑΓ P
- Γá¬, τΓ« «¡ π¬áºδóáÑΓ ¡á ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ¡áí«αá φΓ¿σ
- «íΩÑ¬Γ«ó, á «»Ñαᵿ∩ P +=I πóѽ¿τ¿óáÑΓ P Γá¬, τΓ«íδ «¡ π¬á-
- ºδóá½ ¡á φ½Ñ¼Ñ¡Γ, «ΓßΓ«∩Θ¿⌐ ¡á I φ½Ñ¼Ñ¡Γ«ó «Γ ΓѬπΘÑú« φ½Ñ-
- ¼Ñ¡Γá.φΓ¿ ¿ á¡á½«ú¿τ¡δÑ ¬«¡ßΓαπ¬µ¿¿ »αÑñßΓáó½∩εΓ ß«í«⌐ ßá¼δÑ
- »α«ßΓδÑ ¿ ßá¼δÑ αáß»α«ßΓαá¡Ñ¡¡δÑ Σ«α¼δ áα¿Σ¼ÑΓ¿¬¿ π¬áºáΓѽÑ⌐
- ¿½¿ áñαÑß¡«⌐ áα¿Σ¼ÑΓ¿¬¿.
- ƒºδ¬ "C" »«ß½Ññ«óáΓѽѡ ¿ »«ßΓ«∩¡Ñ¡ ó ßó«Ñ¼ »«ñσ«ñÑ ¬
- áñαÑß¡«⌐ áα¿Σ¼ÑΓ¿¬Ñ; «íΩÑñ¿¡Ñ¡¿Ñ ó «ñ¡« µÑ½«Ñ π¬áºáΓѽÑ⌐,
- ¼áßß¿ó«ó ¿ áñαÑß¡«⌐ áα¿Σ¼ÑΓ¿¬¿ ∩ó½∩ÑΓß∩ «ñ¡«⌐ ¿º ¡á¿í«½ÑÑ
- ß¿½∞¡δσ ßΓ«α«¡ ∩ºδ¬á. äáóá⌐ΓÑ »α«¿½½εßΓα¿απѼ ¡Ñ¬«Γ«αδÑ ¿º
- ß««ΓóÑΓßΓóπεΘ¿σ 󫺼«ª¡«ßΓÑ⌐ ∩ºδ¬á ¡á »α¿¼ÑαÑ φ½Ñ¼Ñ¡Γáα¡«⌐
- (¡« »«½Ñº¡«⌐, ¡Ñß¼«Γα∩ ¡á ßó«ε »α«ßΓ«Γπ) »α«úαá¼¼δ αáß»αÑñÑ-
- ½Ñ¡¿∩ »á¼∩Γ¿. ê¼ÑεΓß∩ ñóÑ Σπ¡¬µ¿¿: Σπ¡¬µ¿∩ ALLOC(N) ó«ºóαá-
- ΘáÑΓ ó ¬áτÑßΓóÑ ßó«Ñú« º¡áτÑ¡¿∩ π¬áºáΓѽ∞ P, ¬«Γ«αδ⌐ π¬áºδ-
- óáÑΓ ¡á »Ñαóπε ¿º N »«ß½Ññ«óáΓѽ∞¡δσ ß¿¼ó«½∞¡δσ »«º¿µ¿⌐, ¬«-
- Γ«αδÑ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ óδºδóáεΘÑ⌐ Σπ¡¬µ¿ε ALLOC »α«ú-
- αá¼¼«⌐ ñ½∩ σαá¡Ñ¡¿∩ ß¿¼ó«½«ó; Σπ¡¬µ¿∩ FREE(P) «ßó«í«ªñáÑΓ
- »α¿«íαÑΓÑ¡¡πε Γᬿ¼ «íαẫ¼ »á¼∩Γ∞, ΓᬠτΓ« ÑÑ ó ñá½∞¡Ñ⌐ΦѼ
- ¼«ª¡« ß¡«óá ¿ß»«½∞º«óáΓ∞. »α«úαá¼¼á ∩ó½∩ÑΓß∩ "φ½Ñ¼Ñ¡Γáα¡«⌐",
- »«Γ«¼π τΓ« «íαáΘÑ¡¿∩ ¬ FREE ñ«½ª¡δ »α«¿ºó«ñ¿Γ∞ß∩ ó »«α∩ñ¬Ñ,
- «íαáΓ¡«¼ Γ«¼π, ó ¬«Γ«α«¼ »α«¿ºó«ñ¿½¿ß∞ «íαáΘÑ¡¿∩ ¬ ALLOC.
- Æá¬¿¼ «íαẫ¼, π»αáó½∩Ѽá∩ Σπ¡¬µ¿∩¼¿ ALLOC ¿ FREE »á¼∩Γ∞ ∩ó-
- ½∩ÑΓß∩ ßΓѬ«¼ ¿½¿ ß»¿ß¬«¼, ó ¬«Γ«α«¼ »«ß½Ññ¡¿⌐ óó«ñ¿¼δ⌐ φ½Ñ-
- ¼Ñ¡Γ ¿ºó½Ñ¬áÑΓß∩ »Ñαóδ¼. æΓá¡ñáαΓ¡á∩ í¿í½¿«ΓѬá ∩ºδ¬á "C"
- ß«ñÑαª¿Γ á¡á½«ú¿τ¡δÑ Σπ¡¬µ¿¿, ¡Ñ ¿¼ÑεΘ¿Ñ Γᬿσ «úαá¡¿τÑ¡¿⌐,
-
-
- - 106 -
-
- ¿, ¬α«¼Ñ Γ«ú«, ó ú½áóÑ 8 ¼δ »α¿óÑñѼ π½πτΦÑ¡¡δÑ óáα¿á¡Γδ.
- îѪñπ ΓѼ, «ñ¡á¬«, ñ½∩ ¼¡«ú¿σ »α¿½«ªÑ¡¿⌐ ¡πª¡á Γ«½∞¬« Γα¿ó¿-
- á½∞¡á∩ Σπ¡¬µ¿∩ ALLOC ñ½∩ αáß»αÑñѽѡ¿∩ ¡Ñí«½∞Φ¿σ πτáßΓ¬«ó
- »á¼∩Γ¿ ¡Ñ¿ºóÑßΓ¡δσ ºáαá¡ÑÑ αẼÑα«ó ó ¡Ñ»αÑñ߬áºπѼδÑ ¼«¼Ñ¡-
- Γδ óαѼѡ¿.
- Åα«ßΓÑ⌐Φá∩ αÑ὿ºáµ¿∩ ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ Σπ¡¬µ¿∩ αáº-
- ñáóá½á «ΓαѺ¬¿ í«½∞Φ«ú« ß¿¼ó«½∞¡«ú« ¼áßß¿óá, ¬«Γ«α«¼π ¼δ
- »α¿ßó«¿½¿ ¿¼∩ ALLOCBUF. ¥Γ«Γ ¼áßß¿ó ∩ó½∩ÑΓß∩ ß«íßΓóÑ¡¡«ßΓ∞ε
- Σπ¡¬µ¿⌐ ALLOC ¿ FREE. Æá¬ ¬á¬ «¡¿ αáí«ΓáεΓ ß π¬áºáΓѽ∩¼¿, á
- ¡Ñ ß ¿¡ñѬßἿ ¼áßß¿óá, ¡¿¬á¬«⌐ ñαπú«⌐ Σπ¡¬µ¿¿ ¡Ñ ¡πª¡«
- º¡áΓ∞ ¿¼∩ φΓ«ú« ¼áßß¿óá. Ä¡ ¼«ªÑΓ íδΓ∞ «»¿ßá¡ ¬á¬ ó¡ÑΦ¡¿⌐
- ßΓáΓ¿τÑ߬¿⌐, Γ.Ñ. Ä¡ íπñÑΓ ½«¬á½∞¡δ¼ »« «Γ¡«ΦÑ¡¿ε ¬ ¿ßσ«ñ¡«-
- ¼π Σá⌐½π, ß«ñÑαªáΘѼπ ALLOC ¿ FREE, ¿ ¡Ñó¿ñ¿¼δ¼ ºá Ñú« »αÑ-
- ñѽἿ. Åα¿ »αá¬Γ¿τÑ߬«⌐ αÑ὿ºáµ¿¿ φëà ¼áßß¿ó ¼«ªÑΓ ñáªÑ
- ¡Ñ ¿¼ÑΓ∞ ¿¼Ñ¡¿; ó¼ÑßΓ« φΓ«ú« «¡ ¼«ªÑΓ íδΓ∞ »«½πτÑ¡ ó αѺπ½∞-
- ΓáΓÑ ºá»α«ßá ¬ «»Ñαᵿ«¡¡«⌐ ß¿ßΓÑ¼Ñ ¡á π¬áºáΓѽ∞ ¡Ñ¬«Γ«α«ú«
- ¡Ñ¿¼Ñ¡«óá¡¡«ú« í½«¬á »á¼∩Γ¿.
- äαπú«⌐ ¡Ñ«íσ«ñ¿¼«⌐ ¿¡Σ«α¼áµ¿Ñ⌐ ∩ó½∩ÑΓß∩ Γ«, ¬á¬á∩ τáßΓ∞
- ¼áßß¿óá ALLOCBUF πªÑ ¿ß»«½∞º«óá¡á. îδ »«½∞ºπѼß∩ π¬áºáΓѽѼ
- »Ñαó«ú« ßó«í«ñ¡«ú« φ½Ñ¼Ñ¡Γá, ¡áºóá¡¡δ¼ ALLOCP. è«úñá ¬ Σπ¡¬-
- µ¿¿ ALLOC «íαáΘáεΓß∩ ºá óδñѽѡ¿Ñ¼ N ß¿¼ó«½«ó, Γ« «¡á »α«óÑ-
- α∩ÑΓ, ñ«ßΓáΓ«τ¡« ½¿ «ßΓὫß∞ ñ½∩ φΓ«ú« ¼ÑßΓá ó ALLOCBUF. àß-
- ½¿ ñ«ßΓáΓ«τ¡«, Γ« ALLOC ó«ºóαáΘáÑΓ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ ALLOCP
- (Γ.Ñ. ìáτὫ ßó«í«ñ¡«ú« í½«¬á), ºáΓѼ πóѽ¿τ¿óáÑΓ Ñú« ¡á N,
- ß ΓѼ τΓ«íδ «¡ π¬áºδóá½ ¡á ß½ÑñπεΘπε ßó«í«ñ¡πε «í½áßΓ∞. öπ¡-
- ¬µ¿∩ FREE(P) »α«ßΓ« »«½áúáÑΓ ALLOCP αáó¡δ¼ P »α¿ πß½«ó¿¿,
- τΓ« P π¬áºδóáÑΓ ¡á »«º¿µ¿ε ó¡πΓα¿ ALLOCBUF.
-
- DEFINE NULL 0 /* POINTER VALUE FOR ERROR REPORT */
- DEFINE ALLOCSIZE 1000 /* SIZE OF AVAILABLE SPACE */
-
- TATIC CHAR ALLOCBUF[ALLOCSIZE];/* STORAGE FOR ALLOC */
- TATIC CHAR *ALLOCP = ALLOCBUF; /* NEXT FREE POSITION */
-
- HAR *ALLOC(N) /* RETURN POINTER TO N CHARACTERS */
- INT N;
- (
- IF (ALLOCP + N <= ALLOCBUF + ALLOCSIZE) {
- ALLOCP += N;
- RETURN(ALLOCP - N); /* OLD P */
- } ELSE /* NOT ENOUGH ROOM */
- RETURN(NULL);
- )
-
- REE(P) /* FREE STORAGE POINTED BY P */
- HAR *P;
- (
- IF (P >= ALLOCBUF && P < ALLOCBUF + ALLOCSIZE)
- ALLOCP = P;
- )
-
- - 107 -
-
- äáñ¿¼ ¡Ñ¬«Γ«αδÑ »«∩ߡѡ¿∩. é««íΘÑ ú«ó«α∩, π¬áºáΓѽ∞ ¼«-
- ªÑΓ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡ Γ«τ¡« ΓᬠªÑ, ¬á¬ ¿ ½εíá∩ ñαπúá∩
- »ÑαѼѡ¡á∩, σ«Γ∩ «íδτ¡« Ññ¿¡ßΓóÑ¡¡δ¼¿ «ß¼δ߽ѡ¡δ¼¿ º¡áτÑ¡¿∩-
- ¼¿ ∩ó½∩εΓß∩ NULL (φΓ« «íßπªñáÑΓß∩ ¡¿ªÑ) ¿½¿ óδαáªÑ¡¿Ñ, ó¬½ε-
- τáεΘÑÑ áñαÑßá αá¡ÑÑ «»αÑñѽѡ¡δσ ñá¡¡δσ ß««ΓóÑΓßΓóπεΘÑú« Γ¿-
- »á. Ä»¿ßá¡¿Ñ
-
- STATIC CHAR *ALLOCP = ALLOCBUF;
-
- «»αÑñѽ∩ÑΓ ALLOCP ¬á¬ π¬áºáΓѽ∞ ¡á ß¿¼ó«½δ ¿ ¿¡¿µ¿á½¿º¿απÑΓ
- Ñú« Γá¬, τΓ«íδ «¡ π¬áºδóá½ ¡á ALLOCBUF, Γ.Ñ. ìá »Ñαóπε ßó«-
- í«ñ¡πε »«º¿µ¿ε »α¿ ¡áτá½Ñ αáí«Γδ »α«úαá¼¼δ. Æá¬ ¬á¬ ¿¼∩ ¼áß-
- ß¿óá ∩ó½∩ÑΓß∩ áñαÑß«¼ Ñú« ¡π½Ñó«ú« φ½Ñ¼Ñ¡Γá, Γ« φΓ« ¼«ª¡«
- í佫 íδ ºá»¿ßáΓ∞ ó ó¿ñÑ
-
- STATIC CHAR *ALLOCP = &ALLOCBUF[0];
-
- ¿ß»«½∞ºπ⌐ΓÑ Γπ ºá»¿ß∞, ¬«Γ«αá∩ óá¼ ¬áªÑΓß∩ í«½ÑÑ ÑßΓÑßΓóÑ¡-
- ¡«⌐. æ »«¼«Θ∞ε »α«óÑન
-
- IF (ALLOCP + N <= ALLOCBUF + ALLOCSIZE)
-
- óδ∩ß¡∩ÑΓß∩, «ßΓὫß∞ ½¿ ñ«ßΓáΓ«τ¡« ¼ÑßΓá, τΓ«íδ πñ«ó½ÑΓó«-
- α¿Γ∞ ºá»α«ß ¡á N ß¿¼ó«½«ó. àß½¿ ñ«ßΓáΓ«τ¡«, Γ« ¡«ó«Ñ º¡áτÑ-
- ¡¿Ñ ALLOCP ¡Ñ íπñÑΓ π¬áºδóáΓ∞ ñá½∞ΦÑ, τѼ ¡á »«ß½Ññ¡εε »«º¿-
- µ¿ε ALLOCBUF. àß½¿ ºá»α«ß ¼«ªÑΓ íδΓ∞ πñ«ó½ÑΓó«αÑ¡, Γ« ALLOC
- ó«ºóαáΘáÑΓ «íδτ¡δ⌐ π¬áºáΓѽ∞ («íαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ ¡á «»¿ßá¡¿Ñ
- ßἫ⌐ Σπ¡¬µ¿¿). àß½¿ ªÑ ¡ÑΓ, Γ« ALLOC ñ«½ª¡á óÑα¡πΓ∞ ¡Ñ¬«Γ«-
- αδ⌐ »α¿º¡á¬, ú«ó«α∩Θ¿⌐ « Γ«¼, τΓ« í«½∞ΦÑ ¼ÑßΓá ¡Ñ «ßΓὫß∞.
- é ∩ºδ¬Ñ "C" úáαá¡Γ¿απÑΓß∩, τΓ« ¡¿ «ñ¿¡ »αáó¿½∞¡δ⌐ π¬áºáΓѽ∞
- ñá¡¡δσ ¡Ñ ¼«ªÑΓ ¿¼ÑΓ∞ º¡áτÑ¡¿Ñ ¡π½∞, ΓᬠτΓ« ó«ºóαáΘÑ¡¿Ñ ¡π-
- ½∩ ¼«ªÑΓ ß½πª¿Γ∞ ó ¬áτÑßΓóÑ ß¿ú¡á½á « ¡Ñ¡«α¼á½∞¡«¼ ß«íδΓ¿¿,
- ó ñá¡¡«¼ ß½πτáÑ «í «ΓßπΓßΓó¿¿ ¼ÑßΓá. îδ, «ñ¡á¬«, ó¼ÑßΓ« ¡π½∩
- »¿ΦѼ NULL, ß ΓѼ τΓ«íδ í«½ÑÑ ∩ß¡« »«¬áºáΓ∞, τΓ« φΓ« ߻ѵ¿-
- á½∞¡«Ñ º¡áτÑ¡¿Ñ π¬áºáΓѽ∩. é««íΘÑ ú«ó«α∩, µÑ½δÑ ¡Ñ ¼«úπΓ «ß-
- ¼δ߽ѡ¡« »α¿ßóá¿óáΓ∞ß∩ π¬áºáΓѽ∩¼, á ¡π½∞ - φΓ« «ß«íδ⌐ ß½π-
- 砩.
- Åα«óÑન ó¿ñá
-
- IF (ALLOCP + N <= ALLOCBUF + ALOOCSIZE)
- ¿
- IF (P >= ALLOCBUF && P < ALLOCBUF + ALLOCSIZE)
-
- ñѼ«¡ßΓα¿απεΓ ¡Ñ߬«½∞¬« ó᪡δσ áß»Ñ¬Γ«ó áα¿Σ¼ÑΓ¿¬¿ π¬áºáΓÑ-
- ½Ñ⌐. é«-»Ñαóδσ , »α¿ «»αÑñѽѡ¡δσ πß½«ó¿∩σ π¬áºáΓѽ¿ ¼«ª¡«
- ßαáó¡¿óáΓ∞. àß½¿ P ¿ Q π¬áºδóáεΓ ¡á φ½Ñ¼Ñ¡Γδ «ñ¡«ú« ¿ Γ«ú«
- ªÑ ¼áßß¿óá, Γ« Γá¬¿Ñ «Γ¡«ΦÑ¡¿∩, ¬á¬ <, >= ¿ Γ.ñ., αáí«ΓáεΓ
- ¡áñ½ÑªáΘ¿¼ «íαẫ¼. ìá»α¿¼Ñα,
-
- P < Q
- - 108 -
-
- ¿ßΓ¿¡¡«, Ñß½¿ P π¬áºδóáÑΓ ¡á í«½ÑÑ αá¡¡¿⌐ φ½Ñ¼Ñ¡Γ ¼áßß¿óá,
- τѼ Q. ÄΓ¡«ΦÑ¡¿∩ == ¿ != Γ«ªÑ αáí«ΓáεΓ. ïεí«⌐ π¬áºáΓѽ∞ ¼«ª-
- ¡« «ß¼δ߽ѡ¡δ¼ «íαẫ¼ ßαáó¡¿Γ∞ ¡á αáóÑ¡ßΓó« ¿½¿ ¡ÑαáóÑ¡ßΓó«
- ß NULL. ì« ¡¿ ºá τΓ« ¡Ñ½∞º∩ απτáΓ∞ß∩, Ñß½¿ óδ ¿ß»«½∞ºπÑΓÑ
- ßαáó¡Ñ¡¿∩ »α¿ αáí«ΓÑ ß π¬áºáΓѽ∩¼¿, π¬áºδóáεΘ¿¼¿ ¡á αạδÑ
- ¼áßß¿óδ. àß½¿ óá¼ »«óѺÑΓ, Γ« ¡á óßÑσ ¼áΦ¿¡áσ óδ »«½πτ¿ΓÑ
- «τÑó¿ñ¡πε íÑßß¼δß½¿µπ. àß½¿ ªÑ ¡ÑΓ, Γ« óáΦá »α«úαá¼¼á íπñÑΓ
- »αáó¿½∞¡« αáí«ΓáΓ∞ ¡á «ñ¡«⌐ ¼áΦ¿¡Ñ ¿ ñáóáΓ∞ ¡Ñ»«ßΓ¿ª¿¼δÑ αÑ-
- ºπ½∞ΓáΓδ ¡á ñαπú«⌐.
- é«-óΓ«αδσ, ¬á¬ ¼δ πªÑ ó¿ñѽ¿, π¬áºáΓѽ∞ ¿ µÑ½«Ñ ¼«ª¡«
- ߬½áñδóáΓ∞ ¿ óδτ¿ΓáΓ∞. è«¡ßΓαπ¬µ¿∩
-
- P + N
-
- »«ñαáºπ¼ÑóáÑΓ N-δ⌐ «íΩÑ¬Γ ºá ΓѼ, ¡á ¬«Γ«αδ⌐ P π¬áºδóáÑΓ ó
- ¡áßΓ«∩Θ¿⌐ ¼«¼Ñ¡Γ. ¥Γ« ß»αáóÑñ½¿ó« ¡Ñºáó¿ß¿¼« «Γ Γ«ú«, ¡á ¬á-
- ¬«⌐ ó¿ñ «íΩÑ¬Γ«ó P ñ«½ªÑ¡ π¬áºδóáΓ∞; ¬«¼»¿½∩Γ«α ßá¼ ¼áßΦΓá-
- í¿απÑΓ N ó ß««ΓóÑΓßΓó¿¿ ß «»αÑñѽ∩Ñ¼δ¼ ¿º «»¿ßá¡¿∩ P αẼÑ-
- α«¼ «íΩÑ¬Γ«ó, π¬áºδóáѼδσ ß »«¼«Θ∞ε P. ¡á»α¿¼Ñα, ¡á PDP-11
- ¼áßΦΓáí¿απεΘ¿⌐ ¼¡«ª¿Γѽ∞ αáóÑ¡ 1 ñ½∩ CHAR, 2 ñ½∩ INT ¿
- SHORT, 4 ñ½∩ LONG ¿ FLOAT ¿ 8 ñ½∩ DOUBLE.
- éδτ¿Γá¡¿Ñ π¬áºáΓѽÑ⌐ Γ«ªÑ 󫺼«ª¡«: Ñß½¿ P ¿ Q π¬áºδóáεΓ
- ¡á φ½Ñ¼Ñ¡Γδ «ñ¡«ú« ¿ Γ«ú« ªÑ ¼áßß¿óá, Γ« P-Q - ¬«½¿τÑßΓó«
- φ½Ñ¼Ñ¡Γ«ó ¼Ñªñπ P ¿ Q. ¥Γ«Γ Σá¬Γ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ¡á-
- »¿ßá¡¿∩ ÑΘÑ «ñ¡«ú« óáα¿á¡Γá Σπ¡¬µ¿¿
-
- STRLEN:
- STRLEN(S) /* RETURN LENGTH OF STRING S */
- CHAR *S;
- {
- CHAR *P = S;
-
- WHILE (*P != '\0')
- P++;
- RETURN(P-S);
- }
- Åα¿ «»¿ßá¡¿¿ π¬áºáΓѽ∞ P ó φΓ«⌐ Σπ¡¬µ¿¿ ¿¡¿µ¿á½¿º¿α«óá¡
- »«ßαÑñßΓó«¼ ßΓ᫬¿ S, ó αѺπ½∞ΓáΓÑ τÑú« «¡ π¬áºδóáÑΓ ¡á »Ñα-
- óδ⌐ ß¿¼ó«½ ßΓ᫬¿. é µ¿¬½Ñ WHILE »« «τÑαÑñ¿ »α«óÑα∩ÑΓß∩ ¬áª-
- ñδ⌐ ß¿¼ó«½ ñ« ΓÑσ »«α, »«¬á ¡Ñ »«∩ó¿Γß∩ ß¿¼ó«½ ¬«¡µá ßΓ᫬¿
- \0. Æá¬ ¬á¬ º¡áτÑ¡¿Ñ \0 αáó¡« ¡π½ε, á WHILE Γ«½∞¬« óδ∩ß¡∩ÑΓ,
- ¿¼ÑÑΓ ½¿ óδαáªÑ¡¿Ñ ó ¡Ñ¼ º¡áτÑ¡¿Ñ 0, Γ« ó ñá¡¡«¼ ß½πτáÑ ∩ó-
- ¡πε »α«óÑα¬π ¼«ª¡« «»πßΓ¿Γ∞. Æá¬¿Ñ µ¿¬½δ τáßΓ« ºá»¿ßδóáεΓ ó
- ó¿ñÑ
-
- WHILE (*P)
- P++;
-
- Æá¬ ¬á¬ P π¬áºδóáÑΓ ¡á ß¿¼ó«½δ, Γ« «»ÑαáΓ«α P++ »ÑαÑñó¿-
- úáÑΓ P ¬áªñδ⌐ αẠΓá¬, τΓ«íδ «¡ π¬áºδóá½ ¡á ß½ÑñπεΘ¿⌐ ß¿¼-
- ó«½. é αѺπ½∞ΓáΓÑ P-S ñáÑΓ τ¿ß½« »α«ß¼«ΓαÑ¡¡δσ ß¿¼ó«½«ó,
-
- - 108 -
-
- Γ.Ñ. 使¡π ßΓ᫬¿. Çα¿Σ¼ÑΓ¿¬á π¬áºáΓѽÑ⌐ »«ß½Ññ«óáΓѽ∞¡á:
- Ñß½¿ íδ ¼δ ¿¼Ñ½¿ ñѽ« ß »ÑαѼѡ¡δ¼¿ Γ¿»á FLOAT, ¬«Γ«αδÑ ºá-
- ¡¿¼áεΓ í«½∞ΦÑ »á¼∩Γ¿, τѼ »ÑαѼѡ¡δÑ Γ¿»á CHAR, ¿ Ñß½¿ íδ P
- íδ½ π¬áºáΓѽѼ ¡á FLOAT, Γ« «»ÑαáΓ«α P++ »ÑαÑñó¿¡π½ íδ P ¡á
- ß½ÑñπεΘÑÑ FLOAT. Γᬿ¼ «íαẫ¼, ¼δ ¼«ú½¿ íδ ¡á»¿ßáΓ∞ ñαπú«⌐
- óáα¿á¡Γ Σπ¡¬µ¿¿ ALLOC, αáß»αÑñѽ∩εΘÑ⌐ »á¼∩Γ∞ ñ½∩ FLOAT,
- ó¼ÑßΓ« CHAR, »α«ßΓ« ºá¼Ñ¡¿ó óßεñπ ó ALLOC ¿ FREE «»¿ßáΓѽ∞
- CHAR ¡á FLOAT. éßÑ ñÑ⌐ßΓó¿∩ ß π¬áºáΓѽ∩¼¿ áóΓ«¼áΓ¿τÑ߬¿ πτ¿-
- ΓδóáεΓ αẼÑα «íΩÑ¬Γ«ó, ¡á ¬«Γ«αδÑ «¡¿ π¬áºδóáεΓ, ΓᬠτΓ«
- í«½∞ΦÑ ¡¿τÑú« ¼Ñ¡∩Γ∞ ¡Ñ ¡áñ«.
- çá ¿ß¬½ετÑ¡¿Ñ¼ π»«¼∩¡πΓδσ óδΦÑ «»Ñαᵿ⌐ (ß½«ªÑ¡¿Ñ ¿ óδ-
- τ¿Γá¡¿Ñ π¬áºáΓѽ∩ ¿ µÑ½«ú«, óδτ¿Γá¡¿Ñ ¿ ßαáó¡Ñ¡¿Ñ ñóπσ π¬á-
- ºáΓѽÑ⌐), óß∩ «ßΓá½∞¡á∩ áα¿Σ¼ÑΓ¿¬á π¬áºáΓѽÑ⌐ ∩ó½∩ÑΓß∩ ¡Ñºá-
- ¬«¡¡«⌐. çá»αÑΘÑ¡« ߬½áñδóáΓ∞ ñóá π¬áºáΓѽ∩, π¼¡«ªáΓ∞, ñÑ-
- ½¿Γ∞, ßñó¿úáΓ∞ ¿½¿ ¼á߬¿α«óáΓ∞ ¿σ, á Γá¬ªÑ »α¿íáó½∩Γ∞ ¬ ¡¿¼
- »ÑαѼѡ¡δÑ Γ¿»á FLOAT ¿½¿ DOUBLE.
-
- 5.5. ô¬áºáΓѽ¿ ß¿¼ó«½«ó ¿ Σπ¡¬µ¿¿
-
- æΓα«τ¡á∩ ¬«¡ßΓá¡Γá, ¬á¬, ¡á»α¿¼Ñα,
-
- "I AM A STRING"
-
- ∩ó½∩ÑΓß∩ ¼áßß¿ó«¼ ß¿¼ó«½«ó. 諼»¿½∩Γ«α ºáóÑαΦáÑΓ ó¡πΓαÑ¡¡ÑÑ
- »αÑñßΓáó½Ñ¡¿Ñ Γᬫú« ¼áßß¿óá ß¿¼ó«½«¼ \0, ΓᬠτΓ« »α«úαá¼¼δ
- ¼«úπΓ ¡áσ«ñ¿Γ∞ Ñú« ¬«¡Ñµ. Æá¬¿¼ «íαẫ¼, ñ½¿¡á ¼áßß¿óá ó »á-
- ¼∩Γ¿ «¬áºδóáÑΓß∩ ¡á Ññ¿¡¿µπ í«½∞ΦÑ τ¿ß½á ß¿¼ó«½«ó ¼Ñªñπ
- ñó«⌐¡δ¼¿ ¬áóδτ¬á¼¿.
- Å«-ó¿ñ¿¼«¼π τáΘÑ óßÑú« ßΓα«τ¡δÑ ¬«¡ßΓá¡Γδ »«∩ó½∩εΓß∩ ó
- ¬áτÑßΓóÑ áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿⌐, ¬á¬, ¡á»α¿¼Ñα, ó
-
- PRINTF ("HELLO, WORLD\N");
-
- ¬«úñá ß¿¼ó«½∞¡á∩ ßΓ᫬á, »«ñ«í¡á∩ φΓ«⌐, »«∩ó½∩ÑΓß∩ ó »α«ú-
- αá¼¼Ñ, Γ« ñ«ßΓπ» ¬ ¡Ñ⌐ «ßπΘÑßΓó½∩ÑΓß∩ ß »«¼«Θ∞ε π¬áºáΓѽ∩
- ß¿¼ó«½«ó; Σπ¡¬µ¿∩ PRINTF Σá¬Γ¿τÑ߬¿ »«½πτáÑΓ π¬áºáΓѽ∞ ß¿¼-
- ó«½∞¡«ú« ¼áßß¿óá.
- è«¡Ñτ¡«, ß¿¼ó«½∞¡δÑ ¼áßß¿óδ ¡Ñ «í∩ºá¡δ íδΓ∞ Γ«½∞¬« áαúπ-
- ¼Ñ¡ΓἿ Σπ¡¬µ¿⌐. àß½¿ «»¿ßáΓ∞ MESSAGE ¬á¬
-
- CHAR *MESSAGE;
-
- Γ« ó αѺπ½∞ΓáΓÑ «»ÑαáΓ«αá
-
- MESSAGE = "NOW IS THE TIME";
-
- »ÑαѼѡ¡á∩ MESSAGE ßΓá¡ÑΓ π¬áºáΓѽѼ ¡á Σá¬Γ¿τÑ߬¿⌐ ¼áßß¿ó
- ß¿¼ó«½«ó. ¥Γ« ¡Ñ ¬«»¿α«óá¡¿Ñ ßΓ᫬¿; ºñÑß∞ πτáßΓóπεΓ Γ«½∞¬«
- π¬áºáΓѽ¿. ó ∩ºδ¬Ñ "C" ¡Ñ »αÑñπß¼«ΓαÑ¡δ ¬á¬¿Ñ-½¿í« «»Ñαᵿ¿
- ñ½∩ «íαáí«Γ¬¿ óßÑ⌐ ßΓ᫬¿ ß¿¼ó«½«ó ¬á¬ µÑ½«ú«.
- îδ »α«¿½½εßΓα¿απѼ ñαπú¿Ñ á߻ѬΓδ π¬áºáΓѽÑ⌐ ¿ ¼áßß¿ó«ó,
- αáºí¿αá∩ ñóÑ »«½Ñº¡δÑ Σπ¡¬µ¿¿ ¿º ßΓá¡ñáαΓ¡«⌐ í¿í½¿«ΓѬ¿ óó«-
- ñá-óδó«ñá, ¬«Γ«αá∩ íπñÑΓ αáßß¼«ΓαÑ¡á ó ú½áóÑ 7.
-
- - 109 -
-
- ÅÑαóá∩ Σπ¡¬µ¿∩ - φΓ« STRCPY(S,T), ¬«Γ«αá∩ ¬«»¿απÑΓ ßΓα«-
- ¬π Γ ó ßΓ᫬π S. Çαúπ¼Ñ¡Γδ ¡á»¿ßá¡δ ¿¼Ñ¡¡« ó φΓ«¼ »«α∩ñ¬Ñ »«
- á¡á½«ú¿¿ ß «»ÑαᵿÑ⌐ »α¿ßóá¿óá¡¿∩, ¬«úñá ñ½∩ Γ«ú«, τΓ«íδ
- »α¿ßó«¿Γ∞ T ¬ S «íδτ¡« »¿ΦπΓ
-
- S = T
-
- ß¡áτá½á »α¿óÑñѼ óÑαß¿ε ß ¼áßß¿óἿ:
-
- STRCPY(S, T) /* COPY T TO S */
- CHAR S[], T[];
- {
- INT I;
- I = 0;
- WHILE ((S[I] = T[I]) != '\0')
- I++;
- }
-
- ä½∩ ß«»«ßΓáó½Ñ¡¿∩ ¡¿ªÑ ñáÑΓß∩ óáα¿á¡Γ STRCPY ß π¬áºáΓÑ-
- ½∩¼¿.
-
- STRCPY(S, T) /* COPY T TO S; POINTER VERSION 1 */
- CHAR *S, *T;
- {
- WHILE ((*S = *T) != '\0') {
- S++;
- T++;
- }
- }
-
- Æá¬ ¬á¬ áαúπ¼Ñ¡Γδ »ÑαÑñáεΓß∩ »« º¡áτÑ¡¿ε, Σπ¡¬µ¿∩ STRCPY
- ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ S ¿ T Γá¬, ¬á¬ «¡á »«ªÑ½áÑΓ. çñÑß∞ «¡¿ ß
- πñ«íßΓó«¼ »«½áúáεΓß∩ π¬áºáΓѽ∩¼¿, ¬«Γ«αδÑ »ÑαÑñó¿úáεΓß∩
- óñ«½∞ ¼áßß¿ó«ó, »« «ñ¡«¼π ß¿¼ó«½π ºá Φáú, »«¬á ¡Ñ íπñÑΓ ß¬«-
- »¿α«óá¡ ó S ºáóÑαΦáεΘ¿⌐ ó T ß¿¼ó«½ \0.
- ìá »αá¬Γ¿¬Ñ Σπ¡¬µ¿∩ STRCPY íδ½á íδ ºá»¿ßá¡á ¡Ñ Γá¬, ¬á¬
- ¼δ »«¬áºá½¿ óδΦÑ. é«Γ óΓ«αá∩ 󫺼«ª¡«ßΓ∞:
-
- STRCPY(S, T) /* COPY T TO S; POINTER VERSION 2 */
- CHAR *S, *T;
- {
- WHILE ((*S++ = *T++) != '\0')
- ;
- }
-
- çñÑß∞ πóѽ¿τÑ¡¿Ñ S ¿ T ó¡ÑßÑ¡« ó »α«óÑα«τ¡πε τáßΓ∞. ç¡á-
- τÑ¡¿Ñ¼ *T++ ∩ó½∩ÑΓß∩ ß¿¼ó«½, ¡á ¬«Γ«αδ⌐ π¬áºδóá½ T ñ« πóѽ¿-
- τÑ¡¿∩; »«ßΓΣ¿¬ß¡á∩ «»Ñαᵿ∩ ++ ¡Ñ ¿º¼Ñ¡∩ÑΓ T, »«¬á φΓ«Γ ß¿¼-
- ó«½ ¡Ñ íπñÑΓ ¿ºó½ÑτÑ¡. Æ«τ¡« ΓᬠªÑ φΓ«Γ ß¿¼ó«½ »«¼ÑΘáÑΓß∩ ó
- ßΓáαπε »«º¿µ¿ε S, ñ« Γ«ú« ¬á¬ S íπñÑΓ πóѽ¿τÑ¡«. è«¡Ñτ¡δ⌐
- αѺπ½∞ΓáΓ ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ« óßÑ ß¿¼ó«½δ, ó¬½ετá∩ ºáóÑα-
- ΦáεΘ¿⌐ \0, ¬«»¿απεΓß∩ ¿º T ó S.
-
- - 110 -
-
- ê ¬á¬ »«ß½Ññ¡ÑÑ ß«¬αáΘÑ¡¿Ñ ¼δ «»∩Γ∞ «Γ¼ÑΓ¿¼, τΓ« ßαáó¡Ñ-
- ¡¿Ñ ß \0 ∩ó½∩ÑΓß∩ ¿º½¿Φ¡¿¼, ΓᬠτΓ« Σπ¡¬µ¿ε ¼«ª¡« ºá»¿ßáΓ∞ ó
- ó¿ñÑ
-
- STRCPY(S, T) /* COPY T TO S; POINTER VERSION 3 */
- CHAR *S, *T;
- {
- WHILE (*S++ = *T++)
- ;
- }
-
- σ«Γ∩ ß »Ñαó«ú« óºú½∩ñá φΓá ºá»¿ß∞ ¼«ªÑΓ »«¬áºáΓ∞ß∩ ºáúáñ«τ-
- ¡«⌐, «¡á ñáÑΓ º¡áτ¿Γѽ∞¡«Ñ πñ«íßΓó«. ¥Γ«⌐ ¿ñ¿«¼«⌐ ß½ÑñπÑΓ
- «ó½áñÑΓ∞ πªÑ σ«Γ∩ íδ »«Γ«¼π, τΓ« óδ ß ¡Ñ⌐ íπñÑΓÑ τáßΓ« óßΓ-
- αÑτáΓ∞ß∩ ó "C"-»α«úαá¼¼áσ.
- éΓ«αá∩ Σπ¡¬µ¿∩ - STRCMP(S, T), ¬«Γ«αá∩ ßαáó¡¿óáÑΓ ß¿¼-
- ó«½∞¡δÑ ßΓ᫬¿ S ¿ Γ, ó«ºóαáΘá∩ «Γα¿µáΓѽ∞¡«Ñ, ¡π½Ñó«Ñ ¿½¿
- »«½«ª¿Γѽ∞¡«Ñ º¡áτÑ¡¿Ñ ó ß««ΓóÑΓßΓó¿¿ ß ΓѼ, ¼Ñ¡∞ΦÑ, αáó¡«
- ¿½¿ í«½∞ΦÑ ½Ñ¬ß¿¬«úαáΣ¿τÑ߬¿ S, τѼ T. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ
- »«½πτáÑΓß∩ ó αѺπ½∞ΓáΓÑ óδτ¿Γá¡¿∩ ß¿¼ó«½«ó ¿º »Ñαó«⌐ »«º¿-
- µ¿¿, ó ¬«Γ«α«⌐ S ¿ T ¡Ñ ß«ó»áñáεΓ.
-
- STRCMP(S, T) /* RETURN <0 IF S<T, 0 IF S==T, >0 IF S>T */
- CHAR S[], T[];
- {
- INT I;
-
- I = 0;
- WHILE (S[I] == T[I])
- IF (S[I++] == '\0')
- RETURN(0);
- RETURN(S[I]-T[I]);
- }
-
- é«Γ óÑαß¿∩ STRCMP ß π¬áºáΓѽ∩¼¿:
-
- STRCMP(S, T) /* RETURN <0 IF S<T, 0 IF S==T, >0 IF S>T */
- CHAR *S, *T;
- {
- FOR ( ; *S == *T; S++, T++)
- IF (*S == '\0')
- RETURN(0);
- RETURN(*S-*T);
- }
- Γᬠ¬á¬ ++ ¿ -- ¼«úπΓ íδΓ∞ ¬á¬ »«ßΓΣ¿¬ß¡δ¼¿, Γᬠ¿
- »αÑΣ¿¬ß¡δ¼¿ «»Ñαᵿ∩¼¿, óßΓαÑτáεΓß∩ ñαπú¿Ñ ¬«¼í¿¡áµ¿¿ * ¿
- ++ ¿ --, σ«Γ∩ ¿ ¼Ñ¡ÑÑ τáßΓ«.
-
- ìá»α¿¼Ñα
-
- *++P
-
- - 111 -
-
- πóѽ¿τ¿óáÑΓ P ñ« ¿ºó½ÑτÑ¡¿∩ ß¿¼ó«½á, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ
-
- P, á
-
- *--P
-
- ß¡áτá½á π¼Ñ¡∞ΦáÑΓ P.
- ô»α᪡ѡ¿Ñ 5-2.
- ---------------
- ìá»¿Φ¿ΓÑ óáα¿á¡Γ ß π¬áºáΓѽ∩¼¿ Σπ¡¬µ¿¿ STRCAT ¿º ú½áóδ
- 2: STRCAT(S, T) ¬«»¿απÑΓ ßΓ᫬π T ó ¬«¡Ñµ S.
- ô»α᪡ѡ¿Ñ 5-3.
- ---------------
- ìá»¿Φ¿ΓÑ ¼á¬α«ß ñ½∩ STRCPY.
- ô»α᪡ѡ¿Ñ 5-4.
- --------------
- ÅÑαÑ»¿Φ¿ΓÑ »«ñσ«ñ∩Θ¿Ñ »α«úαá¼¼δ ¿º »αÑñδñπΘ¿σ ú½áó ¿ π»-
- α᪡ѡ¿⌐, ¿ß»«½∞ºπ∩ π¬áºáΓѽ¿ ó¼ÑßΓ« ¿¡ñѬßᵿ¿ ¼áßß¿ó«ó.
- ò«α«Φ¿Ñ 󫺼«ª¡«ßΓ¿ ñ½∩ φΓ«ú« »αÑñ«ßΓáó½∩εΓ Σπ¡¬µ¿¿ GETLINE
- /ú½áóδ 1 ¿ 4/, ATOI, ITOA ¿ ¿σ óáα¿á¡Γδ /ú½áóδ 2, 3 ¿ 4/,
- REVERSE /ú½áóá 3/, INDEX ¿ GETOP /ú½áóá 4/.
-
- 5.6. ô¬áºáΓѽ¿ - ¡Ñ µÑ½δÑ.
-
- éδ, 󫺼«ª¡«, «íαáΓ¿½¿ ó¡¿¼á¡¿Ñ ó »αÑñδñπΘ¿σ "ß"-»α«ú-
- αá¼¼áσ ¡á ñ«ó«½∞¡« ¡Ñ»α¿¡πªñÑ¡¡«Ñ «Γ¡«ΦÑ¡¿Ñ ¬ ¬«»¿α«óá¡¿ε
- π¬áºáΓѽÑ⌐. é «íΘѼ φΓ« óÑα¡«, τΓ« ¡á í«½∞Φ¿¡ßΓóÑ ¼áΦ¿¡ π¬á-
- ºáΓѽ∞ ¼«ª¡« »α¿ßó«¿Γ∞ µÑ½«¼π ¿ »ÑαÑñáΓ∞ Ñú« «íαáΓ¡«, ¡Ñ ¿º-
- ¼Ñ¡¿ó Ñú«; »α¿ φΓ«¼ ¡Ñ »α«¿ßσ«ñ¿Γ ¡¿¬á¬«ú« ¼áßΦΓáí¿α«óá¡¿∩
- ¿½¿ »αÑ«íαẫóá¡¿∩ ¿ ¡¿ «ñ¿¡ í¿Γ ¡Ñ ΓÑα∩ÑΓß∩. ¬ ß«ªá½Ñ¡¿ε,
- φΓ« óÑñÑΓ ¬ ó«½∞¡«¼π «íαáΘÑ¡¿ε ß Σπ¡¬µ¿∩¼¿, ó«ºóαáΘáεΘ¿¼¿
- π¬áºáΓѽ¿, ¬«Γ«αδÑ ºáΓѼ »α«ßΓ« »ÑαÑñáεΓß∩ ñαπú¿¼ Σπ¡¬µ¿∩¼,
- - ¡Ñ«íσ«ñ¿¼δÑ «»¿ßá¡¿∩ π¬áºáΓѽÑ⌐ τáßΓ« «»π߬áεΓß∩. Éáßß¼«Γ-
- α¿¼, ¡á»α¿¼Ñα, Σπ¡¬µ¿ε STRSAVE(S), ¬«Γ«αá∩ ¬«»¿απÑΓ ßΓ᫬π S
- ó ¡Ñ¬«Γ«α«Ñ ¼ÑßΓ« ñ½∩ σαá¡Ñ¡¿∩, óδñѽ∩Ѽ«Ñ »«ßαÑñßΓó«¼ «íαá-
- ΘÑ¡¿∩ ¬ Σπ¡¬µ¿¿ ALLOC, ¿ ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á φΓ« ¼ÑßΓ«.
- Åαáó¿½∞¡« «¡á ñ«½ª¡á íδΓ∞ ºá»¿ßá¡á Γá¬:
-
- CHAR *STRSAVE(S) /* SAVE STRING S SOMEWHERE */
- CHAR *S;
- {
- CHAR *P, *ALLOC();
-
- IF ((P = ALLOC(STRLEN(S)+1)) != NULL)
- STRCPY(P, S);
- RETURN(P);
- }
-
- ¡á »αá¬Γ¿¬Ñ ßπΘÑßΓóπÑΓ ß¿½∞¡«Ñ ßΓαѼ½Ñ¡¿Ñ «»π߬áΓ∞ «»¿ßá¡¿∩:
-
- - 112 -
-
- *STRSAVE(S) /* SAVE STRING S SOMEWHERE */
- {
- CHAR *P;
-
- IF ((P = ALLOC(STRLEN(S)+1)) != NULL)
- STRCPY(P, S);
- RETURN(P);
- }
-
- ¥Γá »α«úαá¼¼á íπñÑΓ »αáó¿½∞¡« αáí«ΓáΓ∞ ¡á ¼¡«ú¿σ ¼áΦ¿-
- ¡áσ, »«Γ«¼π τΓ« »« π¼«½τá¡¿ε Σπ¡¬µ¿¿ ¿ áαúπ¼Ñ¡Γδ ¿¼ÑεΓ Γ¿»
- INT, á π¬áºáΓѽ∞ ¿ µÑ½«Ñ «íδτ¡« ¼«ª¡« íѺ«»áß¡« »ÑαÑßδ½áΓ∞
- Γπñá ¿ «íαáΓ¡«. Äñ¡á¬« Γᬫ⌐ ßΓ¿½∞ »α«úαá¼¼¿α«óá¡¿∩ ó ßó«Ñ¼
- ßπΘÑßΓóÑ ∩ó½∩ÑΓß∩ α¿ß¬«óá¡¡δ¼, »«ß¬«½∞¬π ºáó¿ß¿Γ «Γ ñÑΓá½Ñ⌐
- αÑ὿ºáµ¿¿ ¿ áασ¿ΓѬΓπαδ ¼áΦ¿¡δ ¿ ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¡Ñ»αá-
- ó¿½∞¡δ¼ αѺπ½∞ΓáΓá¼ ¡á ¬«¡¬αÑΓ¡«¼ ¿ß»«½∞ºπѼ«¼ óἿ ¬«¼»¿½∩-
- Γ«αÑ. Éáºπ¼¡ÑÑ óßεñπ ¿ß»«½∞º«óáΓ∞ »«½¡δÑ «»¿ßá¡¿∩. (ÄΓ½áñ«τ-
- ¡á∩ »α«úαá¼¼á LINT »αÑñπ»αÑñ¿Γ « Γá¬¿σ ¬«¡ßΓαπ¬µ¿∩σ, Ñß½¿
- «¡¿ »« ¡Ñ«ßë᫪¡«ßΓ¿ óßÑ ªÑ »«∩ó∩Γß∩).
-
- 5.7. î¡«ú«¼Ñα¡δÑ ¼áßß¿óδ.
-
- é ∩ºδ¬Ñ "C" »αÑñπß¼«ΓαÑ¡δ »α∩¼«πú«½∞¡δÑ ¼¡«ú«¼Ñα¡δÑ ¼áß-
- ß¿óδ, σ«Γ∩ ¡á »αá¬Γ¿¬Ñ ßπΘÑßΓóπÑΓ ΓÑ¡ñÑ¡µ¿∩ ¬ ¿σ º¡áτ¿Γѽ∞¡«
- í«½ÑÑ αÑñ¬«¼π ¿ß»«½∞º«óá¡¿ε »« ßαáó¡Ñ¡¿ε ß ¼áßß¿óἿ π¬áºá-
- ΓѽÑ⌐. é φΓ«¼ αáºñÑ½Ñ ¼δ αáßß¼«Γα¿¼ ¡Ñ¬«Γ«αδÑ ¿σ ßó«⌐ßΓóá.
- Éáßß¼«Γα¿¼ ºáñáτπ »αÑ«íαẫóá¡¿∩ ñ¡∩ ¼Ñß∩µá ó ñÑ¡∞ ú«ñá
- ¿ ¡á«í«α«Γ. ìá»α¿¼Ñα, 1-«Ñ ¼áαΓá ∩ó½∩ÑΓß∩ 60-¼ ñ¡Ñ¼ ¡Ñó¿ß«-
- ¬«ß¡«ú« ú«ñá ¿ 61-¼ ñ¡Ñ¼ ó¿ß«¬«ß¡«ú« ú«ñá. äáóá⌐ΓÑ óóÑñѼ
- ñóÑ Σπ¡¬µ¿¿ ñ½∩ óδ»«½¡Ñ¡¿∩ φΓ¿σ »αÑ«íαẫóá¡¿⌐: DAY_OF_YEAR
- »αÑ«íαáºπÑΓ ¼Ñß∩µ ¿ ñÑ¡∞ ó ñÑ¡∞ ú«ñá, á MONTH_DAY »αÑ«íαáºπ-
- ÑΓ ñÑ¡∞ ú«ñá ó ¼Ñß∩µ ¿ ñÑ¡∞. Æá¬ ¬á¬ φΓá »«ß½Ññ¡∩∩ Σπ¡¬µ¿∩
- ó«ºóαáΘáÑΓ ñóá º¡áτÑ¡¿∩, Γ« áαúπ¼Ñ¡Γδ ¼Ñß∩µá ¿ ñ¡∩ ñ«½ª¡δ
- íδΓ∞ π¬áºáΓѽ∩¼¿:
-
- MONTH_DAY(1977, 60, &M, &D)
-
- Å«½áúáÑΓ M αáó¡δ¼ 3 ¿ D αáó¡δ¼ 1 (1-«Ñ ¼áαΓá).
- ÄíÑ φΓ¿ Σπ¡¬µ¿¿ ¡πªñáεΓß∩ ó «ñ¡«⌐ ¿ Γ«⌐ ªÑ ¿¡Σ«α¼áµ¿«¡-
- ¡«⌐ Γáí½¿µÑ, π¬áºδóáεΘÑ⌐ τ¿ß½« ñ¡Ñ⌐ ó ¬áªñ«¼ ¼Ñß∩µÑ. Æá¬ ¬á¬
- τ¿ß½« ñ¡Ñ⌐ ó ¼Ñß∩µÑ ó ó¿ß«¬«ß¡«¼ ¿ ó ¡Ñó¿ß«¬«ß¡«¼ ú«ñπ «Γ½¿-
- τáÑΓß∩, Γ« »α«ΘÑ »αÑñßΓáó¿Γ∞ ¿σ ó ó¿ñÑ ñóπσ ßΓ᫬ ñóπ¼Ñα¡«ú«
- ¼áßß¿óá, τѼ »δΓáΓ∞ß∩ »α«ß½Ñª¿óáΓ∞ ó« óαѼ∩ óδτ¿ß½Ñ¡¿⌐, τΓ«
- ¿¼Ñ¡¡« »α«¿ßσ«ñ¿Γ ó ΣÑóαá½Ñ. é«Γ φëà ¼áßß¿ó ¿ óδ»«½¡∩εΘ¿Ñ
- φΓ¿ »αÑ«íαẫóá¡¿∩ Σπ¡¬µ¿¿:
-
- STATIC INT DAY_TAB[2][13] = {
- (0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
- (0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
- };
- - 113 -
-
- DAY_OF_YEAR(YEAR, MONTH, DAY) /* SET DAY OF YEAR */
- INT YEAR, MONTH, DAY; /* FROM MONTH & DAY */
- {
- INT I, LEAP;
- LEAP = YEAR%4 == 0 && YEAR%100 != 0 \!\! YEAR%400 == 0;
- FOR (I = 1; I < MONTH; I++)
- DAY += DAY_TAB[LEAP][I];
- RETURN(DAY);
- {
-
- MONTH_DAY(YEAR, YEARDAY, PMONTH, PDAY) /*SET MONTH,DAY */
- INT YEAR, YEARDAY, *PMONTH, *PDAY; /* FROM DAY OF YEAR */
- {
- LEAP = YEAR%4 == 0 && YEAR%100 != 0 \!\! YEAR%400 == 0;
- FOR (I = 1; YEARDAY > DAY_TAB[LEAP][I]; I++)
- YEARDAY -= DAY_TAB[LEAP][I];
- *PMONTH = I;
- *PDAY = YEARDAY;
- }
-
-
- îáßß¿ó DAY_TAB ñ«½ªÑ¡ íδΓ∞ ó¡ÑΦ¡¿¼ ¬á¬ ñ½∩ DAY_OF_YEAR, Γá¬
- ¿ ñ½∩ MONTH_DAY, »«ß¬«½∞¬π «¡ ¿ß»«½∞ºπÑΓß∩ «íÑ¿¼¿ φΓ¿¼¿ Σπ¡-
- ¬µ¿∩¼¿.
- îáßß¿ó DAY_TAB ∩ó½∩ÑΓß∩ »Ñαóδ¼ ñóπ¼Ñα¡δ¼ ¼áßß¿ó«¼, ß ¬«-
- Γ«αδ¼ ¼δ ¿¼ÑѼ ñѽ«. Å« «»αÑñѽѡ¿ε ó "C" ñóπ¼Ñα¡δ⌐ ¼áßß¿ó
- »« ßπΘÑßΓóπ ∩ó½∩ÑΓß∩ «ñ¡«¼Ñα¡δ¼ ¼áßß¿ó«¼, ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ ¬«-
- Γ«α«ú« ∩ó½∩ÑΓß∩ ¼áßß¿ó«¼. Å«φΓ«¼π ¿¡ñѬßδ ºá»¿ßδóáεΓß∩ ¬á¬
-
- DAY_TAB[I][J]
- á ¡Ñ
- DAY_TAB [I, J]
-
- ¬á¬ ó í«½∞Φ¿¡ßΓóÑ ∩ºδ¬«ó. é «ßΓá½∞¡«¼ ß ñóπ¼Ñα¡δ¼¿ ¼áßß¿óἿ
- ¼«ª¡« ó «ß¡«ó¡«¼ «íαáΘáΓ∞ß∩ Γᬿ¼ ªÑ «íαẫ¼, ¬á¬ ó ñαπú¿σ
- ∩ºδ¬áσ. ¥½Ñ¼Ñ¡Γδ σαá¡∩Γß∩ »« ßΓ᫬á¼, Γ.Ñ. Åα¿ «íαáΘÑ¡¿¿ ¬
- φ½Ñ¼Ñ¡Γá¼ ó »«α∩ñ¬Ñ ¿σ αẼÑΘÑ¡¿∩ ó »á¼∩Γ¿ íδßΓαÑÑ óßÑú« ¿º-
- ¼Ñ¡∩ÑΓß∩ ßá¼δ⌐ »αáóδ⌐ ¿¡ñѬß.
- îáßß¿ó ¿¡¿µ¿á½¿º¿απÑΓß∩ ß »«¼«Θ∞ε ß»¿ß¬á ¡áτá½∞¡δσ º¡á-
- τÑ¡¿⌐, ºá¬½ετÑ¡¡δσ ó Σ¿úπα¡δÑ ß¬«í¬¿; ¬áªñá∩ ßΓ᫬á ñóπ¼Ñα-
- ¡«ú« ¼áßß¿óá ¿¡¿µ¿á½¿º¿απÑΓß∩ ß««ΓóÑΓßΓóπεΘ¿¼ »«ñß»¿ß¬«¼. îδ
- »«¼ÑßΓ¿½¿ ó ¡áτὫ ¼áßß¿óá DAY_TAB ßΓ«½íѵ ¿º ¡π½Ñ⌐ ñ½∩ Γ«-
- ú«, τΓ«íδ ¡«¼Ñαá ¼Ñß∩µÑó ¿º¼Ñ¡∩½¿ß∞ ÑßΓÑßΓóÑ¡¡δ¼ «íαẫ¼ «Γ
- 1 ñ« 12, á ¡Ñ «Γ 0 ñ« 11. Æá¬ ¬á¬ ºá φ¬«¡«¼¿ε »á¼∩Γ¿ π ¡áß
- »«¬á ¡Ñ ¡áúαáªñáεΓ, Γᬫ⌐ ß»«ß«í »α«ΘÑ, τѼ »«ñú«¡¬á ¿¡ñѬ-
- ᮢ.
- àß½¿ ñóπ¼Ñα¡δ⌐ ¼áßß¿ó »ÑαÑñáÑΓß∩ Σπ¡¬µ¿¿, Γ« «»¿ßá¡¿Ñ
- ß««ΓóÑΓßΓóπεΘÑú« áαúπ¼Ñ¡Γá Σπ¡¬µ¿¿ ñ«½ª¡« ß«ñÑαªáΓ∞ ¬«½¿τÑß-
- Γó« ßΓ«½íµ«ó; ¬«½¿τÑßΓó« ßΓ᫬ ¡ÑßπΘÑßΓóÑ¡¡«, »«ß¬«½∞¬π, ¬á¬
- ¿ »αѪñÑ, Σá¬Γ¿τÑ߬¿ »ÑαÑñáÑΓß∩ π¬áºáΓѽ∞. é ¡áΦѼ ¬«¡¬αÑΓ-
- ¡«¼ ß½πτáÑ φΓ« π¬áºáΓѽ∞ «íΩÑ¬Γ«ó, ∩ó½∩εΘ¿σß∩ ¼áßß¿óἿ ¿º
-
- - 114 -
-
- 13 τ¿ßѽ Γ¿»á INT. Æá¬¿¼ «íαẫ¼, Ñß½¿ íδ ΓαÑí«óὫß∞ »ÑαÑ-
- ñáΓ∞ ¼áßß¿ó DAY_TAB Σπ¡¬µ¿¿ F, Γ« «»¿ßá¡¿Ñ ó F ¿¼Ñ½« íδ ó¿ñ:
-
- F(DAY_TAB)
- INT DAY_TAB[2][13];
- {
- ...
- }
-
- Æá¬ ¬á¬ ¬«½¿τÑßΓó« ßΓ᫬ ∩ó½∩ÑΓß∩ ¡ÑßπΘÑßΓóÑ¡¡δ¼, Γ« «»¿ßá-
- ¡¿Ñ áαúπ¼Ñ¡Γá ó F ¼«ú½« íδ íδΓ∞ Γᬿ¼:
-
- INT DAY_TAB[][13];
-
- ¿½¿ Γᬿ¼
-
- INT (*DAY_TAB)[13];
-
- ó ¬«Γ«α¼ ú«ó«α¿Γß∩, τΓ« áαúπ¼Ñ¡Γ ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¼áßß¿óá
- ¿º 13 µÑ½δσ. èαπú½δÑ ß¬«í¬¿ ºñÑß∞ ¡Ñ«íσ«ñ¿¼δ, »«Γ«¼π τΓ«
- ¬óáñαáΓ¡δÑ ß¬«í¬¿ [] ¿¼ÑεΓ í«½ÑÑ óδß«¬¿⌐ πα«óÑ¡∞ ßΓáαΦ¿¡ßΓ-
- óá, τѼ *; ¬á¬ ¼δ πó¿ñ¿¼ ó ß½ÑñπεΘѼ αáºñѽÑ, íѺ ¬απú½δσ
- ߬«í«¬
-
- INT *DAY_TAB[13];
-
- ∩ó½∩ÑΓß∩ «»¿ß᡿Ѽ ¼áßß¿óá ¿º 13 π¬áºáΓѽÑ⌐ ¡á µÑ½δÑ.
-
- 5.8. îáßß¿óδ π¬áºáΓѽÑ⌐; π¬áºáΓѽ¿ π¬áºáΓѽÑ⌐
- Æá¬ ¬á¬ π¬áºáΓѽ¿ ßἿ ∩ó½∩εΓß∩ »ÑαѼѡ¡δ¼¿, Γ« óδ 󻫽-
- ¡Ñ ¼«ú½¿ íδ «ª¿ñáΓ∞ ¿ß»«½∞º«óá¡¿∩ ¼áßß¿óá π¬áºáΓѽÑ⌐. ¥Γ«
- ñÑ⌐ßΓó¿Γѽ∞¡« Γá¬. îδ »α«¿½½εßΓα¿απѼ φΓ« ¡á»¿ß᡿Ѽ »α«ú-
- αá¼¼δ ß«αΓ¿α«ó¬¿ ó á½Σáó¿Γ¡«¼ »«α∩ñ¬Ñ ¡áí«αá ΓѬßΓ«óδσ
- ßΓ᫬, »αÑñѽ∞¡« π»α«ΘÑ¡¡«ú« óáα¿á¡Γá πΓ¿½¿Γδ SORT «»Ñαᵿ-
- «¡¡«⌐ ß¿ßΓѼ UNIX.
- é ú½áóÑ 3 ¼δ »α¿óѽ¿ Σπ¡¬µ¿ε ß«αΓ¿α«ó¬¿ »« Φѽ½π, ¬«Γ«-
- αá∩ π»«α∩ñ«τ¿óá½á ¼áßß¿ó µÑ½δσ. ¥Γ«Γ ªÑ á½ú«α¿Γ¼ íπñÑΓ αáí«-
- ΓáΓ∞ ¿ ºñÑß∞, σ«Γ∩ ΓÑ»Ñα∞ ¼δ íπñѼ ¿¼ÑΓ∞ ñѽ« ß« ßΓα«τ¬á¼¿
- ΓѬßΓá αẽ¿τ¡«⌐ ñ½¿¡δ, ¬«Γ«αδÑ, ó «Γ½¿τ¿Ñ «Γ µÑ½δσ, ¡Ñ½∞º∩
- ßαáó¡¿óáΓ∞ ¿½¿ »ÑαѼÑΘáΓ∞ ß »«¼«Θ∞ε «ñ¡«⌐ «»Ñαᵿ¿. îδ ¡πª-
- ñáѼß∩ ó Γᬫ¼ »αÑñßΓáó½Ñ¡¿¿ ñá¡¡δσ, ¬«Γ«α«Ñ íδ »«ºó«½∩½«
- πñ«í¡« ¿ φΣΣÑ¬Γ¿ó¡« «íαáíáΓδóáΓ∞ ßΓ᫬¿ ΓѬßΓá »ÑαѼѡ¡«⌐
- ñ½¿¡δ.
- çñÑß∞ ¿ 󫺡¿¬áεΓ ¼áßß¿óδ π¬áºáΓѽÑ⌐. àß½¿ »«ñ½ÑªáΘ¿Ñ
- ß«αΓ¿α«ó¬Ñ ß᫬¿ σαá¡∩Γß∩ «ñ¡á ºá ñαπú«⌐ ó ñ½¿¡¡«¼ ß¿¼ó«½∞-
- ¡«¼ ¼áßß¿óÑ (π»αáó½∩Ѽ«¼, ¡á»α¿¼Ñα, Σπ¡¬µ¿Ñ⌐ ALLOC), Γ« ¬
- ¬áªñ«⌐ ßΓα«¬Ñ ¼«ª¡« «íαáΓ¿Γ∞ß∩ ß »«¼«Θ∞ε π¬áºáΓѽ∩ ¡á ÑÑ
- »Ñαóδ⌐ ß¿¼ó«½. æá¼¿ π¬áºáΓѽ¿ ¼«ª¡« σαá¡¿Γ∞ ó ¼áßß¿óÑ. ñóÑ
- ßΓ᫬¿ ¼«ª¡« ßαáó¡¿Γ∞, »ÑαÑñáó ¿σ π¬áºáΓѽ¿ Σπ¡¬µ¿¿ STRCMP.
-
- - 115 -
-
- àß½¿ ñóÑ αáß»«½«ªÑ¡¡δÑ ó ¡Ñ»αáó¿½∞¡«¼ »«α∩ñ¬Ñ ßΓ᫬¿ ñ«½ª¡δ
- íδΓ∞ »ÑαÑßΓáó½Ñ¡δ, Γ« Σá¬Γ¿τÑ߬¿ »ÑαÑßΓáó½∩εΓß∩ π¬áºáΓѽ¿ ó
- ¼áßß¿óÑ π¬áºáΓѽÑ⌐, á ¡Ñ ßἿ ΓѬßΓδ ßΓ᫬. ¥Γ¿¼ ¿ß¬½ετáεΓß∩
- ßαáºπ ñóÑ ßó∩ºá¡¡δÑ »α«í½Ñ¼δ: ß½«ª¡«ú« π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε ¿
- í«½∞Φ¿σ ñ«»«½¡¿Γѽ∞¡δσ ºáΓαáΓ ¡á Σá¬Γ¿τÑ߬πε »ÑαÑßΓá¡«ó¬π
- ßΓ᫬.
- Åα«µÑßß ß«αΓ¿α«ó¬¿ ó¬½ετáÑΓ Γα¿ Φáúá:
-
- τΓÑ¡¿Ñ óßÑσ ßΓ᫬ óó«ñá
- ¿σ ß«αΓ¿α«ó¬á
- óδó«ñ ¿σ ó »αáó¿½∞¡«¼ »«α∩ñ¬Ñ
-
- èᬠ«íδτ¡«, ½πτΦÑ αáºñѽ¿Γ∞ »α«úαá¼¼π ¡á ¡Ñ߬«½∞¬« Σπ¡¬µ¿⌐ ó
- ß««ΓóÑΓßΓó¿¿ ß ÑßΓÑßΓóÑ¡¡δ¼ ñѽѡ¿Ñ¼ ºáñáτ¿ ¿ óδñѽ¿Γ∞ óÑñπ-
- Θπε Σπ¡¬µ¿ε, π»αáó½∩εΘπε αáí«Γ«⌐ óßÑ⌐ »α«úαá¼¼δ.
- äáóá⌐ΓÑ «Γ½«ª¿¼ ¡á ¡Ñ¬«Γ«α«Ñ óαѼ∩ αáßß¼«ΓαÑ¡¿Ñ Φáúá ß«αΓ¿-
- α«ó¬¿ ¿ ß«ßαÑñ«Γ«τ¿¼ß∩ ¡á ßΓαπ¬ΓπαÑ ñá¡¡δσ ¿ óó«ñÑ-óδó«ñÑ.
- öπ¡¬µ¿∩, «ßπΘÑßΓó½∩εΘá∩ óó«ñ, ñ«½ª¡á ¿ºó½Ñτ∞ ß¿¼ó«½δ ¬áªñ«⌐
- ßΓ᫬¿, ºá»«¼¡¿Γ∞ ¿σ ¿ »«ßΓα«¿Γ∞ ¼áßß¿ó π¬áºáΓѽÑ⌐ ßΓ᫬.
- Ä¡á ñ«½ª¡á Γá¬ªÑ »«ñßτ¿ΓáΓ∞ τ¿ß½« ßΓ᫬ ó« óó«ñÑ, Γᬠ¬á¬
- φΓá ¿¡Σ«α¼áµ¿∩ ¡Ñ«íσ«ñ¿¼á »α¿ ß«αΓ¿α«ó¬Ñ ¿ óδó«ñÑ. Γᬠ¬á¬
- Σπ¡¬µ¿∩ óó«ñá ó ß«ßΓ«∩¡¿¿ ß»αáó¿Γ∞ß∩ Γ«½∞¬« ß ¬«¡Ñτ¡δ¼ τ¿ß-
- ½«¼ óó«ñ¿¼δσ ßΓ᫬, ó ß½πτáÑ ß½¿Φ¬«¼ í«½∞Φ«ú« ¿σ τ¿ß½á «¡á
- ¼«ªÑΓ ó«ºóαáΘáΓ∞ ¡Ñ¬«Γ«α«Ñ τ¿ß½«, «Γ½¿τ¡«Ñ «Γ 󫺼«ª¡«ú«
- τ¿ß½á ßΓ᫬, ¡á»α¿¼Ñα -1. öπ¡¬µ¿∩ «ßπΘÑßΓó½∩εΘá∩ óδó«ñ, ñ«½-
- ª¡á »ÑτáΓáΓ∞ ßΓ᫬¿ ó Γ«¼ »«α∩ñ¬Ñ, ó ¬á¬«¼ «¡¿ »«∩ó½∩εΓß∩ ó
- ¼áßß¿óÑ π¬áºáΓѽÑ⌐.
-
- #DEFINE NULL 0
- #DEFINE LINES 100 /* MAX LINES TO BE SORTED */
-
- MAIN() /* SORT INPUT LINES */
- \(
- CHAR *LINEPTR[LINES]; /*POINTERS TO TEXT LINES */
- INT NLINES; /* NUMBER OF INPUT LINES READ */
-
- IF ((NLINES = READLINES(LINEPTR, LINES)) >= 0) \(
- SORT(LINEPTR, NLINES);
- WRITELINES(LINEPTR, NLINES);
- \)
- ELSE
- PRINTF("INPUT TOO BIG TO SORT\N");
- \)
-
- #DEFINE MAXLEN 1000
-
- - 116 -
-
- READLINES(LINEPTR, MAXLINES) /* READ INPUT LINES */
- CHAR *LINEPTR[]; /* FOR SORTING */
- INT MAXLINES;
- \(
- INT LEN, NLINES;
- CHAR *P, *ALLOC(), LINE[MAXLEN];
-
- NLINES = 0;
- WHILE ((LEN = GETLINE(LINE, MAXLEN)) > 0)
- IF (NLINES >= MAXLINES)
- RETURN(-1);
- ELSE IF ((P = ALLOC(LEN)) == NULL)
- RETURN (-1);
- ELSE \(
- LINE[LEN-1] = '\0'; /* ZAP NEWLINE */
- STRCPY(P,LINE);
- LINEPTR[NLINES++] = P;
- \)
- RETURN(NLINES);
- \)
-
- æ¿¼ó«½ ¡«ó«⌐ ßΓ᫬¿ ó ¬«¡µÑ ¬áªñ«⌐ ßΓ᫬¿ πñá½∩ÑΓß∩, ΓᬠτΓ«
- «¡ ¡¿¬á¬ ¡Ñ íπñÑΓ ó½¿∩Γ∞ ¡á »«α∩ñ«¬, ó ¬«Γ«α«¼ ß«αΓ¿απεΓß∩
- ßΓ᫬¿.
-
- WRITELINES(LINEPTR, NLINES) /* WRITE OUTPUT LINES */
- CHAR *LINEPTR[];
- INT NLINES;
- \(
- INT I;
-
- FOR (I = 0; I < NLINES; I++)
- PRINTF("%S\N", LINEPTR[I]);
- \)
-
- æπΘÑßΓóÑ¡¡« ¡«óδ¼ ó φΓ«⌐ »α«úαá¼¼Ñ ∩ó½∩ÑΓß∩ «»¿ßá¡¿Ñ
-
- CHAR *LINEPTR[LINES];
-
- ¬«Γ«α«Ñ ß««íΘáÑΓ, τΓ« LINEPTR ∩ó½∩ÑΓß∩ ¼áßß¿ó«¼ ¿º LINES
- φ½Ñ¼Ñ¡Γ«ó, ¬áªñδ⌐ ¿º ¬«Γ«αδσ - π¬áºáΓѽ∞ ¡á »ÑαѼѡ¡δÑ Γ¿»á
- CHAR. ¥Γ« «º¡áτáÑΓ, τΓ« LINEPTR[I] - π¬áºáΓѽ∞ ¡á ß¿¼ó«½δ, á
- *LINEPTR[I] ¿ºó½Ñ¬áÑΓ ß¿¼ó«½.
- Æá¬ ¬á¬ ßá¼ LINEPTR ∩ó½∩ÑΓß∩ ¼áßß¿ó«¼, ¬«Γ«αδ⌐ »ÑαÑñáÑΓ-
- ß∩ Σπ¡¬µ¿¿ WRITELINES, ß ¡¿¼ ¼«ª¡« «íαáΘáΓ∞ß∩ ¬á¬ ß π¬áºáΓÑ-
- ½Ñ¼ Γ«τ¡« Γᬿ¼ ªÑ «íαẫ¼, ¬á¬ ó ¡áΦ¿σ í«½ÑÑ αá¡¡¿σ »α¿¼Ñ-
-
- - 117 -
-
- αáσ. Æ«úñá »«ß½Ññ¡εε Σπ¡¬µ¿ε ¼«ª¡« »ÑαÑ»¿ßáΓ∞ ó ó¿ñÑ:
-
- WRITELINES(LINEPTR, NLINES) /* WRITE OUTPUT LINES */
- CHAR *LINEPTR[];
- INT NLINES;
- \(
- INT I;
-
- WHILE (--NLINES >= 0)
- PRINTF("%S\N", *LINEPTR++);
- \)
-
-
- ºñÑß∞ *LINEPTR ß¡áτá½á π¬áºδóáÑΓ ¡á »Ñαóπε ßΓ᫬π; ¬áªñ«Ñ
- πóѽ¿τÑ¡¿Ñ »ÑαÑñó¿úáÑΓ π¬áºáΓѽ∞ ¡á ß½ÑñπεΘπε ßΓ᫬π, ó Γ«
- óαѼ∩ ¬á¬ NLINES πíδóáÑΓ ñ« ¡π½∩.
- æ»αáó¿óΦ¿ß∞ ß óó«ñ«¼ ¿ óδó«ñ«¼, ¼δ ¼«ªÑ¼ »ÑαÑ⌐Γ¿ ¬ ß«α-
- Γ¿α«ó¬Ñ. »α«úαá¼¼á ß«αΓ¿α«ó¬¿ »« Φѽ½π ¿º ú½áóδ 3 ΓαÑíπÑΓ
- «τÑ¡∞ ¡Ñí«½∞Φ¿σ ¿º¼Ñ¡Ñ¡¿⌐: ñ«½ª¡δ íδΓ∞ ¼«ñ¿Σ¿µ¿α«óá¡δ «»¿ßá-
- ¡¿∩, á «»Ñαᵿ∩ ßαáó¡Ñ¡¿∩ óδñѽѡá ó «Γñѽ∞¡πε Σπ¡¬µ¿ε. Äß-
- ¡«ó¡«⌐ á½ú«α¿Γ¼ «ßΓáÑΓß∩ ΓѼ ªÑ ßá¼δ¼, ¿ φΓ« ñáÑΓ ¡á¼ «»αÑ-
- ñѽѡ¡πε πóÑαÑ¡¡«ßΓ∞, τΓ« «¡ »«-»αѪ¡Ñ¼π íπñÑΓ αáí«ΓáΓ∞.
-
- SORT(V, N) /* SORT STRINGS V[0] ... V[N-1] */
- CHAR *V[]; /* INTO INCREASING ORDER */
- INT N;
- \(
- INT GAP, I, J;
- CHAR *TEMP;
-
- FOR (GAP = N/2; GAP > 0; GAP /= 2)
- FOR (I = GAP; I < N; I++)
- FOR (J = I - GAP; J >= 0; J -= GAP) \(
- IF (STRCMP(V[J], V[J+GAP]) <= 0)
- BREAK;
- TEMP = V[J];
- V[J] = V[J+GAP];
- V[J+GAP] = TEMP;
- \)
- \)
-
-
- Æá¬ ¬á¬ ¬áªñδ⌐ «Γñѽ∞¡δ⌐ φ½Ñ¼Ñ¡Γ ¼áßß¿óá V (¿¼∩ Σ«α¼á½∞¡«ú«
- »áαá¼ÑΓαá, ß««ΓóÑΓßΓóπεΘÑú« LINEPTR) ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á
- ß¿¼ó«½δ, Γ« ¿ TEMP ñ«½ªÑ¡ íδΓ∞ π¬áºáΓѽѼ ¡á ß¿¼ó«½δ, τΓ«íδ
- ¿σ í佫 ¼«ª¡« ¬«»¿α«óáΓ∞ ñαπú ó ñαπúá.
- îδ ¡á»¿ß὿ φΓπ »α«úαá¼¼π »« 󫺼«ª¡«ßΓ¿ í«½ÑÑ »α«ßΓ« ß
- ΓѼ, τΓ«íδ »«íδßΓαÑÑ »«½πτ¿Γ∞ αáí«ΓáεΘπε »α«úαá¼¼π. Ä¡á ¼«ú-
- ½á íδ αáí«ΓáΓ∞ íδßΓαÑÑ, Ñß½¿, ¡á»α¿¼Ñα, óó«ñ¿Γ∞ ßΓ᫬¿ ¡Ñ-
- »«ßαÑñßΓóÑ¡¡« ó ¼áßß¿ó, π»αáó½∩Ѽδ⌐ Σπ¡¬µ¿Ñ⌐ READLINES, á ¡Ñ
- ¬«»¿α«óáΓ∞ ¿σ ó LINE, á ºáΓѼ ó ߬αδΓ«Ñ ¼ÑßΓ« ß »«¼«Θ∞ε Σπ¡-
-
- - 118 -
-
- ¬µ¿¿ ALLOC. ¡« ¼δ ßτ¿ΓáѼ, τΓ« íπñÑΓ αáºπ¼¡ÑÑ »Ñαó«¡áτá½∞¡δ⌐
- óáα¿á¡Γ ßñѽáΓ∞ í«½ÑÑ »α«ßΓδ¼ ñ½∩ »«¡¿¼á¡¿∩, á «í "φΣΣÑ¬Γ¿ó-
- ¡«ßΓ¿" »«ºáí«Γ¿Γ∞ß∩ »«ºñ¡ÑÑ. éßÑ ªÑ, »«-ó¿ñ¿¼«¼π, ß»«ß«í,
- »«ºó«½∩εΘ¿⌐ ñ«í¿Γ∞ß∩ ºá¼ÑΓ¡«ú« π߬«αÑ¡¿∩ αáí«Γδ »α«úαá¼¼δ
- ß«ßΓ«¿Γ ¡Ñ ó ¿ß¬½ετÑ¡¿¿ ½¿Φ¡Ñú« ¬«»¿α«óá¡¿∩ óó«ñ¿¼δσ ßΓ᫬.
- ü«½ÑÑ óÑα«∩Γ¡«, τΓ« ßπΘÑßΓóÑ¡¡«⌐ αạ¿µδ ¼«ª¡« ñ«ßΓ¿τ∞ ºá
- ßτÑΓ ºá¼Ñ¡δ ß«αΓ¿α«ó¬¿ »« Φѽ½π ¡á ¡ÑτΓ« ½πτΦÑÑ, ¡á»α¿¼Ñα,
- ¡á ¼ÑΓ«ñ íδßΓα«⌐ ß«αΓ¿α«ó¬¿.
- é ú½áóÑ 1 ¼δ «Γ¼Ñτ὿, τΓ« »«ß¬«½∞¬π ó µ¿¬½áσ WHILE ¿
- FOR »α«óÑα¬á «ßπΘÑßΓó½∩ÑΓß∩ ñ« Γ«ú«, ¬á¬ Γѽ« µ¿¬½á óδ»«½-
- ¡¿Γß∩ σ«Γ∩ íδ «ñ¿¡ αáº, φΓ¿ µ¿¬½δ «¬áºδóáεΓß∩ πñ«í¡δ¼¿ ñ½∩
- «íÑß»ÑτÑ¡¿∩ »αáó¿½∞¡«⌐ αáí«Γδ »α«úαá¼¼δ »α¿ úαá¡¿τ¡δσ º¡áτÑ-
- ¡¿∩σ, ó τáßΓ¡«ßΓ¿, ¬«úñá óó«ñá ó««íΘÑ ¡ÑΓ. ÄτÑ¡∞ »«½Ñº¡«
- »α«ß¼«ΓαÑΓ∞ óßÑ Σπ¡¬µ¿¿ »α«úαá¼¼δ ß«αΓ¿α«ó¬¿, αáºí¿αá∩ß∞,
- τΓ« »α«¿ßσ«ñ¿Γ, Ñß½¿ óó«ñ¿¼δ⌐ ΓѬßΓ «ΓßπΓßΓóπÑΓ.
- ô»α᪡ѡ¿Ñ 5-5.
- --------------
- ÅÑαÑ»¿Φ¿ΓÑ Σπ¡¬µ¿ε READLINES Γᬿ¼ «íαẫ¼, τΓ«íδ «¡á
- »«¼ÑΘá½á ßΓ᫬¿ ó ¼áßß¿ó, »αÑñ«ßΓáó½∩Ѽδ⌐ Σπ¡¬µ¿Ñ⌐ MAIN, á
- ¡Ñ ó »á¼∩Γ∞, π»αáó½∩Ѽπε «íαáΘÑ¡¿∩¼¿ ¬ Σπ¡¬µ¿¿ ALLOC. ìá-
- ߬«½∞¬« íδßΓαÑÑ ßΓá½á »α«úαá¼¼á?
-
- 5.9. ê¡¿µ¿á½¿ºáµ¿∩ ¼áßß¿ó«ó π¬áºáΓѽÑ⌐.
- Éáßß¼«Γα¿¼ ºáñáτπ ¡á»¿ßá¡¿∩ Σπ¡¬µ¿¿ MONTH_NAME(N), ¬«Γ«-
- αá∩ ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á ß¿¼ó«½∞¡πε ßΓ᫬π, ß«ñÑαªáΘπε
- ¿¼∩ N-ú« ¼Ñß∩µá. ¥Γ« ¿ñÑá½∞¡á∩ ºáñáτá ñ½∩ »α¿¼Ñ¡Ñ¡¿∩ ó¡πΓ-
- αÑ¡¡Ñú« ßΓáΓ¿τÑ߬«ú« ¼áßß¿óá. öπ¡¬µ¿∩ MONTH_NAME ß«ñÑনΓ
- ½«¬á½∞¡δ⌐ ¼áßß¿ó ß¿¼ó«½∞¡δσ ßΓ᫬ ¿ »α¿ «íαáΘÑ¡¿¿ ¬ ¡Ñ⌐ ó«º-
- óαáΘáÑΓ π¬áºáΓѽ∞ ¡πª¡«⌐ ßΓ᫬¿. ÆÑ¼á ¡áßΓ«∩ΘÑú« αáºñѽá -
- ¬á¬ ¿¡¿µ¿á½¿º¿α«óáΓ∞ φëà ¼áßß¿ó ¿¼Ñ¡.
-
- CHAR *MONTH_NAME(N) /* RETURN NAME OF N-TH MONTH */
- INT N;
- \(
- STATIC CHAR *NAME[] = \(
- "ILLEGAL MONTH",
- "JANUARY",
- "FEBRUARY",
- "MARCH",
- "APRIL",
- "MAY",
- "JUN",
- "JULY",
- "AUGUST",
- "SEPTEMBER",
- "OCTOBER",
- "NOVEMBER",
- "DECEMBER"
- \);
- RETURN ((N < 1 \!\! N > 12) ? NAME[0] : NAME[N]);
- \)
- - 119 -
-
- Ä»¿ßá¡¿Ñ ¼áßß¿óá π¬áºáΓѽÑ⌐ ¡á ß¿¼ó«½δ NAME Γ«τ¡« Γá¬«Ñ ªÑ,
- ¬á¬ á¡á½«ú¿τ¡«Ñ «»¿ßá¡¿Ñ LINEPTR ó »α¿¼ÑαÑ ß ß«αΓ¿α«ó¬«⌐.
- ê¡¿µ¿á½¿ºáΓ«α«¼ ∩ó½∩ÑΓß∩ »α«ßΓ« ß»¿ß«¬ ß¿¼ó«½∞¡δσ ßΓ᫬;
- ¬áªñá∩ ßΓα«¬á »α¿ßóá¿óáÑΓß∩ ß««ΓóÑΓßΓóπεΘÑ⌐ »«º¿µ¿¿ ó ¼áßß¿-
- óÑ. ü«½ÑÑ Γ«τ¡«, ß¿¼ó«½δ I-«⌐ ßΓ᫬¿ »«¼ÑΘáεΓß∩ ó ¬á¬«Ñ-Γ«
- ¿¡«Ñ ¼ÑßΓ«, á ÑÑ π¬áºáΓѽ∞ σαá¡¿Γß∩ ó NAME[I]. ū߬«½∞¬π
- αẼÑα ¼áßß¿óá NAME ¡Ñ π¬áºá¡, ¬«¼»¿½∩Γ«α ßá¼ »«ñßτ¿ΓδóáÑΓ
- ¬«½¿τÑßΓó« ¿¡¿µ¿á½¿ºáΓ«α«ó ¿ ß««ΓóÑΓßΓóÑ¡¡« πßΓá¡áó½¿óáÑΓ
- »αáó¿½∞¡«Ñ τ¿ß½«.
-
- 5.10. ô¬áºáΓѽ¿ ¿ ¼¡«ú«¼Ñα¡δÑ ¼áßß¿óδ
- ìáτ¿¡áεΘ¿Ñ ¿ºπτáΓ∞ ∩ºδ¬ "ß" ¿¡«úñá ßΓá¡«ó∩Γß∩ ó Γπ»¿¬
- »ÑαÑñ ó«»α«ß«¼ « αẽ¿τ¿¿ ¼Ñªñπ ñóπ¼Ñα¡δ¼ ¼áßß¿ó«¼ ¿ ¼áßß¿-
- ó«¼ π¬áºáΓѽÑ⌐, Γᬿ¼ ¬á¬ NAME ó »α¿óÑñÑ¡¡«¼ óδΦÑ »α¿¼ÑαÑ.
- àß½¿ ¿¼ÑεΓß∩ «»¿ßá¡¿∩
-
- INT A[10][10];
- INT *B[10];
-
- Γ« A ¿ B ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ßσ«ñ¡δ¼ «íαẫ¼ ó Γ«¼ ß¼δß½Ñ,
- τΓ« ¬á¬ A[5][5], Γᬠ¿ B[5][5] ∩ó½∩εΓß∩ ºá¬«¡¡δ¼¿ ßßδ½¬á¼¿
- ¡á «Γñѽ∞¡«Ñ τ¿ß½« Γ¿»á INT. ì« A - ¡áßΓ«∩Θ¿⌐ ¼áßß¿ó: »«ñ
- ¡Ñú« «Γó«ñ¿Γß∩ 100 ∩τÑѬ »á¼∩Γ¿ ¿ ñ½∩ ¡áσ«ªñÑ¡¿∩ ½εí«ú« π¬á-
- ºá¡¡«ú« φ½Ñ¼Ñ¡Γá »α«ó«ñ∩Γß∩ «íδτ¡δÑ óδτ¿ß½Ñ¡¿∩ ß »α∩¼«πú«½∞-
- ¡δ¼¿ ¿¡ñѬßἿ. ä½∩ B, «ñ¡á¬«, «»¿ßá¡¿Ñ óδñѽ∩ÑΓ Γ«½∞¬« 10
- π¬áºáΓѽÑ⌐; ¬áªñδ⌐ π¬áºáΓѽ∞ ñ«½ªÑ¡ íδΓ∞ πßΓá¡«ó½Ñ¡ Γá¬,
- τΓ«íδ «¡ π¬áºδóá½ ¡á ¼áßß¿ó µÑ½δσ. Ñß½¿ »αÑñ»«½«ª¿Γ∞, τΓ«
- ¬áªñδ⌐ ¿º ¡¿σ π¬áºδóáÑΓ ¡á ¼áßß¿ó ¿º 10 φ½Ñ¼Ñ¡Γ«ó, Γ« Γ«úñá
- úñÑ-Γ« íπñÑΓ «ΓóÑñÑ¡« 100 ∩τÑѬ »á¼∩Γ¿ »½εß ÑΘÑ ñÑß∩Γ∞ ∩τÑѬ
- ñ½∩ π¬áºáΓѽÑ⌐. Æá¬¿¼ «íαẫ¼, ¼áßß¿ó π¬áºáΓѽÑ⌐ ¿ß»«½∞ºπÑΓ
- ¡Ñ߬«½∞¬« í«½∞Φ¿⌐ «íΩѼ »á¼∩Γ¿ ¿ ¼«ªÑΓ ΓαÑí«óáΓ∞ ¡á½¿τ¿Ñ ∩ó-
- ¡«ú« Φáúá ¿¡¿µ¿á½¿ºáµ¿¿. ì« »α¿ φΓ«¼ 󫺡¿¬áεΓ ñóá »αÑ¿¼π-
- ΘÑßΓóá: ñ«ßΓπ» ¬ φ½Ñ¼Ñ¡Γπ «ßπΘÑßΓó½∩ÑΓß∩ ¬«ßóÑ¡¡« τÑαѺ π¬á-
- ºáΓѽ∞, á ¡Ñ »«ßαÑñßΓó«¼ π¼¡«ªÑ¡¿∩ ¿ ß½«ªÑ¡¿∩, ¿ ßΓ᫬¿ ¼áß-
- ß¿óá ¼«úπΓ ¿¼ÑΓ∞ αẽ¿τ¡δÑ ñ½¿¡δ. ¥Γ« «º¡áτáÑΓ, τΓ« ¬áªñδ⌐
- φ½Ñ¼Ñ¡Γ B ¡Ñ ñ«½ªÑ¡ «í∩ºáΓѽ∞¡« π¬áºδóáΓ∞ ¡á óÑ¬Γ«α ¿º 10
- φ½Ñ¼Ñ¡Γ«ó; ¡Ñ¬«Γ«αδÑ ¼«úπΓ π¬áºδóáΓ∞ ¡á óÑ¬Γ«α ¿º ñóπσ φ½Ñ-
- ¼Ñ¡Γ«ó, ñαπú¿Ñ - ¿º ñóáñµáΓ¿, á ΓαÑΓ∞¿ ¼«úπΓ ó««íΘÑ ¡¿ ¡á
- τΓ« ¡Ñ π¬áºδóáΓ∞.
- ò«Γ∩ ¼δ óѽ¿ φΓ« «íßπªñÑ¡¿Ñ ó ΓÑନ¡áσ µÑ½δσ, ¡Ñß«¼¡Ñ¡-
- ¡«, τáΘÑ óßÑú« ¼áßß¿óδ π¬áºáΓѽÑ⌐ ¿ß»«½∞ºπεΓß∩ Γá¬, ¬á¬ ¼δ
- »α«ñѼ«¡ßΓα¿α«ó὿ ¡á Σπ¡¬µ¿¿ MONTH_NAME, - ñ½∩ σαá¡Ñ¡¿∩
- ß¿¼ó«½∞¡δσ ßΓ᫬ αẽ¿τ¡«⌐ ñ½¿¡δ.
- ô»α᪡ѡ¿Ñ 5-6.
- --------------
- ÅÑαÑ»¿Φ¿ΓÑ Σπ¡¬µ¿¿ DAY_OF_YEAR ¿ MONTH_DAY, ¿ß»«½∞ºπ∩
- ó¼ÑßΓ« ¿¡ñѬßᵿ¿ π¬áºáΓѽ¿.
-
- - 120 -
-
- 5.11. 諼á¡ñ¡á∩ ßΓ᫬á áαúπ¼Ñ¡Γ«ó
-
- æ¿ßΓѼ¡δÑ ßαÑñßΓóá, ¡á ¬«Γ«αδÑ «»¿αáÑΓß∩ αÑ὿ºáµ¿∩ ∩ºδ-
- ¬á "ß", »«ºó«½∩εΓ »ÑαÑñáóáΓ∞ ¬«¼á¡ñ¡πε ßΓ᫬π áαúπ¼Ñ¡Γ«ó ¿½¿
- »áαá¼ÑΓα«ó ¡áτ¿¡áεΘÑ⌐ óδ»«½¡∩Γ∞ß∩ »α«úαá¼¼Ñ. è«úñá Σπ¡¬µ¿∩
- MAIN óδºδóáÑΓß∩ ¬ ¿ß»«½¡Ñ¡¿ε, «¡á óδºδóáÑΓß∩ ß ñóπ¼∩ áαúπ-
- ¼Ñ¡ΓἿ. ÅÑαóδ⌐ áαúπ¼Ñ¡Γ (πß½«ó¡« ¡áºδóáѼδ⌐ ARGC) π¬áºδóáÑΓ
- τ¿ß½« áαúπ¼Ñ¡Γ«ó ó ¬«¼á¡ñ¡«⌐ ßΓ᫬Ñ, ß ¬«Γ«α묨 »α«¿ßσ«ñ¿Γ
- «íαáΘÑ¡¿Ñ ¬ »α«úαá¼¼Ñ; óΓ«α«⌐ áαúπ¼Ñ¡Γ (ARGV) ∩ó½∩ÑΓß∩ π¬á-
- ºáΓѽѼ ¡á ¼áßß¿ó ß¿¼ó«½∞¡δσ ßΓ᫬, ß«ñÑαªáΘ¿σ φΓ¿ áαúπ¼Ñ¡-
- Γδ, »« «ñ¡«¼π ó ßΓ᫬Ñ. Éáí«Γá ß Γᬿ¼¿ ßΓα«¬á¼¿ - φΓ« «íδτ-
- ¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ¼¡«ú«πα«ó¡Ñóδσ π¬áºáΓѽÑ⌐.
- æá¼πε »α«ßΓπε ¿½½εßΓαᵿε φΓ«⌐ 󫺼«ª¡«ßΓ¿ ¿ ¡Ñ«íσ«ñ¿¼δσ
- »α¿ φΓ«¼ «»¿ßá¡¿⌐ ñáÑΓ »α«úαá¼¼á ECHO, ¬«Γ«αá∩ »α«ßΓ« »Ñτá-
- ΓáÑΓ ó «ñ¡π ßΓ᫬π áαúπ¼Ñ¡Γδ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿, αáºñѽ∩∩ ¿σ
- »α«íѽἿ. Æá¬¿¼ «íαẫ¼, Ñß½¿ ñá¡á ¬«¼á¡ñá
-
- ECHO HELLO, WORLD
-
- Γ« óδσ«ñ«¼ íπñÑΓ
-
- HELLO, WORLD
-
- »« ß«ú½áΦÑ¡¿ε ARGV[0] ∩ó½∩ÑΓß∩ ¿¼Ñ¡Ñ¼, »« ¬«Γ«α«¼π óδºδóáÑΓ-
- ß∩ »α«úαá¼¼á, ΓᬠτΓ« ARGC »« ¼Ñ¡∞ΦÑ⌐ ¼ÑαÑ αáóÑ¡ 1. é »α¿óÑ-
- ñÑ¡¡«¼ óδΦÑ »α¿¼ÑαÑ ARGC αáóÑ¡ 3, á ARGV[0], ARGV[1] ¿
- ARGV[2] αáó¡δ ß««ΓóÑΓßΓóÑ¡¡« "ECHO", "HELLO," ¿ "WORLD".
- ÅÑαóδ¼ Σá¬Γ¿τÑ߬¿¼ áúπ¼Ñ¡Γ«¼ ∩ó½∩ÑΓß∩ ARGV[1], á »«ß½Ññ¡¿¼ -
- ARGV[ARGC-1]. àß½¿ ARGC αáóÑ¡ 1, Γ« ºá ¿¼Ñ¡Ñ¼ »α«úαá¼¼δ ¡Ñ
- ß½ÑñπÑΓ ¡¿¬á¬«⌐ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ áαúπ¼Ñ¡Γ«ó. éßÑ φΓ« »«¬áºá-
- ¡« ó ECHO:
-
- MAIN(ARGC, ARGV) /* ECHO ARGUMENTS; 1ST VERSION */
- INT ARGC;
- CHAR *ARGV[];
- \(
- INT I;
-
- FOR (I = 1; I < ARGC; I++)
- PRINTF("%S%C", ARGV[I], (I<ARGC-1) ? ' ' : '\N');
- \)
-
- ū߬«½∞¬π ARGV ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á ¼áßß¿ó π¬áºáΓѽÑ⌐, Γ«
- ßπΘÑßΓóπÑΓ ¡Ñ߬«½∞¬« ß»«ß«í«ó ¡á»¿ßá¡¿∩ φΓ«⌐ »α«úαá¼¼δ, ¿ß-
- »«½∞ºπεΘ¿σ αáí«Γπ ß π¬áºáΓѽѼ, á ¡Ñ ß ¿¡ñѬßᵿÑ⌐ ¼áßß¿óá.
- îδ »α«ñѼ«¡ßΓα¿απѼ ñóá óáα¿á¡Γá.
-
- MAIN(ARGC, ARGV) /* ECHO ARGUMENTS; 2ND VERSION */
- INT ARGC;
- CHAR *ARGV[];
- \(
- WHILE (--ARGC > 0)
- PRINTF("%S%C",*++ARGV, (ARGC > 1) ? ' ' : '\N');
- \)
- - 121 -
-
- Æá¬ ¬á¬ ARGV ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á ¡áτὫ ¼áßß¿óá ßΓ᫬-áα-
- úπ¼Ñ¡Γ«ó, Γ«, πóѽ¿τ¿ó Ñú« ¡á 1 (++ARGV), ¼δ óδ¡πªñáѼ Ñú«
- π¬áºδóáΓ∞ ¡á »«ñ½¿¡¡δ⌐ áαúπ¼Ñ¡Γ ARGV[1], á ¡Ñ ¡á ARGV[0].
- èáªñ«Ñ »«ß½ÑñπεΘÑÑ πóѽ¿τÑ¡¿Ñ »ÑαÑñó¿úáÑΓ Ñú« ¡á ß½ÑñπεΘ¿⌐
- áαúπ¼Ñ¡Γ; »α¿ φΓ«¼ *ARGV ßΓá¡«ó¿Γß∩ π¬áºáΓѽѼ ¡á φëà áαúπ-
- ¼Ñ¡Γ. «ñ¡«óαѼѡ¡« óѽ¿τ¿¡á ARGC π¼Ñ¡∞ΦáÑΓß∩; ¬«úñá «¡á «í-
- αáΓ¿Γß∩ ó ¡π½∞, óßÑ áαúπ¼Ñ¡Γδ íπñπΓ πªÑ ¡á»ÑτáΓá¡δ.
- äαπú«⌐ óáα¿á¡Γ:
-
- MAIN(ARGC, ARGV) /* ECHO ARGUMENTS; 3RD VERSION */
- INT ARGC;
- CHAR *ARGV[];
- \(
- WHILE (--ARGC > 0)
- PRINTF((ARGC > 1) ? "%S" : "%S\N", *++ARGV);
- \)
-
- ¥Γá óÑαß¿∩ »«¬áºδóáÑΓ, τΓ« áαúπ¼Ñ¡Γ Σ«α¼áΓá Σπ¡¬µ¿¿ PRINTF
- ¼«ªÑΓ íδΓ∞ óδαáªÑ¡¿Ñ¼, Γ«τ¡« ΓᬠªÑ, ¬á¬ ¿ ½εí«⌐ ñαπú«⌐. Æá-
- ¬«Ñ ¿ß»«½∞º«óá¡¿Ñ óßΓαÑτáÑΓß∩ ¡Ñ «τÑ¡∞ τáßΓ«, ¡« Ñú« óßÑ ªÑ
- ßΓ«¿Γ ºá»«¼¡¿Γ∞.
- èᬠóΓ«α«⌐ »α¿¼Ñα, ñáóá⌐ΓÑ ó¡ÑßѼ ¡Ñ¬«Γ«αδÑ πß«óÑαΦÑ¡ßΓ-
- ó«óá¡¿∩ ó »α«úαá¼¼π «Γδ߬᡿∩ ºáñá¡¡«⌐ ¬«¼í¿¡áµ¿¿ ß¿¼ó«½«ó
- ¿º ú½áóδ 4. àß½¿ óδ »«¼¡¿ΓÑ, ¼δ »«¼ÑßΓ¿½¿ ¿ß¬«¼πε ¬«¼í¿¡áµ¿ε
- ú½πí«¬« ó¡πΓα∞ »α«úαá¼¼δ, τΓ« «τÑó¿ñ¡« ∩ó½∩ÑΓß∩ ß«óÑαΦÑ¡¡«
- ¡Ñπñ«ó½ÑΓó«α¿Γѽ∞¡δ¼. æ½Ññπ∩ πΓ¿½¿ΓÑ GREP ß¿ßΓѼδ UNIX, ñá-
- óá⌐ΓÑ ¿º¼Ñ¡¿¼ »α«úαá¼¼π Γá¬, τΓ«íδ φΓá ¬«¼í¿¡áµ¿∩ π¬áºδóá-
- ½áß∞ ó ¬áτÑßΓóÑ »Ñαó«ú« áαúπ¼Ñ¡Γá ßΓ᫬¿.
-
- #DEFINE MAXLINE 1000
-
- MAIN(ARGC, ARGV) /* FIND PATTERN FROM FIRST ARGUMENT */
- INT ARGC;
- CHAR *ARGV[];
- \(
- CHAR LINE[MAXLINE];
-
- IF (ARGC != 2)
- PRINTF ("USAGE: FIND PATTERN\N");
- ELSE
- WHILE (GETLINE(LINE, MAXLINE) > 0)
- IF (INDEX(LINE, ARGV[1] >= 0)
- PRINTF("%S", LINE);
- \)
-
- ÆÑ»Ñα∞ ¼«ªÑΓ íδΓ∞ αáºó¿Γá «ß¡«ó¡á∩ ¼«ñѽ∞, ¿½½εßΓα¿απε-
- Θá∩ ñá½∞¡Ñ⌐ΦÑÑ ¿ß»«½∞º«óá¡¿Ñ π¬áºáΓѽÑ⌐. ÅαÑñ»«½«ª¿¼, τΓ«
- ¡á¼ ¡áñ« »αÑñπß¼«ΓαÑΓ∞ ñóá ¡Ñ«í∩ºáΓѽ∞¡δσ áαúπ¼Ñ¡Γá. Äñ¿¡
- πΓóÑαªñáÑΓ: "¡á»ÑτáΓáΓ∞ óßÑ ßΓ᫬¿ ºá ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ, ¬«Γ«-
- αδÑ ß«ñÑαªáΓ ñá¡¡πε ¬«¼í¿¡áµ¿ε", óΓ«α«⌐ ú½áß¿Γ: "»ÑαÑñ ¬áª-
- ñ«⌐ óδó«ñ¿¼«⌐ ßΓ᫬«⌐ ñ«½ªÑ¡ »ÑτáΓáΓ∞ß∩ ÑÑ ¡«¼Ñα".
-
- - 122 -
-
- ÄíΘÑ»α¿¡∩Γδ¼ ß«ú½áΦÑ¡¿Ñ¼ ó "ß"-»α«úαá¼¼áσ ∩ó½∩ÑΓß∩ Γ«,
- τΓ« áαúπ¼Ñ¡Γ, ¡áτ¿¡áεΘ¿⌐ß∩ ß« º¡á¬á ¼¿¡πß, óó«ñ¿Γ ¡Ñ«í∩ºá-
- Γѽ∞¡δ⌐ »α¿º¡á¬ ¿½¿ »áαá¼ÑΓα. àß½¿ ¼δ, ñ½∩ Γ«ú«, τΓ«íδ ß««í-
- Θ¿Γ∞ «í ¿¡óÑαß¿¿, óδíÑαѼ -X, á ñ½∩ π¬áºá¡¿∩ « ¡π¼Ñαᵿ¿
- ¡πª¡δσ ßΓ᫬ óδíÑαѼ -N("¡«¼Ñα"), Γ« ¬«¼á¡ñá
-
- FIND -X -N THE
-
- »α¿ óσ«ñ¡δσ ñá¡¡δσ
-
- NOW IS THE TIME
- FOR ALL GOOD MEN
- TO COME TO THE AID
- OF THEIR PARTY.
-
- 䫽ª¡á óδñáΓ∞
-
- 2:FOR ALL GOOD MEN
-
- ìπª¡«, τΓ«íδ ¡Ñ«í∩ºáΓѽ∞¡δÑ áαúπ¼Ñ¡Γδ ¼«ú½¿ αáß»«½áúáΓ∞-
- ß∩ ó »α«¿ºó«½∞¡«¼ »«α∩ñ¬Ñ, ¿ τΓ«íδ «ßΓá½∞¡á∩ τáßΓ∞ »α«úαá¼¼δ
- ¡Ñ ºáó¿ßÑ½á «Γ ¬«½¿τÑßΓóá Σá¬Γ¿τÑ߬¿ »α¿ßπΓßΓóπεΘ¿σ áαúπ¼Ñ¡-
- Γ«ó. ó τáßΓ¡«ßΓ¿, ó맮ó Σπ¡¬µ¿¿ INDEX ¡Ñ ñ«½ªÑ¡ ß«ñÑαªáΓ∞
- ßß佬π ¡á ARGV[2], ¬«úñá »α¿ßπΓßΓóπÑΓ «ñ¿¡ ¡Ñ«í∩ºáΓѽ∞¡δ⌐
- áαúπ¼Ñ¡Γ, ¿ ¡á ARGV[1], ¬«úñá Ñú« ¡ÑΓ. ü«½ÑÑ Γ«ú«, ñ½∩ »«½∞-
- º«óáΓѽÑ⌐ πñ«í¡«, τΓ«íδ ¡Ñ«í∩ºáΓѽ∞¡δÑ áαúπ¼Ñ¡Γδ ¼«ª¡« í佫
- «íΩÑñ¿¡¿Γ∞ ó ó¿ñÑ:
-
- FIND -NX THE
-
- ó«Γ ßá¼á »α«úαá¼¼á:
-
-
- #DEFINE MAXLINE 1000
-
- MAIN(ARGC, ARGV) /* FIND PATTERN FROM FIRST ARGUMENT */
- INT ARGC;
- CHAR *ARGV[];
- \(
- CHAR LINE[MAXLINE], *S;
- LONG LINENO = 0;
- INT EXCEPT = 0, NUMBER = 0;
- WHILE (--ARGC > 0 && (*++ARGV)[0] == '-')
- FOR (S = ARGV[0]+1; *S != '\0'; S++)
- SWITCH (*S) \(
- CASE 'X':
- EXCEPT = 1;
- BREAK;
-
- - 123 -
-
- CASE 'N':
- NUMBER = 1;
- BREAK;
- DEFAULT:
- PRINTF("FIND: ILLEGAL OPTION %C\N", *S);
- ARGC = 0;
- BREAK;
- \)
- IF (ARGC != 1)
- PRINTF("USAGE: FIND -X -N PATTERN\N");
- ELSE
- WHILE (GETLINÑ(LINE, MAXLINE) > 0) \(
- LINENO++;
- IF ((INDEX(LINE, *ARGV) >= 0) != EXCEPT) \
- IF (NUMBER)
- PRINTF("%LD: ", LINENO);
- PRINTF("%S", LINE);
- \)
- \)
- \)
-
- Çαúπ¼Ñ¡Γ ARGV πóѽ¿τ¿óáÑΓß∩ »ÑαÑñ ¬áªñδ¼ ¡Ñ«í∩ºáΓѽ∞¡δ¼
- áαúπ¼Ñ¡Γ«¼, ó Γ« óαѼ∩ ¬á¬ áαúπ¼Ñ¡Γ ARGC π¼Ñ¡∞ΦáÑΓß∩. Ñß½¿
- ¡ÑΓ «Φ¿í«¬, Γ« ó ¬«¡µÑ µ¿¬½á óѽ¿τ¿¡á ARGC ñ«½ª¡á αáó¡∩Γ∞ß∩
- 1, á *ARGV ñ«½ª¡« π¬áºδóáΓ∞ ¡á ºáñá¡¡πε ¬«¼í¿¡áµ¿ε. ÄíαáΓ¿ΓÑ
- ó¡¿¼á¡¿Ñ ¡á Γ«, τΓ« *++ARGV ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ áαúπ¼Ñ¡Γ¡«⌐
- ßΓ᫬¿; (*++ARGV)[0] - ÑÑ »Ñαóδ⌐ ß¿¼ó«½. èαπú½δÑ ß¬«í¬¿
- ºñÑß∞ ¡Ñ«íσ«ñ¿¼δ, »«Γ«¼π τΓ« íѺ ¡¿σ óδαáªÑ¡¿Ñ íδ »α¿¡∩½«
- ß«óÑαΦÑ¡¡« «Γ½¿τ¡δ⌐ (¿ ¡Ñ»αáó¿½∞¡δ⌐) ó¿ñ *++(ARGV[0]). äαπ-
- ú«⌐ »αáó¿½∞¡«⌐ Σ«α¼«⌐ íδ½á íδ **++ARGV.
- ô»α᪡ѡ¿Ñ 5-7.
- --------------
- ìá»¿Φ¿ΓÑ »α«úαá¼¼π ADD, óδτ¿ß½∩εΘπε «íαáΓ¡«Ñ »«½∞߬«Ñ
- óδαáªÑ¡¿Ñ ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿. ìá»α¿¼Ñα,
-
- ADD 2 3 4 + *
-
- óδτ¿ß½∩ÑΓ 2*(3+4).
-
-
- ô»α᪡ѡ¿Ñ 5-8.
- --------------
- î«ñ¿Σ¿µ¿απ⌐ΓÑ »α«úαá¼¼δ ENTAB ¿ DETAB (π¬áºá¡¡δÑ ó ¬á-
- τÑßΓóÑ π»α᪡ѡ¿⌐ ó ú½áóÑ 1) Γá¬, τΓ«íδ «¡¿ »«½πτ὿ ß»¿ß«¬
- Γáíπ½∩µ¿«¡¡δσ «ßΓá¡«ó«¬ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γ«ó. àß½¿ áαúπ¼Ñ¡-
- Γδ «ΓßπΓßΓóπεΓ, ¿ß»«½∞ºπ⌐ΓÑ ßΓá¡ñáαΓ¡πε πßΓá¡«ó¬π Γáíπ½∩µ¿⌐.
- ô»α᪡ѡ¿Ñ 5-9.
- --------------
- ÉáßΦ¿α∞ΓÑ ENTAB ¿ DETAB Γᬿ¼ «íαẫ¼, τΓ«íδ «¡¿ ó«ß»α¿-
- ¡¿¼á½¿ ß«¬αáΘÑ¡¡πε ¡«Γᵿε
-
- ENTAB M +N
-
- - 124 -
-
- «º¡áτáεΘπε Γáíπ½∩µ¿«¡¡δÑ «ßΓá¡«ó¬¿ τÑαѺ ¬áªñδÑ N ßΓ«½íµ«ó,
- ¡áτ¿¡á∩ ß« ßΓ«½íµá M. éδíÑα¿ΓÑ πñ«í¡«Ñ (ñ½∩ »«½∞º«óáΓѽ∩)
- »«óÑñÑ¡¿Ñ Σπ¡¬µ¿¿ »« π¼«½τá¡¿ε.
- ô»α᪡ѡ¿Ñ 5-10.
- ---------------
- ìá»¿Φ¿ΓÑ »α«úαá¼¼π ñ½∩ Σπ¡¬µ¿¿ TAIL, »ÑτáΓáεΘÑ⌐ »«ß½Ññ-
- ¡¿Ñ N ßΓ᫬ ¿º ßó«Ñú« Σá⌐½á óó«ñá. ÅπßΓ∞ »« π¼«½τá¡¿ε N αáó-
- ¡« 10, ¡« φΓ« τ¿ß½« ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡« ß »«¼«Θ∞ε ¡Ñ«í∩ºá-
- Γѽ∞¡«ú« áαúπ¼Ñ¡Γá, ΓᬠτΓ«
-
- TAIL -N
-
- »ÑτáΓáÑΓ »«ß½Ññ¡¿Ñ N ßΓ᫬. »α«úαá¼¼á ñ«½ª¡á ñÑ⌐ßΓó«óáΓ∞ αá-
- µ¿«¡á½∞¡«, ¬á¬¿¼¿ íδ ¡Ñαáºπ¼¡δ¼¿ ¡¿ í뫨 íδ óó«ñ ¿½¿ º¡áτÑ-
- ¡¿Ñ N. æ«ßΓáó∞ΓÑ »α«úαá¼¼π Γá¬, τΓ«íδ «¡á «»Γ¿¼á½∞¡δ¼ «íαá-
- º«¼ ¿ß»«½∞º«óá½á ñ«ßΓπ»¡πε »á¼∩Γ∞: ßΓ᫬¿ ñ«½ª¡δ σαá¡¿Γ∞ß∩,
- ¬á¬ ó Σπ¡¬µ¿¿ SORT, á ¡Ñ ó ñóπ¼Ñα¡«¼ ¼áßß¿óÑ Σ¿¬ß¿α«óá¡¡«ú«
- αẼÑαá.
-
- 5.12. ô¬áºáΓѽ¿ ¡á Σπ¡¬µ¿¿
- é ∩ºδ¬Ñ "ß" ßἿ Σπ¡¬µ¿¿ ¡Ñ ∩ó½∩εΓß∩ »ÑαѼѡ¡δ¼¿, ¡«
- ¿¼ÑÑΓß∩ 󫺼«ª¡«ßΓ∞ «»αÑñѽ¿Γ∞ π¬áºáΓѽ∞ ¡á Σπ¡¬µ¿ε, ¬«Γ«αδ⌐
- ¼«ª¡« «íαáíáΓδóáΓ∞, »ÑαÑñáóáΓ∞ ñαπú¿¼ Σπ¡¬µ¿∩¼, »«¼ÑΘáΓ∞ ó
- ¼áßß¿óδ ¿ Γ.ñ. îδ »α«¿½½εßΓα¿απѼ φΓ«, »α«óÑñ∩ ¼«ñ¿Σ¿¬áµ¿ε
- ¡á»¿ßá¡¡«⌐ αá¡ÑÑ »α«úαá¼¼δ ß«αΓ¿α«ó¬¿ Γá¬, τΓ«íδ »α¿ ºáñá¡¿¿
- ¡Ñ«í∩ºáΓѽ∞¡«ú« áαúπ¼Ñ¡Γá -N «¡á íδ ß«αΓ¿α«óá½á ßΓ᫬¿ óó«ñá
- τ¿ß½Ñ¡¡«, á ¡Ñ ½Ñ¬ß¿¬«úαáΣ¿τÑ߬¿.
- æ«αΓ¿α«ó¬á τáßΓ« ß«ßΓ«¿Γ ¿º ΓαÑσ τáßΓÑ⌐ - ßαáó¡Ñ¡¿∩, ¬«-
- Γ«α«Ñ «»αÑñѽ∩ÑΓ π»«α∩ñ«τ¿óá¡¿Ñ ½εí«⌐ »áαδ «íΩÑ¬Γ«ó, »ÑαÑß-
- Γá¡«ó¬¿, ¿º¼Ñ¡∩εΘÑ⌐ ¿σ »«α∩ñ«¬, ¿ á½ú«α¿Γ¼á ß«αΓ¿α«ó¬¿, «ßπ-
- ΘÑßΓó½∩εΘÑú« ßαáó¡Ñ¡¿∩ ¿ »ÑαÑßΓá¡«ó¬¿ ñ« ΓÑσ »«α, »«¬á
- «íΩѬΓδ ¡Ñ αáß»«½«ªáΓß∩ ó ¡πª¡«¼ »«α∩ñ¬Ñ. ǽú«α¿Γ¼ ß«αΓ¿α«ó-
- ¬¿ ¡Ñ ºáó¿ß¿Γ «Γ «»Ñαᵿ⌐ ßαáó¡Ñ¡¿∩ ¿ »ÑαÑßΓá¡«ó¬¿, ΓᬠτΓ«,
- »ÑαÑñáóá∩ ó ¡Ñú« αẽ¿τ¡δÑ Σπ¡¬µ¿¿ ßαáó¡Ñ¡¿∩ ¿ »ÑαÑßΓá¡«ó¬¿,
- ¼δ ¼«ªÑ¼ «αúá¡¿º«óáΓ∞ ß«αΓ¿α«ó¬π »« αẽ¿τ¡δ¼ ¬α¿ΓÑα¿∩¼.
- ê¼Ñ¡¡« Γᬫ⌐ »«ñσ«ñ ¿ß»«½∞ºπÑΓß∩ ó ¡áΦÑ⌐ ¡«ó«⌐ »α«úαá¼¼Ñ
- ß«αΓ¿α«ó¬¿.
- èᬠ¿ »αѪñÑ, ½Ñ¬ß¿¬«úαáΣ¿τÑ߬«Ñ ßαáó¡Ñ¡¿Ñ ñóπσ ßΓ᫬
- «ßπΘÑßΓó½∩ÑΓß∩ Σπ¡¬µ¿Ñ⌐ STRCMP, á »ÑαÑßΓá¡«ó¬á Σπ¡¬µ¿Ñ⌐
- SWAP; ¡á¼ ¡πª¡á ÑΘÑ Σπ¡¬µ¿∩ NUMCMP, ßαáó¡¿óáεΘá∩ ñóÑ ßΓ᫬¿
- ¡á «ß¡«óÑ τ¿ß½Ñ¡¡«ú« º¡áτÑ¡¿∩ ¿ ó«ºóαáΘáεΘá∩ πß½«ó¡«Ñ π¬áºá-
- ¡¿Ñ Γ«ú« ªÑ ó¿ñá, τΓ« ¿ STRCMP. ¥Γ¿ Γα¿ Σπ¡¬µ¿¿ «»¿ßδóáεΓß∩
- ó MAIN ¿ π¬áºáΓѽ¿ ¡á ¡¿σ »ÑαÑñáεΓß∩ ó SORT. é ßó«ε «τÑαÑñ∞
- Σπ¡¬µ¿∩ SORT «íαáΘáÑΓß∩ ¬ φΓ¿¼ Σπ¡¬µ¿∩¼ τÑαѺ ¿σ π¬áºáΓѽ¿.
- ¼δ παѺ὿ «íαáí«Γ¬π «Φ¿í«¬ ó áαúπ¼Ñ¡Γáσ ß ΓѼ, τΓ«íδ ß«ßαÑ-
- ñ«Γ«τ¿Γ∞ß∩ ¡á ú½áó¡δσ ó«»α«ßáσ.
-
- - 125 -
-
- #DEFINE LINES 100 /* MAX NUMBER OF LINES
- TO BE SORTED */
-
- MAIN(ARGC, ARGV) /* SORT INPUT LINES */
- INT ARGC;
- CHAR *ARGV[];
- \(
- CHAR *LINEPTR[LINES]; /* POINTERS TO TEXT LINES */
- INT NLINES; /* NUMBER OF INPUT LINES READ */
- INT STRCMP(), NUMCMP(); /* COMPARSION FUNCTIONS */
- INT SWAP(); /* EXCHANGE FUNCTION */
- INT NUMERIC = 0; /* 1 IF NUMERIC SORT */
-
- IF(ARGC>1 && ARGV[1][0] == '-' && ARGV[1][1]=='N')
- NUMERIC = 1;
- IF(NLINES = READLINES(LINEPTR, LINES)) >= 0) \(
- IF (NUMERIC)
- SORT(LINEPTR, NLINES, NUMCMP, SWAP);
- ELSE
- SORT(LINEPTR, NLINES, STRCMP, SWAP);
- WRITELINES(LINEPTR, NLINES);
- \) ELSE
- PRINTF("INPUT TOO BIG TO SORT\N");
- \)
-
-
- çñÑß∞ STRCMP, NIMCMP ¿ SWAP - áñαÑßá Σπ¡¬µ¿⌐; Γᬠ¬á¬ ¿ºóÑß-
- Γ¡«, τΓ« φΓ« Σπ¡¬µ¿¿, «»Ñαᵿ∩ & ºñÑß∞ ¡Ñ ¡πª¡á ß«óÑαΦÑ¡¡«
- á¡á½«ú¿τ¡« Γ«¼π, ¬á¬ «¡á ¡Ñ ¡πª¡á ¿ »ÑαÑñ ¿¼Ñ¡Ñ¼ ¼áßß¿óá.
- ÅÑαÑñáτá áñαÑß«ó Σπ¡¬µ¿⌐ «αúá¡¿ºπÑΓß∩ ¬«¼»¿½∩Γ«α«¼.
- éΓ«α«⌐ Φáú ß«ßΓ«¿Γ ó ¼«ñ¿Σ¿¬áµ¿¿ SORT:
-
- SORT(V, N, COMP, EXCH) /* SORT STRINGS V[0] ... V[N-1] */
- CHAR *V[]; /* INTO INCREASING ORDER */
- INT N;
- INT (*COMP)(), (*EXCH)();
- \(
- INT GAP, I, J;
-
- FOR(GAP = N/2; GAP > 0; GAP /= 2)
- FOR(I = GAP; I < N; I++)
- FOR(J = I-GAP; J >= 0; J -= GAP) \(
- IF((*COMP)(V[J], V[J+GAP]) <= 0)
- BREAK;
- (*EXCH)(&V[J], &V[J+GAP]);
- \)
- \)
- - 126 -
-
-
- çñÑß∞ ß½ÑñπÑΓ «íαáΓ¿Γ∞ «»αÑñѽѡ¡«Ñ ó¡¿¼á¡¿Ñ ¡á «»¿ßá-
- ¡¿∩. Ä»¿ßá¡¿Ñ
-
- INT (*COMP)()
-
- ú«ó«α¿Γ, τΓ« COMP ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á Σπ¡¬µ¿ε, ¬«Γ«αá∩
- ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ Γ¿»á INT. ÅÑαóδÑ ¬απú½δÑ ß¬«í¬¿ ºñÑß∞
- ¡Ñ«íσ«ñ¿¼δ; íѺ ¡¿σ «»¿ßá¡¿Ñ
-
- INT *COMP()
-
- ú«ó«α¿½« íδ, τΓ« COMP ∩ó½∩ÑΓß∩ Σπ¡¬µ¿Ñ⌐, ó«ºóαáΘáεΘÑ⌐ π¬áºá-
- Γѽ∞ ¡á µÑ½δÑ, τΓ«, ¬«¡Ñτ¡«, ß«óÑαΦÑ¡¡« ñαπúá∩ óÑΘ∞.
- êß»«½∞º«óá¡¿Ñ COMP ó ßΓ᫬Ñ
-
- IF (*COMP)(V[J], V[J+GAP]) <= 0)
-
- »«½¡«ßΓ∞ε ß«ú½áßπÑΓß∩ ß «»¿ß᡿Ѽ: COMP - π¬áºáΓѽ∞ ¡á Σπ¡¬-
- µ¿ε, *COMP - ßá¼á Σπ¡¬µ¿∩, á
-
- (*COMP)(V[J], V[J+GAP])
-
- - «íαáΘÑ¡¿Ñ ¬ ¡Ñ⌐. èαπú½δÑ ß¬«í¬¿ ¡Ñ«íσ«ñ¿¼δ ñ½∩ »αáó¿½∞¡«ú«
- «íΩÑñ¿¡Ñ¡¿∩ ¬«¼»«¡Ñ¡Γ«ó.
- îδ πªÑ »α¿ó«ñ¿½¿ Σπ¡¬µ¿ε STRCMP, ßαáó¡¿óáεΘπε ñóÑ ßΓ᫬¿
- »« »Ñαó«¼π τ¿ß½Ñ¡¡«¼π º¡áτÑ¡¿ε:
-
- NUMCMP(S1, S2) /* COMPARE S1 AND S2 NUMERICALLY */
- CHAR *S1, *S2;
- \(
- DOUBLE ATOF(), V1, V2;
-
- V1 = ATOF(S1);
- V2 = ATOF(S2);
- IF(V1 < V2)
- RETURN(-1);
- ELSE IF(V1 > V2)
- RETURN(1);
- ELSE
- RETURN (0);
- \)
-
-
- çᬽετ¿Γѽ∞¡δ⌐ Φáú ß«ßΓ«¿Γ ó ñ«íáó½Ñ¡¿¿ Σπ¡¬µ¿¿ SWAP,
- »ÑαÑßΓáó½∩εΘÑ⌐ ñóá π¬áºáΓѽ∩. ¥Γ« ½Ñú¬« ßñѽáΓ∞, ¡Ñ»«ßαÑñßΓ-
- óÑ¡¡« ¿ß»«½∞ºπ∩ Γ«, τΓ« ¼δ ¿º½«ª¿½¿ αá¡ÑÑ ó φΓ«⌐ ú½áóÑ.
-
- - 127 -
-
- SWAP(PX, PY) /* INTERCHANGE *PX AND *PY */
- CHAR *PX[], *PY[];
- \(
- CHAR *TEMP;
-
- TEMP = *PX;
- *PX = *PY;
- *PY = TEMP;
- \)
- ê¼ÑÑΓß∩ ¼¡«ªÑßΓó« ñαπú¿σ ¡Ñ«í∩º∩Γѽ∞¡δσ áαúπ¼Ñ¡Γ«ó, ¬«-
- Γ«αδÑ ¼«úπΓ íδΓ∞ ó¬½ετÑ¡δ ó »α«úαá¼¼π ß«αΓ¿α«ó¬¿: ¡Ñ¬«Γ«αδÑ
- ¿º ¡¿σ ß«ßΓáó½∩εΓ ¿¡ΓÑαÑß¡δÑ π»α᪡ѡ¿∩.
- ô»α᪡ѡ¿Ñ 5-11.
- ---------------
- î«ñ¿Σ¿µ¿απ⌐ΓÑ SORT Γᬿ¼ «íαẫ¼, τΓ«íδ «¡á αáí«Γá½á ß
- ¼ÑΓ¬«⌐ -R, π¬áºδóáεΘÑ⌐ ¡á ß«αΓ¿α«ó¬π ó «íαáΓ¡«¼ (πíδóáεΘѼ)
- »«α∩ñ¬Ñ. è«¡Ñτ¡«, -R ñ«½ª¡á αáí«ΓáΓ∞ ß -N.
- ô»α᪡ѡ¿Ñ 5-12.
- ---------------
- ä«íáó∞ΓÑ ¡Ñ«í∩ºáΓѽ∞¡δ⌐ áαúπ¼Ñ¡Γ -F, «íΩÑñ¿¡∩εΘ¿⌐ ó¼ÑßΓÑ
- »α«»¿ß¡δÑ ¿ ßΓα«τ¡δÑ íπ¬óδ, ΓᬠτΓ«íδ αẽ¿τ¿Ñ αÑú¿ßΓα«ó ¡Ñ
- πτ¿ΓδóὫß∞ ó« óαѼ∩ ß«αΓ¿α«ó¬¿: ñá¡¡δÑ ¿º óÑασ¡Ñú« ¿ ¡¿ª¡Ñ-
- ú« αÑú¿ßΓα«ó ß«αΓ¿απεΓß∩ ó¼ÑßΓÑ, ΓᬠτΓ« íπ¬óá 'á' »α«»¿ß¡«Ñ
- ¿ 'á' ßΓα«τ¡«Ñ «¬áºδóáεΓß∩ ß«ßÑñ¡¿¼¿ , á ¡Ñ αáºñѽѡ¡δ¼¿ µÑ-
- ½δ¼ á½Σáó¿Γ«¼.
- ô»α᪡ѡ¿Ñ 5-13.
- ---------------
- ä«íáó∞ΓÑ ¡Ñ«í∩ºáΓѽ∞¡δ⌐ áαúπ¼Ñ¡Γ -D ("ß½«óáα¡«Ñ π»«α∩ñ«-
- τ¿óá¡¿Ñ"), »α¿ ¡á½¿τ¿¿ ¬«Γ«α«ú« ßαáó¡¿óáεΓß∩ Γ«½∞¬« íπ¬óδ,
- τ¿ß½á ¿ »α«íѽδ. Å«ºáí«Γ∞ΓÑß∞ « Γ«¼, τΓ«íδ φΓá Σπ¡¬µ¿∩ αáí«-
- Γá½á ¿ ó¼ÑßΓÑ ß -F.
- ô»α᪡ѡ¿Ñ 5-14.
- ---------------
- ä«íáó∞ΓÑ ó«º¼«ª¡«ßΓ∞ «íαáí«Γ¬¿ »«½Ñ⌐, ΓᬠτΓ«íδ ¼«ª¡«
- í佫 ß«αΓ¿α«óáΓ∞ »«½∩ ó¡πΓα¿ ßΓ᫬. èáªñ«Ñ »«½Ñ ñ«½ª¡« ß«α-
- Γ¿α«óáΓ∞ß∩ ó ß««ΓóÑΓßΓó¿¿ ß ¡Ñºáó¿ß¿¼δ¼ ¡áí«α«¼ ¡Ñ«í∩ºáΓѽ∞-
- ¡δσ áαúπ¼Ñ¡Γ«ó. (»αÑñ¼ÑΓ¡δ⌐ π¬áºáΓѽ∞ φΓ«⌐ ¬¡¿ú¿ ß«αΓ¿α«óá½-
- ß∩ ß »«¼«Θ∞ε áαúπ¼Ñ¡Γ«ó -DF ñ½∩ ¬áΓÑú«α¿¿ π¬áºáΓѽ∩ ¿ ß -N
- ñ½∩ ¡«¼Ñα«ó ßΓαá¡¿µ).
-