отчет 2 семестр практика 4 11 вариант
.docxБалтийский государственный технический университет «ВОЕНМЕХ» им. Д. Ф. Устинова
Кафедра И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);
}
Вывод:
Ожидаемые результаты и результаты тестирования совпали. Поэтому можно сказать, что программа работает правильно.