Comments
Code
- The code for srand() did not work because we were using the random() function to get random numbers. The textbook suggested random() I don't even know where random() comes from ... it's not in any standard reference.
- Instead, use the function rand(). This function works with the function srand() to give you different random numbers each time.
- insert() is not so difficult to use, but it requires iterators, something we haven't talked about yet. See the code below.
Code
//
// main.cpp
// Oct31
//
// Created by Mark Brautigam on 10/31/16.
// Copyright © 2016 Mark Brautigam. All rights reserved.
//
#include <iostream>
#include <vector>
#include <cmath>
#include <ctime>
using namespace std;
vector<string> resistorColors = { "black", "brown", "red", "orange",
"yellow", "green", "blue", "violet", "gray", "white" };
int colorToNumber (string color) {
int colorFoundWhere = -1;
for (int i=0; i<resistorColors.size(); i++) {
if (resistorColors[i] == color) {
colorFoundWhere = i;
break;
}
}
return colorFoundWhere;
}
int resistorCalculation (string c1, string c2, string c3) {
int a = colorToNumber(c1);
int b = colorToNumber(c2);
int p = colorToNumber(c3);
return (a * 10 + b) * pow(10, p);
}
int main(int argc, const char * argv[]) {
vector<double> temperatures;
// vector<string> resistorColors;
cout << resistorColors.size() <<endl;
cout << resistorColors.max_size() <<endl;
cout << resistorColors.capacity() <<endl;
// resistorColors.resize(32);
// cout << resistorColors.size() <<endl;
// cout << resistorColors.max_size() <<endl;
// cout << resistorColors.capacity() <<endl;
// cout << resistorColors[17] << endl;
// temperatures.resize(4);
// cout << temperatures[2] << endl;
cout << resistorColors[1] << endl;
cout << resistorColors.size() <<endl;
cout << resistorColors.capacity() <<endl;
// cout << resistorColors << endl; // doesn't work
for (int i=0; i<resistorColors.size(); i++) {
cout << resistorColors[i] << endl;
// i++; // DON'T do this
}
int i=0;
while (i<resistorColors.size()) {
cout << resistorColors[i] << endl;
i++; // don't forget this
}
// find a color
string colorToFind = "red";
int colorFoundAtIndex = colorToNumber("green");
cout << colorToFind << " is number " << colorFoundAtIndex << endl;
cout << "Blue is " << colorToNumber("blue") << endl;
cout << "Orange is " << colorToNumber("orange") << endl;
cout << resistorCalculation("yellow", "violet", "orange") << endl;
// temperatures.resize(0);
cout << temperatures.size() << endl;
cout << temperatures.capacity() << endl;
temperatures.push_back(98.6);
cout << temperatures.size() << endl;
cout << temperatures.capacity() << endl;
temperatures.push_back(32.0);
cout << temperatures.size() << endl;
cout << temperatures.capacity() << endl;
temperatures.push_back(212);
cout << temperatures.size() << endl;
cout << temperatures.capacity() << endl;
temperatures.push_back(212);
cout << temperatures.size() << endl;
cout << temperatures.capacity() << endl;
temperatures.push_back(212);
cout << temperatures.size() << endl;
cout << temperatures.capacity() << endl;
temperatures[6] = -432;
cout << temperatures.size() << endl;
cout << temperatures.capacity() << endl;
// I wrote this wrong in class, it's a little more complicated
vector<double>::iterator it;
it = temperatures.begin();
temperatures.insert(it+5, 100);
cout << temperatures.size() << endl;
cout << temperatures.capacity() << endl;
// generate random numbers between 1 and 100 instead of 0 to 99
cout << 1 + rand() % 100 << endl;
cout << 1 + rand() % 100 << endl;
cout << 1 + rand() % 100 << endl;
cout << 1 + rand() % 100 << endl;
vector<int> randomNumbers;
srand(time(NULL));
// initialize with 10 random numbers
for (int i=0; i<10; i++) {
randomNumbers.push_back(rand() % 100);
}
// print the vector of random numbers
cout << "---------\n";
for (int i=0; i<randomNumbers.size(); i++) {
cout << randomNumbers[i] << endl;
}
// bubble sort
for (int i=0; i<randomNumbers.size(); i++) {
for (int j=0; j<randomNumbers.size()-1; j++) {
if (randomNumbers[j] > randomNumbers[j+1]) {
// out of order - swap them
int temp = randomNumbers[j];
randomNumbers[j] = randomNumbers[j+1];
randomNumbers[j+1] = temp;
}
}
}
// print the vector of sorted numbers
cout << "---------\n";
for (int i=0; i<randomNumbers.size(); i++) {
cout << randomNumbers[i] << endl;
}
// calculate positions of numbers on a clock
// We will talk about top-down design again next week
/*
void printClockNumber(int clock) {
double degrees = clockToDegrees(clockNumber);
double radians = degreesToRadians(degrees);
double x = getX (radians, center, radius);
double y = getY (radians, center, radius);
}
*/
return 0;
}