Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.90
Tanzilit
Сообщений: n/a
#1

Нужно вставить счетчик операций в программу - C++

10.12.2007, 20:50. Просмотров 2480. Ответов 5
Метки нет (Все метки)

Здравствуйте товарищи программеры
тут такая ситуация
Есть уже написанная прога
Единственно в чем я вас прошу помочь:
1)Протестить прогу(я тестил на досовском с++ 3.1 и чет тупит, хотя в коде ошибок не заметил)
2)необходимо встроить в нее счетчик операций а увы не умею. Помогите плиз.Вам это должно быть не трудно а мне очнеь поможете!
Итак условие задачи:
Дан массив целых, положительных, ограниченных сверху чисел. Определить наиболее часто встречающуюся подряд тройку чисел
Решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include stdio.h; 
#include mem.h; 
#include stdlib.h; 
 
#define MAX 8 //Ограничивающее число 
#define MAXMS 1024 //Размер массива 
 
void main() 
{ 
int i, i1, i2, j, n1, n2, n3; 
int ms[MAXMS], //Наш массив 
kms[MAX][MAX][MAX]; //Массив под комбинации 
 
//Обнуляем массив 
memset( kms, 0, MAX * MAX * MAX * sizeof(int) ); 
 
//Заполняем массив случайным образом в указанных пределах 
randomize( ); 
for( i = 0; i  MAXMS; i ++ ) 
ms[i] = random( MAX ); 
 
//Ищем кол-во каждой комбинации 
for( i = 0; i  MAXMS; i += 3 ){ 
if( i + 2 ; MAXMS ) break; 
kms[ms[i]][ms[i + 1]][ms[i + 2]] ++; 
} 
 
//Ищем наиболие встречающуюся комбинацию 
for( j = 0, i = 0; i  MAX; i ++ ) 
for( i1 = 0; i1  MAX; i1 ++ ) 
for( i2 = 0; i2  MAX; i2 ++ ) 
if( j  kms[i][i1][i2] ){ 
j = kms[i][i1][i2]; 
n1 = i; 
n2 = i1; 
n3 = i2; 
} 
 
//Теперь n1 n2 n3 - искомая тройка чисел встречается j раз 
printf( "%d %d %d - %d", n1, n2, n3, j ); 
}
p.s.Еще раз повторюсь - Необходимо начертить таблицу по типу
размерность массива|колл-во операций
ну то бишь как от размерности массива изменяется колл-во операций
для этого надо встроить счетчик операций в прогу
Заранее благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2007, 20:50     Нужно вставить счетчик операций в программу
Посмотрите здесь:

Нужно вставить счетчик, чтобы посчитать количество сравнений и перестановок - C++
#include <iostream> #include <ctime> using namespace std; int main() { int arr, a, b, i, size; size = 100; //...

Не работает счетчик операций - C++
Всем доброго вечера,может кто помочь? Изначально было задание переписать программу из паскалая в с++ включая процедуру findsum строки...

Счетчик операций в цикле do-while - C++
Счетчик операций i выдает нереально завышенные цифры: всего 4 преобразования - как будто 15 операций в цикле произошло. Как его на работу...

