Материал: Кейс как средство организации исследовательской работы по информатике в основной школе

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Для приложения-дешифратора можно выбрать следующую минимальную конфигурацию: J2ME, MIDP 2.0, CLDC 1.0. Сотовый телефон должен поддерживать эту минимальную конфигурацию. Выберите в качестве минимальной конфигурации MIDP 2.0 для того, чтобы была возможность вызова из приложения. Для отладки программы используйте эмулятор мобильного телефона, интегрированный в среду разработки мобильных приложений SunWirelessToolkit.

Рисунок 2. Блок-схема модернизированного дискового телефонного аппарата

Эксперимент № 4

С трубки дискового телефонного аппарата вытащите микрофон и динамик, замените их на те, что были в минигарнитуре; кнопку минигарнитуры замените на рычажный переключатель, так что когда трубка опущена, кнопка на минигарнитуре нажата. Это необходимо для работы функции завершения вызова, путём опускания трубки на дисковый телефонный аппарат.

. Вынесите разъем для зарядки наружу корпуса дискового стационарного телефона, потом соедините дисковый номеронабиратель с клавишей «ОК» сотового телефона, а рычажный переключатель «со сглаживанием» с другой клавишей («#») сотового телефона. И в самую последнюю очередь вынесите динамик из сотового телефона, соедините его с выключателем, тем самым сделав переключатель в режим «Без звука».Соединения старого дискового телефонного аппарата с сотовым телефоном выполните маломощным паяльником.

Рисунок 3. Фото модернизированного дискового телефонного аппарата.

Приложение Б


Кейс«Мобильный редактор VisualBasic для ОС Android»

Контекст кейса

Язык программирования VisualBasic был создан в 1964 году двумя профессорами из Dartmouth College - Джоном Кенеми и Томасом Куртцом для обучения студентов навыкам программирования. Язык получился настолько простым и понятным, что через некоторое время его начали применять и в других учебных заведениях. В 1975 году, с приходом первых микрокомпьютеров, эстафету Basic приняли Билл Гейтс и Пол Аллен, основатели Microsoft. Именно они создали новую версию Basic для первых компьютеров "Альтаир" (MITS Altairs), способную работать в 4КБ оперативной памяти. Со временем именно эта версия и превратилась в один из самых популярных языков программирования в мире.

VisualBasic успешно изучается во многих школах России, а так же Basic присутствует во многих заданиях на ЕГЭ. Но разработчики этих языков не поддерживают разработку редакторов на мобильные платформы и операционные системы. Известно, что в последнее время приобрели популярность устройства на ОС Android, соответственно привлекающие своей мобильностью и производительностью.

У многих часто нет возможности изучать данный язык дома за стационарным компьютером или ноутбуком, поэтому появляется необходимость в разработке редактора и лаунчера кода языка на мобильную платформу. Такие мобильные редакторы уже имеются для языков: C++, Java, Python и тд.- это операционная система для мобильных устройств, которую можно встретить в коммуникаторах, планшетных ПК, нетбуках и смартфонах. Многие крупные производители проводят эксперименты и внедряют эту программную платформу в свою технику. Например, уже сейчас существуют часы и TV-приставки с OS Android, и этим никого не удивишь.

Давайте теперь вернемся к главной теме статьи, а именно к истории появления ОС Android.

В 2003 году в калифорнийском штате Пало Альто, четверо друзей Энди Рубин, Рич Майнер, Ник Сирс и Крис Уайт открыли небольшую компанию Android inc. На то время у компании уже был набор программных разработок для будущей операционной системы.

Что нужно делать?

Твоя цель:Создать мобильную программу способную к трансляции VB-кода в Java-код с возможностью в последствии перевода кода на машинный язык. Создать редактор и лаунчер графического интерфейса, который содержит основные элементы (TextBox, Label, CommandButton).

Что посмотреть- почитать?

1.#"896720.files/image004.gif">

Рисунок 1. Схема-шаблон

По данной схеме первым делом код на языке Basic транслируется, переводится в Java код по средствам замены или подстановки синтаксиса. А уже на следующем этапе используется библиотека BeanShell для внедрения транслированного кода в JVM(Java машину).

Рассмотрите трансляцию и внедрение транслированного кода в JVM более детально.

Этапы:

Первым делом происходит трансляция, под трансляцией подразумевается перевод кода на VisualBasic в Java код.

Для того чтобы написать свою программу посмотрите пример исходного кода и транслированного кода:

Исходный кодa As Integer= 5i = 0 To 5 = a + 1i

Транслированный код;= 5;(int i = 0; i != 5; i++) { = a + 1;

}

2. На втором этапе транслированный код в переменной String попадает в интерпретатор BeanShell и внедряется в JVM.

3. После внедрения код начинает выполняться, если на пути встречается функция вывода или ввода информации, код обращается к индексированным источникам вывода или ввода информации и получает ее.

Вид двух страниц конечной ступени иерархии интерфейса.

Рис 2 Экран

Рис3 Экран GUI запуска редактирования программного кода

Приложение В

Отзывы от учеников.

Рисунок 1.

Рисунок 2.

Рисунок 3.


Приложение Г


Исходный код программы-дешифратора.

importjavax.microedition.lcdui.Display;

import javax.microedition.midlet.MIDlet;class start extends MIDlet{

private draw_app draw;

public void startApp() {

Display display = Display.getDisplay(this);

draw = new draw_app(this);

display.setCurrent(draw);

}

public void pauseApp() {

}

public void destroyApp(boolean destroy){

}

}javax.microedition.lcdui.*;java.lang.*;class draw_app extends Canvas{

public static int NOOP = 2;

public static int INPUT_NUMBER = 3;

public int CALL_NUMBER = 0;

public static int KEY_DESTROY = 699;

public String NUMBER = new String();

private long last_time = 0;

private int number = -1;

private String message = new String();

private start midlet;

public draw_app(start midlet) {

NUMBER = new String();

this.midlet = midlet;

setFullScreenMode(true);

repaint();

}

public void paint(Graphics g) {

g.setColor(0);

g.fillRect(0, 0, getWidth(), getHeight());

if(KEY_DESTROY!=699) {

g.setColor(0x00FF00);

if(NUMBER!=null) {

g.drawString(NUMBER,0,0,0);

} else {

g.setColor(0xFF0000);

g.drawString("NULL NUMBER", 0, 0, 0);

}

if(message!=null) {

g.setColor(0x0000FF);

g.drawString(message,0,(g.getFont()).getHeight(),0);

}

} else {

g.setColor(0x00FF00);

g.drawString("Please press key",0,0,0);

g.drawString("for break call",0,(g.getFont()).getHeight(),0);

}

}

public void keyPressed(int key_code) {

if(KEY_DESTROY!=699) {

if(key_code==KEY_DESTROY) {

STATUS=NOOP;

NUMBER=new String();

number=-1;

}

if(STATUS!=CALL_NUMBER) {

if(STATUS==INPUT_NUMBER) {

if(last_time+200L>System.currentTimeMillis()) {

number++;

} else {

number+=2;

if(number>9) {

number=0;

}

NUMBER = NUMBER.concat(String.valueOf(number));

STATUS = NOOP;

}

}

if(STATUS==NOOP) {

STATUS = INPUT_NUMBER;

number = -1;

}

message = "pressed/number:"+(number+2);

if(NUMBER.length()>=11) {

call();

}

repaint();

}

} else {

KEY_DESTROY = key_code;

}

}

public void keyReleased(int key_code) {

if(KEY_DESTROY!=699) {

if(key_code==KEY_DESTROY) {

STATUS=NOOP;

NUMBER=new String();

}

if(STATUS!=CALL_NUMBER) {

last_time = System.currentTimeMillis();

message = "released/number:"+(number+2);

if(NUMBER.length()>=11) {

call();

}

repaint();

}

}

}

public void call() {

message = "call this number";

STATUS = NOOP;

repaint();

try{

Display.getDisplay(midlet).vibrate(1000);

midlet.platformRequest("tel:"+NUMBER);

NUMBER = new String();

number = -1;

} catch (Exception e) {

message = "error call number";

}

}

}