Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Алгоритмы и теория программирования


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

CradleA
Статус: Профессор
Рейтинг: 41
∙ повысить рейтинг »
solowey
Статус: Студент
Рейтинг: 26
∙ повысить рейтинг »
Роман Селиверстов
Статус: Советник
Рейтинг: 0
∙ повысить рейтинг »

∙ Алгоритмы и теория программирования

Номер выпуска:216
Дата выхода:23.08.2018, 21:15
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:25 / 9
Вопросов / ответов:3 / 4

Консультация # 174173: Есть задачка: "Поменять местами первый максимальный и первый минимальный элементы." (перестановка в массивах, C++). Нужна полная блок схема этой задачи. Где возможно использовать цикл For. Заранее благодарен....
Консультация # 165263: Здравствуйте, уважаемые эксперты! Нужно написать алгоритм для Машины с Неограниченными Регистрами (МНР). Аналог на Pascal' в приложении. Т.е. нужно решить систему уравнений. ...
Консультация # 70633: Здравствуйте... У меня вопрос по преобразованию вещественного числа, заданного в 10-й системе счисления в 2-е число... Алгоритм решения данной задачи у меня есть, но он не полностью описан... На 1-м шаге мы переводим целую и дробную части числа в 2-ю форму. Целая часть переводится в 2-й вид так, как это делается обычно. А как дробна...

Консультация # 174173:

Есть задачка: "Поменять местами первый максимальный и первый минимальный элементы." (перестановка в массивах, C++). Нужна полная блок схема этой задачи. Где возможно использовать цикл For.
Заранее благодарен.

Дата отправки: 13.11.2009, 11:47
Вопрос задал: starcode
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Airyashov:

Здравствуйте, starcode.
вам хоть предыдущие схемы помогли?

Консультировал: Airyashov
Дата отправки: 13.11.2009, 12:04
Прикреплённый файл: посмотреть » [25.8 кб]
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Micren:

Здравствуйте, starcode.
Реализация на C++:

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>

using namespace std;

template<class T,size_t Dim>
void changeMinMax(T (&array)[Dim])
{
	T *item,*min,*max;
	const T* const end=array+Dim;
	for(item=min=max=array;item!=end;++item)
	{
		if(*item>*max)
		{
			max=item;
		}
		else if(*item<*min)
		{
			min=item;
		}
	}
	swap(*min,*max);
}

template<class T,size_t Dim>
void printArray(const char* const message,const T (&array)[Dim])
{
	cout<<message<<endl;
	for(size_t i=0;i<Dim;++i)
	{
		cout<<setw(4)<<array[i]<<' ';
	}
	cout<<endl;
}

template<class T,size_t Dim>
void genArray(T (&array)[Dim])
{
	for(size_t i=0;i<Dim;++i)
	{
		array[i]=rand()%100-50;
	}
}

int main(int argc,char** argv)
{
	srand(static_cast<unsigned int>(time(0)));
	setlocale(LC_ALL,"russian_russia");
	int array[10];
	genArray(array);
	printArray("Исходный массив:",array);
	changeMinMax(array);
	printArray("Результат:",array);
	system("PAUSE");
	return 0;
}

Блок-схема шаблонной ф-ии template<class T,size_t Dim> void changeMinMax(T (&array)[Dim])

Консультировал: Micren
Дата отправки: 13.11.2009, 13:33
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 165263:

Здравствуйте, уважаемые эксперты! Нужно написать алгоритм для Машины с Неограниченными Регистрами (МНР). Аналог на Pascal' в приложении. Т.е. нужно решить систему уравнений.

Дата отправки: 18.04.2009, 10:00
Вопрос задал: Toxa
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Бизин Михаил Анатольевич:

Здравствуйте, Toxa!
У Машины с Неограниченными Регистрами всего 4 команды:
1. Z(n) - Обнулить регистр Rn (Pascal: R[n]:=0;)
2. S(n) - Увеличить регистр Rn на 1 (Pascal: inc(R[n]);)
3. T(m,n) - Присвоить регистру Rn значение регистра Rm (Pascal: R[n]:=R[m];)
4. J(m,n,q) - Условный переход. Если Rm=Rn, то перейти к q-й команде (Pascal: if R[m]=R[n] then goto q;)

Так будет выглядеть программа:
Начальное состояние: R2=X, R3=Y
Конечное состояние: R5=F
1 Z(0)
2 Z(1)
3 Z(2)
4 J(2,4,8)
5 J(2,3,16)
6 S(2)
7 J(0,1,4)
8 T(3,5)
9 Z(2)
10 J(2,3,14)
11 S(2)
12 S(5)
13 J(0,1,10)
14 S(5)
15 J(0,1,25)
16 T(4,5)
17 Z(2)
18 J(2,3,21)
19 S(2)
20 J(0,1,18)
21 J(2,4,25)
22 S(2)
23 S(5)
24 J(0,1,21)

В приложении программа на Паскале, где одна строка - одна комманда машины

Приложение:

Консультировал: Бизин Михаил Анатольевич
Дата отправки: 18.04.2009, 23:05
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 70633:

Здравствуйте...
У меня вопрос по преобразованию вещественного числа, заданного в 10-й системе счисления в 2-е число...
Алгоритм решения данной задачи у меня есть, но он не полностью описан...
На 1-м шаге мы переводим целую и дробную части числа в 2-ю форму.
Целая часть переводится в 2-й вид так, как это делается обычно. А как дробная часть преобразовывается мне НЕ ИЗВЕСТНО. КАК это делается?
Вот например: 100.25-->1100100.??
Заранее спасибо...

Дата отправки: 12.01.2007, 14:27
Вопрос задал: BugZex
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Андpей:

Здравствуйте, BugZex!
Вам формула представления дробного числа в позиционной системе счисления
Ap = an-1·pn-1+an-2·pn-2 + ... + a1·p1+a0·p0 +a-1·p-1+a-2·p-2 + ... + a-m·p-m

Перевод дробного числа из десятичной системы счисления в двоичную осуществляется по следующему алгоритму:

Вначале переводится целая часть десятичной дроби в двоичную систему счисления;

Затем дробная часть десятичной дроби умножается на основание двоичной системы счисления;

В полученном произведении выделяется целая часть, которая принимается в качестве значения первого после запятой разряда числа в двоичной системе счисления;

Алгоритм завершается, если дробная часть полученного произведения равна нулю или если достигнута требуемая точность вычислений. В противном случае вычисления продолжаются с предыдущего шага.

Пример:
101101,101 = 1·2**5+0·2**4+1·2**3+1·2**2+0·2**1+1·2**0+1·2**-1+0·2**-2+1·2**-3=45,625
Непосредственно дробная часть:
1·2**-1+0·2**-2+1·2**-3=0,625

Консультировал: Андpей
Дата отправки: 12.01.2007, 15:00
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное