Войти

Показать полную графическую версию : Помогите плз решить задачу


trey_tao
12-05-2011, 19:54
Дано натуральное число n, целые числа а1....а25, б1.....б(n). Среди а1....а25 нет повторяющихся чисел, нет их и среди б1....б(n)
1)Получить все члены последовательности б1....б(n) которые не входят в последовательность а1...а25
2)Верно ли что все члены последовательности а1...а25 входят в последовательность б1....б(n)

lxa85
12-05-2011, 20:31
trey_tao, пиши пример входных и выходных данных.

trey_tao
12-05-2011, 22:17
http://s58.radikal.ru/i160/1105/cd/6d77a0aa26f3.jpg (http://www.radikal.ru)
вот так типа должно оно быть вводим n для создания второго масива n ето число символов во втором масиве

lxa85
12-05-2011, 23:58
trey_tao, входные данные вижу, а выходные где?

trey_tao
13-05-2011, 00:40
то есть результат?? тот который на екране должен быть?

trey_tao
13-05-2011, 15:24
плз напиши мне в Отправить PM (http://forum.oszone.net/private.php?do=newpm&userid=316168)

Drongo
14-05-2011, 13:53
то есть результат?? тот который на екране должен быть? »да.

trey_tao
15-05-2011, 19:12
вот что должно быть на экране после нажатия кнопки запуска
http://s46.radikal.ru/i113/1105/73/5f56efc5bf40.jpg (http://www.radikal.ru)
теперь вводим n и получаем
http://i044.radikal.ru/1105/82/7940c9e8573e.jpg (http://www.radikal.ru)
у меня на скрине написано задание G то ето вот какое задание 2)Верно ли что все члены последовательности а1...а25 входят в последовательность б1....б(n)
а задание B ето 1)Получить все члены последовательности б1....б(n) которые не входят в последовательность а1...а25

lxa85
16-05-2011, 11:30
А можно примеры чисел в одну строку и без запятых? Дошел до 5 ой цифры, уже устал.
Сделай их текстовыми, с картинками работать сложно.

Далее. Будем считать, вход/выход ты получил.
Можешь рассказать словами, как ты это сделал? Чем подробнее, тем лучше, с примерами и прочими "бантиками". Считай, что объясняешь трехлетнему ребенку, научившемуся сравнивать числа.

trey_tao
16-05-2011, 20:59
я ето сделал на паскале могу скинуть код сюда вот
uses crt;
const
n=25;
m=30;
mm=50;
nn=30;
var
a:array[0..n] of real;
b:array[0..m] of real;
min,max:real;
ss,tt,i,j,flag:integer;
kilk,kilk2:integer;
begin
clrscr;
randomize;
for i:=0 to n do
begin
a[i]:=random(nn)+random;
for j:=0 to i-1 do
if(a[i]=a[j]) then
begin
a[i]:=random(nn);
i:=1;
break;
end;
end;
writeln('Posledivatelnost A');
for i:=0 to n do write(a[i]:8:2);
for i:=0 to m do
begin
b[i]:=random(mm)+random;
for j:=0 to i-1 do
if (b[i]=b[j]) then
begin
b[i]:=random(mm);
i:=j;
break;
end;
end;
writeln;
writeln;
writeln('Posledovatelnost B'); read(ss);
for i:=0 to ss do write(b[i]:8:2);
kilk2:=0;
for i:=0 to n do
begin
kilk:=0;
for j:=0 to n do
if (b[j]=a[i]) then
begin
kilk2:=kilk2;
break;
end;
end;
writeln;
writeln('Zadanie G');
if (kilk2<>ss) then writeln('Ymova ne vikonyetsya') else writeln('Vse cheni posledovatelnosti A ne vhodyat v posledovatelnost B');
writeln;
writeln('Zadanie B');
flag:=0;
for i:=0 to ss do
begin
for j:=0 to ss do
if (b[i]=a[j]) then flag:=1;
if(flag=0) then write(b[i]:8:2);
flag:=0;
end;
readkey;
end.

lxa85
17-05-2011, 03:46
Большая большая просьба. В следующий раз комментарии пиши, пожалуйста. Хотя бы по блочно.
Допустим 1 - получение массива не повторяющихся чисел.
2 - задание 1) <текст задания>
3 - задание 2) <текст задания>

a[i]:=random(nn)+random; -> a[i]:=random(nn) // +random - лишняя операция
kilk2:=kilk2; // это еще что такое?!?
Вообще, в данном коде
kilk2:=0;
for i:=0 to n do
begin
kilk:=0;
for j:=0 to n do
if (b[j]=a[i]) then
begin
kilk2:=kilk2;
break;
end;
end; »
переменные kilk и kilk2 не участвуют.
Соотв. условие if (kilk2<>ss) не имеет смысла. Тем более, что переменная ss не имеет значения. Т.е. она может быть ровна - чему угодно.
Writeln где-нибудь поставь. Т.к. код вроде верен, но глаз "цепляется", скорей всего из-за неправильного использования kilk. Но проверь.
Последовательность B больше последовательности A. Почему у тебя единый счетчик до n=25 ?
Во втором задании схожие ошибки.

