情報学部 | 菅沼ホーム | 目次 | 索引 |
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 TreeMapa6 = 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 Lista5 = 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 Dictionarya6 = 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
情報学部 | 菅沼ホーム | 目次 | 索引 |