Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
1 / 1 / 1
Регистрация: 13.09.2015
Сообщений: 43
1

как сделать это задание правильно? "вывести рамку прямоугольника (x,y)"

02.02.2016, 15:24. Показов 4408. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
задание такое: Показать на экране прямоугольник размером (x,y), состоящий из звёздочек. Затем сделать то же самое, но чтоб фигура внутри была пустая (остаётся только рамка).

первая часть задания мне показалась очень простой, так-что сразу начал делать вторую часть, но мой вариант мне не нравиться, так-как пришлось сильно извращаться (нихера не получалось), как сделать правильно?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.Scanner;
 
public class Main {
 
    private static final char SYMBOL = '*';
    
    public static void main(String... args) throws IOException {
 
        Scanner scn = new Scanner(System.in);
 
        int x = scn.nextInt();
        int y = scn.nextInt();
 
        String symbol = reader.readLine();
 
        printFrame(x-1, y);
 
    }
 
    public static void printFrame(int x, int y, String ch) {
        for (int i = 0; i <= x; i++) {
            System.out.println();
            for (int j = 1; j <= y; j++) {
                if (i == 0) {
                    System.out.print(SYMBOL);
                }
                if (((i != 0) & (i != x)) & ((j == y) | (j == 1))) {
                    System.out.print(SYMBOL);
                    if (true) {
                        for (int k = 0; k < (y-2); k++) {
                            System.out.print(" ");
                        }
                    }
                }   if ((i == x) & (j == y)) {
                        for (int r = 0; r < y; r++) {
                            System.out.print(SYMBOL);
                    }
                }
            }
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2016, 15:24
Ответы с готовыми решениями:

Как это сделать рамку?
Как это сделать рамку по скажите пожалуйста?

Как сделать это задание?
Делаю эту задачу: http://www.itmathrepetitor.ru/zadachi-po-php-vychisleniya/, раздел &quot;Работа с...

Как сделать это задание?
Дано целое число N (&gt; 1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 2 + . . . + K...

Как сделать это задание?
Требуется доработать систему возможности получения дополнительных данных из внешних файлов и...

4
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
02.02.2016, 16:25 2
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.Arrays;
import java.util.Scanner;
 
public class LolRect {
 
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int y = sc.nextInt();
        String symbol = sc.next();
 
        printRect(x, y, symbol);
 
    }
 
    private static void printRect(int x, int y, String symbol) {
        char[] chars = new char[x];
        Arrays.fill(chars, symbol.charAt(0));
        String line1 = new String(chars);
        Arrays.fill(chars, 1, chars.length - 1, ' ');
        String line2 = new String(chars);
 
        System.out.println(line1);
        for (int i = 0; i < y - 2; i++) {
            System.out.println(line2);
        }
        System.out.println(line1);
    }
}
без особых оптимизаций и проверок
1
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
02.02.2016, 16:32 3
kopernikus, ну на самом деле не так всё страшно. Можно, как вариант, сделать примерно так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Ramka {
 
        public static void main(String[] args) {
        int n = 10, m = 20;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                System.out.print('*');
            }
            System.out.println(' ');
        }
        System.out.println();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (i != 0 & i != n - 1 & j != 0 & j != m - 1) {
                    System.out.print(' ');
                } else {
                    System.out.print('*');
                }
            }
            System.out.println();
        }
    }
}
напечатается что-то вроде вот этого:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
******************** 
******************** 
******************** 
******************** 
******************** 
******************** 
******************** 
******************** 
******************** 
********************
 
********************
*                  *
*                  *
*                  *
*                  *
*                  *
*                  *
*                  *
*                  *
********************
Устроит?
1
7 / 7 / 3
Регистрация: 19.08.2015
Сообщений: 76
02.02.2016, 16:32 4
Похоже я совсем не умею писать короткий код(
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class Help3 {
    public static void main(String[] args) {
        char symbol = '*';
        Scanner scanner = new Scanner(System.in);
 
        int sizeX = scanner.nextInt();
        int sizeY = scanner.nextInt();
 
        printFrame(sizeX, sizeY, symbol);
    }
 
    static void printFrame(int sizeX, int sizeY, char symbol) {
        String symbolString = getFullString(sizeX, symbol);
        String spaceString = getSpaceString(sizeX, symbol);
 
        System.out.println(symbolString);
        for (int i = 2; i < sizeY; i++) {
            System.out.println(spaceString);
        }
        System.out.println(symbolString);
    }
 
    static String getFullString(int size, char symbol) {
        String string = "";
        for (int i = 0; i < size; i++) {
            string += symbol;
        }
        return string;
    }
 
    static String getSpaceString(int size, char symbol) {
        String string = String.valueOf(symbol);
        for (int i = 2; i < size; i++) {
            string += " ";
        }
        return string + symbol;
    }
}
1
1 / 1 / 1
Регистрация: 13.09.2015
Сообщений: 43
02.02.2016, 16:37  [ТС] 5
Всем спасибо!
0
02.02.2016, 16:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2016, 16:37
Помогаю со студенческими работами здесь

Как сделать это задание?
Исполнитель Универсальная машина состоит из программной памяти и памяти данных. В программной...

Как сделать это задание( C++)
задано слово W и наборы символов S и P. Образовать из данного набора символов S все возможные...

Как сделать это задание?
329 задание. Подскажите пожалуйста подробно, как это задание выполнить?

Как сделать это задание?
/* ЗАДАЧА: В магазине на разных стеллажах (местах продаж) выложены товары. Информация об...

Как сделать это задание?
Определить номер первого из чисел sin x, sin(sin x), sin(sin(sin x)),.., меньшего по модулю 10^-3.

Как нарисовать рамку прямоугольника толщиной 2 пиксела?
Всем здравствуйте. // Рисуем прямоугольник жёлтого цвета с чёрной рамкой (по-умолчанию)...

Как сделать это задание с indexOf?
В заданной строке определить максимальную длину подстроки, состоящей из заданного символа.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru