// word_len_histo.cpp : reads words and lists distribution
// of word lengths.
// Fred Swartz, 2002-09-01
// This would be nice to turn into an OO program, where
// a class represented a distribution of values.
// Some elements which are globals here would turn into
// private member elements in the class (eg, valueCount).
//--- includes
#include
#include
#include
using namespace std;
//--- prototypes
void countValue(int cnt);
float getAverage();
//--- constants
const int BINS = 21; // how many numbers can be counted
//--- globals
int valueCount[BINS]; // bins used for counting each number
int totalChars = 0; // total number of characters
//=========================================================== main
int main() {
char c; // input character
int wordLen = 0; // 0 if not in word, else word length
//--- Initialize counts to zero
for (int i=0; i
valueCount[i] = 0;
}
//--- Read chars in loop and decide if in a word or not.
while (cin.get(c)) {
if (isalpha(c)) { // letters are in words, so
wordLen++; // add one to the word length
} else {
countValue(wordLen); // end of word
wordLen = 0; // not in a word, set to zero
}
}
countValue(wordLen); // necessary if word ended in EOF
//--- print the number of words of each length
cout << "Why does this line disappear?" << endl;
cout << "Word length Frequency" << endl;
for (int j=1; j
cout << setw(6) << right << j << " "
<< setw(8) << right << valueCount[j] << endl;
}
//--- print average length
cout << "\nAverage word length: " << getAverage() << endl;
return 0;
}//end main
//==================================================== countValue
void countValue(int cnt) {
if (cnt > 0) {
// this must be the end of a word
if (cnt > 20) {
cnt = 20; // longer than 20 counts as 20
}
valueCount[cnt]++; // count in correct bin
}
totalChars += cnt;
}//end countWord
//==================================================== getAverage
float getAverage() {
int totalCount = 0;
for (int i=0; i
totalCount += valueCount[i];
}
if (totalCount > 0) {
return (float)totalChars/totalCount;
} else {
return 0.0;
}
}//end getAverage
Showing posts with label programCPP. Show all posts
Showing posts with label programCPP. Show all posts
Wednesday, September 1, 2010
Word Length Frequency
Tuesday, August 3, 2010
Reading from file or Reading integers from file
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstdlib>
using namespace std;
int main() {
int sum = 0;
int x;
ifstream inFile;
inFile.open("integers.txt"); // read integers from text file
if (!inFile) {
cout << "Unable to open file";
exit(0); // terminate with error
}
while (inFile >> x) {
sum = sum+x;
}
inFile.close();
cout << "Sum = " << sum << endl;
return 0;
}
#include <iomanip>
#include <fstream>
#include <cstdlib>
using namespace std;
int main() {
int sum = 0;
int x;
ifstream inFile;
inFile.open("integers.txt"); // read integers from text file
if (!inFile) {
cout << "Unable to open file";
exit(0); // terminate with error
}
while (inFile >> x) {
sum = sum+x;
}
inFile.close();
cout << "Sum = " << sum << endl;
return 0;
}
Subscribe to:
Posts (Atom)