trey_tao
17-05-2011, 16:45
Почему у тебя единый счетчик до n=25 ? »
потому что у нас в задании сказано что массив А от 1 к 25
та да здесь ошибок много но может мне кто нить помочь переписать это на С++?? плз

lxa85
17-05-2011, 19:46
да елки палки, я знаю, что массив A от 1 до 25, я тебя про массив B спрашивал. Он 25 тью значениями не ограничен!
----
Сначала на паскале ошибки исправь, на С++ переписать - дело техники.

trey_tao
18-05-2011, 17:35
вот я исправил программу на Паскале плз помогите её переписать на С++
uses crt;
const
n=25;
m=30;
mm=35;
nn=30;
var
a:array[0..n] of integer;
b:array[0..m] of integer;
min,max:real;
ss,tt,i,j,flag:integer;
kilk,kilk2:integer;
begin
clrscr;
randomize;
for i:=0 to n do
begin
a[i]:=random(nn)+random(n);
for j:=0 to i-1 do
if(a[i]=a[j]) then
begin
a[i]:=random(nn)+random(n);
i:=1;
break;
end;
end;
writeln('Posledivatelnost A');
for i:=0 to n do write(a[i]:5);
for i:=0 to m do
begin
b[i]:=random(mm)+random(m);
for j:=0 to i-1 do
if (b[i]=b[j]) then
begin
b[i]:=random(mm);
i:=j;
break;
end;
end;
writeln;
writeln;
writeln('Posledovatelnost B'); read(ss);
for i:=0 to ss do write(b[i]:5);
kilk:=0;
for i:=0 to ss do
begin
kilk:=0;
for j:=0 to n do
if (b[i]=a[j]) then
begin
kilk:=b[i];

end;
end;
writeln;
writeln('Zadanie G');
if (kilk<>ss) then writeln('Ymova ne vikonyetsya') else writeln('Vse cheni posledovatelnosti A ne vhodyat v posledovatelnost B');
writeln;
writeln('Zadanie B');
flag:=0;
for i:=0 to ss do
begin
for j:=0 to n do
if (b[i]=a[j]) then flag:=1;
if(flag=0) then write(b[i]:5);
flag:=0;
end;
readkey;
end.

lxa85
18-05-2011, 19:36
for j:=0 to n do
if (b[i]=a[j]) then
begin
kilk:=b[i];
end; »
Смысл этого цикла, если в следующей итерации "старшего" цикла kilk сбросится в ноль?
for i:=0 to ss do
begin
kilk:=0;
for j:=0 to n do
....
end; »
и все будет оцениваться [ if (kilk<>ss) then ] по последнему числу в массиве, что не есть верно.
Весь остальной код явных подозрений не вызывает.

trey_tao
18-05-2011, 22:14
Цитата trey_tao:
for j:=0 to n do
if (b[i]=a[j]) then
begin
kilk:=b[i];
end; » »
мы вроде тут проверяем условие если елемент с последовательности Б входит в последовательность А то мы его не выводим кажись так

lxa85
19-05-2011, 04:52
ночь я так понял прошла, наступил день, светит солнце и приносит в голову трезвые правильные мысли.
trey_tao, еще разочек. Что надо исправить(дописать) в коде, чтобы смысл строки kilk:=b[i]; остался в силе?
Задумку я твою понял, ее надо самую малость довести до ума.
И условие if (kilk<>ss) ... мне не нравится совершенно. В основном из-за неправильно написанного предыдущего цикла.
Посмотри еще раз внимательно и не торопясь.

trey_tao
19-05-2011, 08:40
И условие if (kilk<>ss) ... мне не нравится совершенно. »
да наверно тут нужно проверять не тот символ что мы ввели а тот что уже проверили на совпадения.....тут наверно нужно вводить (kilk<>b[i]) ...

lxa85
19-05-2011, 22:31
trey_tao, честно, я ничего не понял, что ты хотел сказать. Верней не понял, как ты собирался это сделать. тут наверно нужно вводить (kilk<>b[i]) ... »
глупость. klik - имеет не правильный способ получения и как следствие неправильно сравнение, см выше. Вероятность выполнения данного (kilk<>b[i]) условия - очень мала.

P.S. Хотя надо сказать спасибо, уже за то, что делаются осознанные попытки решить задачу.
Имел общение с представительством студенчества. После чего очень сильно хотелось выпить...




© OSzone.net 2001-2012