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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2011, 14:35   #1
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию Слияние двух массивов

Програма готова може комусь пригодиться
Алгоритм програми наступний
1. Відсортувати 1 і 2 масив
2. Берем останній елемент 1 масиву і порівнюємо з першим елементом 2
3. Більший елемент скидаєм у результуючий масив
4. Якщо в імені закінчились літери для порівняння , всі літери що залишились в прізвищі скинути в хвіст масиву
5. Аналогічно з прізвищем

Код:
#include <iostream.h>
#include <string.h>
#include <fstream.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------

main(void)
{
	char imya[30],prizviche[30],res[100];
	int dova,dovb,dovz,i,j,a;
	char c,b;
	cout << "Enter name ";
	cin >> imya;
	cout << "Enter surname ";
	cin >> prizviche;
	dova = strlen(imya);
	dovb = strlen(prizviche);
	clrscr();
	ofstream raport;
	raport.open("Протокол злиття.txt");
	//Сортуємо масив імя
	for (int i = 1; i < dova; i++)
	   {
			 j = i;
			 while (j > 0 && imya[j - 1] > imya[j])
			 {
				   swap(imya[j],imya[j - 1]);
				   j--;
			 }
	   }
	//Сортуємо масив з прізвищем
		for (int i = 1; i < dovb; i++)
	   {
			 j = i;
			 while (j > 0 && prizviche[j - 1] < prizviche[j])
			 {
				   swap(prizviche[j],prizviche[j - 1]);//Міняємо місцями
				   j--;
			 }
	   }
		cout << imya << endl;//Виводимо імя
		cout << prizviche << endl;//Виводимо прізвище
	   for (i = 0; i < dova; i++)
	   {
			a = imya[i];
			cout << a << '\t';
	   }
	   cout << endl;
	   for (i = 0; i < dovb; i++)
	   {
			a = prizviche[i];
			cout << a << '\t';
	   }
	   cout << endl;
	dovz = dova+dovb;
	i = dova-1;//Індексатори імені
	int p = 0;//Індексатор прізвища
	int zliv = 0;//Індексатор масиву в який зливаємо
	ofstream zliti;
	zliti.open("Злитий масив.txt");
	 while(zliv < dovz)
	 {
			raport << "\n";
				if (imya[i] > prizviche[p])
				 {
					res[zliv] = imya[i];
					zliti << res[zliv] << '\t';
					zliv++;
					i--;
				 }
					else
					{
						res[zliv] = prizviche[p];
						zliti << res[zliv] << '\t';
						p++;
						zliv++;
					}
			if (i < 0)
			{
				do
					{
						res[zliv] = prizviche[p];
						zliti << res[zliv] << '\t';
						zliv++;
						p++;
					}while(prizviche[p] != NULL);//Продовжувати доки не зустрінеться пуста комірка
			}
			if (p == dovb)
			{
				while(i >= 0)
					{
						res[zliv] = imya[i];
						zliti << res[zliv] << '\t';
						zliv++;
						i--;
					}
			}
			for (j = 0; j < zliv; j++)
			{
				raport << res[j] << '\t';
			}
			raport << "\n";

	}
	zliti.close();
	ofstream ascicode;
	ascicode.open("ASCI коди.txt");
	for (i = 0; i < zliv; i++)
	{
		cout << res[i] << '\t';
		ascicode << res[i] << '\t';

	}
	cout << endl;
	cout << "ASCI Codes " << endl;
	for (i = 0; i < zliv; i++)
	{
		a = res[i];
		cout << a << '\t';
	}
	ascicode.close();
	cout << endl;
	system("PAUSE");//Затрмуємо результат на екрані
}

Последний раз редактировалось Anubys; 27.03.2011 в 20:30.
Anubys вне форума Ответить с цитированием
Старый 28.03.2011, 01:14   #2
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

Можно по-русски?
Акоб вне форума Ответить с цитированием
Старый 28.03.2011, 02:08   #3
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Програма готова може комусь пригодиться
Алгоритм програми наступний
1. Відсортувати 1 і 2 масив
2. Берем останній елемент 1 масиву і порівнюємо з першим елементом 2
3. Більший елемент скидаєм у результуючий масив
4. Якщо в імені закінчились літери для порівняння , всі літери що залишились в прізвищі скинути в хвіст масиву
5. Аналогічно з прізвищем
Цитата:
Можно по-русски?
Программа готова, может кому-нибудь пригодится.
Алгоритм программы следующий:
1. Отсортировать 1-й и 2-й массив
2. Берем последний элемент 1-го массива и сравниваем с первым элементом 2-го.
3. Больший элемент скидываем в результирующий масив.
4. Если в имени окончились буквы для сравнения, все оставшиеся буквы скинуть в хвост массива.
5. Аналогично с фамилией
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 28.03.2011, 02:09   #4
GroZa
Freelancer
Пользователь
 
Аватар для GroZa
 
Регистрация: 29.01.2011
Сообщений: 33
По умолчанию

Щито? Приведи топик в кошерный вид:
1) Cообщение - по-русски.
2) Код - по-английски с русскими же комментариями.
PS: Вероятность, что этот код таки кому-нибудь пригодится -> 0.
falax species rerum

Последний раз редактировалось GroZa; 28.03.2011 в 02:18.
GroZa вне форума Ответить с цитированием
Старый 28.03.2011, 03:18   #5
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от GroZa Посмотреть сообщение
PS: Вероятность, что этот код таки кому-нибудь пригодится -> 0.
Нет, код кому-нибудь пригодился бы, если бы те, кто в нем нуждается, пользовались поиском.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 28.03.2011, 10:07   #6
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

Цитата:
Сообщение от GroZa Посмотреть сообщение
Щито? Приведи топик в кошерный вид:
1) Cообщение - по-русски.
2) Код - по-английски с русскими же комментариями.
PS: Вероятность, что этот код таки кому-нибудь пригодится -> 0.
Цим займусь пізніше
Anubys вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слияние двух массивов в Delphi sauron99 Помощь студентам 17 03.04.2016 09:37
Слияние двух массивов Anubys Помощь студентам 0 26.03.2011 16:12
Ошибка в алгоритме слияние массивов ATAMAN200 Общие вопросы C/C++ 3 25.10.2010 20:37
Слияние массивов в паскале A_Orlov Помощь студентам 0 20.06.2010 21:09
Объединение, пересечение, слияние массивов -=Domestos=- Помощь студентам 6 25.12.2006 21:06