| 情報学部 | 菅沼ホーム | 目次 | 索引 |
int x[3], y[4];
//int x[3] = {1, 2, 3};
//int x[3] {1, 2, 3}; のような初期設定の可能

int y[2][3] = {{10, 20, 30}, {40, 50, 60}};
//int y[2][3] {{10, 20, 30}, {40, 50, 60}}; も OK int *x = &y[0][2];

int *u1 = new int [3], *u2 = new int [3], *u3;
// int *u1 = new int [3] {1, 2, 3}; のような初期設定も OK
for (int i1 = 0; i1 < 3; i1++) {
u1[i1] = i1 + 1;
u2[i1] = i1 + 1;
}
u3 = u1; 
// 以下のような方法で初期設定も可能
//int ** v1 = new int* [2];
//v1[0] = new int [3] {10, 20, 30};
//v1[1] = new int [3] {40, 50, 60};
v1[0] = new int [3];
v2[0] = new int [3];
for (int i1 = 0; i1 < 3; i1++) {
v1[0][i1] = 10 * (i1 + 1);
v2[0][i1] = 10 * (i1 + 1);
}
v1[1] = new int [3];
v2[1] = new int [3];
for (int i1 = 0; i1 < 3; i1++) {
v1[1][i1] = 10 * (i1 + 4);
v2[1][i1] = 10 * (i1 + 4);
}
v3 = v1;
int *x = v1[1];

vector<int> w1, w2; ・・・ w2 = w1;
int u1[] = {1, 2, 3}, u2[] = {1, 2, 3}, u3[], u4[];
u3 = u1;
u4 = u1.clone();
//int u1[] = new int [3]; // 初期設定を行わない場合

int v1[][] = {{10, 20, 30}, {40, 50, 60}};
int v2[][] = {{10, 20, 30}, {40, 50, 60}};
int v3[][] = v1; // int v3[][] = v1.clone();
//double v1[][] = new double [2][3]; // 初期設定を行わない場合
//double v1[][] = new double [2][]; // この行以下の 3 行のような形でも可能
//for (int i1 = 0; i1 < 2; i1++)
// v1[i1] = new double [3]; // 行毎に列数を変えることも可能 
int vp1[] = v1[0]; // v1,v3 の 1 行目 int vp2[] = v1[1]; // v1,v3 の 2 行目 int vp3[] = v1[1].clone();
int x1[] = {10, 20, 30};
int x2[] = {40, 50, 60};
int v1[][] = {x1, x2}; ArrayList <Integer> w1, w2; ・・・ w2 = w1;
let x = new Array(1, 2.3, "abc"); //let x = new Array(); // 要素数は未定,初期設定を行わない //let x = new Array(100); // 要素数が100の配列,初期設定を行わない
let u1 = new Array(1, "abc", 2); let u2 = new Array(1, "abc", 2); let u3 = u1; u3[1] = 4;

let v1 = new Array(2); v1[0] = new Array(10, 20, 30); v1[1] = new Array(40, 50, 60); let v2 = new Array(2); v2[0] = new Array(10, 20, 30); v2[1] = new Array(40, 50, 60); let v3 = v1;

let vp1 = v1[0]; // v1,v3 の 1 行目 let vp2 = v1[1]; // v1,v3 の 2 行目
$x = array(1, 2.3, "abc"); //$x = array(); // 要素数は未定,初期設定を行わない
$u1 = array(1, "abc", 2); $u2 = $u1; $u3 = &$u1;
$v1 = array(2); $v1[0] = array(10, 20, 30); $v1[1] = array(40, 50, 60); $v2 = $v1; $v3 = &$v1;
$v4 = $v1[0]; // $v4 = &$v1[0];
x = Array[1, 2.3, "abc"]; # x = [1, 2.3, "abc"]; でも可 #x = Array.new(); # 初期設定をしない場合 #x = Array.new(3); # サイズを指定しても良い
u1 = Array[1, "abc", 2]; u2 = Array[1, "abc", 2]; u3 = u1; u4 = u1.clone(); u3[1] = 10; u4[0] = 20;

v1 = Array[[10, 20, 30], [40, 50, 60]]; v2 = Array[[10, 20, 30], [40, 50, 60]]; v3 = v1; v4 = v1.clone(); #v1 = Array.new(); # 初期設定をしない場合 #for i1 in (0...2) # v1[i1] = Array.new(); # v1[i1] = Array[1, 2, 3]; # 行毎の初期設定も可

v4 = v1[0]; // v1,v3 の 1 行目 v5 = v1[0].clone();
x = array("i", [1, 2, 3]) # x = array("i") 初期設定を行わない場合
y = [1, "abc", 2]
u1 = array("i", [1, 2, 3])
u2 = array("i", [1, 2, 3])
u3 = u1
u4 = copy.copy(u1)
u3[1] = 4 u4[2] = 5

v1 = [array("i", [10, 20, 30]), array("i", [40, 50, 60])]
v2 = [array("i", [10, 20, 30]), array("i", [40, 50, 60])]
v3 = v1
v4 = copy.copy(v1)
v5 = copy.deepcopy(v1) v1[0][1] = 70 v3[0][2] = 100 v4[1][0] = 200 v5[1][1] = 300 v6 = v1[0] # v1,v3,v4 の 1 行目 v6[0] = 400

int[] u1 = {1, 2, 3}, u2 = {1, 2, 3}, u3;
u3 = u1;
//int[] u1 = new int [] {1, 2, 3};
//int[] u1 = new[] {1, 2, 3};
//int[] u1 = new int [3]; // 初期設定を行わない場合

01 //int[][] v1 = new int [2][3]; // この記述は許されない
02 int[][] v1 = new int[][] {
03 new int[] {10, 20, 30},
04 new int[] {40, 50, 60}
05 };
06 int[][] v2 = new int [2][]; // この方法でも良い
07 v2[0] = new int[] {10, 20, 30};
08 v2[1] = new int[] {40, 50, 60};
09 //int[][] v1 = new int [2][]; // 以下の 3 行でも良い(初期設定を行わない場合)
10 //for (int i1 = 0; i1 < 2; i1++) {
11 // v1[i1] = new int [3];
12 int[][] v3 = v1; 
int vp1[] = v1[0]; // v1,v3 の 1 行目 int vp2[] = v1[1]; // v1,v3 の 2 行目
int[,] v1 = {{10, 20, 30}, {40, 50, 60}};
//int[,] v1 = new int[,] {{10, 20, 30}, {40, 50, 60}};
//int[,] v1 = new[,] {{10, 20, 30}, {40, 50, 60}};
//int[,] v1 = new int [2,3]; // 初期設定を行わない
List <int> w1, w2; ・・・ w2 = w1;
Dim u1() As Integer = {1, 2, 3}
Dim u2() As Integer = {1, 2, 3}
Dim u3() As Integer = u1;
'Dim u1(3) As Integer = {1, 2, 3} ' 配列サイズを指定した初期設定は不可能
'Dim u1(n) As Integer ' 初期設定なし,n は添え字の最大値

