Microsoft PowerPoint - enshu4.ppt [äº™æ‘łã…¢ã…¼ã…›]

Similar documents
ゲームエンジンの構成要素

プログラミングA

プログラミングA

Microsoft Word - 3new.doc

Microsoft PowerPoint - ProD0107.ppt

PowerPoint Presentation

Javaプログラムの実行手順

Functional Programming

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

ポインタ変数

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft Word - no103.docx

Microsoft PowerPoint - kougi2.ppt

PowerPoint プレゼンテーション

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Prog1_10th

Microsoft Word - no11.docx

メソッドのまとめ

Microsoft Word - 18環設演付録0508.doc

Microsoft PowerPoint - 5Chap15.ppt

Programming D 1/15

情報システム設計論II ユーザインタフェース(1)

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

プレポスト【解説】

JavaScriptで プログラミング

Microsoft PowerPoint - 3.pptx

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint - kougi4.ppt

Microsoft PowerPoint - ad11-09.pptx

Microsoft PowerPoint - C1(演算と変数).ppt

シェルプログラミング コマンドをパイプでつなげるだけでは済まないような ある程度まとまった処理を複数のコマンドを制御構文を用いたりしてファイルとしたものを ( シェル ) スクリプトと呼ぶ シェルプログラム バッチなどともいう.bash_profile もシェルスクリプトなので このファイルを解読し

Microsoft Word - no15.docx

