1 Контрольное зачетное задание (0, 0)(0, m-1) (n-1, 0)(n-1, m-1) Дано прямоугольное поле, расчерченное на клетки: n клеток в высоту и m клеток в ширину.

Презентация:



Advertisements
Похожие презентации
b5_java_s4
Advertisements

Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Переменные и основные типы переменных на JAVA Выполнил учитель информатики и ИКТ МБОУ СОШ р.п. Евлашево Горелочкин Н.К.
ЕГЭ 2012 Информатика и ИКТ Консультация 3. Пример.
1 Методы Java Методы класса – это подпрограммы, присоединенные к конкретным определениям классов. Они описываются внутри определения класса на том же уровне,
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
1 Классы в Java Ключевое слово class означает: Я говорю тебе, как выглядит новый тип объекта. Класс является базовым элементом объектно-ориентированного.
Массивы Теоретические сведения. Примеры решения задач. Задания для самостоятельного выполнения.
Обсуждаемые вопросы Определение и характеристики массива Принципы работы с массивами Объявление (декларация) Создание (выделение памяти) Инициализация.
Министерство образования Республики Беларусь Белорусский государственный университет Управляющие структуры языков программирования.
Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов.
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
ЕГЭ 2011 Информатика и ИКТ Консультация 3 18 марта.
Исполнитель Робот СКИ, обстановкаИсполнитель Робот СКИ, обстановка.
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
1 Обработка исключений в Java Одно из важнейших преимуществ Java – разработанный на уровне языка механизм обработки исключений. Исключение в Java - это.
Массивы Теоретические сведения. Примеры решения задач. Задания для самостоятельного выполнения.
ЕГЭ информатика Алгоритмизация и программирование Консультация 3.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Введение в Паскаль. ввод Для ввода чисел используется оператор read или readln. Вводимые числа должны отделяться друг от друга пробелом или нажатием клавиши.
Транксрипт:

1 Контрольное зачетное задание (0, 0)(0, m-1) (n-1, 0)(n-1, m-1) Дано прямоугольное поле, расчерченное на клетки: n клеток в высоту и m клеток в ширину. Таким образом, каждая клетка уникальным образом определяется парой целых значений: 0 i n-1 и 0 j m-1 ====================== Поле представляет из себя двумерный массив (n x m), элементами которого являются строки длиной в 4 символа.

2 Контрольное зачетное задание (0, 0)(0, m-1) _R1_ (n-1, 0)(n-1, m-1) По клеткам поля движется робот. Робот ходит за один шаг на одну клетку вверх (север – «N»), вниз (юг – «S»), влево (запад – «W») или вправо (восток – «E»). По диагонали ходить нельзя. Направление каждого шага определяется случайным образом. Таким образом, текущее положение робота определяется парой целых значений («координатами»): 0 i n-1 и 0 j m-1, совпадающими с номером (адресом) клетки поля.

3 Контрольное зачетное задание (0, 0) _R1_ (0, m-1) _R1_ (n-1, 0) _R1_ (n-1, m-1) Поскольку направление каждого шага определяется случайным образом, робот может сделать попытку выйти за границы поля. Это считается неправильным шагом и робот в таком случае получает «штрафное очко» и возвращается в клетку, из которой он пытался выйти за границу поля.

4 Контрольное зачетное задание (0, 0)(0, m-1) (n-1, 0)(n-1, m-1) ЗАДАНИЕ: Составить алгоритм движения робота из начальной клетки (0,0) до конечной клетки (n-1,m-1). При достижении конечной клетки вывести общее количество сделанных роботом шагов и количество неправильных шагов («штрафных очков»).

5 Контрольное зачетное задание Для выполнения зачетного задания выдается вспомогательный материал со структурой программы. Жирным шрифтом выделены фрагменты, которые необходимо воспроизвести полностью как есть. Комментариями (нежирный шрифт) определены места для самостоятельной разработки и вставки необходимых операторов в текст программы. Необходимо строго следовать инструкциям, в точности воспроизводить в коде программы указанные в комментариях имена переменных. Сами комментарии набирать в программе не нужно.

6 Контрольное зачетное задание // Файл Robot2.java import /* присоединить библиотеку, в которой находятся математические операции и счетчик случайных чисел */ ; class Pole { /* Определить две целые переменные n и m, определяющие размер поля, к которым можно обращаться по имени класса Pole и static переменную pole - двумерную матрицу, элементами которой являются объекты типа String */ Pole(int x, int y) { // инициализировать n и m в конструкторе значением параметров x и y pole = new String [n][]; /* далее провести инициализацию матрицы pole пробелами, т.е. строками со значениями */ System.out.println ("Размер поля: " + n + " X " + m); } void inPole() { /*вставить операторы, заполняющие каждый элемент массива pole четырьмя символами «подчеркивание» _ */ }

