Лабы / Отчет Лаба 10
.docx
ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №10
по дисциплине «Программирование»
«Обработка символьных и строковых данных»
Выполнила студент: гр. ИВТ-245
Бибикова Анна Александровна
Проверила:
ст. преподаватель Дорошенко М.С
Оценка__________________
Омск 2025
10.1
Схема
алгоритма
#define
_CRT_SECURE_NO_WARNINGS #include
<locale.h> #include
<stdio.h> #include
<stdlib.h> void
pA(int*
a,
int
size,
int*
s,
int*
p)
{
*s
= 0;
*p
= 1;
for
(int
i = 0; i < size;
i++) {
*s
+= a[i];
*p
*= a[i];
}} int
main() {
setlocale(LC_ALL,
"RUS");
int
A[6];
int
B[8];
FILE*
f1, * f2;
int
i, j;
f1
= fopen("TextFile1.txt",
"r");
if
(f1 == NULL)
{
perror("Ошибка
открытия
файла
TextFile1.txt");
return
1; }
for
(i = 0; i < 6; ++i) {
if
(fscanf(f1, "%d",
&A[i]) != 1) {
fprintf(stderr,
"Ошибка
чтения массива A из файла\n");
fclose(f1);
return
1; }}
for
(j = 0; j < 8; ++j) {
if
(fscanf(f1, "%d",
&B[j]) != 1) {
fprintf(stderr,
"Ошибка
чтения массива B из файла\n");
fclose(f1);
return
1;}}
fclose(f1);
int
A_pos[6], B_pos[8];
int
A_neg[6], B_neg[8];
int
k = 0, n = 0;
for
(int
i = 0; i < 6; i++) {
if
(A[i] > 0) {
A_pos[k++]
= A[i];}
else
{
A_neg[6
- k - 1] = A[i];}}
for
(int
i = 0; i < 8; i++) {
if
(B[i] > 0) {
B_pos[n++]
= B[i];}
else
{
B_neg[8
- n - 1] = B[i];}}
int
s1, p1, s2, p2;
pA(A_pos,
k, &s1, &p1);
pA(B_pos,
n, &s2, &p2);
f2
= fopen("TextFile2.txt",
"w");
if
(f2 == NULL)
{
perror("Ошибка
открытия
файла
TextFile2.txt");
return
1; }
fprintf(f2,
"Массив
A положительные элементы: ");
for
(int
i = 0; i < k; i++) {
fprintf(f2,
"%d
",
A_pos[i]); }
fprintf(f2,
"\n");
fprintf(f2,
"Сумма
A: %d Произведение
A: %d\n",
s1, p1);
fprintf(f2,
"\nМассив
B положительные элементы: ");
for
(int
i = 0; i < n; i++) {
fprintf(f2,
"%d
",
B_pos[i]); }
fprintf(f2,
"\n");
fprintf(f2,
"Сумма
B: %d Произведение
B: %d\n",
s2, p2);
fprintf(f2,
"\nМассив
A
отрицательные элементы: ");
for
(int
i = 0; i < (6 - k); i++) {
fprintf(f2,
"%d
",
A_neg[i]); }
fprintf(f2,
"\n");
fprintf(f2,
"\n
Массив
B отрицательные
элементы:
");
for
(int
i = 0; i < (8 - n); i++) {
fprintf(f2,
"%d
",
B_neg[i]);}
fprintf(f2,
"\n");
fclose(f2);
return
0;}
10.2
#define
_CRT_SECURE_NO_WARNINGS #include
<stdio.h> #include
<stdlib.h> #include
<locale.h> int
main() {
setlocale(LC_ALL,
"RUS");
FILE*
s1, * s2;
int
N, K, num, i, j;
printf("Введите
количество строк (N): ");
scanf("%d",
&N);
printf("Введите
количество столбцов (K): ");
scanf("%d",
&K);
s1
= fopen("S1.txt",
"r");
if
(s1 == NULL)
{
perror("Ошибка
открытия
файла
S1.txt");
return
1; }
s2
= fopen("S2.txt",
"w");
if
(s2 == NULL)
{
perror("Ошибка
открытия
файла
S2.txt");
fclose(s1);
return
1;}
for
(i = 0; i < N; i++) {
for
(j = 0; j < K; j++) {
if
(fscanf(s1, "%d",
&num) != 1) {
fprintf(stderr,
"Ошибка
чтения данных из файла S1.txt\n");
fclose(s1);
fclose(s2);
return
1;}
fprintf(s2,
"%d
",
num); }
fprintf(s2,
"\n");}
fclose(s1);
fclose(s2);
printf("Матрица
успешно сформирована и записана в файл
S2.txt\n");
return
0;}
При N
=3
K = 4
