All pastes #1845422 Raw Edit

HSE LAB 15 of MARCH

public cpp v1 · immutable
#1845422 ·published 2010-03-19 04:56 UTC
rendered paste body
//Программа дял вычисления длинны строки//Автор: Романов Ермолай Евгеньевич, 171 группа ПМиИ//Версия: 0.1//Среда разработки: Microsoft Visual C++ 2010 (ОС Windows 7)//Дата последнего изменения: 15.03.2010//-----------------------------------------------------------------#include <iostream>#include <time.h>using namespace std;unsigned len_rec(char istr[]);unsigned len_itr(char *istr);bool pdrom(char poly[], int n = 0);int main(){	setlocale(LC_ALL,"Russian");	const int nelm = 100;	char my_str[nelm];	const char dot = '.';	cout << "Введите строку: ";	cin.getline(my_str, nelm, '\n');	cout << "Длинна строки \"" << my_str << "\" равна " << len_rec(my_str) << endl;	int beg = clock();	for (int i = 0; i < 1000000; i++)		len_rec(my_str);	int end = clock();	unsigned rec_time = end - beg;	cout << "Время выполнения рекурсивной версии счетчика эл-тов: " << rec_time << " секунд.";	beg = clock();	for (int i = 0; i < 1000000; i++)		len_itr(my_str);	end = clock();	unsigned itr_time = end - beg;	cout << "\nВремя выполнения итеративной версии счетчика эл-тов: " << itr_time << " секунд.";	cout << "\nРекурсивная версия медленнее в " << rec_time/itr_time << " раз.";	cout << "\nПолиндром или нет??";	if (pdrom(my_str)) cout << "\nПолиндром!";	else cout << "\nНе полиндром...";	getchar();	getchar();}unsigned len_rec(char istr[]){	if (!(*istr)) return 0;	return len_rec(istr + 1) + 1;}unsigned len_itr(char *istr){	int n = 0;	while (!istr[n])		n++;	return n;}bool pdrom(char poly[], int n){	if (poly == poly + len_itr(poly) - n)	{		n++;		pdrom(poly + n, n);		return true;	}	return false;}