Решил выложить свои лабораторные работы 1-10 за первый курс, первого семестра (01.09.2019-10.01.2020). Искренне надеюсь, что кому-нибудь пригодится.
Примечания к программе смотрите в исходном файле Source.cpp (архив находится по веб-адресу ниже). Здесь я их удалил, чтобы не нагромождать программу.
1 / 4. Source.cpp:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| /*
*Лабораторная работа: 7.
*Тема: Строки и файлы. Организация работы со строками и файлами.
*Пункт: 5.1. Строковый тип данных.
*Файл: Lab07_YaP_2019_1S.pdf
*
*Язык: C++.
*Среда: Microsoft Visual Studio 2019 v16.3.0.
*Платформа: x64.
*Изменение: 06.01.2020.
*
*Вариант: 13.
*Защита: 15.11.2019.
*Задание: 3. Дана строка состоящая из слов, разделенных пробелами (одним или несколькими). Вывести строку содержащую эти же слова
* (разделенные одним пробелом), но расположенные в обратном порядке.
*/
#include <iostream> // Требуется для SETLOCATE, PRINTF, CIN, COUT. //
#include "Header.h"
void main () {
setlocale (LC_ALL, "Russian");
const int Dimension = 99;
char SourceArray [Dimension + 1] = ""; // 99 + 1 = 100 - чтобы не проверять длину SOURCEARRAY с помощью
printf ("1. Введите исходную строку (до 99 символов, включительно):\n\n");
cin.getline (SourceArray, Dimension); // дополнительной функции. В настоящем примере все символы, которые
printf ("\n2. Строка в обратном порядке:\n\n"); // выйдут за DIMENSION будут удалены программой. //
ChangeFunction (SourceArray);
cout << endl << endl;
ExitProgramFunction ();
} |
|
2 / 4. Header.h:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| /*
*Лабораторная работа: 7.
*Тема: Строки и файлы. Организация работы со строками и файлами.
*Пункт: 5.1. Строковый тип данных.
*Файл: Lab07_YaP_2019_1S.pdf
*
*Язык: C++.
*Среда: Microsoft Visual Studio 2019 v16.3.0.
*Платформа: x64.
*Изменение: 06.01.2020.
*
*Вариант: 13.
*Защита: 15.11.2019.
*Задание: 3. (...)
*/
using namespace std;
void ExitProgramFunction (); // Объявление EXITPROGRAMFUNCTION. //
void ChangeFunction (char *SourceArray); // Объявление CHANGEFUNCTION. // |
|
3 / 4. ChangeFunction.cpp:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| /*
*Лабораторная работа: 7.
*Тема: Строки и файлы. Организация работы со строками и файлами.
*Пункт: 5.1. Строковый тип данных.
*Файл: Lab07_YaP_2019_1S.pdf
*
*Язык: C++.
*Среда: Microsoft Visual Studio 2019 v16.3.0.
*Платформа: x64.
*Изменение: 06.01.2020.
*
*Вариант: 13.
*Защита: 15.11.2019.
*Задание: 3. (...)
*/
#include <iostream> // Требуется для STRLEN, PRINTF. //
#include "Header.h"
void ChangeFunction (char *SourceArray) { // Определение CHANGEFUNCTION. //
int Pointer = strlen (SourceArray) - 1;
for (int i = Pointer; i >= 0; i--) { // Проверка SOURCEARRAY на наличие пробелов (с конца). //
if ((SourceArray [i] == ' ') && (SourceArray [i + 1] != ' ') && (i != 0)) {
for (int j = i + 1; j <= Pointer; j++) { // Если находится пробел и при этом предыдущий симвом пробелом не
cout << SourceArray [j]; // является, то посимвольно выводятся на экран все элементы до
} // последнего POINTER, включительно. //
Pointer = i; // Перенос POINTER на текущий символ (пробел). POINTER становится
printf (" "); // текущим. //
}
if ((SourceArray [i] == ' ') && (i != 0)) { // Если текущий элемент оказался пробелом, то POINTER сдвигается на
Pointer = i - 1; // следующий символ. //
}
if (i == 0) { // Если SOURCEARRAY [0], то автоматически выводятся на экран все
for (int j = 0; j <= Pointer; j++) { // символы до POINTER. //
cout << SourceArray [j]; // Если перед SOURCEARRAY [0] пробела не было, то он добавляется
} // автоматически. //
}
}
} |
|
4 / 4. ExitProgramFunction.cpp:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| /*
*Лабораторная работа: 7.
*Тема: Строки и файлы. Организация работы со строками и файлами.
*Пункт: 5.1. Строковый тип данных.
*Файл: Lab07_YaP_2019_1S.pdf
*
*Язык: C++.
*Среда: Microsoft Visual Studio 2019 v16.3.0.
*Платформа: x64.
*Изменение: 06.01.2020.
*
*Вариант: 13.
*Защита: 15.11.2019.
*Задание: 3. (...)
*/
#include <iostream> // Требуется для SYSTEM, EXIT. //
#include "Header.h"
void ExitProgramFunction () { // Определение EXITPROGRAMFUNCTION. //
system ("pause");
exit (true);
} |
|
Архив с исходными файлами (Cyberforum.ru, 11 MB)