воскресенье, 30 января 2011 г.

Работа со случайными числами

Для работы со случайными числами в языке Java используется оператор Math.random(), который выбирает случайным образом одну из десятичных дробей из диапазона от 0 (включая) до 1 (не включая).

Для того, чтобы увеличить диапазон выбора чисел, умножают оператор на соответствующее значение: например, 60*Math.random() выбирает случайным образом одну из десятичных дробей из диапазона от 0 (включая) до 60 (не включая).

Для того, чтобы "сдвинуть" диапазон выбора чисел, добавляют к оператору число (положительное или отрицательное), устанавливающее диапазон сдвига: например, 60*Math.random()+10 выбирает случайным образом одну из десятичных дробей из диапазона от 10 (включая) до 70 (не включая).

Для того, чтобы использовать этот оператор для выбора целых чисел, производят действие "преобразования типа": перед заключенным в скобки выражением ставят в скобках указание на тип, в который надо произвести преобразование – в нашем случае, это (int).

Таким образом, общий вид строки для выбора случайных чисел выглядит следующим образом (пример):

x=(int)(75*Math.random()-20)

"в переменную х заносится случайным образом выбранное целое число, одно из 75 чисел, начиная с -20" – или "в переменную х заносится случайным образом выбранное число из диапазона от -20 до +54"

Предлагаю вам для самостоятельного написания несколько заданий на программы с использованием случайных чисел.

Задание №1

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

Задание №2

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

Задание №3

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

Задание №4

Напиши программу (класс), которая выбирает 20 случайных целых чисел из диапазона от -15 до +10 – но выводит на экран только однозначные из выбранных чисел.

Задание №5

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

Задание №6

Напиши программу (класс), которая выбирает 20 случайных целых чисел из диапазона от -20 до +20, но выводит на экран каждое из них дважды – с выбранным знаком и с противоположным. Пары чисел следует отделять друг от друга символом #.

пятница, 21 января 2011 г.

Конечный детерминистский автомат

На последнем занятии шла речь о КДА (конечный детерминистский автомат) -- структура, которая позволяет проверить соответствие данных заранее установленным, оговоренным условиям, требованиям.
Я размещаю несколько примеров таких КДА -- а вы:
1-определите, на основании какого алфавита проверяются данные;
2-приведите примеры "слов" (данных), которые автомат оценивает как "правильные" и тех, на которые КДА реагирует -- "неверно"
3-определите, какой язык (набор слов) принимает автомат -- то есть дайте общую формулировку
=====================












понедельник, 10 января 2011 г.

Каникулы закончились? Тогда работаем дальше!

Задание 1

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

Задание 2

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

Задание 3

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

Задание 4

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

Задание 5

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

Задание 6

Напиши программу, которая:

  • сначала вводит с клавиатуры целое положительное двузначное число (нет необходимости проверять соответствие введенного значения этому условию);
  • затем выводит на экран (в строку с пробелами) трехзначные целые положительные числа, в которых предварительно введенное двузначное число является "внутренней" частью (как, например, 23 для 123 или 623).

Задание 7

Напиши программу, которая:

  • сначала вводит с клавиатуры целое положительное двузначное число (нет необходимости проверять соответствие введенного значения этому условию);
  • затем выводит на экран (в строку с пробелами) четырехзначные целые положительные числа, в которых предварительно введенное двузначное число является "внутренней" частью (как, например, 23 для 1523, или 6237, или 4230).

Задание 8

Напиши программу, которая:

  • сначала вводит с клавиатуры целое положительное двузначное число (нет необходимости проверять соответствие введенного значения этому условию);
  • затем выводит на экран (в строку с пробелами) четырехзначные целые положительные числа, в которых и две первых цифры, и две последних цифры одновременно образуют положительные двузначные числа, равные предварительно введенному двузначному числу (как, например, 2323 для введенного значения 23).

Задание 9

Напиши программу, которая:

  • сначала вводит с клавиатуры целое положительное двузначное число (нет необходимости проверять соответствие введенного значения этому условию);
  • затем выводит на экран (в строку с пробелами) четырехзначные целые положительные числа, в которых две первых цифры образуют положительное двузначное число, равное предварительно введенному двузначному числу – а две последних цифры образуют число с порядком цифр, обратным порядку цифр во введенном числе (как, например, 2332 для введенного значения 23).

Задание 10

Напиши программу, которая:

  • сначала вводит с клавиатуры целое положительное двузначное число (нет необходимости проверять соответствие введенного значения этому условию);
  • затем выводит на экран (в строку с пробелами) четырехзначные целые положительные числа, в которых две последних цифры образуют положительное двузначное число, равное предварительно введенному двузначному числу – а две первых цифры образуют число с порядком цифр, обратным порядку цифр во введенном числе (как, например, 3223 для введенного значения 23).