7 Контрольное зачетное задание void prPole() { // Метод выводит на экран содержимое переменной pole в специальном формате. for (int i=0; i < n; i++) { System.out.println("\n"); for (int j=0; j < m; j++) { System.out.print("\t" + pole[i][j]); } System.out.println("\n"); } } // конец класса Pole class Robot { /* Определить целые переменные класса kX и kY – текущее положение робота; определить и инициализировать целую переменную ws, в которую будет заноситься число неправильных шагов робота */ Robot(int x, int y) { // инициализировать kX и kY параметрами конструктора и вывести на печать System.out.println("Робот в точке х = " + kX + ", y = " + kY); }

8 Контрольное зачетное задание void moveN() { /* метод, описывающий шаг робота наверх если робот пытается выйти за границу поля, вернуть его в ту же клетку, прибавить счетчик неправильных ходов и напечатать */ System.out.println("Выше нельзя!"); // напечатать текущее положение робота System.out.println("Робот в точке х = " + kX + ", y = " + kY); } void moveE() { /* метод, описывающий шаг робота направо если робот пытается выйти за границу поля, вернуть его в ту же клетку, прибавить счетчик неправильных ходов и напечатать */ System.out.println("Правее нельзя!"); // напечатать текущее положение робота System.out.println("Робот в точке х = " + kX + ", y = " + kY); }

9 Контрольное зачетное задание void moveW() { /* метод, описывающий шаг робота влево если робот пытается выйти за границу поля, вернуть его в ту же клетку, прибавить счетчик неправильных ходов и напечатать */ System.out.println("Левее нельзя!"); // напечатать текущее положение робота System.out.println("Робот в точке х = " + kX + ", y = " + kY); } void moveS() { /* метод, описывающий шаг робота вниз если робот пытается выйти за границу поля, вернуть его в ту же клетку, прибавить счетчик неправильных ходов и напечатать */ System.out.println("Ниже нельзя!"); // напечатать текущее положение робота System.out.println("Робот в точке х = " + kX + ", y = " + kY); } } // конец класса Robot

10 Контрольное зачетное задание class Robot2 { // Класс для запуска программы public static void main(String args[ ]) { /* определить и инициализировать нулем целую переменную ns1, в которую будет суммироваться общее число шагов робота; объявить и инициализировать значениями (10, 5) переменную p, как экземпляр класса Pole; объявить и инициализировать значениями (0,0) переменную r1, как экземпляр класса Robot */ Random rand = new Random(); p.inPole(); p.pole[0][0] = "_R1_"; p.prPole(); while ( /* написать условие, задающее положение робота, отличное от конечной точки поля (n-1, m-1) */ ) { /* написать пустой цикл с не менее проходов, имитирующий визуальную задержку вывода; сгенерировать случайным образом целую переменную i1 меньшую или равную 4 с помощью метода Math.abs(rand.nextInt()) или другим способом */

11 Контрольное зачетное задание // с помощью оператора switch – case имитировать шаги робота switch (i1) { case 1 : {System.out.println("шаг вверх..."); // сделать шаг наверх, прибавить общее число шагов break;} /* выполнить аналогичные действия, т.е. написать case-секции при шаге вправо (значение – 2), влево (значение – 3) и вниз (значение – 4) */ default : System.out.println("Стоим на месте"); } // конец switch p.inPole(); p.pole[r1.kX][r1.kY] = "_R1_"; p.prPole(); } // конец while // сделать вывод результатов: System.out.println("====================================="); System.out.println ("Размер поля: + /* продолжить вывод */); System.out.println ("Кратчайший путь : " + /* продолжить вывод */); System.out.println ("Робот дошел за " /* вставить нужную переменную */ + " шагов"); System.out.println ("Из них " + /*вставить нужную переменную */ + " неправильных шагов"); } // конец main } // конец класса Robot2

12 Контрольное зачетное задание Начало Создание объектов классов Pole и Robot, объявление и инициализация нулем счетчика шагов Инициализация поля, установка робота в (0,0), прорисовка позиции Текущее положение робота (kX,kY) не равно (n-1,m-1) Случайная генерация i1={1,2,3,4} Шаг наверх (N) kX--; kY=const; Проверка на выход; счетчик неправильных шагов Шаг вправо (E) kX=const; kY=++; Проверка на выход; счетчик неправильных шагов Шаг влево (W) kX=const; kY=--; Проверка на выход; счетчик неправильных шагов Шаг вниз (S) kX++; kY=const; Проверка на выход; счетчик неправильных шагов Изменение счетчика шагов; прорисовка позиции поля Печать результатов Конец + - i1=1 i1=2 i1=3 i1=4