Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2007, 16:52   #1
Tanzilit
Пользователь
 
Аватар для Tanzilit
 
Регистрация: 09.12.2007
Сообщений: 25
По умолчанию Нужно вставить счетчик операций в прогу плиз хелп!

Здравствуйте товарищи программеры
тут такая ситуация
Есть уже написанная прога
Единственно в чем я вас прошу помочь:
1)Протестить прогу(я тестил на досовском с++ 3.1 и чет тупит, хотя в коде ошибок не заметил)
2)необходимо встроить в нее счетчик операций а увы не умею. Помогите плиз.Вам это должно быть не трудно а мне очнеь поможете!
Итак условие задачи:
Дан массив целых, положительных, ограниченных сверху чисел. Определить наиболее часто встречающуюся подряд тройку чисел
Решение:
Код:
#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.Еще раз повторюсь - Необходимо начертить таблицу по типу
размерность массива|колл-во операций
ну то бишь как от размерности массива изменяется колл-во операций
для этого надо встроить счетчик операций в прогу
Заранее благодарен!
Tanzilit вне форума Ответить с цитированием
Старый 10.12.2007, 18:17   #2
Tanzilit
Пользователь
 
Аватар для Tanzilit
 
Регистрация: 09.12.2007
Сообщений: 25
По умолчанию

хмм в общем что то не пашет нифига прога.
но вот есть иной вариант проги(мне помогли сделать по новой)
Код:
#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;i<MAXMS;i++) 
   ms[i] = random(MAX); 

for(i=0;i<MAXMS-2;i++) 
{ 
   for(i1=0;i1<3;i1++) 
      triplet[i1] = ms[i+i1]; 
   count = 1; 
   for(j=i+1;j<MAXMS-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;i1<6;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 вне форума Ответить с цитированием
Старый 12.12.2007, 17:01   #3
Tanzilit
Пользователь
 
Аватар для Tanzilit
 
Регистрация: 09.12.2007
Сообщений: 25
По умолчанию

Снова здравствуйте в общем вот:
Код:
#include<stdio.h>
#include<mem.h>
#include<stdlib.h>

#define MAX 4 //ogranihevauhee 4islo
#define MAXMS 256 //Razmer Massiva

void main()
{
int i, i1, i2, j, n1, n2, n3;
int ms[MAXMS], //Our Massive
kms[MAX][MAX][MAX]; //massiv pod kombinazii

//obnulaem massive
memset( kms, 0, MAX * MAX * MAX * sizeof(int) );

//zapolnaem massive slu4aynim obrazom v ukazannih predelax
randomize( );
for( i = 0; i < MAXMS; i ++ )
ms[i] = random( MAX );

//ishem koll-vo kajdoi kombinazii
for( i = 0; i < MAXMS; i += 3 ){
if( i + 2 > MAXMS ) break;
kms[ms[i]][ms[i + 1]][ms[i + 2]] ++;
}

//ishem naibolee vstre4aushuusa kombinaziu
int count = 0; //***
for( j = 0, i = 0; i < MAX; i ++ )
for( i1 = 0; i1 < MAX; i1 ++ )
for( i2 = 0; i2 < MAX; i2 ++ )
{
count++;       //***
if( j < kms[i][i1][i2] )
{
j = kms[i][i1][i2];
n1 = i;
n2 = i1;
n3 = i2;
}
}
for( i = 0; i < MAXMS; i++ )
printf(" %d ", ms[i]);
printf("Razmernost massiva = %d\nkoll-vo operaciy = %d\n",MAXMS,count); //***
//teper n1 n2 n3 - iskomaya troika 4isel vstre4aushayasaя j raz
printf( "%d %d %d - %d", n1, n2, n3, j );
}
Коментарии на латинском тк сдаваться это дело будет в досовском си
просьба
1) проверить работоспособность в соответствии с условием(1 пост темы)
2) проверить верно ли считает колличество операций(как я понял от размерности массива оно не зависит а зависит от ограничивающего числа)
кстати еще вопрос возник - а что данная прога выведет если троек не будет найдено? видимо какой то бред наврно надо подправить...если кто может этим помочь плиз хелп
В задании нужно ПОДСЧИТАТЬ ЗНАЧИМЫЕ ОПЕРАЦИИ
Tanzilit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помоги плиз! Срочно нужно накодить прогу в делфи opolo13 Помощь студентам 3 14.03.2010 19:24
Как вставить справку в прогу 3lander Общие вопросы Delphi 10 22.10.2007 21:42
Хелп ми плиз!!!! Мефистофель Помощь студентам 5 27.05.2007 19:16
Умераю(((Плиз хелп!!!! Orig Помощь студентам 2 05.04.2007 11:57