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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2008, 00:09   #1
Маськ@
Пользователь
 
Регистрация: 07.12.2008
Сообщений: 11
Вопрос массив с количеством элементов N. Напечатать те его элементы, индексы которых являются степенями двойки

1) Заменить, в массиве, первый отрицательный элемент нулём (ваще туплю, задача лёгкая, а у меня замуляются все отрицательные элементы, не могу понять где ошибка...);
2) Дан целочисленный массив с количеством элементов N. Напечатать те его элементы, индексы которых являются степенями двойки (то биш 1,2,4,8,16...) -> (честно, это ваще сил нет решить, последняя задача в к/р )

Плиз! прошу!!
Маськ@ вне форума Ответить с цитированием
Старый 11.12.2008, 01:49   #2
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

1)
Код:
for i:=1 to n do
  if mas[i]<0 then
   begin     
     mas[i]:=0;
     break;
   end;
2)
Код:
m:=1;
    for i:=1 to n do
      if (i=m) and (m<>1)then
        begin
           write(mas[i],' ');
           m:=m*m;
         end
       else if (i=m) and (m=1) then
          begin
           write(mas[i],' ');
           m:=2;
         end;
Викдон вне форума Ответить с цитированием
Старый 11.12.2008, 10:48   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Викдон - 1 - это тоже степень двойки ;-) нулевая... (смотри исходный текст задачи #1)
да и с m*m вы погорячились... например, 8-й элемент будет пропущен...

мой вариант:
2)
Код:
m:=1;
while m<=n do
begin
  Write(mas[m],' ');
  m:=m*2;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.12.2008, 10:08   #4
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

да уж с m*m погорячился, надо было m*2;
Викдон вне форума Ответить с цитированием
Старый 12.12.2008, 16:34   #5
Маськ@
Пользователь
 
Регистрация: 07.12.2008
Сообщений: 11
По умолчанию

Пасябо, народ! вы супер!))
Маськ@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06
Напечатать строку с наибольшим количеством слов. jenja Помощь студентам 9 07.03.2008 05:28
Массив структур с заранее неизвестным количеством элементов, С++ PersonaGrata Общие вопросы C/C++ 8 24.02.2008 16:34
Создать массив только из тех элементов, у которых остаток от деления на М равен L (0<=L<=M-1) Айвенго Microsoft Office Excel 2 12.01.2008 16:28
Число N, заменить одну из его цифр, чтобы получилось число, max близкое к некоторой степени двойки urgu_st Помощь студентам 13 23.10.2007 09:14