Taro-Basicの基礎・条件分岐(公

ポインタ変数

PowerPoint プレゼンテーション

プログラミング基礎

Java講座

Microsoft PowerPoint - visualprogram.ppt

デジタル表現論・第6回

Microsoft Word - VBA基礎(3).docx

C#の基本

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

プログラミング基礎I(再)

Microsoft PowerPoint - Prog05.ppt

基礎計算機演習 実習課題No6

Microsoft PowerPoint - 計算機言語 第7回.ppt

cp-7. 配列

Microsoft PowerPoint - ruby_instruction.ppt

JavaプログラミングⅠ

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

JavaプログラミングⅠ

Boost.Preprocessor でプログラミングしましょう DigitalGhost

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

Microsoft Word - no12.doc

Microsoft Word - no202.docx

情報処理Ⅰ

データ構造

PowerPoint プレゼンテーション

JavaプログラミングⅠ

ポインタ変数

ポインタ変数

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

プログラミング入門1

PowerPoint プレゼンテーション

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

JavaプログラミングⅠ

次の病院 薬局欄は 氏名 欄に入力された値によって入力すべき値が変わります 太郎の行く病院と花子の行く病院が必ずしも同じではないからです このような違いを 設定 シートで定義しておきましょう 太郎の行く病院のリストを 太郎 花子の行く病院のリストを 花子 として 2 つのリストが定義されています こ

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

Scilab 勉強会 ( 第 3 回 ) 高橋一馬, 十文字俊裕, 柏倉守 平成 17 年 11 月 15 日 関数 ファイルはエディタを用いて作成する.Scilab にはエディタ SciPad が附属している.SciPad では なく他のエディタを利用してもよい. 作成した関数は Scilab に

Sort-of-List-Map(A)

<4D F736F F F696E74202D20352D335F8D5C90AC CF909482CC90B690AC82C695D28F572E707074>

ワープロソフトウェア

フィルタとは

プログラミングA

PowerPoint プレゼンテーション

基礎プログラミング2015

図 1 アドインに登録する メニューバーに [BAYONET] が追加されます 登録 : Excel 2007, 2010, 2013 の場合 1 Excel ブックを開きます Excel2007 の場合 左上の Office マークをクリックします 図 2 Office マーク (Excel 20

ガイダンス

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

プログラミング基礎

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

Microsoft PowerPoint - diip ppt

Microsoft PowerPoint - program.ppt [互換モード]

PowerPoint Presentation

第12回 モナドパーサ

コンピュータリテラシ 第 6 回表計算 2 このスライド 例題 /reidai6.xlsx /reidai6a.xlsx 課題 12 /reidai6b.xlsx /table12_13.xlsx

Microsoft Word - 操作マニュアル-Excel-2.doc

Microsoft PowerPoint - lec4.ppt

プログラミング入門1

Cプログラミング1(再) 第2回

文法と言語 ー文脈自由文法とLR構文解析2ー

ビ Ⅱ4-2 (1-2) 検索関数 VLOOKUP 関数 VLOOKUP 関数は 指定した範囲の表を縦 ( 列方向 ) に検索する関数です [ 関数の挿入 で 検索 / 行列 の分類中にある 書き方 VLOOKUP( 検索値, 範囲, 列番号, 検索方法 ) 検索値... 検索したい値 または値が入

デジタル表現論・第4回

正誤表(FPT1004)

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

CプログラミングI

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

Transcription:

4. リスト, シンボル, 文字列

説明資料

本日の内容 1. リストとは 2. Scheme プログラムでのリストの記法 list 句 3. リストに関する演算子 first, rest, empty?, length, list-ref, append 4. 数字, シンボル, 文字列を含むリスト 1. Scheme でのシンボルの記法 2. Scheme での文字列の記法

リストとは 15 8 6 32 23 データの並び データに順序がある

Scheme でのリストの記法 リストであることを 示すキーワード 本体の部分 (list 15 8 6 32 23) これ自体が 1 つの式

first と rest 15 8 6 32 23 first rest first 先頭のこと rest 先頭を取り除いた残り rest もまたリスト例 ) 上のリストの rest の rest の rest の first は : 32

empty empty は 空リスト を表す特別な記号 rest との関係 リストの長さが 1 の時には,empty 例 ) (rest (list 15)) = empty

first, rest に関する実行エラー 要するに, 空でないリスト だけ,first, rest が実行できる 空で無いリスト 空リスト数値 first OK 実行エ ラー rest OK 実行エ ラー 実行エラー 実行エラー

first, rest に関する実行エラーの例 DrScheme の実行画面

empty? empty? は, リストが空リストであるかを調べる empty? の意味 : 空リスト ならば true ( さもなければ false)

リストに関するキーワード リストに関する演算子 list first リストの先頭の要素 ( 例 ) (first (rest (rest a-list))) rest リストから先頭の要素を除いた残り ( 例 ) (rest a-list) empty? リストが空リストであるか調べる ( 例 ) (empty? a-list) list リストを記述するためのキーワード ( 例 ) (list 15 8 6 32 23)

リストに関する演算子 length リストの要素の個数 list-ref リストのn 番目の要素 ( 先頭は0 番目 ) append リストの連結

length length の意味 : リストの要素の個数 リストで無い場合には実行エラーとなる

list-ref 指定した番号が大きすぎると実行エラーとなる リストで無い場合には実行エラーとなる list-ref の意味 : リストの n 番目の要素 ( 先頭は 0 番目 )

append append の意味 : リストの連結 リストで無い場合には実行エラーとなる

シンボル 記号 や 単語 を表す カッコ ダブルクオーテーションマーク, 空白, コンマはシンボルとして使えない ( 例 ) 'the 'a 'cat! 'tow^3 'and%so%on ' が無いと, 変数名の意味になる

symbol=? の意味 symbol の比較演算子 (symbol=? 'Hello 'Hello) (symbol=? 'Hello 'Hallo) true false

よくある間違い 本当は symbol=? と書くべき. しかし, = と書いている. 実行すると, エラーメッセージが出る

文字列 文字列 : " で囲む "This is a string" 空白文字なども 文字列 として使える

さまざまな比較演算 数値同士の比較 <, <=, =, >=, > など シンボル同士の比較 symbol=? など 文字列同士の比較 string<?, string<=?, string=?, string>=?, string>? など

atomic 式 数値 true, false 値 変数名 シンボル 文字列 empty, など Scheme の式 括弧の入った式 (compound) ( 演算子式の並び ) ( 関数名式の並び ) (cond [( 条件式 ) 式 ]... ) (list 式の並び ) 関数の定義式 (define ( 関数名変数の並び ) 式 ) のパターン など のパターン

Scheme の式 Scheme の式は, 以下の組み合わせであることを学んだ 数値 : 5, -5, 0.5 など true, false 値 true, false シンボル, 文字列 変数名 empty 四則演算子 : +, -, *, / 比較演算子 <, <=, >, >=, = 奇数か偶数かの判定 odd?, even? 論理演算子 and, or, not リストに関する演算子 first, rest, empty?, length, list-ref, append その他の演算子 : remainder, quotient, max, min, abs, sqrt, expt, log, sin, cos, tan asin, acos, atan など 括弧 (, ), [, ] 関数名 define cond list

実習

実習の進め方 資料を見ながら, 例題 を行ってみる 各自, 課題 に挑戦する 各自で自習 + 巡回指導 遠慮なく質問してください 自分のペースで先に進んで構いません

DrScheme の使用 DrScheme の起動 プログラム PLT Scheme DrScheme 今日の演習では Intermediate Student に設定 Language Choose Language Intermediate Student Execute ボタン

例題 1. リストの式 リストの式を書く リストの式を書くために list を使う 15 8 6 32 23

例題 1. リストの式 の手順 1. 次の式を 実行用ウインドウ で, 実行しなさい (list 15 8 6 32 23) 次は, 例題 2 に進んでください

実行結果の例 (list 15 8 6 32 23) を入力すると (list 15 8 6 32 23) と表示される

コンピュータが行っていること Scheme の式 (list 15 8 6 32 23) を入力すると コンピュータ (Scheme 搭載 ) 式の実行結果 (list 15 8 6 32 23) がそのまま表示される

例題 2. リストの first と rest リスト (list 15 8 6 32 23) に対して,first と rest を実行する 例 ) 15 8 6 32 23 first rest

