7 отчёт Смолева В.А
..docxПоволжский Государственный Университет Телекоммуникаций и Информатики
Кафедра ПОУТС
Лабораторная работа №7
Строки
Выполнила :
Студентка гр. ИСТ 74У
Смолева В.А.
Проверили:
Д.т.н., проф. Лиманова Н.И.
Асс. Горелов Г.А.
Самара 2017
Задание: Научиться работать со строками
Вариант 14
Написать программу, вычисляющую процент схожести двух строк (учитывать только набор символов, но не их порядок).
Листинг программы
#include <iostream>
#include <windows.h> //для функции Sleep()
#include <string.h>
double process(char *S1, char *S2) //задание функции
{
int i, x=0;
double K, N;
if(strlen(S1)>=strlen(S2)) //сравнение длин строк
{
for(i=0; i != strlen(S2); i++){
if(S1[i] == S2[i])
x++; //подсчёт одинаковых
Sleep(1);//приостанавливает работу потока, в котором она была вызвана, на указанное в аргументе время или до поступления сигнала по которому вызывается функция обработки сигналов или программа завершает свою работу
}
N = strlen(S1);
}
else
{
for(i=0; i != strlen(S1); i++){
if(S1[i] == S2[i])
x++;//подсчёт одинаковых
Sleep(1);//приостанавливает работу потока, в котором она была вызвана, на указанное в аргументе время или до поступления сигнала по которому вызывается функция обработки сигналов или программа завершает свою работу
}
N = strlen(S2);
}
return ((x/N)*100);//подсчёт совпадений от нормы и умноженное на 100
}
using namespace std;
int main(void)
{
char S1[20], S2[20]; //задание строк
setlocale(LC_ALL, ""); //задание кирилицы
cout<<"Введите первую строку: ";
gets(S1);
cout<<"Введите вторую строку: ";
gets(S2);
printf("%.0f - процент совпадения строк S1 и S2 \n", process(S1, S2)); //вызов функции
system("pause");
return 0;}
Пример выполнения программы