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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
#1

Помогите решить алгоритм - C++

07.09.2008, 22:05. Просмотров 2076. Ответов 19
Метки нет (Все метки)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2008, 22:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите решить алгоритм (C++):

Помогите решить... - C++
Некий чиновник купил лошадей и быков на 1770 талеров. За каждую лошадь он уплотил по 31 талеру, а за каждого быка - по 21 телеру. Сколько...

Помогите решить - C++
ЭТО ЗАДАНИЕ Position of "-1". In the given NxM matrix find the LAST position of the minus one(-1). If it will be no "-1" value in...

помогите решить)) - C++
привет всем! помогите решить (x mod3)-1; я новичек и еще много не доганяю если можно распишите с коментариями спс.

помогите решить - C++
1- составить прогу для решения уравнения см фото. примерное решение ,но тут проблема в уравнении int main() { float a, b,...

Помогите решить ... - C++
Помогите решить 2-е задачи ... или дайте алгоритм решения ... 1)Составьте программу, которая бы по году рождения определяла знак по...

помогите решить - C++
Написать и протестировать программу STREND (str 1,str 2) которая возвращает 1,если строка str 1 расположена в конце строки str 2 ,и 0-в...

19
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
07.09.2008, 22:09 #2
В чем именно нужна помощь, нельзя уточнить? Целиком прогу написать? Тогда платно.
0
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 22:13  [ТС] #3
Объяснить хоть как сдвинутся с мертвой точки.
У нас на 1 курсе сразу такого завала не было, а тут столько да в одной лабораторной, что голова кругом ходит.
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
07.09.2008, 22:21 #4
ну память под массив может быть выделена с помощью оператора new...
начиная со второго шага надо объяснить себе и нам, что же такое "барьер", что он должен собой представлять и для чего.
0
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 22:48  [ТС] #5
Допустим дан массив линейный: [1, 2, 6, ....., n-1, n].
n -элемент барьер.
Установка барьера обязательна.
Я так понял так, что когда ищется ключ, и допустим, там его нет. Поиск не выходил за пределы этого массива, точно по научному не могу сформулировать.
0
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 22:57 #6
а может тебе это поможет ,так как ты не уточнил какои массив тебе надо показываю на одно мерном
Код
#include <iostream>
#include <time.h>
using namespace std;
void main()
{
//Отсортировать в массиве из 10 чисел первые пять
//по возрастанию, вторые пять по убыванию (двумя способами).

	/*const int size=10;
	int a[size],min,imin,max,imax;
	srand(time(0));
	for(int i=0;i<size;i++)// массив генератора случаиных чисел
	{
		a[i]=rand()%10;
		cout<<i<<":"<<a[i]<<'\t';
	}
	cout<<"Puzerkovim\n";//сам массив на сортировку пузирковим методом
	for(int i=0;i<size/2-1;i++)
	{
		for(int j=size/2-1;j>i;j--)
		{
			if(a[j]<a[j-1])
			{
				int tmp=a[j];
				a[j]=a[j-1];
				a[j-1]=tmp;
			}
		}
	}
	for(int i=size/2;i<size-1;i++)
	{
		for(int j=size-1;j>i;j--)
		{
			if(a[j]>a[j-1])
			{
				int tmp=a[j];
				a[j]=a[j-1];
				a[j-1]=tmp;
			}
		}
	}
	for(int i=0;i<size;i++)
	{
		cout<<i<<":"<<a[i]<<'\t';
	}
cout<<"Sortirovkoi\n";//массив методом выбора
	for(int i=0;i<size/2;i++)
	{
		min=a[i];
		imin=i;
		for(int j=i+1;j<size/2;j++)
		{
			if(a[j]<min)
			{
				min=a[j];
				imin=j;
			}
		}
		a[imin]=a[i];
		a[i]=min;
	}
	for(int i=size/2;i<size;i++)
	{
		max=a[i];
		imax=i;
		for(int j=i+1;j<size;j++)
		{
			if(a[j]>max)
			{
				max=a[j];
				imax=j;
			}
		}
		a[imax]=a[i];
		a[i]=max;
	}
	for(int i=0;i<size;i++)
	{
		cout<<i<<":"<<a[i]<<'\t';
	}
	cout<<'\n';*/
}
0
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 23:00  [ТС] #7
Цитата Сообщение от Casper! Посмотреть сообщение
а может тебе это поможет ,так как ты не уточнил какои массив тебе надо показываю на одно мерном
Код
#include <iostream>
#include <time.h>
using namespace std;
void main()
{
//Отсортировать в массиве из 10 чисел первые пять
//по возрастанию, вторые пять по убыванию (двумя способами).

	/*const int size=10;
	int a[size],min,imin,max,imax;
	srand(time(0));
	for(int i=0;i<size;i++)// массив генератора случаиных чисел
	{
		a[i]=rand()%10;
		cout<<i<<":"<<a[i]<<'\t';
	}
	cout<<"Puzerkovim\n";//сам массив на сортировку пузирковим методом
	for(int i=0;i<size/2-1;i++)
	{
		for(int j=size/2-1;j>i;j--)
		{
			if(a[j]<a[j-1])
			{
				int tmp=a[j];
				a[j]=a[j-1];
				a[j-1]=tmp;
			}
		}
	}
	for(int i=size/2;i<size-1;i++)
	{
		for(int j=size-1;j>i;j--)
		{
			if(a[j]>a[j-1])
			{
				int tmp=a[j];
				a[j]=a[j-1];
				a[j-1]=tmp;
			}
		}
	}
	for(int i=0;i<size;i++)
	{
		cout<<i<<":"<<a[i]<<'\t';
	}
cout<<"Sortirovkoi\n";//массив методом выбора
	for(int i=0;i<size/2;i++)
	{
		min=a[i];
		imin=i;
		for(int j=i+1;j<size/2;j++)
		{
			if(a[j]<min)
			{
				min=a[j];
				imin=j;
			}
		}
		a[imin]=a[i];
		a[i]=min;
	}
	for(int i=size/2;i<size;i++)
	{
		max=a[i];
		imax=i;
		for(int j=i+1;j<size;j++)
		{
			if(a[j]>max)
			{
				max=a[j];
				imax=j;
			}
		}
		a[imax]=a[i];
		a[i]=max;
	}
	for(int i=0;i<size;i++)
	{
		cout<<i<<":"<<a[i]<<'\t';
	}
	cout<<'\n';*/
}
Большое спасибо!!! Мне нужен линейный (одномерный) массив.
0
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 23:00 #8
хм у нас это 2 месяц 1 семестра
0
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 23:03  [ТС] #9
не понял (а если про сортировку, там ни чего сложного нету)
0
vetal-voyts
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
07.09.2008, 23:13 #10
посмотри тему "сортировка двухмерного массива"
там есть код для простого массива
0
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 23:21  [ТС] #11
Сам массив:
1. i=-1 (присваивание лежит за пределами цикла)
2. i++
3. for (i==n то поиск не удачен)
4. если А[i]=k ( то поиск удачен), где k – это ключ
Неоптимальный алгоритм действия:
1. i=-1 (присваивание лежит за пределами цикла)
2. i++
3. если А[i]!=k на шаг 2
4. если i==n не удачен, иначе поиск удачен.
Оптимальный алгоритм действия:
1. i=-1 (присваивание лежит за пределами цикла)
2. i++
3. если А[i]<k на шаг 2
4. если А[i]==k то шаг 2
Код подчета времени:
Код
int _tmain(int argc, _TCHAR* argv[])
{
    CPreciseTimeMoment tmStart, tmEnd;

    // Делаем замер времени ДО выполнения алгоритма 
    tmStart.Fix();

    // Начало алгоритма
    Sleep(2325);
    // время выполнения алгоритма в данном примере 
    // имитирует опреатор Sleep, вызывающий "засыпание"
    // процесса на время, указанное в скобках
    // в данном случае на 2,325 секунды
    // Конец алгоритма

    // Делаем второй замер времени ПОСЛЕ выполнения алгоритма
    tmEnd.Fix();

    // Вычисляем разницу
    CPreciseTimeInterval tmInterval = CPreciseTimeInterval(tmStart, tmEnd);

    // Выводим результат измерения на экран
    printf("Estimated time = ");
    tmInterval.Print();

    getch();
    return 0;
}
Сортировка любая.
0
vetal-voyts
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
08.09.2008, 00:13 #12

если barjer<50 - плохой случай , если barjer>=50 ...
Код
void RandArray(int column,int barjer,int Array[])
	{
              int temp;
	   for(int i=0; i<column; i++)
		   {
		     temp=rand()%50;
                            while(temp>barjer)
                              temp=rand()%50;
                            Array[i]=temp;
		   }
	}
0
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
08.09.2008, 00:28  [ТС] #13
Здесь все так запутано барьер, ключ, время. Я не знаю как все это объединить.
0
vetal-voyts
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
08.09.2008, 00:47 #14
Код
измеряем_время()
{
   RandArray() // хороший
}

int t1=измеряем_время();

измеряем_время()
{
   RandArray() // плохой
}

int t2=измеряем_время();

сравнить(t1,t2);

измеряем_время()
{
  SuchArray() // плохой key>barjer
}

t3=измеряем_время();
измеряем_время()
{
  SuchArray() //  key<barjer
}

t4=измеряем_время();
сравнить(t3,t4);
0
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
08.09.2008, 19:19 #15
Цитата Сообщение от vetal-voyts Посмотреть сообщение
посмотри тему "сортировка двухмерного массива"
там есть код для простого массива
да точно тоже вариант это тоже тема каторую я раздул =)
0
08.09.2008, 19:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2008, 19:19
Привет! Вот еще темы с ответами:

Помогите решить в С++ - C++
Array18. Дан целочисленный массив размера N. Определить максимальное количество его одинаковых элементов. Matrix18. Дана целочисленная...

Помогите решить . - C++
C++ Вести три действительных числа от -10 до 10. Возвести в квадрат те из них, значения которых неотрицательны, и в третью степень...

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

Помогите решить пжлста - C++
&quot; С помощью датчика случайных чисел сформулировать матрицу T.вывести ее на экран.Сформулировать одномерные массивы из : Сумм ненулевых...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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