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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2011, 07:13   #1
turtles
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 59
Плохо элементы последовательности

Здравствуйте, подскажите какой из двух кодов более правильнее, или что можно переделать или дописать в коде!

1)
Программа должна, выводить на экран
первые 55 элементов последовательности
1 3 5 7 9 11 13 15 17 ….

Код:
Первый код:

public class Test {
    public static void main(String args[]){
       int sum = 1;
        int count = 0;
         for(int i = sum; i <= 333; i += 2){
          sum = i;
           count++;
          if(sum == 111)break;
        System.out.println(count + " элемент - " + sum);
        }
      System.out.println("Первые " + (count-1) + " элементов");
    }
}
Код:
Второй код:

public class Test {
    public static void main(String args []){
      int sum = 0;
       int count = 0;
        for (int i = sum; i <= 54; i++) {
           sum = 2 * i + 1;
            count++;
          System.out.println(count + " элемент - " + sum);
       }
     System.out.println("Первые " + count + " элементов");
   }
}
2)
Подскажите и поэтому коду что можно добавить или переделать!

Программа должна, выводить на экран
все неотрицательные элементы последовательности
90 85 80 75 70 65 60 ….

Код:
public class Test {
    public static void main(String args[]){
       final int first = 90;
         final int second = -90;
          int count = 0;
           for(int i = first; i > second; i-=5){
            count++;
              if(i == 0)break;
               System.out.println(count + " элемент - " + i);
             }
          System.out.println("Все неотрицательные элементы 90 85 80 75 70 65 60 ….");
      }
}
3)
Подскажите и поэтому коду что можно добавить или переделать!

Программа должна, выводить на экран
первые 20 элементов последовательности
2 4 8 16 32 64 128 ….

Код:
public class Test {
    public static void main(String args[]){
      final int a = 1;
        int sum;
        int count = 0;
        sum = (int) Math.pow(a,2);
       for(int i = 1; i <= 20; i++){
         sum*=2;
           count++;
         System.out.println(count + " элемент - " + sum);
       }
      System.out.println("Первые " + count + " элементов");
    }
}
P.S. Все компилировал и запускался код, спрашиваю совет что можно до делать или переделать как будет правильней!
turtles вне форума Ответить с цитированием
Старый 21.09.2011, 07:56   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

В первом задании второй код явно лучше. Однако, зачем там count? Вы дублируете переменную i. Только здесь надо правильно i проинтерпретировать:
Код:
System.out.println(count + " элемент - " + sum);
Код:
for(int i = sum; i <= 333; i += 2)
Зачем путать людей? Можно сразу написать по человечески:
Код:
for(int i = 0; i <= 333; i += 2)
Во втором задании опять сумасшедший цикл. Зачем Вам там break, если можно сделать так, чтобы цикл сам заканчивался как положено. Условие с break там явно лишнее, просто правильно составьте условие выхода из цикла (в операторе for). Да так и не понял зачем там final int...

В третьем задании опять лишняя переменная. Вы дублируете переменную цикла.

Цитата:
или переделать как будет правильней!
Чтобы не создавать таких ляпов - ставьте комментарии о своих действиях. Тогда перечитав алгоритм (по комментариям) Вам уже будут ясны некоторые логические нестыковки.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 21.09.2011 в 08:05.
Utkin вне форума Ответить с цитированием
Старый 21.09.2011, 10:35   #3
turtles
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 59
По умолчанию

Подскажите еще по коду, правильно ли с циклом for!
Вывести на экран все члены последовательности 2an-1–1, где a1=2, которые меньше 10000.

Вот написал код с циклом for вроде работает.

Код:
первый код:	 
	public class Test {
	    public static void main(String args []){
	     for(int a = 2, i = 1; i < a; a = 2 * a - 1,i++){
	        if(a <=10000){
	          System.out.print(a + " "); }
	        }
	    }
	}
	с циклом for выводит вот так: 3 5 9 17 33 65 129 257 513 1025 2049 4097 8193
Код:
второй код:
 
	public class Test {
	    public static void main(String args []){
	        int a = 2;
	        while(true){
	            if(a <= 10000){
	                a = 2 * a - 1;
	                System.out.print(a + " ");
	            }
	        }
	    }
	}
	 
	с циклом while выводит вот так: 3 5 9 17 33 65 129 257 513 1025 2049 4097 8193 16385
	 
	подскажите как правильно написать с циклом while!
turtles вне форума Ответить с цитированием
Старый 21.09.2011, 11:36   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Опять 25.
а) Пишите комментарии по своему коду. Он нужен для Вас самих.
б) Нафига Вам эти условия? В циклах for и while уже заложены те действия, которые Вы закладываете с помощью if. Нет смысла дублировать эти действия. Просто установите правильные параметры. Поэтому исключите из обоих вариантов if.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.09.2011, 13:30   #5
turtles
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 59
По умолчанию

"Utkin" Подскажите по коду что не правильно не могу разобраться!
вроде бы все логически правильно
Код:
public class Test {
    public static void main(String args []){
      for(int a = -166, i = 1; a > 9 && a < 100; a = 2 * a + 200, i++){
           System.out.println(a + " ");
       }
    }
}
Должен выводить, а Не выводит результат на экран все двузначные члены последовательности!
turtles вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить из последовательности натуральных чисел определённые элементы (Delphi) Gh0sTuk Помощь студентам 1 09.02.2011 08:37
Дана последовательность x1,x2,...,x20. Требуется расположить отрицательные элементы последовательности в Irisk Помощь студентам 2 23.12.2010 16:39
Из числовой последовательности удалить элементы. Тарас1 Паскаль, Turbo Pascal, PascalABC.NET 2 19.09.2010 02:40
Определить:формат последовательности параметров & способ размещения последовательности переменных DenSyntax Помощь студентам 0 22.06.2010 17:26
Вычислить элементы последовательности, используя рекурсию. ilyas22 Помощь студентам 2 23.05.2010 19:20