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

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

Войти
Регистрация
Восстановить пароль
 
Dunhil
0 / 0 / 0
Регистрация: 03.12.2008
Сообщений: 7
#1

Помогите. Срочно. задача по с++: вводится 5-ное число - C++

03.12.2008, 18:20. Просмотров 874. Ответов 3
Метки нет (Все метки)

Помогите решить 2 задачи. надо сделать сегодня((
1 задача: Вводится пятизначное число, если сумма его цифр нечетная то выполнить зеркальную перестановку цифр( ну то есть 1 с 5 поменять, 2 с 4). Задачу надо в двух вариантах. 1 вариант: перестановку сделать в виде функции(массивы использовать нельзя) 2 вариант: сделать уже с массивами

2 задача: настройка объекта(элемента двумерного динамического массива) для дампирования
В функции main Диалог для организации массива неизвестного количества обьектов и типа обьектов
Вот как то так. то есть есть программа, и ее надо переделать под двумерные массивы

Код
#include <iostream>

using namespace std;

void binaryDump(char sign, const void* pointer)
{
	bool flag(false);
	switch (sign)
	{
		case 'S' :
		{
			const short int* pointerToNumber = static_cast<const short int*>(pointer);
			short int mask(040000);
			if (*pointerToNumber)
			{
				if (*pointerToNumber < 0)
				{
					flag = true;
					cout << '1';
				}
				for (int i = 0; i < 15; ++i)
				{
					if (*pointerToNumber & mask)
					{
						flag = true;
						cout << '1';
					}
					else
						if (flag) cout << '0';
					mask >>= 1;
				}
				cout << endl;
			}
			else
				cout << '0' << endl;
			break;
		}
		case 'I' :
		{
			const int* pointerToNumber = static_cast<const int*>(pointer);
			int mask(010000000000);
			if (*pointerToNumber)
			{
				if (*pointerToNumber < 0)
				{
					flag = true;
					cout << '1';
				}
				for (int i = 0; i < 31; ++i)
				{
					if (*pointerToNumber & mask)
					{
						flag = true;
						cout << '1';
					}
					else
						if (flag) cout << '0';
					mask >>= 1;
				}
				cout << endl;
			}
			else
				cout << '0' << endl;
 			break;
		}
	}
}

int main()
{
	short int numberShortInt;
	int numberInt;
	cout << "Short integer number? ";
	cin >> numberShortInt;
	if (cin.fail())
	{
		cout << "Invalid format!\n";
		return -1;
	}
	binaryDump('S', &numberShortInt);
	cout << "Integer number? ";
	cin >> numberInt;
	if (cin.fail())
	{
		cout << "Invalid format!\n";
		return -1;
	}
	binaryDump('I', &numberInt);
	return 0;
}
Заранее благодарю)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2008, 18:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите. Срочно. задача по с++: вводится 5-ное число (C++):

Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. - C++
Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. ...

Вывести n-ное счастливое число - C++
Помогите с задачей Счатливыми числами считаются числа 4 и 7 ВВод Вводится n Вывод Нужно вывести n-ное счастливое число n &lt;=...

Найти n-ное число Эйлера по формуле - C++
Найти n-ное число Ейлера за формулой: Еn= ((2n)fact/(2n-2)fact*(2)fact)*En-1 - ((2n)fact/(2n-4)fact*(4)fact)*En-2 + ... pow((-1),n-1)*E0,...

Указатель на функцию, как он вводится? СРОЧНО! - C++
На завтра задачу задали, не могу решить. Не поможете? Срочно надо! Сама задача в прикреплениях! Вот мой пример решения, правда...

Не получается исправить ошибку (Вводится диапазон, где 1-ое число-начало диапазона, 2-ое число приращени, 3-е число конец диапазона) - C++
Здравствуйте. Не могу исправить ошибку. Задание: Вводится диапазон, (например 5,1,10) где 1-ое число-начало диапазона, 2-ое число...

Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами - C++
Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами (I, II, III, IV, V, VI, …., XV);С++ плииииз!

3
Timofey
Сообщений: n/a
03.12.2008, 19:42 #2
По первой задаче,вы оформляете функцию,которая делает следующее..
Ей передается параметр=колич. значимости числа и само число У.
В цыкле от и=1 до значимости..
Число У делится на 10*( знач. -и) и выделяется целая часть и заносится в динамически созданный массив до реализации функции мас(и).
У=У- целую часть* на 10*(знач. -и)
Конец цыкла
Итого вы сформировали массив из Колич элементов,=значимости,работаете с ним
вычисляете сумму его элементов,переставляете его,если надо и далее
делаете число ,для чего формируете функцию,похожую на первую,где первый елемент *10000,второй*1000,3*100,4 элемент*10,5* 1 и все складывается,получаем число.
Без использования массива,никак не обойтись,ведь 5 чисел где то надо зафиксировать,чтобы сумму подсчитать и переставить их,еще не придумана математич.функция,которая бы меняла число в зеркальном отражении,даже на уровне 0 и 1 ничек.
Хотя есть и такой вариант,оформить функцию по выше описанной методике,которой передается номер цыфра в числе и число,на выходе она возврощает цыфру,соответствующую номеру.
И тогда в цыкле
Сумма=сумма+функция(и).
конец цыкла
Если сумма четная,то есть делим посредством оператора деления с остатком,и проверяем равно или нет 0,
и тогда
формируем число по описанной выше методике как в цыкле от 1 до и
Ф(и)=Ф(и)+ф(5-и)*10*(5-и)
конец цыкла


По второму варианту без проблем,число вводится сразу в матрицу,как строковая
константа,определяем количество введенных символов и в зависимости от него в цыкле,равном ему,обрабатываем массив,делаем перестановки и выводим его.

По второй задаче вам необходимо распечатать программу,и напротив каждой строчки описать действие,которая она совершает,при этом заглядывая в учебник по семантике и описанию
потом все собрать до собственного разумения,и я уверен вы сами разберетесь или же помогут в неясном представлении того или иного действия,пожалуйста не воспринимайте это все каким нибудь
смешком или чем то вроде ,сам так делаю постоянно.
Dunhil
0 / 0 / 0
Регистрация: 03.12.2008
Сообщений: 7
03.12.2008, 21:01  [ТС] #3
первую я понял, а вторую вообще никак, напиши пожалуйста программу, а то ничерта не втыкаю, а времени уже разбираться нет((
0
Timofey
Сообщений: n/a
04.12.2008, 21:15 #4
Судя по всему надо разобраться в программе и самому догадаться,куда внедрить 2-х мерный массив.В мэин вводится короткое целое,которое передается функции с признаком S и целое,которое передается в функцию с признаком I.Что будет в массиве неизвестно.Если устроит,то завтра вечером дам код.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2008, 21:15
Привет! Вот еще темы с ответами:

Напечатать таблицу умножения на заданное число (число вводится с клавиатуры) - C++
Напечатать таблицу умножения на заданное число (число вводится с клавиатуры). Например для числа 7 таблица будет иметь вид 1 х 7 = 7 ...

Вводится число от 1 до 15. Вывести данное число, записанное в двоичной системе счисления (1, 10, 11, 100, - C++
Вводится число от 1 до 15. Вывести данное число, записанное в двоичной системе счисления (1, 10, 11, 100, 101, …., 1111);

С клавиатуры вводится двухзначное число. Выведите на экран это число, приписав к нему в конце единицу - C++
помогите пожалуйста с алгоритмом.

Помогите пожалуйста (срочно) - C++
Муравей забрался на дерево, и порыв ветра унёс его на листочке далеко от муравейника. Муравей приземлился около ряда из стопок коробок...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
04.12.2008, 21:15
Ответ Создать тему
Опции темы

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