пятница, 23 сентября 2011 г.

Задачи на циклы (№1)


Для начала -- несложные задачи на циклы типа for в языке Java.
Правила написания цикла -- в пособии, которое есть у учителей.
Задание предназначено для двух "продвинутых" групп:
  • губернского лицея №3 для одаренных детей, г.Пенза (учитель=Смолькин Eвгений Юрьевич)
  • Гимназии №2, г. Салават (учитель=Басырова Азалия Ришатовна).
Успеха -- и не забудьте зарегистрироваться в качестве постоянных читателей и оставлять свои решения на сайте.
====================================================================

Задача 1
Напиши программу (класс), которая выводит на экран все целые положительные двузначные числа – в возрастающем порядке (от наименьшего к наибольшему).

Задача 2
Напиши программу (класс), которая выводит на экран все целые трехзначные отрицательные числа (от наименьшего к наибольшему)..

Задача 3
Напиши программу (класс), которая выводит на экран все целые положительные трехзначные числа, оканчивающиеся на 7 – в возрастающем порядке.

Затем напиши вариант этой же программы, которая будет выводить на экран те же числа, но в убывающем порядке.

Задача 4
Напиши программу (класс), которая выводит на экран все целые двузначные числа (и отрицательные, и положительные) – причем дважды: сначала в возрастающем порядке, а затем в убывающем.

Задача 5
Напиши программу (класс), которая выводит на экран все положительны двузначные числа (выбери сам – в возрастающем или убывающем порядке), произведение цифр которых является тоже двузначным числом.

Задача 6
Напиши программу (класс), которая выводит на экран все целые положительные трехзначные числа, у которых произведение первой и последней цифр равно квадрату средней.

Задача 7
Напиши программу (класс), которая выводит на экран целые положительные трехзначные числа, составленные целиком из четных цифр.

Задача 8
Напиши программу (класс), которая выводит на экран все целые трехзначные числа (и положительные, и отрицательные), которые делятся (без остатка, разумеется!) на сумму собственных цифр.

Задача 9
Напиши программу (класс), которая выводит на экран которая выводит на экран только четные целые двухзначные числа.

Примечание: напиши программу в двух вариантах – с использованием if, и без использования if.

Задача 10
Напиши программу (класс), которая выводит на экран целые положительные трехзначные числа, делящиеся без остатка на 3.

Примечание: напиши программу в двух вариантах – с использованием if, и без использования if.