Dim v1(,) As Integer = {{10, 20, 30}, {40, 50, 60}}
Dim v2(,) As Integer = {{10, 20, 30}, {40, 50, 60}}
Dim v3(,) As Integer = v1
'Dim v1(,) As Integer = New Integer(,) {{10, 20, 30}, {40, 50, 60}} でも可
'Dim v1(2,3) As Integer = {{10, 20, 30}, {40, 50, 60}} 要素数指定の初期設定は不可
'Dim v1(2,3) As Integer 初期設定は行わない場合
Dim w1 As New List(Of Integer) Dim w2 As New List(Of Integer) ・・・ w2 = w1;
01 #include <stdio.h>
02
03 int main()
04 {
05 int m1; // 人数
06 printf("人数は? ");
07 scanf("%d", &m1);
08 int a1[m1]; // int a1[100]; の方が好ましい
09 // int a1[m1] = {1, 2, 3}; のような初期設定不可
10 // int b1[m1];
11 // b1 = a1; // このような代入は許されない
12 double mean1 = 0.0;
13 for (int i1 = 0; i1 < m1; i1++) {
14 printf(" %d 番目の人の点数は? ", i1+1);
15 scanf("%d", &a1[i1]);
16 mean1 += a1[i1];
17 }
18 mean1 /= (double)m1;
19 int n1 = 0;
20 for (int i1 = 0; i1 < m1; i1++) {
21 if (a1[i1] >= mean1)
22 n1++;
23 }
24 printf(" 平均点( %f )以上は %d 人\n", mean1, n1);
25
26 return 0;
27 }
int a1[3] = {1, 2, 3};
int a1[] = {1, 2, 3}; // 3 は,省略可能
01 #include <stdio.h>
02
03 int main()
04 {
05 int m2; // クラス数
06 printf("クラス数は? ");
07 scanf("%d", &m2);
08 double mean2 = 0.0; // 全体の平均
09 double c_mean2[m2]; // クラス毎の平均,double c_mean2[10]; の方が好ましい
10 int s_num2 = 0; // 全体の人数
11 int a2[m2][50]; // int a2[5][50]; の方が好ましい
12 // int a2[m2][2] = {{1, 2}, {3, 4}, {5, 6}}; のような初期設定不可
13 // int b2[m2][50];
14 // b2 = a2; // このような代入は許されない
15 for (int i1 = 0; i1 < m2; i1++) {
16 int n_m2; // クラス内の人数
17 printf(" クラス %d の人数は? ", i1+1);
18 scanf("%d", &n_m2);
19 c_mean2[i1] = 0.0;
20 for (int i2 = 0; i2 < n_m2; i2++) {
21 printf(" クラス %d の %d 番目の人の点数は? ", i1+1, i2+1);
22 scanf("%d", &a2[i1][i2]);
23 c_mean2[i1] += a2[i1][i2];
24 }
25 mean2 += c_mean2[i1];
26 s_num2 += n_m2;
27 c_mean2[i1] /= (double)n_m2; // クラスの平均
28 }
29 mean2 /= (double)s_num2; // 全体の平均
30 int n2 = 0;
31 for (int i1 = 0; i1 < m2; i1++) {
32 if (c_mean2[i1] >= mean2)
33 n2++;
34 }
35 printf(" 平均点( %f )以上のクラスは %d \n", mean2, n2);
36
37 return 0;
38 }
int a2[3][2] = {{1, 2}, {3, 4}, {5, 6}};
int a2[][2] = {{1, 2}, {3, 4}, {5, 6}}; // 3 は,省略可能 int *x = &(a2[0][0]);
01 #include <stdio.h>
02
03 int main()
04 {
05 int m3; // 人数
06 printf("人数は? ");
07 scanf("%d", &m3);
08 int *a3 = new int [m3]; // 初期化: int *a3 = new int [3] {1, 2, 3};
09 // int *b3;
10 // b3 = a3; a3 と b3 は同じ配列(a3 を変更すれば b3 も変化)
11 double mean3 = 0.0;
12 for (int i1 = 0; i1 < m3; i1++) {
13 printf(" %d 番目の人の点数は? ", i1+1);
14 scanf("%d", &a3[i1]);
15 mean3 += a3[i1];
16 }
17 mean3 /= (double)m3;
18 int n3 = 0;
19 for (int i1 = 0; i1 < m3; i1++) {
20 if (a3[i1] >= mean3)
21 n3++;
22 }
23 printf(" 平均点( %f )以上は %d 人\n", mean3, n3);
24 delete [] a3;
25
26 return 0;
27 }
01 #include <stdio.h>
02 int main()
03 {
04 int m4; // クラス数
05 printf("クラス数は? ");
06 scanf("%d", &m4);
07 double mean4 = 0.0; // 全体の平均
08 double *c_mean4 = new double [m4]; // クラス毎の平均
09 int s_num4 = 0; // 全体の人数
10 int **a4 = new int *[m4];
11 for (int i1 = 0; i1 < m4; i1++) {
12 int n_m4; // クラス内の人数
13 printf(" クラス %d の人数は? ", i1+1);
14 scanf("%d", &n_m4);
15 a4[i1] = new int [n_m4];
16 c_mean4[i1] = 0.0;
17 for (int i2 = 0; i2 < n_m4; i2++) {
18 printf(" クラス %d の %d 番目の人の点数は? ", i1+1, i2+1);
19 scanf("%d", &a4[i1][i2]);
20 c_mean4[i1] += a4[i1][i2];
21 }
22 mean4 += c_mean4[i1];
23 c_mean4[i1] /= (double)n_m4;
24 s_num4 += n_m4;
25 }
26 mean4 /= (double)s_num4;
27 int n4 = 0;
28 for (int i1 = 0; i1 < m4; i1++) {
29 if (c_mean4[i1] >= mean4)
30 n4++;
31 }
32 printf(" 平均点( %f )以上のクラスは %d \n", mean4, n4);
33 // int **b4;
34 // b4 = a4; a4 と b4 は同じ配列(a4 を変更すれば b4 も変化)
35 // int *c4;
36 // c4 = a4[1]; c4 は,a4 の 2 行目と同じ 1 次元配列
37 // (a4 の 2 行目を変更すれば c4 も変化)
38 delete [] c_mean4;
39 for (int i1 = 0; i1 < m4; i1++)
40 delete [] a4[i1];
41 delete [] a4;
42
43 return 0;
44 }
01 #include <stdio.h>
02 #include <vector>
03
04 using namespace std;
05
06 int main()
07 {
08 printf("ファイル入出力(vector クラス)\n");
09 FILE *in = fopen("data.txt","r");
10 FILE *out = fopen("out.txt","w"); // fopen(..., "a") は追加
11 double mean5 = 0.0;
12 int x, m5 = 0;
13 vector<int> a5;
14 while (EOF != fscanf(in, "%d", &x)) {
15 a5.push_back(x);
16 mean5 += x;
17 m5++;
18 fprintf(out, "%d %d\n", m5, x);
19 }
20 fclose(in);
21 fclose(out);
22 mean5 /= (double)m5;
23 int n5 = 0;
24 for (int i1 = 0; i1 < m5; i1++) {
25 if (a5[i1] >= mean5)
26 n5++;
27 }
28 printf(" 平均点( %f )以上は %d 人\n", mean5, n5);
29 // vector<int> b5;
30 // b5 = a5; a5 と b5 は,要素の値は同じでも別の配列
31
32 return 0;
33 }
01 #include <stdio.h>
02 #include <iostream>
03 #include <map>
04
05 using namespace std;
06
07 int main()
08 {
09 printf("map クラス\n");
10 map<string, int> a6;
11 a6.insert(pair<string, int>("suzuki", 40)); // a6["suzuki"] = 40; でも可
12 a6.insert(pair<string, int>("sato", 60)); // a6["sato"] = 60; でも可
13 a6.insert(pair<string, int>("yamada", 70)); // a6["yamada"] = 70; でも可
// 以下のような形で初期設定も OK
// map<string, int> a6 {{"suzuki", 40}, {"sato", 60}, {"yamada", 70}};
14 map<string, int>::iterator it = a6.find("suzuki");
15 printf(" suzuki さんの得点:%d\n", it->second);
16 // 上の 2 行の代わりに下に示す 1 行でも可
17 // printf(" suzuki さんの得点:%d\n", a6["suzuki"]);
18 // map<string, int> b6;
19 // b6 = a6; a6 と b6 は,要素の値は同じでも別の配列
20
21 return 0;
22 }
map クラス suzuki さんの得点:40
001 #include <stdio.h>
002 #include <iostream>
003
004 using namespace std;
005
006 /**********************/
007 /* クラスMatrixの定義 */
008 /**********************/
009 class Matrix { /* 2次元行列 */
010 int n; // 行の数
011 int m; // 列の数
012 double **mat; // 行列本体
013 public:
014 Matrix(int, int); // コンストラクタ(引数あり)
015 Matrix(const Matrix &); // 初期化のためのコンストラクタ
016 Matrix() {n = 0;} // コンストラクタ(引数無し)
017 ~Matrix() // デストラクタ
018 {
019 if (n > 0) {
020 for (int i1 = 0; i1 < n; i1++)
021 delete [] mat[i1];
022 delete [] mat;
023 }
024 }
025 Matrix &operator= (const Matrix &); // =のオーバーロード
026 Matrix operator+ (const Matrix &); // +のオーバーロード
027 Matrix operator- (const Matrix &); // -のオーバーロード
028 Matrix operator* (const Matrix &); // *のオーバーロード
029 friend istream &operator >> (istream &, Matrix &); // >> のオーバーロード
030 friend ostream &operator << (ostream &, Matrix); // << のオーバーロード
031 };
032
033 /*****************************/
034 /*コンストラクタ(引数あり) */
035 /*****************************/
036 Matrix::Matrix(int n1, int m1)
037 {
038 n = n1;
039 m = m1;
040 mat = new double * [n];
041 for (int i1 = 0; i1 < n; i1++)
042 mat[i1] = new double [m];
043 }
044
045 /********************************/
046 /* 初期化のためのコンストラクタ */
047 /********************************/
048 Matrix::Matrix(const Matrix &A)
049 {
050 n = A.n;
051 m = A.m;
052 mat = new double * [n];
053 for (int i1 = 0; i1 < n; i1++) {
054 mat[i1] = new double [m];
055 for (int i2 = 0; i2 < m; i2++)
056 mat[i1][i2] = A.mat[i1][i2];
057 }
058 }
059
060 /*******************************/
061 /* =のオーバーロード */
062 /* A = B (A.operator=(B)) */
063 /*******************************/
064 Matrix& Matrix::operator= (const Matrix &B)
065 {
066 if (&B != this) { // 自分自身への代入を防ぐ
067 if (n > 0) { // 代入する前のメモリを解放
068 for (int i1 = 0; i1 < n; i1++)
069 delete [] mat[i1];
070 delete [] mat;
071 }
072 n = B.n;
073 m = B.m;
074 mat = new double * [n]; // メモリの確保と代入
075 for (int i1 = 0; i1 < n; i1++) {
076 mat[i1] = new double [m];
077 for (int i2 = 0; i2 < m; i2++)
078 mat[i1][i2] = B.mat[i1][i2];
079 }
080 }
081
082 return *this;
083 }
084
085 /**********************/
086 /* +のオーバーロード */
087 /**********************/
088 Matrix Matrix::operator + (const Matrix &B)
089 {
090 if (n != B.n || m != B.m) {
091 cout << "***error invalid data\n";
092 exit(1);
093 }
094
095 Matrix C(n, m);
096
097 for (int i1 = 0; i1 < n; i1++) {
098 for (int i2 = 0; i2 < m; i2++)
099 C.mat[i1][i2] = mat[i1][i2] + B.mat[i1][i2];
100 }
101
102 return C;
103 }
104
105 /**********************/
106 /* -のオーバーロード */
107 /**********************/
108 Matrix Matrix::operator - (const Matrix &B)
109 {
110 if (n != B.n || m != B.m) {
111 cout << "***error invalid data\n";
112 exit(1);
113 }
114
115 Matrix C(n, m);
116
117 for (int i1 = 0; i1 < n; i1++) {
118 for (int i2 = 0; i2 < m; i2++)
119 C.mat[i1][i2] = mat[i1][i2] - B.mat[i1][i2];
120 }
121
122 return C;
123 }
124
125 /**********************/
126 /* *のオーバーロード */
127 /**********************/
128 Matrix Matrix::operator* (const Matrix &B)
129 {
130 if (m != B.n) {
131 cout << "***error invalid data\n";
132 exit(1);
133 }
134
135 Matrix C(n, B.m);
136
137 for (int i1 = 0; i1 < n; i1++) {
138 for (int i2 = 0; i2 < B.m; i2++) {
139 C.mat[i1][i2] = 0.0;
140 for (int i3 = 0; i3 < m; i3++)
141 C.mat[i1][i2] += mat[i1][i3] * B.mat[i3][i2];
142 }
143 }
144
145 return C;
146 }
147
148 /********************************/
149 /* 入力( >> のオーバーロード) */
150 /********************************/
151 istream &operator >> (istream &stream, Matrix &A)
152 {
153 printf("*** %d 行 %d 列の行列***\n", A.n, A.m);
154 for (int i1 = 0; i1 < A.n; i1++) {
155 printf("%d 行目のデータ\n", i1+1);
156 for (int i2 = 0; i2 < A.m; i2++) {
157 printf(" %d 列目の値は? ", i2+1);
158 stream >> A.mat[i1][i2];
159 }
160 }
161
162 return stream;
163 }
164
165 /********************************/
166 /* 出力( << のオーバーロード) */
167 /********************************/
168 ostream &operator << (ostream &stream, Matrix A)
169 {
170 for (int i1 = 0; i1 < A.n; i1++) {
171 for (int i2 = 0; i2 < A.m; i2++)
172 stream << " " << A.mat[i1][i2];
173 stream << "\n";
174 }
175
176 return stream;
177 }
178
179 int main()
180 {
181 //
182 // 行列の計算(演算子のオーバーロード)
183 //
184 int n, m, l, sw;
185 printf("計算方法( 0 : +, 1 : -, 2 : * ) ");
186 cin >> sw;
187 switch (sw) {
188
189 case 0: // +
190 {
191 printf("--- A+B ---\n");
192 printf("n 行 m 列の n と m? ");
193 cin >> n >> m;
194 Matrix A(n, m), B(n, m);
195 cout << "Matrix A ";
196 cin >> A;
197 cout << "Matrix B ";
198 cin >> B;
199 cout << "Matrix (A+B)\n";
200 cout << A+B;
201 break;
202 }
203
204 case 1: // -
205 {
206 printf("--- A-B ---\n");
207 printf("n 行 m 列の n と m? ");
208 cin >> n >> m;
209 Matrix A(n, m), B(n, m);
210 cout << "Matrix A ";
211 cin >> A;
212 cout << "Matrix B ";
213 cin >> B;
214 cout << "Matrix (A-B)\n";
215 cout << A-B;
216 break;
217 }
218
219 case 2: // *
220 {
221 cout << "--- A*B ---\n";
222 printf("n 行 m 列の n と m( A )? ");
223 cin >> n >> m;
224 printf("行列 B の列数は? ");
225 cin >> l;
226 Matrix A(n, m), B(m, l);
227 cout << "Matrix A ";
228 cin >> A;
229 cout << "Matrix B ";
230 cin >> B;
231 cout << "Matrix (A*B)\n";
232 cout << A*B;
233 break;
234 }
235 }
236
237 return 0;
238 }
x + y x - y x * y
A + B A - B A * B
Matrix W;
Matrix W1 = W2;
W1 = W2;
01 import java.io.*;
02
03 public class Test {
04 public static void main(String args[]) throws IOException
05 {
06 BufferedReader inp = new BufferedReader(new InputStreamReader(System.in));
07 int m3; // 人数
08 System.out.printf("人数は? ");
09 m3 = Integer.parseInt(inp.readLine());
10 int a3[] = new int [m3];
11 // int a3[] = {1, 2, 3}; のような初期設定も可
12 // int b3[];
13 // b3 = a3; a3 と b3 は同じ配列(a3 を変更すれば b3 も変化)
14 double mean3 = 0.0;
15 for (int i1 = 0; i1 < m3; i1++) {
16 System.out.printf(" %d 番目の人の点数は? ", i1+1);
17 a3[i1] = Integer.parseInt(inp.readLine());
18 mean3 += a3[i1];
19 }
20 mean3 /= m3;
21 int n3 = 0;
22 for (int i1 = 0; i1 < m3; i1++) {
23 if (a3[i1] >= mean3)
24 n3++;
25 }
26 System.out.printf(" 平均点( %f )以上は %d 人\n", mean3, n3);
27 }
28 }
01 import java.io.*;
02
03 public class Test {
04 public static void main(String args[]) throws IOException
05 {
06 BufferedReader inp = new BufferedReader(new InputStreamReader(System.in));
07 int m4; // クラス数
08 System.out.printf("クラス数は? ");
09 m4 = Integer.parseInt(inp.readLine());
10 double mean4 = 0.0; // 全体の平均
11 double c_mean4[] = new double [m4]; // クラス毎の平均
12 int s_num4 = 0; // 全体の人数
13 int a4[][] = new int [m4][];
14 // int a4[][] = new int [2][3]; 列の数が既知の場合
15 // int a4[][] = {{1, 2, 3}, {4, 5, 6}}; のような初期設定も可
16 for (int i1 = 0; i1 < m4; i1++) {
17 int n_m4; // クラス内の人数
18 System.out.printf(" クラス %d の人数は? ", i1+1);
19 n_m4 = Integer.parseInt(inp.readLine());
20 a4[i1] = new int [n_m4];
21 c_mean4[i1] = 0.0;
22 for (int i2 = 0; i2 < n_m4; i2++) {
23 System.out.printf(" クラス %d の %d 番目の人の点数は? ", i1+1, i2+1);
24 a4[i1][i2] = Integer.parseInt(inp.readLine());
25 c_mean4[i1] += a4[i1][i2];
26 }
27 mean4 += c_mean4[i1];
28 s_num4 += n_m4;
29 c_mean4[i1] /= n_m4; // クラス毎の平均
30 }
31 mean4 /= s_num4; // 全体の平均
32 int n4 = 0;
33 for (int i1 = 0; i1 < m4; i1++) {
34 if (c_mean4[i1] >= mean4)
35 n4++;
36 }
37 System.out.printf(" 平均点( %f )以上のクラスは %d \n", mean4, n4);
38 // int b4[][];
39 // b4 = a4; a4 と b4 は同じ配列(a4 を変更すれば b4 も変化)
40 // int c4[];
41 // c4 = a4[1]; c4 は,a4 の 2 行目と同じ 1 次元配列
42 // (a4 の 2 行目を変更すれば c4 も変化)
43 }
44 }
01 import java.io.*;
02 import java.util.*;
03
04 public class Test {
05 public static void main(String args[]) throws IOException
06 {
07 System.out.printf("ファイル入力(ArrayList クラス)\n");
08 BufferedReader in = new BufferedReader(new FileReader("data.txt"));
09 PrintStream out = new PrintStream(new FileOutputStream("out.txt"));
10 double mean5 = 0.0;
11 int m5 = 0;
12 String line;
13 ArrayList <Integer> a5 = new ArrayList <Integer> ();
14 while ((line = in.readLine()) != null) {
15 int x = Integer.parseInt(line);
16 a5.add(new Integer(x));
17 mean5 += x;
18 m5++;
19 out.printf("%d %d\n", m5, x);
20 }
21 in.close();
22 out.close();
23 mean5 /= m5;
24 int n5 = 0;
25 for (int i1 = 0; i1 < m5; i1++) {
26 if (a5.get(i1) >= mean5)
27 n5++;
28 }
29 System.out.printf(" 平均点( %f )以上は %d 人\n", mean5, n5);
30 // ArrayList <Integer> b5;
31 // b5 = a5; a5 と b5 は同じ ArrayList(a5 を変更すれば b5 も変化)
32 // ArrayList <Integer> b5 = new ArrayList <Integer> ();
33 // for(int i1 = 0; i1 < 3; i1++)
34 // b5.add(new Integer(i1+1));
35 // ArrayList <Integer> a5 = new ArrayList <Integer> (b5);
36 }
37 }
01 import java.io.*;
02 import java.util.*;
03
04 public class Test {
05 public static void main(String args[]) throws IOException
06 {
07 System.out.printf("TreeMap クラス\n");
08 TreeMap a6 = new TreeMap ();
09 a6.put("suzuki", new Integer(40));
10 a6.put("sato", new Integer(60));
11 a6.put("yamada", new Integer(70));
12 System.out.printf(" suzuki さんの得点:%d\n", a6.get("suzuki"));
13 // TreeMap b6;
14 // b6 = a6; a6 と b6 は同じ TreeMap(a6 を変更すれば b6 も変化)
15 }
16 }
TreeMap クラス suzuki さんの得点:40
30 60 50 40 50 70 90 10 30 20 50 80 90 10 30
1 次元配列 平均点( 46.666666666666664 )以上は 2 人 2 次元配列 平均点( 47.5 )以上のクラスは 2
01 <!DOCTYPE HTML>
02 <HTML>
03 <HEAD>
04 <TITLE>配列</TITLE>
05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
06 <SCRIPT TYPE="text/javascript">
07 /****************************/
08 /* 配列に対するプログラム例 */
09 /* coded by Y.Suganuma */
10 /****************************/
11 function run() {
12 //
13 // データの取得
14 //
15 let str = document.getElementById("tx").value;
16 let data = str.split("\n");
17 //
18 // 1 次元配列
19 //
20 str += "\n1 次元配列\n";
21 let st3 = data[0].split(" "); // 1 行目のデータ,点数
22 let a3 = new Array(); // サイズ未定
23 // let a3 = new Array(100); // サイズが100
24 // let a3 = new Array(1, "abc", 3.5); // 初期設定によって配列確保
25 // let b3 = a3; a3 と b3 は同じ配列(a3 を変更すれば b3 も変化)
26 let mean3 = 0.0;
27 for (let i1 = 0; i1 < st3.length; i1++) {
28 a3[i1] = parseInt(st3[i1]);
29 mean3 += a3[i1];
30 }
31 mean3 /= st3.length;
32 let n3 = 0;
33 for (let i1 = 0; i1 < st3.length; i1++) {
34 if (a3[i1] >= mean3)
35 n3++;
36 }
37 str += (" 平均点( " + mean3 + " )以上は " + n3 + " 人\n");
38 //
39 // 2 次元配列
40 //
41 str += "2 次元配列\n";
42 let mean4 = 0.0; // 全体の平均
43 let s_num4 = 0; // 全体の人数
44 let c_mean4 = new Array(); // クラス毎の平均
45 let a4 = new Array();
46 let k = 0;
47 for (let i1 = 0; i1 < data.length-1; i1++) {
48 if (data[i1+1].length > 0) {
49 a4[k] = new Array(); // a4[k] = {1, 2, 3}; のような初期設定も可
50 c_mean4[k] = 0.0;
51 let st4 = data[i1+1].split(" ");
52 for (let i2 = 0; i2 < st4.length; i2++) {
53 a4[k][i2] = parseInt(st4[i2]);
54 c_mean4[k] += a4[k][i2];
55 }
56 mean4 += c_mean4[k];
57 s_num4 += st4.length;
58 c_mean4[k] /= st4.length; // クラス毎の平均
59 k++;
60 }
61 }
62 mean4 /= s_num4; // 全体の人数
63 let n4 = 0;
64 for (let i1 = 0; i1 < data.length-1; i1++) {
65 if (c_mean4[i1] >= mean4)
66 n4++;
67 }
68 str += (" 平均点( " + mean4 + " )以上のクラスは " + n4 + "\n");
69 // b4 = a4; a4 と b4 は同じ配列(a4 を変更すれば b4 も変化)
70 // c4 = a4[1]; c4 は,a4 の 2 行目と同じ 1 次元配列
71 // (a4 の 2 行目を変更すれば c4 も変化)
72 //
73 // 結果の設定
74 //
75 document.getElementById("tx").value = str;
76 }
77 </SCRIPT>
78 </HEAD>
79 <BODY STYLE="font-size:130%">
80 <P STYLE="text-align:center">
81 <INPUT TYPE="button" VALUE="OK" onClick="run()" STYLE="font-size:90%"><BR><BR>
82 <TEXTAREA TYPE="text" ID="tx" COLS="50" ROWS="10" STYLE="font-size: 100%">
83 30 60 50
84 40 50 70 90 10
85 30 20 50
86 80 90 10 30
87 </TEXTAREA>
88 </P>
89 </BODY>
90 </HTML>
01 <!DOCTYPE HTML>
02 <HTML>
03 <HEAD>
04 <TITLE>連想配列</TITLE>
05 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
06 <LINK REL="stylesheet" TYPE="text/css" HREF="../../master.css">
07 </HEAD>
08 <BODY CLASS="white">
09 <H1 CLASS="center">連想配列</H1>
10 <SCRIPT TYPE="text/javascript">
11 let color = {'red' : '赤', 'blue' : '青'};
12 document.write(color['red'] + "<BR>\n");
13 document.write(color['blue'] + "<BR>\n");
14 // document.write(color[0] + "<BR>\n"); エラー
15 for (let english in color)
16 document.write(" " + english + " は " + color[english] + " です<BR>\n");
17 </SCRIPT>
18 </BODY>
19 </HTML>
01 <?php
02 printf("人数は? ");
03 $m3 = intval(trim(fgets(STDIN)));
04 $a3 = array();
05 // $a3 = array(1, "abc", 3.5); // 初期設定も可
06 // $b3 = $a3; $a3 と $b3 は値は同じでも別の配列
07 $mean3 = 0.0;
08 for ($i1 = 0; $i1 < $m3; $i1++) {
09 printf(" %d 番目の人の点数は? ", $i1+1);
10 $a3[$i1]= intval(trim(fgets(STDIN)));
11 $mean3 += $a3[$i1];
12 }
13 $mean3 /= $m3;
14 $n3 = 0;
15 for ($i1 = 0; $i1 < $m3; $i1++) {
16 if ($a3[$i1] >= $mean3)
17 $n3++;
18 }
19 printf(" 平均点( %f )以上は %d 人\n", $mean3, $n3);
20 ?>
01 <?php
02 printf("クラス数は? ");
03 $m4 = intval(trim(fgets(STDIN))); // クラス数
04 $mean4 = 0.0; // 全体の平均
05 $c_mean4 = array(); // クラス毎の平均
06 $s_num4 = 0; // 全体の人数
07 $a4 = array();
08 for ($i1 = 0; $i1 < $m4; $i1++) {
09 printf(" クラス %d の人数は? ", $i1+1);
10 $n_m4 = intval(trim(fgets(STDIN))); // クラス内の人数
11 $a4[$i1] = array(); // $a4[$i1] = array(1, 2, 3); のような初期設定も可
12 $c_mean4[$i1] = 0.0;
13 for ($i2 = 0; $i2 < $n_m4; $i2++) {
14 printf(" クラス %d の %d 番目の人の点数は? ", $i1+1, $i2+1);
15 $a4[$i1][$i2] = intval(trim(fgets(STDIN)));
16 $c_mean4[$i1] += $a4[$i1][$i2];
17 }
18 $mean4 += $c_mean4[$i1];
19 $s_num4 += $n_m4;
20 $c_mean4[$i1] /= $n_m4; // クラス毎の平均
21 }
22 $mean4 /= $s_num4; // 全体の人数
23 $n4 = 0;
24 for ($i1 = 0; $i1 < $m4; $i1++) {
25 if ($c_mean4[$i1] >= $mean4)
26 $n4++;
27 }
28 printf(" 平均点( %f )以上のクラスは %d \n", $mean4, $n4);
29 // $b4 = $a4; $a4 と $b4 は値は同じでも別の配列
30 // $c4 = $a4[1]; // $c4 は $a4 の 2 行目と同じ値だが,別の 1 次元配列
31 ?>
01 <?php
02 printf("ファイル入出力\n");
03 $in = fopen("data.txt", "rb");
04 $out = fopen("out.txt", "wb");
05 $mean5 = 0.0;
06 $m5 = 0;
07 $a5 = array();
08 while ($x = fgets($in)) {
09 $a5[$m5] = intval(trim($x));
10 $mean5 += $a5[$m5];
11 $m5++;
12 fwrite($out, $m5." ".$a5[$m5-1]."\n");
13 }
14 fclose($in);
15 fclose($out);
16 $mean5 /= $m5;
17 $n5 = 0;
18 for ($i1 = 0; $i1 < $m5; $i1++) {
19 if ($a5[$i1] >= $mean5)
20 $n5++;
21 }
22 printf(" 平均点( %f )以上は %d 人\n", $mean5, $n5);
23 ?>
キーの利用 suzuki さんの得点:40
01 <?php
02 printf("キーの利用\n");
03 $a6 = array('suzuki'=>40, 'sato'=>60, 'yamada'=>70);
04 printf(" suzuki さんの得点:%d\n", $a6['suzuki']);
05 ?>
01 printf("人数は? ");
02 m3 = Integer(gets()); # 人数
03 a3 = Array.new();
04 #a3 = Array.new(3); # サイズを指定しても良い
05 #a3 = Array[1, "abc", 3.5]; # a3 = [1, "abc", 3.5]; でも良い.
06 #b3 = a3; #a3 と b3 は同じ配列(a3 を変更すれば b3 も変化)
07 mean3 = 0.0;
08 for i1 in (0...m3)
09 printf(" %d 番目の人の点数は? ", i1+1);
10 a3[i1] = Integer(gets());
11 mean3 += a3[i1];
12 end
13 mean3 /= Float(m3);
14 n3 = 0;
15 for i1 in (0...m3)
16 if (a3[i1] >= mean3)
17 n3 += 1;
18 end
19 end
20 printf(" 平均点( %f )以上は %d 人\n", mean3, n3);
01 printf("クラス数は? ");
02 m4 = Integer(gets()); # クラス数
03 mean4 = 0.0; # 全体の平均
04 c_mean4 = Array.new(); # クラス毎の平均
05 s_num4 = 0; # 全体の人数
06 a4 = Array.new();
07 #a4 = Array[[1, 2, 3], [10, 20, 30]]; # 全体の初期設定も可
08 for i1 in (0...m4)
09 printf(" クラス %d の人数は? ", i1+1);
10 n_m4 = Integer(gets()); # クラス内の人数
11 a4[i1] = Array.new();
12 # a4[i1] = Array[1, 2, 3]; # 行毎の初期設定も可
13 c_mean4[i1] = 0.0;
14 for i2 in(0...n_m4)
15 printf(" クラス %d の %d 番目の人の点数は? ", i1+1, i2+1);
16 a4[i1][i2] = Integer(gets());
17 c_mean4[i1] += a4[i1][i2];
18 end
19 mean4 += c_mean4[i1];
20 s_num4 += n_m4;
21 c_mean4[i1] /= Float(n_m4); # クラス毎の平均
22 end
23 mean4 /= Float(s_num4); # 全体の平均
24 n4 = 0;
25 for i1 in (0...m4)
26 if (c_mean4[i1] >= mean4)
27 n4 += 1;
28 end
29 end
30 printf(" 平均点( %f )以上のクラスは %d \n", mean4, n4);
31 #b4 = a4; # a4 と b4 は同じ配列(a4 を変更すれば b4 も変化)
32 #c4 = a4[1]; # c4 は,a4 の 2 行目と同じ 1 次元配列
33 # (a4 の 2 行目を変更すれば c4 も変化)
01 printf("ファイル入出力\n");
02 inp = open("data.txt", "r");
03 out = open("out.txt", "w");
04 mean5 = 0.0;
05 m5 = 0;
06 a5 = Array.new();
07 while x = inp.gets()
08 a5[m5] = Integer(x);
09 mean5 += a5[m5];
10 m5 += 1;
11 out.printf("%d %d\n", m5, a5[m5-1]);
12 end
13 inp.close();
14 out.close();
15 mean5 /= Float(m5);
16 n5 = 0;
17 for i1 in (0...m5)
18 if (a5[i1] >= mean5)
19 n5 += 1;
20 end
21 end
22 printf(" 平均点( %f )以上は %d 人\n", mean5, n5);
001 #
002 # 演算子のオーバーロード
003 #
004 class Matrix
005
006 def initialize(_n, _m)
007 @_n = _n;
008 @_m = _m;
009 @_mat = Array.new(@_n);
010 for i1 in (0...@_n)
011 @_mat[i1] = Array.new(@_m);
012 end
013 end
014
015 def input()
016 printf("*** %d 行 %d 列の行列***\n", @_n, @_m);
017 for i1 in (0...@_n)
018 printf("%d 行目のデータ\n", i1+1);
019 for i2 in (0...@_m)
020 printf(" %d 列目の値は? ", i2+1);
021 @_mat[i1][i2] = Float(gets());
022 end
023 end
024 end
025
026 def output()
027 for i1 in (0...@_n)
028 for i2 in (0...@_m)
029 printf(" %f", @_mat[i1][i2]);
030 end
031 printf("\n");
032 end
033 end
034
035 def col()
036 return @_m;
037 end
038
039 def mat()
040 return @_mat;
041 end
042
043 def set(i, j, v)
044 @_mat[i][j] = v;
045 end
046
047 def +(obj)
048 c = Matrix.new(@_n, @_m);
049 for i1 in (0...@_n)
050 for i2 in (0...@_m)
051 v = @_mat[i1][i2] + (obj.mat)[i1][i2]; # v = @_mat[i1][i2] + obj._mat[i1][i2];
052 c.set(i1, i2, v); # c._mat[i1][i2] = v;
053 end
054 end
055 return c;
056 end
057
058 def -(obj)
059 c = Matrix.new(@_n, @_m);
060 for i1 in (0...@_n)
061 for i2 in (0...@_m)
062 v = @_mat[i1][i2] - (obj.mat)[i1][i2]; # v = @_mat[i1][i2] - obj._mat[i1][i2];
063 c.set(i1, i2, v); # c._mat[i1][i2] = v;
064 end
065 end
066 return c;
067 end
068
069 def *(obj)
070 m = obj.col(); # m = obj._m;
071 c = Matrix.new(@_n, m);
072 for i1 in (0...@_n)
073 for i2 in (0...m)
074 v = 0.0;
075 for i3 in (0...@_m)
076 v += @_mat[i1][i3] * (obj.mat)[i3][i2]; # v += @_mat[i1][i3] * obj._mat[i3][i2];
077 end
078 c.set(i1, i2, v); # c._mat[i1][i2] = v;
079 end
080 end
081 return c;
082 end
083 # attr_reader("_m"); # attr_reader("_m", "_mat");
084 # attr_accessor("_mat"); # attr_writer("_mat");
085 end
086
087 printf("計算方法( 0 : +, 1 : -, 2 : * ) ");
088 sw = Integer(gets()); # 計算方法
089 case sw
090 when 0 # +
091 printf("--- A+B ---\n");
092 printf("n 行 m 列の n と m? ");
093 str = gets();
094 x = str.split(" ");
095 n = Integer(x[0]);
096 m = Integer(x[1]);
097 a = Matrix.new(n, m)
098 b = Matrix.new(n, m)
099 printf("Matrix A \n");
100 a.input();
101 printf("Matrix B \n");
102 b.input();
103 printf("Matrix (A+B)\n");
104 c = a + b;
105 c.output();
106 when 1 # -
107 printf("--- A-B ---\n");
108 printf("n 行 m 列の n と m? ");
109 str = gets();
110 x = str.split(" ");
111 n = Integer(x[0]);
112 m = Integer(x[1]);
113 a = Matrix.new(n, m)
114 b = Matrix.new(n, m)
115 printf("Matrix A \n");
116 a.input();
117 printf("Matrix B \n");
118 b.input();
119 printf("Matrix (A-B)\n");
120 c = a - b;
121 c.output();
122 when 2 # -
123 printf("--- A*B ---\n");
124 printf("n 行 m 列の n と m( A )? ");
125 str = gets();
126 x = str.split(" ");
127 n = Integer(x[0]);
128 m = Integer(x[1]);
129 a = Matrix.new(n, m)
130 printf("行列 B の列数は? ");
131 l = Integer(gets());
132 b = Matrix.new(m, l)
133 printf("Matrix A \n");
134 a.input();
135 printf("Matrix B \n");
136 b.input();
137 printf("Matrix (A*B)\n");
138 c = a * b;
139 c.output();
140 end
141 #
142 # Matrix クラスの利用
143 #
144 printf("***Matrix クラスの利用***\n");
145 require 'matrix'
146 a = Matrix[[1.0, 1.0], [1.0, 2.0]]
147 b = Matrix[[2.0, -1.0], [-1.0, 1.0]]
148 print a, "\n"
149 # => Matrix[[1.0, 1.0], [1.0, 2.0]]
150 print b, "\n"
151 # => Matrix[[2.0, -1.0], [-1.0, 1.0]]
152 print "a+b ", a+b, "\n"
153 # => a+b Matrix[[3.0, 0.0], [0.0, 3.0]]
154 print "a-b ", a-b, "\n"
155 # => a-b Matrix[[-1.0, 2.0], [2.0, 1.0]]
156 print "a*b ", a*b, "\n"
157 # => a*b Matrix[[1.0, 0.0], [0.0, 1.0]]
158 print "a/a ", a/a, "\n"
159 # => a/a Matrix[[1.0, 0.0], [0.0, 1.0]]
160 print "a*2.0 ", a*2.0, "\n"
161 # => a*2.0 Matrix[[2.0, 2.0], [2.0, 4.0]]
162 print "a/2.0 ", a/2.0, "\n"
163 # => a/2.0 Matrix[[0.5, 0.5], [0.5, 1.0]]
x + y x - y x * y
A + B A - B A * B
01 # -*- coding: UTF-8 -*-
02 m1 = int(input("(list)人数は? "))
03 a1 = list()
04 #a1 = [1, "abc", 3.5] # 初期設定も可
05 #b1 = a1 # a1 と b1 は同じ配列(a1 を変更すれば b1 も変化)
06 #c1 = copy.copy(a1) # a1 と c1 は同じ値の異なる配列
07 mean1 = 0.0
08 for i1 in range(0, m1) :
09 print(" ", i1+1, sep=' ', end='')
10 a1.append(int(input(" 番目の人の点数? ")))
11 mean1 += a1[i1]
12 mean1 /= m1
13 n1 = 0
14 for i1 in range(0, m1) :
15 if (a1[i1] >= mean1) :
16 n1 += 1
17 print(" 平均点(", mean1, ")以上は", n1, "人")
01 # -*- coding: UTF-8 -*-
02 m2 = int(input("(list)クラス数は? ")) # クラス数
03 mean2 = 0.0 # 全体の平均
04 c_mean2 = list() # クラス毎の平均
05 s_num2 = 0 # 全体の人数
06 a2 = list()
07 #a2 = [[1, 2, 3], [4, 5, 6]] # 全体の初期設定も可
08 #b2 = a2 # a2 と b2 は同じ配列(a2 を変更すれば b2 も変化)
09 #c2 = copy.copy(a2) # a2 と c2 は同じ配列(a2 を変更すれば c2 も変化)
10 #d2 = copy.deepcopy(a2) # a2 と d2 は同じ値の異なる配列
11 #e2 = a2[1] # a2 と e2 は同じ配列(a2 を変更すれば e2 も変化)
12 for i1 in range(0, m2) :
13 print(" クラス", i1+1, "の人数は? ", sep=' ', end='')
14 n_m2 = int(input()) # クラス内の人数
15 a2.append(list())
16 # a2.append([1, 2, 3]) # 行毎の初期設定も可
17 c_mean2.append(0.0)
18 for i2 in range(0, n_m2) :
19 print(" クラス", i1+1, "の", i2+1, "番目の人の点数は? ", sep=' ', end='')
20 a2[i1].append(int(input()))
21 c_mean2[i1] += a2[i1][i2]
22 mean2 += c_mean2[i1]
23 s_num2 += n_m2;
24 c_mean2[i1] /= n_m2 # クラス毎の平均
25 mean2 /= s_num2 # 全体の平均
26 n2 = 0
27 for i1 in range(0, m2) :
28 if (c_mean2[i1] >= mean2) :
29 n2 += 1
30 print(" 平均点(", mean2, ")以上のクラスは", n2)
01 # -*- coding: UTF-8 -*-
02 from array import *
03 m3 = int(input("(array)人数は? "))
04 a3 = array("i")
05 #a3 = array("i", [1, 2, 3]) # 初期設定も可
06 #b3 = a3 # a3 と b3 は同じ配列(a3 を変更すれば b3 も変化)
07 #c3 = copy.copy(a3) # a3 と c3 は同じ値の異なる配列
08 mean3 = 0.0
09 for i1 in range(0, m3) :
10 print(" ", i1+1, sep=' ', end='')
11 a3.append(int(input(" 番目の人の点数? ")))
12 mean3 += a3[i1]
13 mean3 /= m3
14 n3 = 0
15 for i1 in range(0, m3) :
16 if (a3[i1] >= mean3) :
17 n3 += 1
18 print(" 平均点(", mean3, ")以上は", n3, "人")
01 # -*- coding: UTF-8 -*-
02 from array import *
03 m4 = int(input("(array)クラス数は? ")) # クラス数
04 mean4 = 0.0 # 全体の平均
05 c_mean4 = array("f") # クラス毎の平均
06 s_num4 = 0 # 全体の人数
07 a4 = list()
08 #a4 = [array("i", [1, 2, 3]), array("i", [4, 5, 6])] # 全体の初期設定も可
09 #b4 = a4 # a4 と b4 は同じ配列(a4 を変更すれば b4 も変化)
10 #c4 = copy.copy(a4) # a4 と c4 は同じ配列(a4 を変更すれば c4 も変化)
11 #d4 = copy.deepcopy(a4) # a4 と d4 は同じ値の異なる配列
12 #e4 = a4[1] # a4 と e4 は同じ配列(a4 を変更すれば e4 も変化)
13 for i1 in range(0, m4) :
14 print(" クラス", i1+1, "の人数は? ", sep=' ', end='')
15 n_m4 = int(input()) # クラス内の人数
16 a4.append(array("i"))
17 c_mean4.append(0.0)
18 for i2 in range(0, n_m4) :
19 print(" クラス", i1+1, "の", i2+1, "番目の人の点数は? ", sep=' ', end='')
20 a4[i1].append(int(input()))
21 c_mean4[i1] += a4[i1][i2]
22 mean4 += c_mean4[i1]
23 c_mean4[i1] /= n_m4 # クラスの平均
24 s_num4 += n_m4;
25 mean4 /= s_num4
26 n4 = 0
27 for i1 in range(0, m4) :
28 if (c_mean4[i1] >= mean4) :
29 n4 += 1
30 print(" 平均点(", mean4, ")以上のクラスは", n4)
01 # -*- coding: UTF-8 -*-
02 import numpy as np
03 m5 = int(input("(NumPy)人数は? "))
04 a5 = np.empty(m5)
05 #a5 = np.array([1, 2, 3], np.int) # np.array([1, 2, 3]) でも可
06 #a5 = np.array([1, 2, 3], np.float) # np.array([1.0, 2.0, 3.0]) でも可
07 #b5 = a5 # a5 と b5 は同じ配列(a5 を変更すれば b5 も変化)
08 #c5 = copy.copy(a5) # a5 と c5 は同じ値の異なる配列
09 mean5 = 0.0
10 for i1 in range(0, m5) :
11 print(" ", i1+1, sep=' ', end='')
12 a5[i1] = int(input(" 番目の人の点数? "))
13 mean5 += a5[i1]
14 mean5 /= m5
15 n5 = 0
16 for i1 in range(0, m5) :
17 if (a5[i1] >= mean5) :
18 n5 += 1
19 print(" 平均点(", mean5, ")以上は", n5, "人")
01 # -*- coding: UTF-8 -*-
02 import numpy as np
03 m6 = int(input("(NumPy)クラス数は? ")) # クラス数
04 n_m6 = int(input("クラス内の人数は? ")) # クラス内の人数
05 mean6 = 0.0 # 全体の平均
06 s_num6 = m6 * n_m6 # 全体の人数
07 c_mean6 = np.zeros(m6, np.float) # クラス毎の平均
08 a6 = np.empty((m6,n_m6))
09 #a6 = np.array([[1, 2, 3], [4, 5, 6]]) # 全体の初期設定も可
10 #b6 = a6 # a6 と b6 は同じ配列(a6 を変更すれば b6 も変化)
11 #c6 = copy.copy(a6) # a6 と c6 は同じ値の異なる配列
12 #e6 = a6[1] # a6 と e6 は同じ配列(a6 を変更すれば e6 も変化)
13 for i1 in range(0, m6) :
14 print(" クラス", i1+1)
15 for i2 in range(0, n_m6) :
16 print(" ", i2+1, "番目の人の点数は? ", sep=' ', end='')
17 a6[i1][i2] = int(input())
18 c_mean6[i1] += a6[i1][i2]
19 mean6 += c_mean6[i1]
20 c_mean6[i1] /= n_m6 # クラスの平均
21 mean6 /= s_num6
22 n6 = 0
23 for i1 in range(0, m6) :
24 if (c_mean6[i1] >= mean6) :
25 n6 += 1
26 print(" 平均点(", mean6, ")以上のクラスは", n6)
01 # -*- coding: UTF-8 -*-
02 from array import *
03 import numpy as np
04 # array
05 a7 = [array("i", [0, 0, 0]), array("i", [0, 0, 0])]
06 f_i = open('array.txt', 'r')
07 f_o = open('out1.txt', 'w')
08 str = f_i.read()
09 f_i.close()
10 s1 = str.split("\n")
11 for i1 in range(0, 2) :
12 s2 = s1[i1].split(" ")
13 f_o.write(s1[i1] + "\n");
14 for i2 in range(0, 3) :
15 a7[i1][i2] = int(s2[i2])
16 print(a7)
17 f_o.close()
18 # Numpy
19 a8 = np.empty((2,3))
20 a8 = np.loadtxt('array.txt')
21 np.savetxt('out2.txt', a8)
22 print(a8)
1 2 3 4 5 6
辞書型 suzuki さんの得点: 40
01 # -*- coding: UTF-8 -*-
02 print("辞書型")
03 a9 = {"suzuki" : 40, "sato" : 60, "yamada" : 70}
04 #a9 = dict(suzuki = 40, sato = 60, yamada = 70)
05 print(" suzuki さんの得点:", a9.get("suzuki"))
06 #b9 = a9 # a9 と b9 は同じ辞書(a9 を変更すれば b9 も変化)
01 # -*- coding: UTF-8 -*-
02 from array import *
03 import numpy as np
04 # list
05 x1 = [[1, 2], [3, 4]]
06 y1 = [[2, 0], [0, 2]]
07 print("list x1", x1, "y1", y1)
08 print("x1+y1", x1 + y1)
09 #print(x1 - y1) サポート無し
10 #print(x1 * y1) サポート無し
11 # array
12 x2 = [array("f", [1, 2]), array("f", [3, 4])]
13 y2 = [array("f", [2, 0]), array("f", [0, 2])]
14 print("arrayt x2", x2, "y2", y2)
15 print("x2+y2", x2 + y2)
16 #print(x2 - y2) サポート無し
17 #print(x2 * y2) サポート無し
18 # NumPy ( array )
19 x3 = np.array([[1.0, 2.0], [3.0, 4.0]])
20 y3 = np.array([[2.0, 0.0], [0.0, 2.0]])
21 print("np.array")
22 print(x3, "x3")
23 print(y3, "y3")
24 print(x3 + y3, "x3+y3")
25 print(x3 - y3, "x3-y3")
26 print(x3 * y3, "x3*y3")
27 # NumPy ( matrix )
28 x4 = np.matrix([[1.0, 2.0], [3.0, 4.0]])
29 y4 = np.matrix([[2.0, 0.0], [0.0, 2.0]])
30 print("np.matrix")
31 print(x4, "x4")
32 print(y4, "y4")
33 print(x4 + y4, "x4+y4")
34 print(x4 - y4, "x4-y4")
35 print(x4 * y4, "x4*y4")
list x1 [[1, 2], [3, 4]] y1 [[2, 0], [0, 2]]
x1+y1 [[1, 2], [3, 4], [2, 0], [0, 2]]
arrayt x2 [array('f', [1.0, 2.0]), array('f', [3.0, 4.0])] y2 [array('f', [2.0, 0.0]), array('f', [0.0, 2.0])]
x2+y2 [array('f', [1.0, 2.0]), array('f', [3.0, 4.0]), array('f', [2.0, 0.0]), array('f', [0.0, 2.0])]
np.array
[[ 1. 2.]
[ 3. 4.]] x3
[[ 2. 0.]
[ 0. 2.]] y3
[[ 3. 2.]
[ 3. 6.]] x3+y3
[[-1. 2.]
[ 3. 2.]] x3-y3
[[ 2. 0.]
[ 0. 8.]] x3*y3
np.matrix
[[ 1. 2.]
[ 3. 4.]] x4
[[ 2. 0.]
[ 0. 2.]] y4
[[ 3. 2.]
[ 3. 6.]] x4+y4
[[-1. 2.]
[ 3. 2.]] x4-y4
[[ 2. 4.]
[ 6. 8.]] x4*y4
01 using System;
02
03 class Program
04 {
05 static void Main()
06 {
07 Console.Write("人数は? ");
08 int m3 = int.Parse(Console.ReadLine());
09 int[] a3 = new int [m3];
10 // int[] a3 = new int [] {1, 2, 3}; のような初期設定も可
11 // int[] a3 = new[] {1, 2, 3};
12 // int[] a3 = {1, 2, 3};
13 // int[] b3;
14 // b3 = a3; a3 と b3 は同じ配列(a3 を変更すれば b3 も変化)
15 double mean3 = 0.0;
16 for (int i1 = 0; i1 < m3; i1++) {
17 Console.Write(" " + (i1+1) + " 番目の人の点数は? ");
18 a3[i1] = int.Parse(Console.ReadLine());
19 mean3 += a3[i1];
20 }
21 mean3 /= m3;
22 int n3 = 0;
23 for (int i1 = 0; i1 < m3; i1++) {
24 if (a3[i1] >= mean3)
25 n3++;
26 }
27 Console.WriteLine(" 平均点( " + mean3 + " )以上は " + n3 + " 人");
28 }
29 }
01 using System;
02
03 class Program
04 {
05 static void Main()
06 {
07 Console.Write("クラス数は? ");
08 int m4 = int.Parse(Console.ReadLine()); // クラス数
09 double mean4 = 0.0; // 全体の平均
10 double[] c_mean4 = new double [m4]; // クラス毎の平均
11 int s_num4 = 0; // 全体の人数
12 int[][] a4 = new int [m4][];
13
14 // int[][] a4 = new int [2][3]; // この記述は許されない
15 // int[][] a4 = new int[][] { // 行毎に列数が変わっても良い
16 // new int[] {10, 20, 30},
17 // new int[] {40, 50, 60}
18 // };
19 // int[][] a4 = new int [2][];
20 // a4[0] = new int[] {10, 20, 30};
21 // a4[1] = new int[] {40, 50, 60};
22
23 // int[,] a4 = {{10, 20, 30}, {40, 50, 60}}; // 以下のような方法も可能
24 // int[,] a4 = new int[,] {{10, 20, 30}, {40, 50, 60}};
25 // int[,] a4 = new[,] {{10, 20, 30}, {40, 50, 60}};
26 // int[,] a4 = new int [2,3]; // 初期設定を行わない
27
28 for (int i1 = 0; i1 < m4; i1++) {
29 Console.Write(" クラス " + (i1+1) +" の人数は? ");
30 int n_m4 = int.Parse(Console.ReadLine()); // クラス内の人数
31 a4[i1] = new int [n_m4];
32 c_mean4[i1] = 0.0;
33 for (int i2 = 0; i2 < n_m4; i2++) {
34 Console.Write(" クラス " + (i1+1) + " の " + (i2+1) + " 番目の人の点数は? ");
35 a4[i1][i2] = int.Parse(Console.ReadLine());
36 c_mean4[i1] += a4[i1][i2];
37 }
38 mean4 += c_mean4[i1];
39 s_num4 += n_m4;
40 c_mean4[i1] /= n_m4; // クラス毎の平均
41 }
42 mean4 /= s_num4; // 全体の平均
43 int n4 = 0;
44 for (int i1 = 0; i1 < m4; i1++) {
45 if (c_mean4[i1] >= mean4)
46 n4++;
47 }
48 Console.WriteLine(" 平均点( " + mean4 + " )以上のクラスは " + n4);
49 // int b4[][];
50 // b4 = a4; a4 と b4 は同じ配列(a4 を変更すれば b4 も変化)
51 // int c4[];
52 // c4 = a4[1]; c4 は,a4 の 2 行目と同じ 1 次元配列
53 // (a4 の 2 行目を変更すれば c4 も変化)
54 // 上記の処理は,int[,] a4; の形で宣言したときは不可能
55 }
56 }
01 using System;
02 using System.IO;
03 using System.Collections.Generic;
04
05 class Program
06 {
07 static void Main()
08 {
09 double mean5 = 0.0;
10 int m5 = 0;
11 StreamWriter ot = new StreamWriter("out.txt");
12 string[] lines = File.ReadAllLines("data.txt");
13 List a5 = new List ();
14 foreach (string line in lines) {
15 int x = int.Parse(line);
16 a5.Add(x);
17 mean5 += x;
18 m5++;
19 ot.WriteLine(m5 + " " + x);
20 }
21 ot.Close();
22 mean5 /= m5; // mean5 /= a5.Count;
23 int n5 = 0;
24 for (int i1 = 0; i1 < m5; i1++) {
25 if (a5[i1] >= mean5)
26 n5++;
27 }
28 Console.WriteLine(" 平均点( " + mean5 + " )以上は " + n5 + " 人");
29 // List <int> b5;
30 // b5 = a5; a5 と b5 は同じ List(a5 を変更すれば b5 も変化)
31 }
32 }
01 using System;
02 using System.Collections.Generic;
03
04 class Program
05 {
06 static void Main()
07 {
08 Dictionary a6 = new Dictionary ();
09 a6.Add("suzuki", 40);
10 a6.Add("sato", 60);
11 a6.Add("yamada", 70);
12 Console.WriteLine(" suzuki さんの得点:" + a6["suzuki"]);
13 // Dictionary b6;
14 // b6 = a6; a6 と b6 は同じ Dictionary(a6 を変更すれば b6 も変化)
15 }
16 }
suzuki さんの得点:40
01 Module Test
02 Sub Main()
03 Console.Write("人数は? ")
04 Dim m3 As Integer = Integer.Parse(Console.ReadLine())
05 Dim a3(m3-1) As Integer
06 ' Dim a3(n) As Integer 要素数は n + 1
07 ' Dim a3() As Integer = {1, 2, 3} のような初期設定も可
08 ' Dim a3(2) As Integer = {1, 2, 3} 要素数指定の初期設定は不可
09 ' Dim b3(m3-1) As Integer
10 ' b3 = a3 a3 と b3 は同じ配列(a3 を変更すれば b3 も変化)
11 Dim mean3 As Double = 0.0
12 For i1 As Integer = 0 To m3-1
13 Console.Write(" " & (i1+1) & " 番目の人の点数は? ")
14 a3(i1) = Integer.Parse(Console.ReadLine())
15 mean3 += a3(i1)
16 Next
17 mean3 /= m3
18 Dim n3 As Integer = 0
19 For i1 As Integer = 0 To m3-1
20 If a3(i1) >= mean3 Then
21 n3 += 1
22 End If
23 Next
24 Console.WriteLine(" 平均点( " & mean3 & " )以上は " & n3 & " 人")
25 End Sub
26 End Module
01 Module Test
02 Sub Main()
03 Console.Write("クラス数は? ")
04 Dim m4 As Integer = Integer.Parse(Console.ReadLine()) ' クラス数
05 Dim mean4 As Double = 0.0 ' 全体の平均
06 Dim c_mean4(m4-1) As Double ' クラス毎の平均
07 Dim s_num4 As Integer = 0 ' 全体の人数
08 Dim a4(m4-1, 100) As Integer
09 ' Dim a4(,) As Integer = {{1, 2, 3}, {4, 5, 6}}
10 ' Dim a4(,) As Integer = New Integer(,) {{1, 2, 3}, {4, 5, 6}} でも可
11 ' Dim v1(2,3) As Integer = {{1, 2, 3}, {4, 5, 6}} 要素数指定の初期設定は不可
12 For i1 As Integer = 0 To m4-1
13 Console.Write(" クラス " & (i1+1) & " の人数は? ")
14 Dim n_m4 As Integer = Integer.Parse(Console.ReadLine()) ' クラス内の人数
15 c_mean4(i1) = 0.0
16 For i2 As Integer = 0 To n_m4-1
17 Console.Write(" クラス " & (i1+1) & " の " & (i2+1) & " 番目の人の点数は? ")
18 a4(i1, i2) = Integer.Parse(Console.ReadLine())
19 c_mean4(i1) += a4(i1, i2)
20 Next
21 mean4 += c_mean4(i1)
22 s_num4 += n_m4
23 c_mean4(i1) /= n_m4 ' クラス毎の平均
24 Next
25 mean4 /= s_num4 ' 全体の平均
26 Dim n4 As Integer = 0
27 For i1 As Integer = 0 To m4-1
28 If c_mean4(i1) >= mean4
29 n4 += 1
30 End If
31 Next
32 ' Dim b4(,) As Integer = a4 ' b4 は a4 と同じ配列
33 Console.WriteLine(" 平均点( " & mean4 & " )以上のクラスは " & n4)
34 End Sub
35 End Module
01 Imports System.IO
02 Imports System.Collections.Generic
03
04 Module Test
05 Sub Main()
06 Dim a5 As New List(Of Integer)
07 Dim inp As StreamReader = New StreamReader("data.txt")
08 Dim ot As StreamWriter = new StreamWriter("out.txt")
09 Dim mean5 As Double = 0.0
10 Dim m5 As Integer = 0
11 Do While Not inp.EndOfStream
12 Dim x As Integer = Integer.Parse(inp.ReadLine())
13 a5.Add(x)
14 mean5 += x
15 m5 += 1
16 ot.WriteLine(m5 & " " & x)
17 Loop
18 inp.Close()
19 ot.Close()
20 mean5 /= m5 ' mean5 /= a5.Count
21 Dim n5 As Integer = 0
22 For i1 As Integer = 0 To m5-1
23 if a5(i1) >= mean5 Then
24 n5 += 1
25 End If
26 Next
27 ' Dim b5 As New List(Of Integer)
28 ' b5 = a5
29 Console.WriteLine(" 平均点( " & mean5 & " )以上は " & n5 & " 人")
30 End Sub
31 End Module
| 情報学部 | 菅沼ホーム | 目次 | 索引 |