前回の練習問題.

Slides:



Advertisements
Similar presentations
1 例題 ex3b ( 配列 ) 科学科プログラミング. 2 例題 : ex3b  以下の 3 つについて例題を進める ステップ 1 :配列 ステップ 2 :最小と最大 ステップ 3 :文字型の配列.
Advertisements

復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
ファーストイヤー・セミナーⅡ 第8回 データの入力.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
基礎プログラミングおよび演習 第9回
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
プログラミング基礎I(再) 山元進.
文字配列の課題1 解説 /* a */ #include <stdio.h> main( ) { int i;
C言語 配列 2016年 吉田研究室.
第8回 プログラミングⅡ 第8回
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
第6章 2重ループ&配列 2重ループと配列をやります.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
第10回 プログラミングⅡ 第10回
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング応用 printfと変数.
プログラミング論 II 2008年10月30日 文字列
後期中間試験練習問題 12月3日(月)9:00~ 第3演習室.
2005年度 データ構造とアルゴリズム 第3回 「C言語の復習:再帰的データ構造」
第10章 これはかなり大変な事項!! ~ポインタ~
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
今までの練習問題の復習.
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
第13章 文字の取り扱い方 13.1 文字と文字型関数 13.2 文字列 13.3 文字型配列への文字列の代入
第7回 プログラミングⅡ 第7回
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
地域情報学 C言語プログラミング 第5回 ポインタ、関数、ファイル入出力 2017年11月17日
デジタル画像とC言語.
プログラミング基礎B 文字列の扱い.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
疑似乱数, モンテカルロ法によるシミュレーション
C言語 はじめに 2016年 吉田研究室.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
プログラミング基礎a 第6回 C言語によるプログラミング入門 配列と文字列(その2)
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
変数を一度にたくさん宣言するよ! それだけじゃないよ!
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2016年11月25日
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
プログラミング 4 文字列.
ループだよ! 第7章 for(ループ応用);.
第7章 そろそろ int 以外も使ってみよう! ~データ型 double , bool~
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2017年11月1日
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング入門2 第5回 配列 変数宣言、初期化について
第2章 数値の入力と変数 scanfと変数をやります.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
第5回 配列.
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
第1章 文字の表示と計算 printfと演算子をやります.
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

前回の練習問題

ちょっとした練習問題① for文の二重ループを使って「1×1=答え」から「9 × 9=答え」となるような九九の計算を表示させるようなプログラムを記述せよ。

ちょっとした練習問題② Aさん、Bさん、Cさん、Dさん、Eさんの5人が同時にじゃんけんをします。(リーグ戦やトーナメント戦ではない)その5人の出した手をそれぞれ入力とし、それぞれの勝敗を判定するプログラムを作成してください。出力はprintfで「○さんの勝ち」、「○さんの負け」、「あいこです」と表示するプログラムとします。

ちょっとした練習問題③ モンテカルロ法を使って円の面積を計算して円周率を求めます。円の面積はπ×半径×半径です。半径を1としたときの円の面積はπとなります。またその円に内接するような正方形は1辺が円の直径となり、縦×横、2×2で面積は4となります。となると近似でπ = 4と考えることもできます。 続く

モンテカルロ法はランダム(乱数)を用いたシミュレーションです。本問題ではx座標、y座標にランダムで点を打ち、下のグラフのように「x モンテカルロ法はランダム(乱数)を用いたシミュレーションです。本問題ではx座標、y座標にランダムで点を打ち、下のグラフのように「x*x + y*y <= 1」のときの点が円の面積の内側にある点として、円の面積を4×(円の内側の点)/(正方形にあるすべての点)で近似することができます。以上のようにしてモンテカルロ法で点すべての数を10000、10000、100000で増加させて円周率の値を求めるようなプログラムを作成してください。

モンテカルロ法の図

プログラミング応用 配列、文字列

配列 複数の値を入れることができる変数の集まり 1つの変数名で複数のデータをまとめて管理で きるようになっている 文字列も配列。 「.length」がないので注意 多次元配列が使える 連想配列みたいなのは別項目(ないと考える)

実行してみる① #include <stdio.h> int main(void){ int a[4]; a[0] = 1; a[1] = 2; a[2] = 3; a[3] = 4; for (int i = 0; i < 4; i++) printf("%d\n", a[i]); return 0; }

実行してみる② #include <stdio.h> int main(void){ int a[4] = {1, 2, 3, 4}; for (int i = 0; i < 4; i++) printf("%d\n", a[i]); return 0; } 同じ実行結果になる

実行してみる③ #include <stdio.h> int main(void){ int a[4] = {1, 2, 3, 4}; printf("%d\n", a[5]); return 0; } エラーになる

実行してみる④ 中に何も書かない方法もある どうなるか確認してみよう #include <stdio.h> int main(void){ int a[] = {1, 2, 3, 4}; for (int i = 3; i >= 0; i--) printf("%d\n", a[i]); return 0; } 中に何も書かない方法もある どうなるか確認してみよう

配列の仕組み 普通の変数 値 int 変数名; 配列変数 値 値 値 1 2 int 配列名[] = {値};

ネットで拾ってきた絵

文字列は配列 文字列は文字の集まり、配列で表す ダブルクォート ” は文字列、シングルクォート ’ は1文字を表す char s[6]の配列で5文字を表すことができる

実行してみる① #include <stdio.h> int main(void){ char m[6] = “Hello”; printf(“%c%c%c%c%c \n”, m[0], m[1], m[2], m[3], m[4]); printf(“%c \n”, m[3]); printf(“%s \n”, m); return 0; }

実行してみる② #include <stdio.h> int main(void){ char s[4] = “Cat”; s[0] = ‘R’; printf(“%s \n”, s); return 0; }

実行してみる③ #include <stdio.h> int main(void){ char a[4] = “NET”; char b[4]; for(int i = 0; a[i] != ‘\0’; i++) b[i] = a[2-i]; b[3] = ‘\0’; printf(“%s は逆からだと %s \n”, a, b); return 0; }

#include <string.h> 文字列関数 #include <string.h>     () …文字列の長さを得る     () …文字列をコピーする     () …文字列を結合する     () …数値などを文字列に変換     () …文字列を数値に変換する

実行してみる① #include <stdio.h> #include <string.h> int main(void){ char s1[] = “cat”, s2[] = “dog”; char s[20]; sprintf(s, “I love %s and %s.”, s1, s2); printf(“「%s」の文字数は%d \n”, s, strlen(s)); return 0; }

実行してみる② 文字列を代入する ための関数 #include <stdio.h> #include <string.h> int main(void){ char m[11] = ”Hello"; printf("%s \n", m); strcpy(m, “Good bye!”); return 0; } 文字列を代入する ための関数

多次元配列 1次元配列 int a[3]; 2次元配列 int a[2][3]; 3次元配列 int a[2][2][3]; 4次元配列

実行してみる #include <stdio.h> int main(void){ int a[2][3] ={ {10, 20, 30}, {40, 50, 60} }; for(int x = 0; x < 2; x++) for(int y = 0; y < 3; y++) printf(“a[%d][%d] = %d \n”, x, y, a[x][y]); return 0; }

今週はここまで 何か質問はありませんか?

ちょっとした練習問題① 配列iroを[“赤”, “白”, “赤”, “赤”, “白” , “白” , “白”]を宣言して、「白」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。

ちょっとした練習問題② 二次元配列を使って以下に示す”□”と”■”でつくられた図をprintfで表示するプログラムを記述しなさい。

ちょっとした練習問題③ 試験の点数が格納された配列score = [98, 100, 43, 21, 87, 76, 59, 60, 10, 34]を宣言して、関数akatenに配列scoreを参照渡しして赤点(60未満)となる配列が何番目かをprintfで表示するプログラムを記述してください。

ちょっとした練習問題④ 配列animの0番目が”ぞう”、1番目が”きりん”、2番目が”わに”、3番目が”ぱんだ”、4番目が”チンパンジー”となるように宣言をし、animで宣言した動物のすべてをprintfで表示となるプログラムを記述しなさい。

ちょっとした練習問題⑤ String関数を使って文字列の変数strの中身をすべて配列mojiに格納し、10番目の文字を”超大”と変更して、その文字をprintfで表示するプログラムを記述しなさい。 char str[] = “私はプログラミングが大好きです”;

ちょっとした練習問題⑥ 0~99の範囲の10個の整数をランダムに生成して、小さい順に並び替えるプログラムを作成しなさい。このとき、C言語のライブラリ関数(qsort()など)を使わないこと。

ちょっとした練習問題⑦ 4人の学生の3科目のテスト2回の合計を求めて表示するプログラムを作成しなさい。点数を格納するのは3次元配列tensuとする。 int tensu[2][4][3] ={ { {91, 63, 78}, {67, 72, 46}, {89, 34, 53}, {32, 54, 34} }, { {97, 67, 82}, {73, 43, 46}, {97, 56, 21}, {85, 46, 35} }, };

ちょっとした練習問題⑧ 文字列s内のすべての数字文字を削除するプログラムを作成しなさい。格納された文字列は”AB1C93D”とする