例題 2. リストの first と rest の手順 1. 次の式を 実行用ウインドウ で, 実行しなさい (first (list 15 8 6 32 23)) (rest (list 15 8 6 32 23)) 次は, 例題 3 に進んでください

実行結果の例 first の実行結果 rest の実行結果

first Scheme の式 (first (list 15 8 6 32 23)) を入力すると コンピュータ (Scheme 搭載 ) 式の実行結果 15 が表示される リストの先頭の要素

rest Scheme の式 (rest (list 15 8 6 32 23)) を入力すると コンピュータ (Scheme 搭載 ) 式の実行結果 (list 8 6 32 23) が表示されるリストから先頭の要素を除いた残り

例題 3. リストの first と rest 要素が 1 つしか無いリスト (list 15) に 対して,first と rest を実行する 例 ) 15 first empty rest

例題 3. リストの first と rest の手順 1. 次の式を 実行用ウインドウ で, 実行しなさい (first (list 15)) (rest (list 15)) 次は, 例題 4 に進んでください

実行結果の例 first の実行結果 rest の実行結果

first Scheme の式 (first (list 15)) を入力すると コンピュータ (Scheme 搭載 ) 式の実行結果 15 が表示される リストの先頭の要素

rest Scheme の式 (rest (list 15)) を入力すると コンピュータ (Scheme 搭載 ) 式の実行結果 empty が表示されるリストから先頭の要素を除いた残り

例題 4.append リストをつなげる関数 append を使ってみる append は Scheme が備えている関数

例題 4.append の手順 1. 次の式を 実行用ウインドウ で, 実行しなさい (append (list 1 2) (list 3 4)) (append (list 1 2) (list 3 4) (list 5 6)) (append (list 1 2) 3 (list 4 5)) 次は, 例題 5 に進んでください

2 つのリストを併合 3 つのリストを併合 リストでないものは併合できない

例題 5. リストの基本操作 リストの3 番目の要素を得る関数 element3 を作り, 実行する first, rest の組み合わせ例 ) 15 8 6 32 23 3 番目

リストの基本操作 リストの 3 番目 例 ) = リストの rest の rest の first 15 8 6 32 23 rest first rest

例題 5. リストの基本操作 の手順 1. 次を 定義用ウインドウ で, 実行しなさい 入力した後に,Execute ボタンを押す (define (element3 a-list) (first (rest (rest a-list)))) 2. その後, 次を 実行用ウインドウ で実行しなさい (element3 (list 1 2 3 4)) (element3 (list 15 8 6 32 23)) 次は, 例題 6 に進んでください

まず,Scheme のプログラムをコンピュータに読み込ませている

これは, (element3 (list 15 8 6 32 23)) と書いて,a-list の値を (list 15 8 6 32 23) に設定しての実行 実行結果である 6 が表示される

入力と出力 (list 15 8 6 32 23) element3 6 入力 出力

element3 関数 関数である ことを示すキーワード 関数の名前 (define (element3 a-list) (first (rest (rest a-list)))) a-list の値から値を1つ受け取る ( 入力 ) 3 番目の要素を求める ( 出力 )

(element3 (list 15 8 6 32 23)) から 6 が得られる過程 (element3 (list 15 8 6 32 23)) 最初の式 = (first (rest (rest (list 15 8 6 32 23)))) = (first (rest (list 8 6 32 23))) (first (rest (rest a-list))) に a-list = (list 15 8 6 32 23) が代入される (rest (list 15 8 6 32 23)) (list 8 6 32 23) = (first (list 6 32 23)) = 6 実行結果 (rest (list 8 6 32 23)) (list 6 32 23) コンピュータ内部での計算

