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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2013, 16:44   #1
ruberss
Новичок
Джуниор
 
Регистрация: 11.06.2013
Сообщений: 1
Смущение Задачи на языке С++

времени мало чтоб изучить язык а уже скоро сдавать если не трудно помогите с решением или подскажите я пока попробую своими силами осмыслить но если кто бы помог было бы не плохо да и подскажите книги для изучения языка С++ на будущее...
Вот сами задачи:
1)Дан массив размера N. Осуществить циклический сдвиг элементов массива влево на М позиций. Новый массив заводить нельзя.
2)Дана строка символов. Заменить один слог на другой. Длина слогов одинаковая.
и сели можно с пояснениями что разобраться можно было что к чему... буду признателен заранее СПАСИБО!
ruberss вне форума Ответить с цитированием
Старый 17.06.2013, 21:12   #2
revizor
Форумчанин
 
Аватар для revizor
 
Регистрация: 20.01.2013
Сообщений: 146
По умолчанию

первую задачу решил

Код:
#include <iostream>

typedef		unsigned int		uint;

template<typename T>					// сдвиг влево на 1 позицию
void ShiftLeftOnePos(T *ar, uint size);

template<typename T>					// сдвиг влево на m позиций
void ShiftLeftMPos(T *ar, uint size, uint m);

template<typename T>					// печать массива
void Print(const T *ar, uint size);


int main()
{
	const uint N=10;
	int ar[N]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
	uint m=2;

	ShiftLeftMPos(ar, N, m);
	Print(ar, N);
 
	system("pause");	
	return 0; 
}


template<typename T>
void ShiftLeftOnePos(T *ar, uint size)
{
	T temp=ar[0];

	for (uint i=0; i<size-1; ++i)
		ar[i]=ar[i+1];

	ar[size-1]=temp;
}


template<typename T>					
void ShiftLeftMPos(T *ar, uint size, uint m)
{
	for (uint i=1; i<=m; ++i)
		ShiftLeftOnePos(ar, size);
}


template<typename T>
void Print(const T *ar, uint size)
{
	for (uint i=0; i<size; ++i)
		std::cout << ar[i] << " ";

	std::cout << std::endl;
}
revizor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на языке Пролог Танюха Ю Помощь студентам 2 15.04.2013 23:59
задачи на языке Си Romashka) Общие вопросы C/C++ 1 31.10.2012 15:43
Решение задачи на языке Pascal FishOK Помощь студентам 4 23.11.2010 14:34
Задачи на языке С++ xetron Помощь студентам 6 09.11.2010 14:05