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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2009, 13:59   #1
Катюшенька
Пользователь
 
Аватар для Катюшенька
 
Регистрация: 08.12.2008
Сообщений: 32
Стрелка работы с указателями и массивами...

Даны два массива : А[n] и B[m]. Необходимо создать третий массив, в котором нужно собрать элементы массива A, которые не включаются в B;
Я понимаю как построить программку не используя указатель... Но с ними... даже понятия не имею как это делать... можете помочь? Пожалуйста... (хотяб начало, я пойму и закончу сама...)
Верю... Надеюсь... Люблю...
Катюшенька вне форума Ответить с цитированием
Старый 17.01.2009, 14:21   #2
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

какой язык реализации? PS: ну если знаешь как без указателей - то с указателями все точно так же, только надо знать, что для указателей нужно выделять память ( в паскале процедура new ) и все - делаешь массив указателей и запихивашь туда нужные элементы

Последний раз редактировалось capta1n; 17.01.2009 в 14:52.
capta1n вне форума Ответить с цитированием
Старый 17.01.2009, 14:52   #3
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Ну просто делаешь цикл в цикле берешь каждый член и сравниваешь его со всеми членами другого массива. если во всем массиве нет таких же то присваеваем заранее созданному счетчику значение на один больше и в массив С элементу под номером счетчик присваеваем значение элемента массива А под номером таким же какая сейчас идет итерация внешнего цикла. ну то есть элемент по счету переменной использованной для счетчика во внешнем цикле
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 17.01.2009 в 15:13.
Лубышев вне форума Ответить с цитированием
Старый 17.01.2009, 15:12   #4
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию Вот код - попробуйте: работает нормально - по условию xD:

Код:
program cap;
uses crt;
const
  n = 5;
  m = 5;
  x = 255;
var
  a1 : set of 0..x;
  b1 : set of 0..x;
  ab : set of 0..x;
  A : array [1..n] of integer;
  B : array [1..m] of integer;
  I : array [1..n] of ^integer; {Вот массив указателей}
  k,y : byte;
begin

  clrscr;
  randomize;
  for k:=1 to n do
  begin
    A[k]:=random(4);
    include(a1,A[k]);
    write (A[k],' ')
  end;
  writeln;
  writeln;
  for k:=1 to m do
  begin
    B[k]:=random(4);
    include (b1,B[k]);
    write (B[k],' ')
  end;

  writeln;
  writeln;
  ab:=a1*b1;

  y:=0;
  for k:=1 to n do
   if not (A[k] in ab) then
   begin
     inc(y);
     new(I[y]); {Выделение памяти под переменную-указатель}
     I[y]^:=A[k]; {Вот присвоение}
     write (A[k],' ')
   end;

   readln;

end.

Последний раз редактировалось capta1n; 18.01.2009 в 08:57. Причина: размер нового массива не превышает n - отредактировал в связи с условием задачи
capta1n вне форума Ответить с цитированием
Старый 17.01.2009, 15:13   #5
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

Только программа с большими числами не работает и с меньшими тоже - тогда надо обойтись без множества - сейчас работать над этим нет времени В общем оцените, пожалуйста
capta1n вне форума Ответить с цитированием
Старый 17.01.2009, 15:18   #6
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

Цитата:
Ну просто делаешь цикл в цикле берешь каждый член и сравниваешь его со всеми членами другого массива. если во всем массиве нет таких же то присваеваем заранее созданному счетчику значение на один больше и в массив С элементу под номером счетчик присваеваем значение элемента массива А под номером таким же какая сейчас идет итерация внешнего цикла. ну то есть элемент по счету переменной использованной для счетчика во внешнем цикле
Лубышев - а чего Вы тогда свой код убрали там все не очень печально было надо было проверку еще в if ... then вставить на сравнение с числами нового массива C[n]
capta1n вне форума Ответить с цитированием
Старый 17.01.2009, 16:51   #7
Катюшенька
Пользователь
 
Аватар для Катюшенька
 
Регистрация: 08.12.2008
Сообщений: 32
По умолчанию

Мне для бонард си нужно... сор, что сразу не сказала...
Верю... Надеюсь... Люблю...
Катюшенька вне форума Ответить с цитированием
Старый 17.01.2009, 17:25   #8
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

я понимаю, к сожалению, что на си, но за работу можно и отзыв оставить
capta1n вне форума Ответить с цитированием
Старый 17.01.2009, 19:15   #9
Neymexa
Proffesional
Форумчанин
 
Аватар для Neymexa
 
Регистрация: 18.11.2008
Сообщений: 417
Печаль

Цитата:
Сообщение от capta1n Посмотреть сообщение
я понимаю, к сожалению, что на си, но за работу можно и отзыв оставить
Кстати как отзыв для твоей репутации поставить?

I : array [1..m*n] of ^integer;
of ^integer;- это означает что указатели будут простого типа?
[1..m*n] -???объявление указателей м???
О, степь родимая, как я скучаю по тебе...
Neymexa вне форума Ответить с цитированием
Старый 17.01.2009, 19:33   #10
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

I : array [1..m*n] of ^integer;
Честно говоря я не вижу смысла заводить массив указателей, вот указатель на массив это да, но не наоборот.
of ^integer; - это значит что указывает на 32 бита информации в памяти, если ничего не напутал
[1..m*n] - массив от 1 до m*n, m и n должны быть константы.
Kostia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритмы работы с двумерными массивами cudalover Помощь студентам 10 18.01.2009 13:00
Работа с указателями Mango Помощь студентам 2 23.11.2008 10:33
использование процедур и функций для работы с массивами.....Паскаль.... КиношкА Помощь студентам 6 13.01.2008 14:23
проблема с указателями =\ shad0w Общие вопросы C/C++ 9 09.12.2007 03:36
Проблема с указателями novicer Общие вопросы Delphi 5 17.06.2007 00:21