0 / 0 / 0
Регистрация: 03.11.2020
Сообщений: 1
|
|
1 | |
Переписать программу из С++ в Си03.11.2020, 21:35. Показов 343. Ответов 0
Метки нет (Все метки)
Помогите,пожалуйста, переписать программу из с++ в си.
Программа #include <iostream> #include <math.h> #include <fstream> #include <iomanip> #include <windows.h> #include <conio.h> #define ld long double using namespace std; struct Atom { string name; ld x, y, z; }; ld f(Atom a, Atom b) { ld ro; ro = sqrt(pow((a.x - b.x), 2) + pow((a.y - b.y), 2) + pow((a.z - b.z), 2)); return ro; } void output(Atom a, Atom b) { cout << "May be bond" << setw(13) << a.name << " with " << a.x << setw(12) << a.y << setw(12) << a.z << " and " << b.name << " with " << b.x << setw(12) << b.y << setw(12) << b.z << endl; } int main() { // win scale HANDLE out_handle = GetStdHandle(STD_OUTPUT_HANDLE); COORD crd = { 1600, 500 }; SMALL_RECT src = { 0, 0, crd.X - 1, crd.Y - 1 }; SetConsoleWindowInfo(out_handle, true, &src); SetConsoleScreenBufferSize(out_handle, crd); ifstream file("molecule2.dat"); int n; string name; file >> name; file >> n; Atom* molecule = new Atom[n]; for (int i = 0; i < n; i++) { file >> molecule[i].name >> molecule[i].x >> molecule[i].y >> molecule[i].z; //cout << molecule[i].name << setw(12) << molecule[i].x << setw(12) << molecule[i].y << setw(12) << molecule[i].z << endl; } for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { ld bond = f(molecule[i], molecule[j]) - 0.12; string bondName = molecule[i].name + molecule[j].name; //cout << molecule[i].name << molecule[j].name << "\t" << bond << endl; // Наиб погрешность -0.12 if (bondName == "CH") { if (bond <= 1.09) { output(molecule[i], molecule[j]); } } else if (bondName == "CC") { if (bond <= 1.54) { cout << "May be single bond " << setw(5)<< molecule[i].name << " with " << molecule[i].x << setw(12) << molecule[i].y << setw(12) << molecule[i].z << " and " << molecule[j].name << " with " << molecule[j].x << setw(12) << molecule[j].y << setw(12) << molecule[j].z << endl; } if (bond <= 1.4) { cout << "May be 1.5x bond " << setw(5) << molecule[i].name << " with " << molecule[i].x << setw(12) << molecule[i].y << setw(12) << molecule[i].z << " and " << molecule[j].name << " with " << molecule[j].x << setw(12) << molecule[j].y << setw(12) << molecule[j].z << endl; } if (bond <= 1.34) { cout << "May be 2x bond" << setw(5) << molecule[i].name << " with " << molecule[i].x << setw(12) << molecule[i].y << setw(12) << molecule[i].z << " and " << molecule[j].name << " with " << molecule[j].x << setw(12) << molecule[j].y << setw(12) << molecule[j].z << endl; } if (bond <= 1.2) { cout << "May be 3x bond " << setw(5) << molecule[i].name << " with " << molecule[i].x << setw(12) << molecule[i].y << setw(12) << molecule[i].z << " and " << molecule[j].name << " with " << molecule[j].x << setw(12) << molecule[j].y << setw(12) << molecule[j].z << endl; } } else if (bondName == "CN") { if (bond <= 1.47) { output(molecule[i], molecule[j]); } } else if (bondName == "CO") { if (bond <= 1.43) { cout << "May be single bond " << setw(5) << molecule[i].name << " with " << molecule[i].x << setw(12) << molecule[i].y << setw(12) << molecule[i].z << " and " << molecule[j].name << " with " << molecule[j].x << setw(12) << molecule[j].y << setw(12) << molecule[j].z << endl; } if (bond <= 1.23) { cout << "May be double bond " << setw(5) << molecule[i].name << " with " << molecule[i].x << setw(12) << molecule[i].y << setw(12) << molecule[i].z << " and " << molecule[j].name << " with " << molecule[j].x << setw(12) << molecule[j].y << setw(12) << molecule[j].z << endl; } } else if (bondName == "CF") { if (bond <= 1.33) { output(molecule[i], molecule[j]); } } else if (bondName == "CCl") { if (bond <= 1.77) { output(molecule[i], molecule[j]); } } else if (bondName == "CBr") { if (bond <= 1.93) { output(molecule[i], molecule[j]); } } else if (bondName == "CI") { if (bond <= 2.14) { output(molecule[i], molecule[j]); } } else if (bondName == "CS") { if (bond <= 1.82) { output(molecule[i], molecule[j]); } } else if (bondName == "NH") { if (bond <= 1.02) { output(molecule[i], molecule[j]); } } else if (bondName == "NN") { if (bond <= 1.45) { output(molecule[i], molecule[j]); } } else if (bondName == "NO") { if (bond <= 1.2) { output(molecule[i], molecule[j]); } } else if (bondName == "NF") { if (bond <= 1.36) { output(molecule[i], molecule[j]); } } else if (bondName == "NCl") { if (bond <= 1.75) { output(molecule[i], molecule[j]); } } else if (bondName == "OH") { if (bond <= 0.96) { output(molecule[i], molecule[j]); } } else if (bondName == "OO") { if (bond <= 1.48) { output(molecule[i], molecule[j]); } } else if (bondName == "OF") { if (bond <= 1.42) { output(molecule[i], molecule[j]); } } else if (bondName == "SH") { if (bond <= 1.34) { output(molecule[i], molecule[j]); } } } } file.close(); return 0; }
0
|
03.11.2020, 21:35 | |
Ответы с готовыми решениями:
0
Переписать программу с одной функцией на программу с тремя функциями Переписать программу из C++ в С Переписать программу на С++ Переписать программу с VB на C# |
03.11.2020, 21:35 | |
03.11.2020, 21:35 | |
Помогаю со студенческими работами здесь
1
переписать программу на си/си++ Переписать программу из С++ в Си Переписать программу из С++ в Си Переписать программу с С++ на Си Переписать программу Переписать программу с C# на C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |