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

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

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

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

03.12.2008, 18:20. Просмотров 859. Ответов 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;
}
Заранее благодарю)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2008, 18:20     Помогите. Срочно. задача по с++: вводится 5-ное число
Посмотрите здесь:

Помогите найти ошибки.срочно C++
C++ Срочно Народ помогите!
C++ Помогите пожалуйста (срочно)
не вводится число в массив C++
C++ Указатель на функцию, как он вводится? СРОЧНО!
Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами C++
Напечатать таблицу умножения на заданное число (число вводится с клавиатуры) C++
C++ Найти n-ное число Эйлера по формуле
C++ Вывести n-ное счастливое число
Вводится число от 1 до 15. Вывести данное число, записанное в двоичной системе счисления (1, 10, 11, 100, C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Timofey
Сообщений: n/a
03.12.2008, 19:42     Помогите. Срочно. задача по с++: вводится 5-ное число #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  [ТС]     Помогите. Срочно. задача по с++: вводится 5-ное число #3
первую я понял, а вторую вообще никак, напиши пожалуйста программу, а то ничерта не втыкаю, а времени уже разбираться нет((
Timofey
Сообщений: n/a
04.12.2008, 21:15     Помогите. Срочно. задача по с++: вводится 5-ное число #4
Судя по всему надо разобраться в программе и самому догадаться,куда внедрить 2-х мерный массив.В мэин вводится короткое целое,которое передается функции с признаком S и целое,которое передается в функцию с признаком I.Что будет в массиве неизвестно.Если устроит,то завтра вечером дам код.
Yandex
Объявления
04.12.2008, 21:15     Помогите. Срочно. задача по с++: вводится 5-ное число
Ответ Создать тему
Опции темы

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