Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите плз решить задачу (http://forum.oszone.net/showthread.php?t=206741)

trey_tao 12-05-2011 19:54 1675143

Помогите плз решить задачу
 
Дано натуральное число 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 1675167

trey_tao, пиши пример входных и выходных данных.

trey_tao 12-05-2011 22:17 1675236


вот так типа должно оно быть вводим n для создания второго масива n ето число символов во втором масиве

lxa85 12-05-2011 23:58 1675295

trey_tao, входные данные вижу, а выходные где?

trey_tao 13-05-2011 00:40 1675309

то есть результат?? тот который на екране должен быть?

trey_tao 13-05-2011 15:24 1675681

плз напиши мне в Отправить PM

Drongo 14-05-2011 13:53 1676189

Цитата:

Цитата trey_tao
то есть результат?? тот который на екране должен быть? »

да.

trey_tao 15-05-2011 19:12 1676830

вот что должно быть на экране после нажатия кнопки запуска

теперь вводим n и получаем

у меня на скрине написано задание G то ето вот какое задание 2)Верно ли что все члены последовательности а1...а25 входят в последовательность б1....б(n)
а задание B ето 1)Получить все члены последовательности б1....б(n) которые не входят в последовательность а1...а25

lxa85 16-05-2011 11:30 1677180

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

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

trey_tao 16-05-2011 20:59 1677434

я ето сделал на паскале могу скинуть код сюда вот
Код:

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 1677579

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

a[i]:=random(nn)+random; -> a[i]:=random(nn) // +random - лишняя операция
kilk2:=kilk2; // это еще что такое?!?
Вообще, в данном коде
Цитата:

Цитата trey_tao
Код:

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 1677935

Цитата:

Цитата lxa85
Почему у тебя единый счетчик до n=25 ? »

потому что у нас в задании сказано что массив А от 1 к 25
та да здесь ошибок много но может мне кто нить помочь переписать это на С++?? плз

lxa85 17-05-2011 19:46 1678079

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

trey_tao 18-05-2011 17:35 1678635

вот я исправил программу на Паскале плз помогите её переписать на С++
Код:

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 1678695

Цитата:

Цитата trey_tao
for j:=0 to n do
if (b[i]=a[j]) then
begin
kilk:=b[i];
end; »

Смысл этого цикла, если в следующей итерации "старшего" цикла kilk сбросится в ноль?
Цитата:

Цитата trey_tao
Код:

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 1678774

Цитата:

Цитата lxa85
Цитата 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 1678875

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

trey_tao 19-05-2011 08:40 1678914

Цитата:

Цитата lxa85
И условие if (kilk<>ss) ... мне не нравится совершенно. »

да наверно тут нужно проверять не тот символ что мы ввели а тот что уже проверили на совпадения.....тут наверно нужно вводить (kilk<>b[i]) ...

lxa85 19-05-2011 22:31 1679285

trey_tao, честно, я ничего не понял, что ты хотел сказать. Верней не понял, как ты собирался это сделать.
Цитата:

Цитата trey_tao
тут наверно нужно вводить (kilk<>b[i]) ... »

глупость. klik - имеет не правильный способ получения и как следствие неправильно сравнение, см выше. Вероятность выполнения данного (kilk<>b[i]) условия - очень мала.

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


Время: 02:34.

Время: 02:34.
© OSzone.net 2001-