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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2013, 21:40   #1
alexb4
Пользователь
 
Регистрация: 09.06.2013
Сообщений: 22
По умолчанию Задачи

1) Датчиком случайных чисел сгенерируйте случайное натуральное число в интервале от 1 до 900. Определите, сколько цифр в полученном числе.
2)В выражении 19*8* вместо звездочек поставьте цифры так, чтобы полученное число стало полным квадратом.
Результат. 1988=141*141.
3)Задан массив, состоящий из нулей и единиц. Проверьте, является ли он периодическим.
4)Заданы два одномерных массива А(M) и В(N).Сформировать массив С(K), содержащий элементы обоих массивов, расположенные в порядке возрастания.
Все на языке С++
alexb4 вне форума Ответить с цитированием
Старый 10.06.2013, 22:08   #2
revizor
Форумчанин
 
Аватар для revizor
 
Регистрация: 20.01.2013
Сообщений: 146
По умолчанию

вот к первой задаче

Код:
#include <iostream>
#include <cstdlib>
#include <ctime>

int main()
{
	setlocale(LC_ALL, "");
	srand(time(NULL));

	int n=1+rand()%900;
	int count;

	if (n<10) count=1;
	else if (n<100) count=2;
	else count=3;

	std::cout << n << " : " << count << std::endl;


	std::cout << std::endl;
	system("pause");
	return 0;
}
revizor вне форума Ответить с цитированием
Старый 11.06.2013, 05:59   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Задан массив, состоящий из нулей и единиц. Проверьте, является ли он периодическим.
на паскале
Код:
f:=true;
for i:=1 to n-1 do
if a[i]+a[i+1]<>1 then begin f:=false;break;end;
if f then writeln('Да!!!') else writeln('Нет!!!');
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 11.06.2013, 09:55   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