Нужно вставить формулу в программу - C++
y= \begin{cases} ln\left(-x \right) & \text{ , } x \lt 1 \\ -\sqrt{1-x^2} & \text{ , } -1 \le x \le 1 \\ ln\left(x \right) & \text{...

Наследование, счетчик, перегрузка операций: К префиксным операциям нет доступа - C++
обычный счетчик с уровнями наследования. почему-то к префиксным операциям нет доступа. в чем дело? #include "stdafx.h" #include...

Как вставить счетчик в быструю сортировку? - C++
нужно написать счетчик, какой определяет кол-во перестановок и сравнений в быстрой сортировке #include <iostream> #include <ctime> ...

Есть программа сортирующая массив из 1000 эллементов методом пузырька вставить счетчик времени - C++
Сколько не пытался все напрасно никак не могу вставить счетчик. помогите пжлст #include "stdafx.h" #include <iostream> using...

Перегрузка операций в классе! Очень нужно! - C++
Перегрузить для класса stroka в теле класса Вычитание строк S1-S1: Из первого слова удалять только соответствующие вхождения буквы второго...

Нужно вставить счётчик - C++
Задание такое : найти среднее арифметическое элементов выше главной диагонали и заменить отрицательные элементы ниже побочной. Вторая...

Я хочу написать программу по учету торговых операций - C++
Я хочу написать программу по учету торговых операций если успешно освою с++, скажите там еще нужно базу данных знать типо скуела какой язык...

Куда нужно вставить break? - C++
#include "iostream" #include "math.h" #include "stdio.h" using namespace std; int main() { int s=0,i,j,max,m1,n2; ...

Нужно сохранить и вставить содержания ячеек - C++
У меня есть матрица 9 на 9. На ней есть ячейки с состаяниями 0, *, !, 1. Мне нужно сохранять (Save) та загружать (Load) содержание...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.12.2007, 03:54     Нужно вставить счетчик операций в программу #2
Вообщем, че-то непонятен мне твой код. Я написал свой. Он легкомодифицируемый, если что. Я не понял, какие именно операции должны подсчитываться.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include stdio.h;  
#include stdlib.h;
#include conio.h;
 
#define MAX 2
#define MAXMS 20
  
void main() 
{
int i, i1, j, count, prevcount = 0, counter = 0;
int ms[MAXMS], 
triplet[6];
 
randomize();
for(i=0;iMAXMS;i++)
    ms[i] = random(MAX);
 
for(i=0;iMAXMS-2;i++)
{
    for(i1=0;i13;i1++)
    triplet[i1] = ms[i+i1];
   count = 1;
   for(j=i+1;jMAXMS-2;j++)
    if((triplet[0] == ms[j]) && (triplet[1] == ms[j+1]) && (triplet[2] == ms[j+2]))
        count++;
   if (count ; prevcount)
   {
    prevcount = count;
    for(i1=3;i16;i1++)
        triplet[i1] = triplet[i1-3];
    }
}
 
for( i = 0; i  MAXMS; i++ )
    printf(" %d ", ms[i]);
 
printf( "\n\nThe triplet: %d %d %d\nCount %d", triplet[3], triplet[4], triplet[5], prevcount);
getch();
}
Просто сделай "counter++;" там, где проводятся оперции, которые тебе надо считать.
Вообщем, что-нибудь такое может получиться:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
...
for(j=i+1;jMAXMS-2;j++)
   {
    if((triplet[0] == ms[j]) && (triplet[1] == ms[j+1]) && (triplet[2] == ms[j+2]))
        count++;
    counter++;
   }
   if (count ; prevcount)
   {
    prevcount = count;
    for(i1=3;i16;i1++)
        triplet[i1] = triplet[i1-3];
    }
}
 
for( i = 0; i  MAXMS; i++ )
    printf(" %d ", ms[i]);
 
printf( "\n\nThe triplet: %d %d %d\nCount %d\n\n%d|%d", triplet[3], triplet[4], triplet[5], prevcount, MAXMS, counter);
...
Tanzilit
Сообщений: n/a
11.12.2007, 05:21     Нужно вставить счетчик операций в программу #3
хмм спасибо вам за помощь! из нескольких форумов за сегодня только здесь ответили респект вам!
А можно твой код с комментариями и также узнать бы версию C++ на которой написано?
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.12.2007, 15:23     Нужно вставить счетчик операций в программу #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//подключаем библиотеки
#include stdio.h;  
#include stdlib.h;
#include conio.h;
 
#define MAX 2
#define MAXMS 20
  
void main() 
{
//итераторы, каунтер, prevcount - хранит самое большое количество повторений на текущий момент.
int i, i1, j, count, prevcount = 0, counter = 0;
int ms[MAXMS], 
triplet[6];//3 на текущую тройку, три на хранение наиболее повторяющейся
 
randomize();
for(i=0;iMAXMS;i++)
    ms[i] = random(MAX);
 
for(i=0;iMAXMS-2;i++)
{
    for(i1=0;i13;i1++)
    triplet[i1] = ms[i+i1];//заполним тройку
   count = 1;
   for(j=i+1;jMAXMS-2;j++)//проверяем со следующего элемента. Можно сделать +3, если надо через три сразу перейти. Тут как угодно можно
    if((triplet[0] == ms[j]) && (triplet[1] == ms[j+1]) && (triplet[2] == ms[j+2]))
        count++;
   if (count ; prevcount)//если количество больше, чем было до этого, то запоминаем в prevcount.
   {
    prevcount = count;
    for(i1=3;i16;i1++)
        triplet[i1] = triplet[i1-3];
    }
}
 
for( i = 0; i  MAXMS; i++ )//вывод я делал для проверки
    printf(" %d ", ms[i]);
 
printf( "\n\nThe triplet: %d %d %d\nCount %d", triplet[3], triplet[4], triplet[5], prevcount);
getch();
}
Tanzilit
Сообщений: n/a
11.12.2007, 20:11     Нужно вставить счетчик операций в программу #5
Вот спасибо буду разбирать
А посчитать нужно значимые операции по крайней мере в задании так
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
11.12.2007, 22:21     Нужно вставить счетчик операций в программу #6
C++
1
2
3
4
5
6
7
8
...
for(j=i+1;jMAXMS-2;j++) 
   { 
      if((triplet[0] == ms[j]) && (triplet[1] == ms[j+1]) && (triplet[2] == ms[j+2])) 
         count++; 
      counter++; 
   }
...
Вот здесь мы и считаем. Сколько раз у нас программа пробегает по массиву в поисках тройки.
Yandex
Объявления
11.12.2007, 22:21     Нужно вставить счетчик операций в программу
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru