Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
PAGE 3
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, молоді та спорту УКРАЇНИ
Національний аерокосмічний університет ім. М.Є. Жуковського
“Харківський авіаційний інститут”
Кафедра компютерних систем та мереж
Домашнє завдання №1
з дисципліни “Обчислювальна техніка та програмування”
Робота з текстовими файлами
ХАІ.503.516.13В. 050102, ПЗ
Виконав студент гр. 516 Момот О. О.
(№ групи) (П.І.Б.)
(підпис, дата)
Перевірив ст. викладач каф. 503
(науковий ступінь, вчене звання, посада)
Дужа В. В.
(підпис, дата) (П.І.Б.)
2013
Дана последовательность прописных (больших) латинских букв.
После каждой буквы вставить последнюю букву.
№ теста |
Строка в файле №1 |
Ожидаемый результат в файле №2 |
1 |
ARMY |
AYRYMYYY |
2 |
THE CAPRAL IN THE ARMY |
TEHEEE CLALPLRLALLL INNN TEHEEE AYRYMYYY |
3 |
THE COMPUTER IS THE LENOVO |
TEHEEE CRORMRPRURTRERRR ISSS TEHEEE LONOOOVOOO |
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <locale.h>
#define MAX 255
int main()
{
setlocale(LC_CTYPE, "rus");
char st[MAX], s[MAX];
char *pw = st, *ps = st;
char sym, symb;
symb = ' ';
int n, k = 1, a = 0;
FILE *fd, *fu;
char fname1[50];
char fname2[50];
printf("Введите имя файла для считывания: ");
gets(fname1);
fd=fopen(fname1,"rt");
if (fd==NULL)
{
printf("Ошибка в имени файла - %s\n",fname1);
system("pause");
return 0;
}
fgets(st, MAX, fd);
printf("Введите имя файла для создания: ");
gets(fname2);
fu=fopen(fname2,"wt");
if (fu==NULL)
{
printf("Ошибка в имени файла - %s\n",fname2);
system("pause");
return 0;
}
for (int i = 0; i < strlen(st); i++)
if (st[i] == symb) k++;
do
{
if (*ps != ' ')
{
ps++;
}
else
{
*ps = '\0';
if ((n = strlen(pw)) > 1)
sym = pw[n - 1];
for (int i = 0; i < strlen(pw); i++)
{
if(pw[i] != ' ')
{
putc (pw[i],fu);
putc (sym,fu);
}
else
putc (' ',fu);
}
pw = ++ps;
putc (' ',fu);
a++;
}
}
while (k != a);
fclose(fu);
fclose(fd);
system("pause");
return 0;
}
№ теста |
Строка в файле №1 |
Результат в файле №2 |
Вывод |
1 |
ARMY |
AYRYMYYY |
Тест пройден |
2 |
THE CAPRAL IN THE ARMY |
TEHEEE CLALPLRLALLL INNN TEHEEE AYRYMYYY |
Тест пройден |
3 |
THE COMPUTER IS THE LENOVO |
TEHEEE CRORMRPRURTRERRR ISSS TEHEEE LONOOOVOOO |
Тест пройден |
Программа прошла тестирование: в результате выполнения тестов программа выдала ожидаемые результаты. Программа работоспособна.
2.1 Задание №2
Даны строки S и S0. Найти количество вхождений строки S0 в строку S.
2.2 Алгоритм программы
2.3 Тестовые наборы
№ теста |
Строка в файле №1 |
Ввод строки S0 |
Ожидаемый результат |
1 |
mama mula ramy mama mula ramy mama mula ramy |
mama mula |
3 |
2 |
1114 5556 1114 7777 |
1114 |
2 |
3 |
est west norse est west west |
est |
5 |
2.4 Код программы
#include <string.h>
#include <locale.h>
#include <stdio.h>
#include <Windows.h>
#define MAX 255
int main()
{
setlocale(LC_CTYPE,"rus");
FILE *fd, *fu;
char fname1[50];
char fname2[50];
int k, cnt = 0;
char S[MAX];
char S0[MAX];
printf("Введите имя файла для считывания S: ");
gets(fname1);
fd=fopen(fname1,"rt+");
if (fd==NULL)
{
printf("Ошибка в имени файла - %s\n",fname1);
system("pause");
return 0;
}
fgets(S, MAX, fd);
printf("Введите имя файла для создания: ");
gets(fname2);
fu=fopen(fname2,"wt+");
if (fu==NULL)
{
printf("Ошибка в имени файла - %s\n",fname2);
system("pause");
return 0;
}
puts("Введите строку S0:");
gets (S0);
int const la = strlen(S);
for(int i = 0 ; i < la; i++)
{
char tmp[MAX] = "";
if(S[i] == S0[0])
{
int j = i;
k = 0;
while(S[j] == S0[k])
{
tmp[k] = S[j];
j++;
k++;
}
if(!(strcmp(S0,tmp)))
cnt++;
if(S0[0] == S0[1])
i += strlen(S0) - 1;
}
}
fprintf(fu,"S0 входит в S %i раз(а).", cnt);
fclose(fu);
fclose(fd);
system ("pause");
return 0;
}
2.5 Результат работы программы
№ теста |
Ввод строки S |
Ввод строки S0 |
Результат в файле №2 |
Вывод |
1 |
mama mula ramy mama mula ramy mama mula ramy |
mama mula |
3 |
Тест пройден |
2 |
1114 5556 1114 7777 |
1114 |
2 |
Тест пройден |
3 |
est west norse est west west |
est |
5 |
Тест пройден |
Программа прошла тестирование: в результате выполнения тестов программа выдала ожидаемые результаты. Программа работоспособна.