岩村雅一 masa@cs.osakafu-u.ac.jp 知能情報工学演習I 第13回(後半第7回) 岩村雅一 masa@cs.osakafu-u.ac.jp.

Slides:



Advertisements
Similar presentations
知能情報工学演習 I 第 12 回( C 言語第6 回) 課題の回答 岩村雅一
Advertisements

配列の宣言 配列要素の初期値 配列の上限 メモリ領域 多次元配列 配列の応用
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
基礎プログラミングおよび演習 第9回
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
問題 1 フィボナッチ数列 xn は次で定義される。
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月6日、H.16(‘04)] 今日のメニュー 1 前回の課題の復習
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
C言語講座 第3回 ポインタ、配列.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
関数の定義.
第10回関数 Ⅱ (ローカル変数とスコープ).
Cプログラミング演習 第7回 メモリ内でのデータの配置.
知能情報工学演習I 第9回( C言語第3回) 課題の回答
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
知能情報工学演習I 第12回(後半第6回) 課題の回答
今までの練習問題の復習.
前回の練習問題.
知能情報工学演習I 第9回(後半第3回) 課題の回答
第7回 プログラミングⅡ 第7回
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
高度プログラミング演習 (08).
知能情報工学演習I 第8回( C言語第2回) 課題の回答
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
関数の再帰呼び出しとは ハノイの塔 リダイレクト レポート課題
プログラムの制御構造 配列・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
整数データと浮動小数データ.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
プログラミング序論演習.
知能情報工学演習I 第7回(後半第1回) 課題の回答
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
知能情報工学演習I 第11回( C言語第5回) 課題の回答
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
変数を一度にたくさん宣言するよ! それだけじゃないよ!
ループだよ!難しいよ! 第5章 while(ループ);.
知能情報工学演習I 第8回(後半第2回) 課題の回答
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
知能情報工学演習I 第12回( C言語第6回) 課題の回答
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
高度プログラミング演習 (07).
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
プログラミング演習I 2003年6月11日(第9回) 木村巌.
プログラミング1 プログラミング演習I 第2回.
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
プログラミング序論演習.
プログラミング入門2 第5回 配列 変数宣言、初期化について
知能情報工学演習I 第11回(後半第5回) 課題の回答
知能情報工学演習I 第9回(後半第3回) 課題の回答
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
知能情報工学演習I 第10回( C言語第4回) 課題の回答
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

岩村雅一 masa@cs.osakafu-u.ac.jp 知能情報工学演習I 第13回(後半第7回) 岩村雅一 masa@cs.osakafu-u.ac.jp

前回の課題 課題1 小数点以下第1位を四捨五入する関数を作りなさい。 例1:60.2→60 例2:5.8→6 #include<stdio.h> int func(float x){ return (int)(x+0.5); } int main(void){ float i; printf("小数を入力: "); scanf("%f",&i); printf("四捨五入:"); printf("%d\n",func(i)); return(0); 課題1 小数点以下第1位を四捨五入する関数を作りなさい。 例1:60.2→60 例2:5.8→6

前回の課題 課題2 階乗(1からnまでの自然数の積)を計算する関数を作り、順列と組み合わせを表示しなさい 順列 組み合わせ

前回の課題の回答例1 (for文を使った場合) #include <stdio.h> /* 階乗を計算する関数 */ int fact(int x) { int i, fact = 1; for(i = 2; i <= x; i++) { fact *= i; } return(fact); int main (void){ int n, r, p, c; printf("n: "); scanf("%d", &n); printf("r: "); scanf("%d", &r); p = fact(n) / fact(n-r); c = fact(n) / fact(n-r) / fact(r); printf("nPr = %d\n", p); printf("nCr = %d\n", c); return(0); } fact = 1 * 2 * 3 * 4 *… 0!や1!もok

前回の課題の回答例2 (関数の再帰的呼び出し) #include <stdio.h> /* 階乗を計算する関数 */ int fact(int x) { if (x==1 || x==0) { return(1); } else { return(x*fact(x-1)); } int main (void){ int n, r, p, c; printf("n: "); scanf("%d", &n); printf("r: "); scanf("%d", &r); p = fact(n) / fact(n-r); c = fact(n) / fact(n-r) / fact(r); printf("nPr = %d\n", p); printf("nCr = %d\n", c); return(0); }

前回の課題の回答例2 (関数の再帰的呼び出し) #include <stdio.h> /* 階乗を計算する関数 */ int fact(int x) { if (x==1 || x==0) { return(1); } else { return(x*fact(x-1)); } /* 階乗を計算する関数 */ int fact(int x) { if (x==1 || x==0) { return(1); } else { return(x*fact(x-1)); } /* 階乗を計算する関数 */ int fact(int 2) { if (x==1 || x==0) { return(1); } else { return(2*fact(2-1)); } /* 階乗を計算する関数 */ int fact(int 1) { if (x==1 || x==0) { return(1); } else { return(1*fact(1-1)); } /* 階乗を計算する関数 */ int fact(int x) { if (x==1 || x==0) { return(1); } else { return(x*fact(x-1)); } fact(1) = 1 =

前回の課題の回答例2 (関数の再帰的呼び出し) #include <stdio.h> /* 階乗を計算する関数 */ int fact(int x) { if (x==1 || x==0) { return(1); } else { return(x*fact(x-1)); }

後半の予定 6月2日 プログラミング環境(テキスト1,2章) 6月9日 変数とデータ型(3章) 、演算子(4章) 6月2日 プログラミング環境(テキスト1,2章) 6月9日 変数とデータ型(3章) 、演算子(4章) 6月16日 コンソール入出力(6章) 、配列(3章) 6月23日 制御文1 (テキスト5章) 6月30日 制御文2(テキスト5章) 7月14日 関数1(テキスト7章) 7月21日 配列(3章) 、応用プログラム

本日のメニュー 多次元配列 配列の初期化 文字認識

配列(テキストP.57) 同種のデータ型を連続してメモリに確保したもの 配列の宣言 int a[10]; double b[5]; double型の変数5個で構成される配列b

配列 普通の変数 配列 a int a; a = 10; 10 int a[5]; a[0] = 1; a[1] = 2; -3

多次元配列(テキストP.59) 同種のデータ型を連続してメモリに確保したもの 多次元配列の宣言 int a[10][10]; int型の変数10x10個で構成される配列a double b[5][5]; double型の変数5x5個で構成される配列b

多次元配列 int a[3][3]; a[0][0] = 1; a[0][1] = 2; a[0][2] = 5; 10 -3 4 a[1][] 8 -1 -5 a[2][]

多次元配列のサンプルプログラム #include <stdio.h> int main(void) { int i, j, a[2][3]; for (i=0; i<2; i++) { for (j=0; j<3; j++) { printf("Input a[%d][%d]: ",i,j); scanf("%d", &a[i][j]); } for (i=0; i<2; i++) { for (j=0; j<3; j++) { printf("a[%d][%d] = %d\n", i, j, a[i][j]); } return 0;

配列の初期化(テキストP.67) 変数は宣言するときに値を設定できる 配列は宣言するときに値を設定できる int a=10; 省略可能

パターン認識 パターン認識とは? ぺヨンジュン パターンを概念に対応付けること 人には簡単 機械には難しい 文字認識 音声認識 顔認識 ぺヨンジュンです。 音声認識 顔認識 文字認識 ぺヨンジュン

文字認識 重なり部分が一番多い 学習パターン 重ね合わせ 認識するパターン

2枚の画像の重なりの度合い 尺度1 尺度2 :画像Aの(i,j)画素 :画像Bの(i,j)画素