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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2010, 13:47   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ведь n и k - это же просто счетчики...или нет?
Да это счетчики. Первый считает элементы исходного массива, а второй выходного.
Если учесть что выходной массив изменяется не на каждой итерации, то k приходится изменять (увеличивая пузо массива) только при условии найденности нужных элементов во входных массивах.
Проще говоря два счетчика для двух разных массивов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.01.2010, 13:57   #12
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Brian Spilner
Цитата:
этот параметр определяет число элементов
да
Цитата:
Сам он не является элементом массива
к элементу массива обращаемся указывая его имя(допустим А) и в квадратных скобках его индекс:
Код:
a[i]
этим самым мы обратились к i'ому элементу массива a.
Базиля вне форума Ответить с цитированием
Старый 18.01.2010, 14:31   #13
Brian Spilner
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 14
По умолчанию

Дописал первую программу, в соответствии с корректировками. Все работает.
Вот кусочек, где непосредственная выборка идет.
S1 - счетчик, который считает нужные элементы и в первом и во втором массивах.
Собственно его увеличение при нахождении новых элементов понятно, а строка c[S1]:=a[i] - это, получается, что некоторый i'тый элемент массива а, записываем, как некий S1'ый элемент массива с??? Так выходит? А потом, когда пробегаем по массиву b, каждый j'ый элемент, как опять некий S1'ый в с массив? Верно?
Код:
S1:=0;                              {Выборка элементов}
     for i:=1 to n do
      if (a[i]<0) then
       begin
        S1:=S1+1;
        c[S1]:=a[i];
       end
      else
       S1:=S1+0;
        for j:=1 to k do
          if (b[j]<0) then
           begin
            S1:=S1+1;
            c[S1]:=b[j];
           end
          else
           S1:=S1+0;
            if (S1>0) then
             begin
              writeln('Готовый массив');       {результат №1}
               for i:=1 to S1 do
                write(c[i],' ');
             end
            else                               {альтернативный результат}
             writeln('В обоих массивах нет отрицательных элементов');

Последний раз редактировалось Stilet; 18.01.2010 в 14:59.
Brian Spilner вне форума Ответить с цитированием
Старый 18.01.2010, 15:14   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Так выходит?
Так.
Цитата:
А потом, когда пробегаем по массиву b, каждый j'ый элемент, как опять некий S1'ый в с массив? Верно?
Помоему что-то ты тут намутил...
Не ну вообще так то оно так но код некрасиво написан.
Вот зачем ты S1:=S1+0; написал? Это действие все равно оптимизатор уберет как мусорное.
Если уж так хочешь писать то:

Код:
S1:=0;                              {Выборка элементов}
 {Первый цикл}
     for i:=1 to n do
      if (a[i]<0) then  begin
        S1:=S1+1;
        c[S1]:=a[i];
       end;

 {Второй цикл}
     for j:=1 to k do
      if (b[j]<0) then   begin
            S1:=S1+1;
            c[S1]:=b[j];
       end

            if (S1>0) then
             begin
              writeln('Готовый массив');       {результат №1}
               for i:=1 to S1 do
                write(c[i],' ');
             end
            else                               {альтернативный результат}
             writeln('В обоих массивах нет отрицательных элементов');
Я тебе больше скажу. Правильнописание программ в паскале и Делфи просит указывать массивы не константами а спецфункциями:
Код:
for i:=low(a) to High(a) do
или
Код:
for i:=1 to Length(a)-1 do
Это безопасный код, который никогда не выйдет за рамки массива, применяй такие функции, и твои проги будут надежнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.01.2010, 17:47   #15
Brian Spilner
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 14
По умолчанию

Ясно. Спасибо большое! Обязательно возьму на заметку!!! Просто это задачи институтские и там во входных данных массив с 10 элементами и не более. Во всем разобрался в принципе!
Brian Spilner вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива (Pascal) Kion Помощь студентам 4 07.10.2009 23:34
Обработка двумерного массива (Pascal) VertU Помощь студентам 9 27.06.2009 08:02
3 максимальных элемента массива (pascal) deceiver Помощь студентам 14 22.03.2009 08:09
[Pascal] заполнение двумерного массива Рамик Помощь студентам 13 18.02.2009 20:08
Pascal - сортировка массива(файла?) kossner Помощь студентам 14 05.12.2008 14:57