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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2013, 19:21   #1
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию С++

не получается переделать этот код в С++
Program P5;
uses crt;
const N=10;
Type
vector=array [1..N] of integer;
vector2=array [1..2*N] of integer;
Var
t:integer;
absent:boolean;
x:vector;
y:vector;
z:vector2;
i:byte;
k:integer;
j:integer;
begin
ClrScr;
randomize;
writeln ('массив x:');
for i:=1 to N do
begin

repeat
absent:=true;
t:=random(20);
for j:=1 to i-1 do
if x[j] = t then
absent:=false;
until absent;

x[i]:=t;
write(x[i]:4);
end;
writeln;

writeln ('массив y:');
for i:=1 to N do
begin

repeat
absent:=true;
t:=random(20);
for j:=1 to i-1 do
if y[j] = t then
absent:=false;
until absent;

y[i]:=t;
write(y[i]:4);
end;
writeln;

k:=1;
for i:=1 to N do
for j:=1 to N do
begin
if x[i]=y[j] then
begin
z[k]:=x[i];
k:=k+1;
end;
end;

writeln('массив z:');
for i:=1 to k-1 do
write(z[i]:4);

writeln;
if (x[i]<>y[j]) and (k=1) then
writeln('пересечения нет');

readkey;
end.
fkty вне форума Ответить с цитированием
Старый 05.06.2013, 20:06   #2
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Что сделали? Что не получается?
zetrix вне форума Ответить с цитированием
Старый 05.06.2013, 20:11   #3
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

не получается вот этот фрагмент
randomize;
writeln ('массив x:');
for i:=1 to N do
begin

repeat
absent:=true;
t:=random(20);
for j:=1 to i-1 do
if x[j] = t then
absent:=false;
until absent;
fkty вне форума Ответить с цитированием
Старый 05.06.2013, 20:42   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Извините за глупый вопрос, а что делает это программа???

Код:
srand((unsigned)time(NULL));
	
	cout << "\n Массив X:" << endl;

	for(int i = 0; i < n; i++)
	{
		do
		{
			absent = true;
			t = 1 + rand()%20;
			for(int j = 0; j < i-1; j++)
				if(X[j] == t)
					absent = false;
		
		}while(absent);
	}
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 05.06.2013, 21:09   #5
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

в задаче даны два массива x,y.Нужно вывести на экран массив z,где z это пересечение x и y.
fkty вне форума Ответить с цитированием
Старый 05.06.2013, 21:21   #6
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

ошибок нет,но не работает
#include <iostream>
#include <ctime>
#include <stdlib.h>
#include <iomanip>
using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
const int N=10;
int x[N];
int y[N];
int z[2*N];
int k,t;
int j=0,i=0;
bool absent;
srand(time(NULL));
cout << "\n массив X:" << endl;

for(int i = 0; i < N; i++)
{
do
{
absent = true;
t = 1 + rand()%20;
for(int j = 0; j < i-1; j++)
if(x[j] == t)
absent = false;

}while(absent);
}
x[i]=t;
cout << setw(4) << x[i];
cout << endl;

cout << "\n массив y:" << endl;

for(int i = 0; i < N; i++)
{
do
{
absent = true;
t = 1 + rand()%20;
for(int j = 0; j < i-1; j++)
if(y[j] == t)
absent = false;

}while(absent);
}
y[i]=t;
cout << setw(4) << y[i];
cout << endl;
k=0;

for (int i=0; i<N; i++)

for (int j=0; j<N; j++)
{
if(x[i]==y[j]){
z[k]=x[i];
k++;}
}

cout << "массив z" << endl;
for (int i=0; i<k-1; i++)
cout << setw(4) << z[i];
cout << endl;

if ((x[i]!=y[j])&&(k==1))

cout << "пересечения нет" << endl;



system("pause");
return 0;
}
fkty вне форума Ответить с цитированием
Старый 05.06.2013, 21:42   #7
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Что значит пересечение x и y.? Помещайте пожалуйста код в теги #
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 05.06.2013, 21:48   #8
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

т.е ищет одинаковые элементы из массивов x,y и создает из них новый массив z
fkty вне форума Ответить с цитированием
Старый 05.06.2013, 21:51   #9
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Вот оно как, сейчас попробуем реализовать....
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 05.06.2013, 21:52   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include <iostream>
#include <ctime>
#include <stdlib.h>
#include <iomanip>
using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
const int N=10;
int x[N];
int y[N];
int z[2*N];
int k,t;
int j=0,i=0;
bool absent;
srand(time(NULL));
cout << "\n массив X:" << endl;

for(int i = 0; i < N; i++)
{
do
{
absent = true;
t = rand()%20;
for(int j = 0; j < i-1; j++)
if(x[j] == t)
absent = false;

}while(!absent);
}
x[i]=t;
cout << setw(4) << x[i];
cout << endl;

cout << "\n массив y:" << endl;

for(int i = 0; i < N; i++)
{
do
{
absent = true;
t = rand()%20;
for(int j = 0; j < i-1; j++)
if(y[j] == t)
absent = false;

}while(!absent);
}
y[i]=t;
cout << setw(4) << y[i];
cout << endl;
k=0;

for (int i=0; i<N; i++)

for (int j=0; j<N; j++)
{
if(x[i]==y[j])
z[k++]=x[i];
}

cout << "массив z" << endl;
for (int i=0; i<k-1; i++)
cout << setw(4) << z[i];
cout << endl;

if (x[i]!=y[j] && k==0)

cout << "пересечения нет" << endl;



system("pause");
return 0;
}
Исправил кое-что. Кое-что можно написать короче. Код не форматировал - лень запускать среду разработки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 05.06.2013 в 22:06.
BDA на форуме Ответить с цитированием
Ответ


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