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

отчет 2 семестр практика 4 11 вариант

.docx
Скачиваний:
10
Добавлен:
08.07.2021
Размер:
276.31 Кб
Скачать

Балтийский государственный технический университет «ВОЕНМЕХ» им. Д. Ф. Устинова

Кафедра И5 «Информационные системы и программная инженерия»

Практическая работа №4 по дисциплине «Программирование на ЯВУ» на тему «Текстовые файлы»

Вариант №11

Выполнил: Студент Ситева Софья Борисовна Группа О401Б Преподаватель: Ракова Ирина Константиновна

Санкт-Петербург 2021 г.

Задача 1

Условие задачи:

Дан файл, содержащий некоторый текст. Удалить из него все фразы, в которых есть слова, содержащие заглавные буквы (начальную заглавную букву в предложении не учитывать).

Исходные данные:

Файл с текстом.

Результирующие данные:

Файл с измененным текстом

Текст программы:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <ctype.h>

#include <malloc.h>

#define N 128

int main()

{

char* st, * s, *context = 0;

int i, flag, l;

FILE *in, *out;

st = (char*)malloc(N);

s = (char*)malloc(N);

errno_t errin, errout;

errin = fopen_s(&in, "C:\\Users\\puked\\source\\repos\\pr4_1\\input.txt", "r+");

errout = fopen_s(&out, "C:\\Users\\puked\\source\\repos\\pr4_1\\output.txt", "w");

if (in == NULL)

{

perror("error");

return 10;

}

while (fgets(st, N - 1, in))

{

flag = 0;

l = strlen(st);

for (i = 1; i < l; i++)

if (*(st + i - 1) == ' ' && isupper(*(st + i)) != 0)

{

flag = 1;

break;

}

if (flag == 0)

fputs(st, out);

}

errout = fclose(out);

errin = fclose(in);

}

Результат тестирования программы:

Вывод:

Ожидаемые результаты и результаты тестирования совпали. Поэтому можно сказать, что программа работает правильно.

Задача 2

Условие задачи:

Дан текстовый файл, содержащий целые числа. Увеличить значения четных чисел этого файла вдвое, остальные оставить без изменения.

Исходные данные:

Файл с целыми числами.

Результирующие данные:

Измененные числа

Текст программы:

#include <stdio.h>

#include <stdlib.h>

int main()

{

int x;

FILE* in, * out;

errno_t errin, errout;

errin = fopen_s(&in, "C:\\Users\\puked\\source\\repos\\pr4_2\\input.txt", "r+");

errout = fopen_s(&out, "C:\\Users\\puked\\source\\repos\\pr4_2\\output.txt", "w");

if (in == NULL)

{

perror("error");

return 10;

}

while (fscanf_s(in, "%d", &x) != EOF)

{

if (x % 2 == 0)

fprintf(out, "%d\t", 2 * x);

else

fprintf(out, "%d\t", x);

}

errout = fclose(out);

errin = fclose(in);

}

Вывод:

Ожидаемые результаты и результаты тестирования совпали. Поэтому можно сказать, что программа работает правильно.