8 комментариев:

  1. Сделала пока только четыре задачи, дальше возникли некоторые недопонимания с программой, пока то, что есть)

    Задание 1
    import java.util.*;
    class Zadanie_1
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Все целые положительные двузначные числа:") ;
    int x;
    for(x = 10; x<100; x = x+1)
    System.out.print(x+" ") ;
    }
    }

    Задание 2
    import java.util.*;
    class Zadanie_2
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Все целые отрицательные трехзначные числа:") ;
    int x;
    for(x=-999; x<-99; x=x+1)
    System.out.print(x+" ") ;
    }
    }

    Задание 3

    import java.util.*;
    class Zadanie_3
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Все целые положительные трехзначные числа, оканчивающиеся на 7:") ;
    int x;
    for(x = 107; x<998; x = x+10)
    System.out.print (x+" ") ;
    }
    }

    Задание 3 иной вариант
    import java.util.*;
    class Zadanie_3_1
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Все целые положительные трехзначные числа, оканчивающиеся на 7:") ;
    int x;
    for(x = 997; x>106; x = x-10)
    System.out.print (x+" ") ;
    }
    }

    Задание 4
    import java.util.*;
    class Zadanie_4
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Все целые двузначные числа (по возрастанию):") ;
    int x,x1,y,y1;
    for(x = -99; x<-9; x = x+1)
    System.out.print (x+" ") ;
    for(x1 = 10; x1<100; x1 = x1+1)
    System.out.print (x1+" ") ;
    System.out.println();
    System.out.println("Все целые двузначные числа(по убыванию):") ;
    for(y = 99; y>9; y = y-1)
    System.out.print (y+" ") ;
    for(y1 = -10; y1>-100; y1 = y1-1)
    System.out.print (y1+" ") ;
    }
    }

    Спасибо!

    ОтветитьУдалить
    Ответы
    1. Ну а почему вы написали for(x = -99; x<-9; x = x+1) если таким образом вы пропускаете цифры от -9 до +9.

      Удалить
  2. Молодец, Annie, прекрасные решения, и с вариантами, очень хорошо.
    Кстати, в языке Java есть симпатичные сокращения: например, вместо х=х+1 можно писать х++.
    В пособии, которое мы написали для вас, и которое в виде файла есть у Азалии Ришатовны, в одной из глав имеется таблица таких сокращений, с пояснениями.

    А какие проблемы возникли?

    ОтветитьУдалить
  3. import java.util.*;
    class z4_1
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=10; i<=99; i++)
    {
    System.out.print(i+" ");
    }
    }
    }

    import java.util.*;
    class z4_2
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=-999; i<=-100; i++)
    {
    System.out.print(i+" ");
    }
    }
    }

    import java.util.*;
    class z4_3
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=10; i<=99; i++)
    {
    System.out.print((i*10+7)+" ");
    }
    }
    }

    import java.util.*;
    class z4_4
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=-99; i<=-10; i++)
    System.out.print(i+" ");
    for (i=10; i<=99; i++)
    System.out.print(i+" ");
    for (i=99; i>=10; i--)
    System.out.print(i+" ");
    for (i=-10; i>=-99; i--)
    System.out.print(i+" ");
    }
    }

    import java.util.*;
    class z4_5
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=10; i<=99; i++)
    {
    if (((i/10)*(i%10)>=10)&&((i/10)*(i%10)<=99))
    System.out.print(i+" ");
    }
    }
    }

    import java.util.*;
    class z4_6
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=100; i<=999; i++)
    {
    if (((i%10)*(i/100))==(((i/10)%10)*((i/10)%10)))
    System.out.print(i+" ");
    }
    }
    }

    import java.util.*;
    class z4_7
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=100; i<=999; i+=2)
    {
    if (((i/100)%2==0)&&(((i/10)%10)%2==0))
    System.out.print(i+" ");
    }
    }
    }

    import java.util.*;
    class z4_8
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=-999; i<=-100; i++)
    {
    if (i%((i/100)+((i/10)%10)+(i%10))==0)
    System.out.print(i+" ");
    }
    for (i=100; i<=999; i++)
    {
    if (i%((i/100)+((i/10)%10)+(i%10))==0)
    System.out.print(i+" ");
    }
    }
    }

    import java.util.*;
    class z4_9_1
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=10; i<=99; i++)
    {
    if (i%2==0)
    System.out.print(i+" ");
    }
    }
    }

    import java.util.*;
    class z4_9_2
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=10; i<=98; i+=2)
    System.out.print(i+" ");
    }
    }

    import java.util.*;
    class z4_10_1
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=100; i<=999; i++)
    {
    if (i%3==0)
    System.out.print(i+" ");
    }
    }
    }

    import java.util.*;
    class z4_10_2
    {
    static Scanner reader=new Scanner(System.in);
    public static void main(String[]args)
    {
    int i;
    for (i=102; i<=999; i+=3)
    System.out.print(i+" ");
    }
    }

    ОтветитьУдалить
  4. Очень правильно, Vincenc Scientiam, что выкладываешь собственные решения: в смысле написания программ (классов, в Java) нет и не будет единого "лучшего" стандарта, поэтому тем, кто станет пользоваться материалами, которые мы все публикуем, получит фактически доступ к очень приличной библиотеке решений.
    А это -- одна из главных целей проекта вообще и этого блога в частности.

    ОтветитьУдалить
  5. У меня снова не получается оставить задачи в комментариях((

    ОтветитьУдалить
  6. Решения очередных задач от Annie
    ================================
    Задание 5
    import java.util.*;
    class Zadanie_5
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Числа:") ;
    int x,x1,x2;
    for(x = 10; x<100; x++)
    {
    x1=(x/10);
    x2=(x%10);
    if ((x1*x2<100)&&(x1*x2>9)) System.out.print (x+" ") ;
    }
    }
    }

    Задание 6
    import java.util.*;
    class Zadanie_6
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Искомые числа:") ;
    int x,x1,x2,x3;
    for(x = 100; x<1000; x++)
    {
    x1=(x/100);
    x2=((x/10)%10);
    x3=(x%10);
    if (x3*x1==x2*x2) System.out.print (x+" ") ;
    }
    }
    }

    Задание 7
    import java.util.*;
    class Zadanie_7
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Числа:") ;
    int x,x1,x2,x3;
    for(x = 100; x<1000; x++)
    {
    x1=(x/100);
    x2=((x/10)%10);
    x3=(x%10);
    if ((x1%2==0)&&(x2%2==0)&&(x3%2==0)) System.out.print (x+" ") ;
    }
    }
    }

    Задание 8
    import java.util.*;
    class Zadanie_8
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Искомые числа:") ;
    int x,x1,x2,x3,x4,y,y1,y2,y3,y4;
    for(y = -999; y<-99; y++)
    {
    y1=(y/100);
    y2=((y/10)%10);
    y3=(y%10);
    y4=y1+y2+y3;
    if (y%y4==0) System.out.print (y+" ") ;
    }
    for(x = 100; x<1000; x++)
    {
    x1=(x/100);
    x2=((x/10)%10);
    x3=(x%10);
    x4=x1+x2+x3;
    if (x%x4==0) System.out.print (x+" ") ;
    }
    }
    }

    Задание 9
    import java.util.*;
    class Zadanie_9
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Четные двузначные числа:") ;
    int x;
    for(x = 10; x<100; x++)
    if (x%2==0) System.out.print (x+" ") ;
    }
    }


    Задание 9 иной вариант
    import java.util.*;
    class Zadanie_9_1
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Четные двузначные числа:") ;
    int x;
    for(x = 10; x<100; x=x+2)
    System.out.print (x+" ") ;
    }
    }

    Задание 10
    import java.util.*;
    class Zadanie_10
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Искомые числа:") ;
    int x;
    for(x = 100; x<1000; x++)
    if (x%3==0) System.out.print (x+" ") ;
    }
    }

    Задание 10 иной вариант
    import java.util.*;
    class Zadanie_10_1
    {
    static Scanner reader = new Scanner (System.in);
    public static void main (String [] args)
    {
    System.out.println("Искомые числа:") ;
    int x;
    for(x = 102; x<1000; x=x+3)
    System.out.print (x+" ") ;
    }
    }

    ОтветитьУдалить
  7. Спасибо большое, очень интересные (как для новичка) задачки на циклы и модули.
    Я решил все, но выложу только решение самой интересной на мой взгляд восьмой задачки. В ней можно обойти организацию двух отдельных циклов заданием дополнительных условий. Так интереснее получается :)
    Вот такое у меня получилось решение:
    public class CicleModulePractice8 {
    //Задачка №8
    public static void main(String[] args) {
    System.out.println("Все целые трехзначные числа, которые делятся на сумму собственных цифр: ");
    System.out.println("отрицательные:");
    int x;
    for (x=-999;x<1000;x++){
    int first=x/100;
    int second=(x%100)/10;
    int third=x%10;
    int sum=first+second+third;
    if (x==0){
    System.out.println("");
    System.out.println("положительные:");
    }
    if (x>-100&&x<100){
    continue;
    }
    if (x%sum==0&&x>0){
    System.out.print("+"+x+", ");
    continue;
    }
    if(x%sum==0&&x<0){
    System.out.print(x+", ");
    continue;
    }
    }
    //Здесь альтернативное решение:
    }
    }

    ОтветитьУдалить