№3
Требуется четкое понятие периодичности.
Например,
Код:
0 1 0 1
будет являться таким?
А
Код:
0 0 0 1 1 1 0 0 0 1 1 1
?
Poma][a вне форума Ответить с цитированием
Старый 11.06.2013, 10:26   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Poma][a, +1
Мало того, а такой период:
Код:
0 1 0 1 1 0 1 0 1 1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.06.2013, 10:32   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Попробую дать определение периодического массива.
Массив называется периодическим, если любая его подпоследовательность, состоящая из соседних элементов, повторяется через N позиций, только не совсем уверен, что это так...

А! Вот, можно провести аналогию с периодической дробью
Цитата:
Сообщение от википедия
Бесконечная десятичная дробь называется периодической, если её последовательность цифр после запятой, начиная с некоторого места, представляет собой периодически повторяющуюся группу цифр.
Может, в случае с массивами так же дела обстоят?

Последний раз редактировалось Вадим Мошев; 11.06.2013 в 10:49.
Вадим Мошев вне форума Ответить с цитированием
Старый 11.06.2013, 10:51   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Уточнил бы для массива - начиная не с некоторого места, а именно с 1-ой позиции
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.06.2013, 11:32   #8
PriZZZraG
 
Аватар для PriZZZraG
 
Регистрация: 16.06.2012
Сообщений: 8
По умолчанию

Вторая задача
Код:
#include "stdafx.h"
#include "windows.h"
#include "math.h"
#include "string.h"

int obrabotka(char *, int);

int main()
{
	SetConsoleOutputCP(1251);

	int i, kolvo, chislo, koren;
	const int MAXLEN = 10;
	char stroka[MAXLEN];

	printf("Введите число:\n");
	scanf("%s", &stroka);

	kolvo = strlen(stroka);
	for (i = 0; i < kolvo; ++i)
	{
		if ((stroka[i] < '0' || stroka[i] > '9') && stroka[i] != '*')
		{
			printf("ERROR!\n");
			system("pause");
			return 0;
		}
	}

	chislo = obrabotka(stroka, kolvo);
	if (chislo == -1)
		printf("\nЧисла не существует\n");
	else
	{
		koren = pow(chislo, 1./2);
		printf("\nРезультат: %d = %d*%d\n", chislo, koren, koren);
	}

	system("pause");
	return 0;
}

int obrabotka(char *stroka, int kolvo)
{
	int koren, chislo, i, test;
	char *chislo_str = new char[kolvo];
	int flag;

	for (koren = 0; koren*koren < pow((double)10, kolvo-1); ++koren);

	test = pow((double)10, kolvo);
	while (koren*koren < pow((double)10, kolvo))
	{
		flag = 1;
		chislo = koren*koren;
		itoa(chislo, chislo_str, 10);
		for (i = 0; i < kolvo; ++i)
			if (stroka[i] != chislo_str[i] && stroka[i] != '*')
				flag = 0;
		if (flag) return chislo;
		++koren;
	}

	return -1;
}
PriZZZraG вне форума Ответить с цитированием
Старый 11.06.2013, 15:11   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Так-с..
Если следовать из определения периодического массива, то любой массив периодичен!
Поэтому предлагаю еще дополнить наше определение :

Массив называется периодическим, если последовательность его элементов , начиная с первого, представляет собой периодически повторяющийся набор элементов, число членов которого не превышает кол-во элементов массива - 1.

Вот я что-то накропал..
Код:
type
	TArr = array [1..10] of Integer;
var
	a, p : TArr;
	n, i : Integer;
	flag : Boolean;
	
function Period (const a, p : TArr; const n, k : Integer) : Boolean;
var
	i, j : Integer;
begin
	
	i := 1;
	j := 1;
	while i <= n do begin
		if a[i] <> p[j] then begin
			Period := FALSE;
			Exit
		end;
		Inc (i);
		Inc (j);
		if j > k then
			j := 1;
	end;
	
	Period := TRUE
end;
		
procedure PrintArr (const a : TArr; const n : Integer);
var
	i : Integer;
	
begin	
	for i := 1 to n do
		Write (a[i], ' ')
end;

	
begin
	ReadLn (n);
	
	for i := 1 to n do
		Read (a[i]);
		
	flag := FALSE;
	
	p[1] := a[1];
	
	for i := 1 to n-1 do
		if Period (a, p, n, i) then begin
			flag := TRUE;
			Break
		end
		else
			p[i+1] := a[i+1];
	
	WriteLn (flag);
	if flag then
		PrintArr (p, i)
end.
Так же можно почитать в Вики про префикс функции, придуманную Кнутом и еще кем-то.. Уж прошу прощения, что без ссылки (времени нет.. готовлюсь к экзамену)..
Poma][a вне форума Ответить с цитированием
Старый 11.06.2013, 21:28   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Роман
Цитата:
Если следовать из определения периодического массива, то любой массив периодичен!
Ну, в принципе, да, но это всё равно, что считать любое рациональное число бесконечной периодической дробью, а нуль - периодом для любой функции (даже непериодической, если следовать определению периода функции). Конечно, это так, но это некорректно, ИМХО. Если есть какая-то периодическая функция, то некорректно будет говорить, что её период равен нулю - всегда требуется найти число, отличное от нуля. В процессе написания этого сообщение, у меня сформировалось ещё одно, на мой взгляд, более корректно определение периодического массива.

Массив называется периодическим, если, начиная с первого его элемента, он представляет собой периодически повторяющуюся последовательность из идущих подряд групп элементов, при этом повторяющаяся группа входит как минимум два раза в массив.

Таким образом, такой массив
Код:
1 2 3 4 5
Не будет являться периодическим, так как повторяющаяся группа в него входит всего один раз.

Такой массив:
Код:
1 2 1 2 1 2 1 2
будет периодическим, так как группа "1 2" повторяется.

_________

Этот массив
Код:
1 2 0 1 2 1 2 1 2
Периодическми не будет, так как повторы начинаются не с первой позиции.

_______________

Наконец, такой массив:
Код:
1 2 1 2 1
также не будет периодическим, так как на третий раз группа обрывается и повтора нет...
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решается судьба.. Надо решить две задачи.Мне задачи, вам практика и мое уважение) romichj Общие вопросы C/C++ 3 30.03.2012 00:33
ребят я не могу понять как решать эти задачи!может кто помочь в решении представленной задачи? Andrusha07 Помощь студентам 0 09.03.2012 23:08
C++ задачи! Roma9201 Помощь студентам 5 24.06.2011 14:13
4 задачи в системе Mathematica(задачи уже решены) Toni Milano Фриланс 2 08.02.2011 19:28
Задачи в делфи. информационная модель задачи. @leks@ Помощь студентам 2 17.10.2010 19:15