Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string>
- using namespace std;
- //1 alpha beta gamma три разные строчки (первое слово минимальное)
- //2 beta alpha gamma три разные строчки (второе слово минимальное)
- //3 beta gamma alpha три разные строчки (третье слово минимальное)
- //1 alpha beta alpha
- //2 beta alpha alpha
- //3 alpha alpha beta
- //1 gamma gamma gamma все три строчки одинаковые
- int main()
- {
- string a, b, c;
- cin >> a >> b >> c;
- // не строгие стравнения
- //(если несколько строк являются минимальными достаточно вывести одну)
- if (a <= b && a <= c) // Первая строка минимальная?
- {
- cout << a;
- }
- else if (b <= a && b <= c) // Вторая строка минимальная?
- {
- cout << b;
- }
- else
- {
- cout << c;
- }
- return 0;
- }
- *******************************************************************************************************************
- Выполним декомпозицию программы: выделим функцию нахождения минимальной строки:
- Код нахождения минимальной строки выделен в функцию с понятным именем.
- #include <iostream>
- #include <string>
- using namespace std;
- const string& FindMinStr(const string& a, const string& b, const string& c) {
- if (a <= b && a <= c) {
- return a;
- } else if (b <= a && b <= c) {
- return b;
- }
- return c;
- }
- int main() {
- string a, b, c;
- cin >> a >> b >> c;
- cout << FindMinStr(a, b, c) << endl;
- }
- *******************************************************************************************************************
- Теперь напишем для функции модульный тест.
- Он должен вызывать функцию FindMinStr с некоторыми параметрами и сравнивать её результат с ожидаемым значением.
- Для проверок воспользуемся макросом assert.
- #include <cassert>
- #include <iostream>
- #include <string>
- using namespace std;
- const string& FindMinStr(const string& a, const string& b, const string& c) {
- if (a <= b && a <= c) {
- return a;
- } else if (b <= a && b <= c) {
- return b;
- }
- return c;
- }
- void TestFindMinStr() {
- assert(FindMinStr("alpha"s, "beta"s, "gamma"s) == "alpha"s);
- assert(FindMinStr("beta"s, "alpha"s, "gamma"s) == "alpha"s);
- assert(FindMinStr("gamma"s, "beta"s, "alpha"s) == "alpha"s);
- assert(FindMinStr("alpha"s, "beta"s, "alpha"s) == "alpha"s);
- assert(FindMinStr("beta"s, "alpha"s, "alpha"s) == "alpha"s);
- assert(FindMinStr("alpha"s, "alpha"s, "beta"s) == "alpha"s);
- assert(FindMinStr("alpha"s, "alpha"s, "alpha"s) == "alpha"s);
- assert(FindMinStr(""s, "alpha"s, "beta"s) == ""s);
- assert(FindMinStr("beta"s, ""s, "alpha"s) == ""s);
- assert(FindMinStr("beta"s, "alpha"s, ""s) == ""s);
- cout << "TestFindMinStr is OK"s << endl;
- }
- int main() {
- TestFindMinStr();
- string a, b, c;
- cin >> a >> b >> c;
- cout << FindMinStr(a, b, c) << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement