Case/fi: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | - | ||
| 1 | + | Case aloittaa case-lauseen. Case-lauseessa verrataan muuttujan arvoa esitettyihin vakiona pysyviin arvoihin. Näitä vakiona pysyviä arvoja voi olla yksittäinen [[Const/fi|vakio]], tietty vakioalue tai [[Comma|pilkulla]] erotettu joukko vakioita. Tietyn valinnan jälkeen suoretettavat lauseen on erotettu [[Colon|kaksoispisteellä]]. | |
| 2 | 2 | ||
| 3 | - | ||
| 3 | + | Case-lause sisältää [[Reserved word|varatut sanat]] [[Of]] ja [[End]] sekä joskus myös [[Else]]. | |
| 4 | 4 | ||
| 5 | - | ||
| 5 | + | ``` pascal | |
| 6 | 6 | ||
| 7 | - | ||
| 8 | - | ||
| 9 | - | ||
| 10 | - | ||
| 11 | - | ||
| 12 | - | ||
| 13 | - | ||
| 7 | + | case place of | |
| 8 | + | 1: ShowMessage('Kultamitali'); | |
| 9 | + | 2: ShowMessage('Hopeamitali'); | |
| 10 | + | 3: ShowMessage('Pronssimitali'); | |
| 11 | + | else ShowMessage('Parempi onni ensi kerralla'); | |
| 12 | + | end; | |
| 14 | 13 | ``` | |
| 15 | 14 | ||
| 16 | - | ||
| 15 | + | ### WhatIsChar | |
| 17 | 16 | ||
| 18 | - | ||
| 19 | - | ||
| 20 | - | ||
| 21 | - | ||
| 17 | + | ``` pascal | |
| 22 | 18 | ||
| 23 | - | ||
| 24 | - | ||
| 25 | - | ||
| 26 | - | ||
| 27 | - | ||
| 28 | - | ||
| 29 | - | ||
| 30 | - | ||
| 31 | - | ||
| 32 | - | ||
| 33 | - | ||
| 34 | - | ||
| 35 | - | ||
| 36 | - | ||
| 37 | - | ||
| 19 | + | function WhatIsChar( c:char ):string; | |
| 20 | + | var | |
| 21 | + | s : string; | |
| 22 | + | begin | |
| 23 | + | s := ''; | |
| 24 | + | case c of | |
| 25 | + | '0' .. '9' : s := 'Numero (0-9)'; | |
| 26 | + | 'a' .. 'z' : s := 'Pieni kirjain (a-z)'; | |
| 27 | + | 'A' .. 'Z' : s := 'Iso kirjain (A-Z)'; | |
| 28 | + | '+' , '-' : s := 'Etumerkki (+ or -)'; | |
| 29 | + | end; | |
| 30 | + | result := s; | |
| 31 | + | end; | |
| 38 | 32 | ``` | |
| 39 | 33 | ||
| 40 | 34 | ## Case of merkkijonoissa | |
| 41 | 35 | ||
| 42 | - | ||
| 43 | - | ||
| 36 | + | Case of toimii myös merkkijonoissa. Pascal -kieli mahdollistaa "Case of" käytön string:llä. | |
| 37 | + | ||
| 38 | + | ``` pascal | |
| 44 | 39 | const | |
| 45 | - | ||
| 46 | - | ||
| 47 | - | ||
| 48 | - | ||
| 49 | - | ||
| 50 | - | ||
| 51 | - | ||
| 52 | - | ||
| 53 | - | ||
| 54 | - | ||
| 55 | - | ||
| 56 | - | ||
| 57 | - | ||
| 58 | - | ||
| 59 | - | ||
| 60 | - | ||
| 61 | - | ||
| 62 | - | ||
| 63 | - | ||
| 64 | - | ||
| 65 | - | ||
| 66 | - | ||
| 67 | - | ||
| 68 | - | ||
| 69 | - | ||
| 70 | - | ||
| 71 | - | ||
| 72 | - | ||
| 73 | - | ||
| 74 | - | ||
| 75 | - | ||
| 76 | - | ||
| 77 | - | ||
| 78 | - | ||
| 79 | - | ||
| 80 | - | ||
| 81 | - | ||
| 82 | - | ||
| 83 | - | ||
| 84 | - | ||
| 85 | - | ||
| 86 | - | ||
| 87 | - | ||
| 88 | - | ||
| 89 | - | ||
| 90 | - | ||
| 91 | - | ||
| 92 | - | ||
| 93 | - | ||
| 94 | - | ||
| 95 | - | ||
| 96 | - | ||
| 97 | - | ||
| 98 | - | ||
| 99 | - | ||
| 100 | - | ||
| 101 | - | ||
| 102 | - | ||
| 103 | - | ||
| 104 | - | ||
| 105 | - | ||
| 106 | - | ||
| 107 | - | ||
| 108 | - | ||
| 109 | - | ||
| 110 | - | ||
| 111 | - | ||
| 112 | - | ||
| 113 | - | ||
| 114 | - | ||
| 115 | - | ||
| 116 | - | ||
| 117 | - | ||
| 118 | - | ||
| 119 | - | ||
| 120 | - | ||
| 121 | - | ||
| 122 | - | ||
| 123 | - | ||
| 124 | - | ||
| 125 | - | ||
| 126 | - | ||
| 127 | - | ||
| 128 | - | ||
| 129 | - | ||
| 130 | - | ||
| 131 | - | ||
| 132 | - | ||
| 133 | - | ||
| 134 | - | ||
| 135 | - | ||
| 136 | - | ||
| 137 | - | ||
| 138 | - | ||
| 139 | - | ||
| 140 | - | ||
| 141 | - | ||
| 142 | - | ||
| 143 | - | ||
| 144 | - | ||
| 145 | - | ||
| 40 | + | ISO_3166_1_ALPHA_3_ANDORRA = 'AND'; | |
| 41 | + | ISO_3166_1_ALPHA_3_AUSTRALIA = 'AUS'; | |
| 42 | + | ISO_3166_1_ALPHA_3_AUSTRIA = 'AUT'; | |
| 43 | + | ISO_3166_1_ALPHA_3_BELGIUM = 'BEL'; | |
| 44 | + | ISO_3166_1_ALPHA_3_BRAZIL = 'BRA'; | |
| 45 | + | ISO_3166_1_ALPHA_3_CANADA = 'CAN'; | |
| 46 | + | ISO_3166_1_ALPHA_3_CHINA = 'CHN'; | |
| 47 | + | ISO_3166_1_ALPHA_3_CZECH_REPUBLIC = 'CZE'; | |
| 48 | + | ISO_3166_1_ALPHA_3_CYPRUS = 'CYP'; | |
| 49 | + | ISO_3166_1_ALPHA_3_GERMANY = 'DEU'; | |
| 50 | + | ISO_3166_1_ALPHA_3_DENMARK = 'DNK'; | |
| 51 | + | ISO_3166_1_ALPHA_3_SPAIN = 'ESP'; | |
| 52 | + | ISO_3166_1_ALPHA_3_ESTONIA = 'EST'; | |
| 53 | + | ISO_3166_1_ALPHA_3_FINLAND = 'FIN'; | |
| 54 | + | ISO_3166_1_ALPHA_3_FRANCE = 'FRA'; | |
| 55 | + | ISO_3166_1_ALPHA_3_GREECE = 'GRC'; | |
| 56 | + | ISO_3166_1_ALPHA_3_INDIA = 'IND'; | |
| 57 | + | ISO_3166_1_ALPHA_3_IRELAND = 'IRL'; | |
| 58 | + | ISO_3166_1_ALPHA_3_ITALY = 'ITA'; | |
| 59 | + | ISO_3166_1_ALPHA_3_JAPAN = 'JPN'; | |
| 60 | + | ISO_3166_1_ALPHA_3_LITHUANIA = 'LTU'; | |
| 61 | + | ISO_3166_1_ALPHA_3_LATVIA = 'LVA'; | |
| 62 | + | ISO_3166_1_ALPHA_3_LUXEMBOURG = 'LUX'; | |
| 63 | + | ISO_3166_1_ALPHA_3_MALTA = 'MLT'; | |
| 64 | + | ISO_3166_1_ALPHA_3_MEXICO = 'MEX'; | |
| 65 | + | ISO_3166_1_ALPHA_3_MONACO = 'MCO'; | |
| 66 | + | ISO_3166_1_ALPHA_3_MONTENEGRO = 'MNE'; | |
| 67 | + | ISO_3166_1_ALPHA_3_NAURU = 'NRU'; | |
| 68 | + | ISO_3166_1_ALPHA_3_NETHERLANDS = 'NLD'; | |
| 69 | + | ISO_3166_1_ALPHA_3_NORWAY = 'NOR'; | |
| 70 | + | ISO_3166_1_ALPHA_3_POLAND = 'POL'; | |
| 71 | + | ISO_3166_1_ALPHA_3_PORTUGAL = 'PRT'; | |
| 72 | + | ISO_3166_1_ALPHA_3_REPUBLIC_OF_KOREA = 'KOR'; | |
| 73 | + | ISO_3166_1_ALPHA_3_RUSSIAN_FEDERATION = 'RUS'; | |
| 74 | + | ISO_3166_1_ALPHA_3_SAN_MARINO = 'SMR'; | |
| 75 | + | ISO_3166_1_ALPHA_3_SLOVAKIA = 'SVK'; | |
| 76 | + | ISO_3166_1_ALPHA_3_SLOVENIA = 'SVN'; | |
| 77 | + | ISO_3166_1_ALPHA_3_SWEDEN = 'SWE' ; | |
| 78 | + | ISO_3166_1_ALPHA_3_SWITZERLAND = 'CHE'; | |
| 79 | + | ISO_3166_1_ALPHA_3_UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND = 'GBR'; | |
| 80 | + | ISO_3166_1_ALPHA_3_UNITED_STATES_OF_AMERICA = 'USA'; | |
| 81 | + | ||
| 82 | + | ISO_4217_EURO = 'EUR'; | |
| 83 | + | ISO_4217_AUSTRALIAN_DOLLAR = 'AUD'; | |
| 84 | + | ISO_4217_BRAZILIAN_REAL = 'BRL'; | |
| 85 | + | ISO_4217_CANADIAN_DOLLAR = 'CAD'; | |
| 86 | + | ISO_4217_CHINESE_YUAN = 'CNY'; | |
| 87 | + | ISO_4217_CZECH_KORUNA = 'CZK' ; | |
| 88 | + | ISO_4217_DANISH_KRONE = 'DKK' ; | |
| 89 | + | ISO_4217_INDIAN_RUPEE = 'INR'; | |
| 90 | + | ISO_4217_POUND_STERLING = 'GBP' ; | |
| 91 | + | ISO_4217_JAPANESE_YEN = 'JPY'; | |
| 92 | + | ISO_4217_MEXICAN_PESO = 'MXN'; | |
| 93 | + | ISO_4217_NORWEGIAN_KRONE = 'NOK' ; | |
| 94 | + | ISO_4217_POLISH_ZLOTY = 'PLN' ; | |
| 95 | + | ISO_4217_RUSSIAN_RUBLE = 'RUB' ; | |
| 96 | + | ISO_4217_SOUTH_KOREAN_WON = 'KRW'; | |
| 97 | + | ISO_4217_SWEDISH_KRONA = 'SEK' ; | |
| 98 | + | ISO_4217_SWISS_FRANC = 'CHF' ; | |
| 99 | + | ISO_4217_UNITED_STATES_DOLLAR = 'USD' ; | |
| 100 | + | ||
| 101 | + | function ISO_4217_currency_name ( ISO_3166_1_alpha_3_code: string): string; | |
| 102 | + | begin | |
| 103 | + | Case ISO_3166_1_alpha_3_code of | |
| 104 | + | // Euroalue | |
| 105 | + | ISO_3166_1_ALPHA_3_ANDORRA, ISO_3166_1_ALPHA_3_AUSTRIA, | |
| 106 | + | ISO_3166_1_ALPHA_3_BELGIUM,ISO_3166_1_ALPHA_3_CYPRUS, | |
| 107 | + | ISO_3166_1_ALPHA_3_GERMANY, ISO_3166_1_ALPHA_3_SPAIN, | |
| 108 | + | ISO_3166_1_ALPHA_3_ESTONIA, ISO_3166_1_ALPHA_3_FINLAND, | |
| 109 | + | ISO_3166_1_ALPHA_3_FRANCE, ISO_3166_1_ALPHA_3_GREECE, | |
| 110 | + | ISO_3166_1_ALPHA_3_IRELAND, ISO_3166_1_ALPHA_3_ITALY, | |
| 111 | + | ISO_3166_1_ALPHA_3_LITHUANIA, ISO_3166_1_ALPHA_3_LATVIA, | |
| 112 | + | ISO_3166_1_ALPHA_3_LUXEMBOURG, ISO_3166_1_ALPHA_3_MONACO, | |
| 113 | + | ISO_3166_1_ALPHA_3_MALTA, ISO_3166_1_ALPHA_3_MONTENEGRO, | |
| 114 | + | ISO_3166_1_ALPHA_3_NETHERLANDS, ISO_3166_1_ALPHA_3_PORTUGAL, | |
| 115 | + | ISO_3166_1_ALPHA_3_SAN_MARINO, ISO_3166_1_ALPHA_3_SLOVAKIA, | |
| 116 | + | ISO_3166_1_ALPHA_3_SLOVENIA : result := ISO_4217_EURO ; | |
| 117 | + | ||
| 118 | + | ISO_3166_1_ALPHA_3_AUSTRALIA, ISO_3166_1_ALPHA_3_NAURU : | |
| 119 | + | result := ISO_4217_AUSTRALIAN_DOLLAR; | |
| 120 | + | ISO_3166_1_ALPHA_3_BRAZIL : result := ISO_4217_BRAZILIAN_REAL; | |
| 121 | + | ISO_3166_1_ALPHA_3_CANADA : result := ISO_4217_CANADIAN_DOLLAR; | |
| 122 | + | ISO_3166_1_ALPHA_3_CHINA : result := ISO_4217_CHINESE_YUAN; | |
| 123 | + | ISO_3166_1_ALPHA_3_CZECH_REPUBLIC : result := ISO_4217_CZECH_KORUNA ; | |
| 124 | + | ISO_3166_1_ALPHA_3_DENMARK : result := ISO_4217_DANISH_KRONE ; | |
| 125 | + | ISO_3166_1_ALPHA_3_INDIA : result := ISO_4217_INDIAN_RUPEE; | |
| 126 | + | ISO_3166_1_ALPHA_3_JAPAN : result := ISO_4217_JAPANESE_YEN; | |
| 127 | + | ISO_3166_1_ALPHA_3_MEXICO : result := ISO_4217_MEXICAN_PESO; | |
| 128 | + | ISO_3166_1_ALPHA_3_NORWAY : result := ISO_4217_NORWEGIAN_KRONE ; | |
| 129 | + | ISO_3166_1_ALPHA_3_POLAND : result := ISO_4217_POLISH_ZLOTY ; | |
| 130 | + | ISO_3166_1_ALPHA_3_REPUBLIC_OF_KOREA : result := ISO_4217_SOUTH_KOREAN_WON ; | |
| 131 | + | ISO_3166_1_ALPHA_3_RUSSIAN_FEDERATION : result := ISO_4217_RUSSIAN_RUBLE ; | |
| 132 | + | ISO_3166_1_ALPHA_3_SWEDEN : result := ISO_4217_SWEDISH_KRONA ; | |
| 133 | + | ISO_3166_1_ALPHA_3_SWITZERLAND : result := ISO_4217_SWISS_FRANC ; | |
| 134 | + | ISO_3166_1_ALPHA_3_UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND : | |
| 135 | + | result := ISO_4217_POUND_STERLING ; | |
| 136 | + | ISO_3166_1_ALPHA_3_UNITED_STATES_OF_AMERICA : | |
| 137 | + | result := ISO_4217_UNITED_STATES_DOLLAR ; | |
| 138 | + | end; | |
| 139 | + | end; | |
| 146 | 140 | ``` | |
| 147 | 141 | ||
| 148 | 142 | ## Vaihteleva tietue | |
| 149 | 143 | ||
| 150 | - | ||
| 151 | - | ||
| 152 | - | ||
| 153 | - | ||
| 154 | - | ||
| 155 | - | ||
| 156 | - | ||
| 157 | - | ||
| 158 | - | ||
| 159 | - | ||
| 160 | - | ||
| 161 | - | ||
| 162 | - | ||
| 144 | + | Case-sanaa käytetään myös vaihtelevassa [[Record|tietueessa]]. | |
| 145 | + | ||
| 146 | + | ``` pascal | |
| 147 | + | ||
| 148 | + | type | |
| 149 | + | ||
| 150 | + | ScaleKelvin = 223 .. 323; | |
| 151 | + | ScaleCelsius = -50 .. 50; | |
| 152 | + | ||
| 153 | + | TemperatureScale = ( celcius, kelvin ) ; | |
| 154 | + | Temperature = record | |
| 155 | + | case scale : TemperatureScale of | |
| 156 | + | celcius : (celcius_value : ScaleCelsius); | |
| 157 | + | kelvin : (kelvin_value : ScaleKelvin); | |
| 158 | + | end; | |
| 163 | 159 | ``` | |
| 164 | 160 | ||
| 165 | 161 | ## Lisätietoja | |
| 166 | 162 | ||
| 167 | - | ||
| 168 | - | ||
| 169 | - | ||
| 170 | - | ||
| 171 | - | ||
| 172 | - | ||
| 163 | + | - [The Case statement](http://www.freepascal.org/docs-html/ref/refsu52.html#x149-15900013.2.2) | |
| 164 | + | - [Record types](http://www.freepascal.org/docs-html/ref/refsu19.html#x43-500003.3.2) | |
| 165 | + | - [Tao Yue: Learn Pascal!](http://lazarus-ccr.sourceforge.net/pascal/pas3cb.html) Case | |
| 166 | + | - [Video: Free Pascal Tutorial 8 - Case Statements](http://www.youtube.com/watch?v=pMr2xtUu3x0) | |
| 167 | + | - [[Dialog Examples|ShowMessage]] | |
| 168 | + | - [[Type]] | |
| 173 | 169 | ||
| 174 | 170 | --- | |
| 175 | - | ||
| 171 | + | *From the Free Pascal wiki, page "Case/fi", as it stood on 2020-01-24 after a change by Bart, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* | |
| 172 | + | Category: Suomi |
