Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / Отчет Лаба 10

.docx
Скачиваний:
0
Добавлен:
31.12.2025
Размер:
186.04 Кб
Скачать

 

ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №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

Соседние файлы в папке Лабы