summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Abed <michaelabed@gmail.com>2012-03-03 23:24:06 -0500
committerMichael Abed <michaelabed@gmail.com>2012-03-03 23:24:06 -0500
commit12993b517ff2f8ec6608c2deaf3e988c64f7f164 (patch)
tree314fc88490a036a3853f38d9c8649ef5d37776c8
parent973562e3bbffbe2502649ce30d55e7cc6cbc6c3c (diff)
downloadec327-lab2-12993b517ff2f8ec6608c2deaf3e988c64f7f164.tar.gz
ec327-lab2-12993b517ff2f8ec6608c2deaf3e988c64f7f164.tar.bz2
ec327-lab2-12993b517ff2f8ec6608c2deaf3e988c64f7f164.zip
finished for now
-rw-r--r--get_mode.cpp56
-rw-r--r--testdata/empty0
-rw-r--r--testdata/longdata5000
-rw-r--r--testdata/test1000
-rw-r--r--testdata/test11000
-rw-r--r--testdata/test21000
-rw-r--r--write_data.cpp18
7 files changed, 8074 insertions, 0 deletions
diff --git a/get_mode.cpp b/get_mode.cpp
new file mode 100644
index 0000000..edf0958
--- /dev/null
+++ b/get_mode.cpp
@@ -0,0 +1,56 @@
+
+#include "statistics.h"
+
+using namespace std;
+
+float get_mode(const char *filename)
+{
+ ifstream in;
+ in.open(filename);
+
+ unsigned size = 1024;
+ int *data = new int[size];
+
+ int i = 0;
+ int max = 0;
+
+ while (!in.eof()) {
+ in >> data[i];
+ if (data[i] > max)
+ max = data[i];
+ i++;
+
+ if (i >= size) { // have to reallocate array if we get too big
+ size *= 2;
+ int *newdata = new int[size];
+ for (int j = 0; j <= i; j++)
+ newdata[j] = data[j];
+ delete data;
+ data = newdata;
+ }
+ }
+ i--;
+ int *freq = new int[i];
+
+ int j;
+ for (j = 0; j < i; j++)
+ freq[j] = 0;
+
+ for (j = 0; j < i; j++)
+ freq[data[j]]++;
+
+ float mode = 0;
+ max = 0;
+ for (j = 0; j < i; j++) {
+ if (freq[j] > max) {
+ max = freq[j];
+ mode = (float)j;
+ }
+ }
+
+ in.close();
+ delete freq;
+ delete data;
+
+ return mode;
+}
diff --git a/testdata/empty b/testdata/empty
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testdata/empty
diff --git a/testdata/longdata b/testdata/longdata
new file mode 100644
index 0000000..fc6175d
--- /dev/null
+++ b/testdata/longdata
@@ -0,0 +1,5000 @@
+381
+482
+344
+90
+230
+78
+419
+383
+309
+103
+15
+121
+373
+350
+164
+313
+82
+1
+128
+456
+305
+478
+365
+433
+59
+211
+383
+283
+85
+428
+221
+466
+156
+311
+303
+386
+389
+221
+268
+445
+70
+30
+65
+189
+126
+476
+248
+208
+478
+376
+164
+28
+354
+275
+461
+159
+486
+343
+443
+70
+16
+410
+283
+419
+220
+85
+50
+356
+52
+319
+300
+370
+95
+111
+305
+221
+86
+53
+430
+63
+429
+340
+91
+28
+361
+298
+188
+347
+387
+130
+163
+404
+39
+192
+68
+5
+23
+119
+361
+76
+184
+407
+192
+279
+17
+497
+500
+104
+296
+175
+414
+225
+261
+252
+500
+122
+296
+187
+215
+183
+63
+378
+333
+349
+317
+401
+355
+340
+19
+462
+416
+203
+369
+354
+228
+386
+351
+228
+236
+146
+149
+150
+117
+411
+148
+117
+32
+444
+50
+247
+373
+361
+371
+205
+456
+187
+353
+56
+27
+372
+18
+189
+322
+133
+43
+296
+265
+140
+23
+1
+32
+420
+398
+397
+330
+292
+260
+362
+235
+56
+108
+355
+417
+225
+59
+373
+413
+412
+429
+440
+30
+193
+375
+98
+72
+164
+394
+338
+304
+164
+85
+83
+83
+229
+480
+413
+20
+239
+20
+1
+295
+375
+356
+459
+99
+416
+77
+258
+73
+252
+197
+350
+192
+319
+448
+264
+483
+88
+101
+33
+252
+433
+363
+81
+161
+342
+240
+181
+327
+260
+183
+368
+381
+38
+72
+226
+200
+149
+485
+20
+148
+428
+370
+340
+246
+318
+103
+476
+406
+452
+8
+404
+384
+371
+231
+45
+459
+471
+473
+31
+477
+155
+399
+103
+441
+218
+329
+387
+113
+313
+407
+261
+241
+277
+100
+233
+341
+204
+208
+493
+155
+463
+396
+285
+333
+373
+330
+37
+343
+303
+68
+65
+204
+214
+168
+391
+178
+497
+278
+291
+310
+431
+52
+297
+207
+152
+29
+294
+356
+485
+286
+257
+447
+428
+42
+26
+300
+118
+63
+389
+167
+379
+454
+372
+339
+121
+262
+16
+365
+286
+307
+174
+217
+359
+217
+170
+11
+493
+211
+113
+477
+497
+117
+424
+171
+406
+450
+217
+23
+259
+106
+438
+384
+59
+55
+222
+428
+317
+238
+292
+350
+292
+212
+313
+150
+175
+229
+408
+167
+440
+268
+144
+183
+385
+314
+354
+36
+9
+317
+306
+14
+423
+243
+399
+229
+298
+120
+403
+362
+105
+194
+458
+397
+152
+270
+293
+327
+499
+201
+240
+185
+469
+384
+368
+99
+444
+468
+135
+453
+284
+441
+468
+207
+431
+112
+182
+228
+232
+84
+336
+83
+24
+293
+480
+176
+62
+273
+249
+308
+220
+489
+493
+188
+119
+360
+33
+62
+73
+168
+262
+357
+355
+476
+310
+285
+87
+492
+260
+65
+322
+95
+149
+346
+389
+128
+21
+197
+147
+16
+4
+367
+5
+497
+301
+371
+102
+80
+179
+422
+495
+441
+279
+350
+416
+335
+381
+249
+73
+387
+315
+395
+483
+464
+241
+117
+338
+8
+314
+486
+25
+65
+98
+277
+308
+146
+394
+157
+226
+72
+78
+468
+13
+103
+317
+175
+439
+444
+425
+11
+331
+239
+406
+59
+449
+146
+423
+286
+155
+236
+17
+427
+47
+363
+450
+356
+255
+343
+12
+227
+415
+90
+194
+174
+194
+10
+96
+379
+201
+267
+390
+278
+252
+295
+337
+200
+188
+259
+486
+89
+241
+250
+262
+289
+112
+211
+391
+367
+53
+149
+93
+214
+486
+288
+389
+179
+44
+231
+304
+492
+498
+193
+269
+249
+235
+105
+195
+169
+110
+180
+258
+98
+176
+19
+133
+288
+477
+23
+401
+29
+172
+241
+490
+157
+275
+378
+83
+319
+108
+387
+57
+352
+327
+326
+347
+61
+178
+41
+477
+288
+222
+481
+386
+144
+500
+18
+433
+222
+288
+79
+498
+206
+320
+487
+364
+94
+111
+193
+160
+219
+326
+217
+318
+152
+42
+164
+460
+220
+206
+182
+255
+174
+162
+387
+318
+408
+152
+497
+129
+440
+76
+126
+146
+142
+113
+256
+237
+224
+195
+397
+189
+20
+360
+253
+420
+402
+418
+125
+369
+123
+308
+123
+43
+470
+256
+361
+378
+408
+104
+6
+348
+180
+380
+240
+322
+493
+242
+305
+463
+437
+448
+398
+203
+307
+151
+122
+456
+68
+495
+324
+438
+302
+193
+481
+17
+449
+87
+395
+357
+191
+148
+451
+117
+274
+190
+186
+12
+178
+491
+475
+114
+439
+118
+63
+492
+269
+433
+447
+83
+427
+270
+20
+475
+209
+247
+492
+158
+81
+133
+261
+18
+27
+458
+136
+301
+394
+68
+313
+71
+58
+33
+432
+243
+151
+495
+235
+421
+427
+181
+3
+353
+198
+271
+73
+153
+264
+65
+57
+345
+445
+318
+364
+472
+21
+246
+18
+415
+314
+77
+486
+118
+110
+163
+362
+7
+158
+343
+174
+84
+270
+178
+184
+214
+195
+3
+368
+459
+68
+425
+304
+259
+490
+414
+477
+257
+159
+495
+172
+473
+71
+404
+337
+428
+67
+198
+436
+225
+287
+109
+55
+57
+33
+486
+271
+475
+490
+385
+180
+304
+56
+230
+310
+292
+143
+286
+48
+48
+27
+220
+267
+345
+124
+103
+273
+438
+302
+455
+409
+335
+310
+464
+392
+90
+196
+410
+311
+432
+40
+491
+482
+96
+220
+291
+134
+363
+77
+183
+411
+351
+403
+424
+195
+273
+27
+214
+210
+75
+415
+118
+410
+225
+329
+48
+61
+271
+204
+372
+202
+244
+363
+183
+87
+82
+475
+221
+192
+298
+404
+349
+148
+53
+273
+343
+72
+300
+304
+29
+375
+218
+147
+30
+443
+222
+78
+250
+493
+282
+122
+441
+273
+485
+124
+360
+313
+345
+327
+251
+142
+231
+100
+36
+30
+119
+125
+102
+419
+429
+131
+39
+147
+25
+316
+336
+247
+141
+86
+487
+423
+455
+427
+442
+185
+297
+47
+498
+388
+375
+496
+29
+352
+95
+312
+382
+214
+438
+484
+379
+112
+362
+164
+259
+387
+480
+342
+380
+120
+174
+112
+290
+128
+39
+478
+313
+82
+25
+56
+471
+400
+298
+246
+251
+393
+305
+379
+353
+242
+362
+478
+100
+223
+388
+360
+356
+114
+448
+236
+481
+121
+348
+16
+496
+133
+495
+54
+463
+19
+357
+433
+165
+155
+425
+416
+294
+229
+294
+394
+217
+402
+371
+318
+372
+259
+424
+227
+119
+371
+209
+99
+238
+304
+116
+480
+183
+110
+33
+145
+129
+136
+324
+294
+291
+496
+456
+332
+471
+496
+225
+188
+143
+342
+5
+14
+347
+175
+489
+466
+45
+444
+65
+29
+247
+181
+8
+177
+37
+288
+68
+413
+424
+139
+453
+462
+134
+408
+39
+104
+149
+264
+292
+292
+352
+43
+307
+199
+218
+41
+411
+9
+485
+476
+285
+479
+403
+39
+402
+186
+73
+470
+98
+498
+108
+50
+205
+489
+204
+244
+93
+353
+254
+131
+145
+105
+422
+198
+50
+386
+486
+462
+142
+470
+183
+173
+194
+86
+213
+95
+272
+286
+312
+117
+29
+420
+167
+481
+155
+372
+471
+495
+471
+224
+125
+362
+76
+293
+59
+126
+426
+291
+87
+67
+7
+271
+240
+201
+103
+199
+43
+121
+486
+355
+238
+261
+20
+406
+242
+175
+23
+212
+169
+494
+183
+41
+102
+259
+80
+408
+131
+5
+199
+466
+319
+206
+483
+59
+153
+85
+4
+196
+453
+490
+297
+191
+498
+64
+343
+486
+486
+112
+444
+402
+352
+126
+189
+454
+131
+269
+362
+9
+21
+60
+475
+340
+12
+457
+145
+165
+288
+150
+108
+240
+386
+151
+431
+383
+215
+19
+368
+448
+131
+312
+349
+484
+184
+37
+437
+62
+52
+298
+71
+320
+104
+45
+160
+116
+1
+51
+28
+35
+201
+136
+275
+334
+287
+453
+216
+249
+472
+331
+443
+103
+389
+291
+333
+319
+74
+269
+381
+373
+314
+452
+193
+418
+243
+99
+281
+491
+150
+309
+25
+98
+445
+301
+432
+478
+253
+394
+473
+471
+471
+415
+73
+359
+452
+406
+425
+272
+422
+305
+145
+235
+3
+338
+399
+246
+437
+179
+237
+333
+234
+262
+431
+425
+309
+362
+149
+61
+256
+121
+279
+473
+283
+98
+332
+234
+4
+256
+6
+172
+307
+398
+153
+310
+235
+51
+56
+418
+478
+293
+250
+458
+301
+428
+383
+110
+289
+31
+418
+291
+399
+196
+10
+181
+295
+342
+162
+45
+344
+168
+464
+150
+65
+116
+207
+46
+414
+263
+210
+137
+302
+206
+95
+349
+133
+478
+459
+169
+255
+123
+206
+153
+65
+216
+335
+106
+304
+497
+398
+147
+411
+361
+44
+222
+477
+251
+268
+137
+260
+478
+274
+61
+183
+369
+156
+63
+92
+115
+232
+347
+485
+438
+0
+296
+401
+81
+403
+204
+77
+300
+352
+234
+161
+142
+456
+384
+393
+470
+267
+152
+447
+41
+460
+376
+156
+115
+439
+249
+477
+417
+95
+207
+101
+342
+3
+1
+423
+406
+205
+246
+452
+303
+480
+359
+445
+435
+490
+83
+404
+256
+235
+96
+297
+441
+219
+454
+56
+404
+449
+32
+67
+43
+487
+168
+132
+490
+169
+54
+141
+120
+301
+92
+424
+26
+198
+114
+208
+187
+198
+358
+443
+433
+201
+487
+374
+420
+186
+176
+69
+134
+455
+136
+177
+441
+304
+309
+176
+219
+110
+317
+340
+157
+410
+9
+430
+354
+123
+137
+40
+67
+242
+229
+247
+443
+215
+367
+108
+401
+42
+177
+34
+243
+60
+459
+184
+364
+13
+360
+330
+370
+424
+416
+26
+333
+425
+457
+186
+294
+340
+473
+108
+81
+201
+355
+23
+163
+221
+378
+63
+263
+55
+345
+252
+362
+49
+436
+225
+309
+42
+301
+179
+466
+216
+205
+44
+387
+408
+477
+428
+248
+449
+35
+75
+396
+390
+346
+58
+357
+223
+369
+119
+24
+460
+117
+386
+8
+53
+358
+317
+342
+158
+496
+53
+121
+448
+97
+7
+101
+320
+435
+95
+14
+216
+171
+410
+352
+16
+215
+208
+486
+83
+73
+10
+42
+191
+142
+297
+491
+500
+113
+332
+405
+356
+131
+25
+303
+228
+279
+150
+294
+461
+246
+308
+176
+417
+464
+28
+179
+178
+236
+411
+7
+310
+167
+49
+0
+310
+92
+237
+55
+206
+68
+460
+61
+199
+231
+110
+173
+10
+260
+213
+471
+252
+20
+146
+168
+484
+421
+93
+409
+404
+251
+416
+460
+418
+212
+206
+227
+304
+443
+29
+256
+257
+489
+317
+456
+467
+173
+375
+477
+180
+87
+193
+432
+354
+85
+347
+83
+6
+186
+492
+156
+437
+154
+115
+355
+366
+321
+328
+169
+263
+357
+426
+19
+92
+489
+221
+305
+409
+342
+281
+335
+175
+474
+12
+28
+58
+359
+111
+311
+292
+350
+467
+228
+3
+81
+329
+369
+148
+404
+284
+411
+6
+456
+176
+98
+191
+397
+403
+346
+238
+430
+180
+413
+149
+192
+187
+455
+298
+299
+265
+336
+395
+479
+63
+398
+306
+139
+12
+455
+42
+42
+365
+295
+499
+41
+394
+436
+184
+42
+281
+423
+219
+207
+81
+368
+399
+269
+322
+443
+314
+334
+278
+208
+58
+88
+352
+364
+474
+364
+318
+262
+406
+430
+56
+150
+217
+196
+85
+401
+486
+112
+69
+204
+319
+398
+318
+465
+166
+387
+153
+226
+220
+432
+434
+24
+266
+285
+388
+239
+395
+453
+0
+300
+128
+56
+197
+345
+253
+28
+245
+238
+388
+61
+188
+206
+459
+5
+417
+371
+392
+70
+96
+358
+248
+276
+382
+13
+307
+16
+252
+201
+469
+499
+247
+96
+301
+444
+187
+53
+219
+432
+37
+106
+239
+472
+58
+197
+478
+476
+67
+369
+292
+163
+474
+286
+185
+355
+45
+492
+117
+43
+192
+85
+41
+440
+428
+342
+129
+114
+142
+94
+293
+426
+200
+31
+398
+259
+476
+375
+481
+42
+490
+18
+453
+463
+304
+137
+64
+95
+129
+181
+138
+67
+13
+179
+253
+187
+267
+383
+302
+409
+477
+341
+81
+424
+118
+479
+429
+93
+99
+409
+136
+88
+173
+335
+298
+223
+472
+108
+318
+347
+35
+456
+415
+48
+134
+167
+236
+147
+296
+284
+56
+273
+124
+137
+443
+242
+362
+371