(element3 (list 15 8 6 32 23)) から 6 が得られる過程 (element3 (list 15 8 6 32 23)) = (first (rest (rest (list 15 8 6 32 23)))) = (first (rest (list 8 6 32 23))) = (first (list 6 32 23)) = 6 これは, (define (element3 a-list) (first (rest (rest a-list)))) の a-list を (list 15 8 6 32 23) で置き換えたもの

関数 element3 について リストの長さが 2 以下の時には, エラーメッセージ が表示される 例 ) (element3 (list 1 2)) エラーメッセージが表示される

これは, (element3 (list 1 2)) と書いて,a-list の値を (list 1 2) に設定しての実行 エラーメッセージが表示される

(element3 (list 1 2)) から実行エラーに至る過程 (element3 (list 1 2)) 最初の式 = (first (rest (rest (list 1 2))) = (first (rest (list 2))) (first (rest (rest a-list))) に a-list = (list 1 2) が代入される (rest (list 1 2)) (list 2) = (first empty) (rest (list 1)) empty コンピュータ内部での計算 空リスト empty に対して first を実行できない という決まりがあるので, 実行エラー

例題 6. シンボル x の値から,3 種類のシンボル ('Cold, 'Warm, 'Hot) のどれかを出力する関数 judge を作り, 実行する x 20 'Cold 20 < x 30 'Warm 30 < x 'Hot シンボル

例題 6. シンボル の手順 1. 次を 定義用ウインドウ で, 実行しなさい 入力した後に,Execute ボタンを押す ;;judge: number -> symbol (define (judge x) (cond [(<= x 20) 'Cold] [(and (< 20 x) (<= x 30)) 'Warm] [(< 30 x) 'Hot])) 2. その後, 次を 実行用ウインドウ で実行しなさい (judge 15) (judge 20) (judge 25) 次は, 例題 7 に進んでください

まず,Scheme のプログラムをコンピュータに読み込ませている

ここでは, (judge 15) と書いて,x の値を 15 に設定しての実行 実行結果である 'Cold が表示される

入力と出力 x の値 : 15 入力 judge 'Cold 出力 入力は 1 つの数値 出力は 1 つのシンボル

関数である ことを示すキーワード judge 関数 関数の名前 ;; judge: number -> symbol (define (judge x) (cond [(<= x 20) 'Cold] [(and (< 20 x) (<= x 30)) 'Warm] [(< 30 x) 'Hot])) 値を 1 つ受け取る ( 入力 )

例題 7. 数字かシンボルを出力 x の値から, 数字あるいはシンボルを出力する関数 ast を作り, 実行する x > 0 ならば : x の値を出力する x 0 ならば : '* を出力する

例題 7. 数値かシンボルを出力 の手順 1. 次を 定義用ウインドウ で, 実行しなさい 入力した後に,Execute ボタンを押す (define (ast x) (cond [(> x 0) x] [else '*])) 2. その後, 次を 実行用ウインドウ で実行しなさい (ast 10) (ast 0) (ast -10) 次は, 例題 8 に進んでください

まず,Scheme のプログラムをコンピュータに読み込ませている

ここでは, (ast 10) と書いて,x の値を 10 に設定しての実行 実行結果である 10 が表示される

入力と出力 x の値 : 10 入力 ast 15 出力 入力は 1 つの数値 出力は 1 つの数値 あるいはシンボル

関数である ことを示すキーワード ast 関数 関数の名前 (define (ast x) (cond [(> x 0) x] [else '*])) 値を 1 つ受け取る ( 入力 )

例題 8. シンボル 次の4 種のシンボルから, 答え を返すような関数 reply を作り, 実行する 'GoodMorning 'Hi 答え 'HowAreYou 'Fine 'GoodAfternoon 'NeedANap 'GoodEvening 'BoyAmITired これ以外の入力に対しては, 実行エラー

例題 8. シンボル の手順 1. 次を 定義用ウインドウ で, 実行しなさい 入力した後に,Execute ボタンを押す ;;reply: symbol -> symbol ;;to determine a reply for the greeting s (define (reply s) (cond [(symbol=? 'GoodMorning s) 'Hi] [(symbol=? 'HowAreYou s) 'Fine] [(symbol=? 'GoodAfternoon s) 'NeedANap] [(symbol=? 'GoodEvening s) 'BoyAmITired])) 2. その後, 次を 実行用ウインドウ で実行しなさい (reply 'GoodMorning) (reply 'Hello) 次は, 課題に進んでください

まず,Scheme のプログラムをコンピュータに読み込ませている

ここでは, (reply 'GoodMorning) と書いて,x の値を 'GoodMorning に設定しての実行 実行結果である 'Hi が表示される

ここでは, (reply 'Hello) と書いて,x の値を 'Hello に設定しての実行 実行エラーが発生する

入力と出力 x の値 : 'GoodMorning 入力 reply 'Hi 出力 入力はシンボル 出力はシンボル

reply 関数 ;; reply: symbol -> symbol ;; to determine a reply for the greeting s (define (reply s) (cond [(symbol=? 'GoodMorning s) 'Hi] [(symbol=? 'HowAreYou s) 'Fine] [(symbol=? 'GoodAfternoon s) 'NeedANap] [(symbol=? 'GoodEvening s) 'BoyAmITired]))

よくある間違い 本当は symbol=? と書くべき. しかし, = と書いている. 実行すると, エラーメッセージが出る

判定順 条件式の判定順 (define (reply s) (cond [(symbol=? 'GoodMorning s) 'Hi] [(symbol=? 'HowAreYou s) 'Fine] [(symbol=? 'GoodAfternoon s) 'NeedANap] [(symbol=? 'GoodEvening s) 'BoyAmITired])) 1 2 3 4 cond 文に並べた条件式は, 上から順に判定される上の例では,1,2,3,4 の順に判定が行われ, 1 が成り立てば,2,3,4 は判定されない 条件式の並べ方に意味がある

(reply 'GoodMorning) から 'Hi が得られる過程 (reply 'GoodMorning) = (cond [(symbol=? 'GoodMorning 'GoodMorning) 'Hi] [(symbol=? 'HowAreYou 'GoodMorning) 'Fine] [(symbol=? 'GoodAfternoon 'GoodMorning) 'NeedANap] [(symbol=? 'GoodEvening 'GoodMorning) 'BoyAmITired]) = (cond [true 'Hi] [(symbol=? 'HowAreYou 'GoodMorning) 'Fine] [(symbol=? 'GoodAfternoon 'GoodMorning) 'NeedANap] [(symbol=? 'GoodEvening 'GoodMorning) 'BoyAmITired]) = 'Hi

(reply 'GoodMorning) から 'Hi が得られる過程 (reply 'GoodMorning) = (cond [(symbol=? 'GoodMorning 'GoodMorning) 'Hi] [(symbol=? 'HowAreYou 'GoodMorning) 'Fine] [(symbol=? 'GoodAfternoon 'GoodMorning) 'NeedANap] [(symbol=? 'GoodEvening 'GoodMorning) 'BoyAmITired]) = (cond これは [true,'hi] (cond [(symbol=? 'HowAreYou 'GoodMorning) 'Fine] [(symbol=? 'GoodMorning s) 'Hi] [(symbol=? [(symbol=? 'GoodAfternoon 'HowAreYou s) 'GoodMorning) 'Fine] 'NeedANap] [(symbol=?'goodevening 'GoodAfternoon 'GoodMorning) s) 'NeedANap] 'BoyAmITired]) = 'Hi [(symbol=? 'GoodEvening s) 'BoyAmITired]) の s を 'GoodMorning で置き換えたもの

今日の実習課題

課題 1 実行結果を報告しなさい DrScheme の実行用ウインドウ で実行して, 実行結果を報告しなさい エラー が出た場合には, エラー と記入すること (list 1) (list 1 2) (list 1 2 3) (first (list...)) の実行結果 (rest (list...)) の実行結果 (first (rest (list...))) の実行結果 (first (rest (rest(list...)))) の実行結果

課題 2 最高気温 high と最低気温 low から, 真夏日, 夏日, 冬日, 真冬日を判定する関数 summer-winter-day を作成し, 実行結果を報告しなさい "Tropical Day" ( 真夏日,1 日の最高気温が 30 度以上の日 ) "Summer Day" ( 夏日,1 日の最高気温が 25 度以上の日 ) "Frost Day" ( 冬日,1 日の最低気温が 0 度未満の日 ) "Ice Day" ( 真冬日,1 日の最高気温が 0 度未満の日 )

課題 3 ある年 y のある月 m のある日 d が存在するかを調べ, 存在すれば d を, 存在しなければシンボル '* を返す関数を作成し, 実行結果を報告しなさい 例えば, 2004 10 10 10 を出力 2004 10 0 '* を出力 2004 10 32 '* を出力