к оглавлению

Программа обучения детей азбуке

Здесь рассказывается о создании в среде разработки Borland C++ Builder 6 учебной программы с применением некоторых компонентов и мультимедийных функций.


Создадим одну программу, предназначенную для обучения детей азбуке. Интерфейс, придуманный мною для этой программы, довольно прост. Программа будет иметь только одно окно, на котором разместятся все буквы русского алфавита и один рисунок. На рис. 19.1 показано окно этой программы.

 

 

Окно программы

Рис. 19.1. Окно программы

 

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


Приступим к созданию такой программы. Запустите среду разработки Borland C++ Builder 6 и создайте новый проект с помощью команд File New | Application. Сразу же сохраните проект с помощью команд File | Save Project As на любом диске, создав для этого отдельную папку (каталог) с произвольным названием, например ABC. Программный модуль сохраните с именем Uabc.cpp, а сам проект — с именем abc.bpr.
Поместите на форму Form1 проекта компонент с названием Image 1 из вкладки Additional. Данный компонент необходим в программе для отображения на экране рисунков из загружаемых файлов. Замените свойство AutoSize компонента Image1 с false на true, для того чтобы его размер автоматически изменялся под размер отображаемого рисунка. Затем поместите на форму компонент Label1 из вкладки Standard палитры компонентов. Измените свойство Caption данного компонента на Аа (большая и маленькая русская буква а). Откройте свойства Font компонента Label1 и приведите их в соответствие со свойствами, изображенными на рис. 19.2.

 

Свойства Font компонента Label1

Рис. 19.2. Свойства Font компонента Label1


Скопируйте компонент Label 1 на форме 32 раза с помощью команд Edit Сору и Edit Paste контекстного меню. При выделении и копировании можно пользоваться операциями для группы элементов, что значительно ускоряет процесс копирования. В результате на форме должно быть создано 33 компонента с названием от Labe1 до Label32. Измените свойство Caption (Заголовок) скопированных элементов в соответствии с буквами русского алфавита от Бб до Яя. Для облегчения данной операции воспользуйтесь табл. 19.1, в которой приведено соответствие букв их порядковому номеру в русском алфавите.

 

Таблица 19.1. Соответствие букв их порядковому номеру в русском алфавите

     Номер Буква    
     Номер Буква    
     Номер Буква     
     1 А    
     12 К    
     23 Х    
     2 Б    
     13 Л    
     24 Ц    
     3 В    
     14 М    
     25 Ч    
     4 Г    
     15 Н    
     26 Ш    
     5 Д    
     16 О    
     27 Щ    
     6 Е    
     17 П    
     28 Ъ    
     7 Ё    
     18 Р    
     29 Ы    
     8 Ж    
     19 С    
     30 Ь    
     9 З    
     20 Т    
     31 Э    
     10 И    
     21 У    
     32 Ю    
     11 Й    
     22 Ф    
     33 Я     

 

Измените красный цвет свойства Font для согласных букв на синий цвет. Как известно, в русском алфавите 10 гласных и 23 согласных буквы.
Теперь щелкните по компоненту Label1 левой кнопкой мыши и в открывшемся окне инспектора кода введите текст программы, изображенной на рис. 19.3.

 

Окно инспектора кода

Рис. 19.3. Окно инспектора кода

 

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

 

Листинг 19.1. Заготовка функции

void __fastcall TForm1::Label1Click(TObject *Sender)
{
}

 

Вам останется лишь добавить строку комментариев

//---Буква А-----------------------------------------------------

 

перед функцией и строки команд

 

Image1->Picture->LoadFromFile("PICTURE/1.bmp");
PlaySound("SOUND/1.wav",0,SND_ASYNC);

 

между фигурными скобками функции.


Первая строка команд будет изменять свойство Picture компонента Image1 при выполнении программы путем загрузки файла 1.bmp из каталога PICTURE после щелчка левой кнопкой мыши по данной букве.
Вторая строка состоит из одной мультимедийной команды, с помощью которой будет воспроизводиться звуковой файл 1.wav, расположенный в каталоге SOUND. Естественно, что эти файлы с рисунком и звуком необходимо будет создать самостоятельно и поместить в соответствующие подкаталоги проекта с названиями PICTURE и SOUND, которые необходимо создать в основном каталоге проекта. Borland C++ Builder 6 позволяет загружать звуковые файлы в формате WAV и файлы рисунков — в форматах BMP, WMF или JPG. Поэтому при создании данных файлов их необходимо сохранять только в таких форматах. Всего нужно будет создать 33 файла с рисунками и 33 звуковых файла: по количеству букв русского алфавита. Имена этих файлов должны носить названия от 1 до 33. Давать этим файлам имена по названию русских букв нежелательно, поскольку среда разработки является англоязычной, и при использовании таких названий в дальнейшем могут возникнуть непредсказуемые проблемы.


При создании звуковых файлов я рекомендую записать звуки букв, произносимые самим ребенком, который будет затем обучаться азбуке по создаваемой нами программе. В этом случае ему будет интересно слышать собственный голос, и процесс изучения букв станет интересен. Для детей такой процесс обучения превратится в своеобразную игру.

 

Неплохо было бы, чтобы ребенок сам нарисовал рисунки к данной программе. Тогда при изучении азбуки он будет узнавать не только свой голос, но и свои рисунки.

 

Звуковые файлы легко создаются с помощью программы звукозаписи sndrec32.exe, входящей в состав стандартных программ операционной системы Windows. Данная программа запускается с помощью команд Пуск | Программы | Стандартные | Развлечения | Звукозапись. Рисунки можно создать с помощью любого графического редактора. Для этих целей подойдет простейший графический редактор mspaint.exe. также входящий в состав стандартных программ операционной системы Windows и вызываемый командами Пуск | Программы | Стандартные | Paint. Фон рисунков лучше всего сделать прозрачным или серым, для того чтобы они сливались при отображении с фоном формы программы.
Вставьте в начало программы строку подключения библиотеки мультимедийных функций в виде #include   <rnmsystem.hpp>. эти функции необходимы нашей программе для выполнения команд проигрывания звуковых файлов. Окончательный вид заголовка программы будет таким, как в листинге 19.2.

 

Листинг 19.2. Окончательный вид заголовка программы

//---------------------------------------------------------------------------

#include
#pragma hdrstop
#include
#include "Uabc.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

 

 

Теперь откройте форму Form1 программы и замените ее свойство Caption на заголовок Азбука. Разверните форму на весь экран и разместите все компоненты на форме в соответствии с рис. 19.1.
Создайте функции обработки для каждой из оставшихся 32-х букв, вызывая для этого инспектор кода щелчком левой кнопки мыши по букве, и скопируйте строки программы, приведенные для буквы А (компонент Label1), в функцию каждой буквы. Замените в скопированных строчках комментарии и имена файлов в соответствии с названием буквы. В результате у вас должна получиться программа, состоящая из строк, похожих на строки, приведенные в листинге 19.3.

 

Листинг 19.3. Строки программы

 

TForm1 *Form1;

//----------------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//- Буква А ---------------------------------------------------------------------

void __fastcall TForm1::Label1Click(TObject *Sender)

{

Image1->Picture->LoadFromFile("PICTURE/1.bmp");

PlaySound("SOUND/1.wav",0,SND_ASYNC);

}

//--Буква Б-----------------------------------------------------------------------

void __fastcall TForm1::Label2Click(TObject *Sender)

{

Image1->Picture->LoadFromFile("PICTURE/2.bmp");

PlaySound("SOUND/2.wav",0,SND_ASYNC);

}

//--Буква В-------------------------------------------------------------------------

void __fastcall TForm1::Label3Click(TObject *Sender)

{

Image1->Picture->LoadFromFile("PICTURE/3.bmp");

PlaySound("SOUND/3.wav",0,SND_ASYNC);

}

...

и т.д.

//--Буква Я-------------------------------------------------------------------------

void __fastcall TForm1::Label33Click(TObject *Sender)

{

Image1->Picture->LoadFromFile("PICTURE/33.bmp");

PlaySound("SOUND/33.wav",0,SND_ASYNC);

}

//----------------------------------------------------------------------------------

 

Отличие может быть в расширениях файлов рисунков, поскольку формат этих файлов может быть одним из трех разрешенных, о чем было сказано ранее.
Для изменения значка программы необходимо нарисовать его с помощью инструментальной программы графического редактора Image Editor, встроенной в Borland C++ Builder 6 и загрузить этот значок через свойства проекта в программу. О том, как это сделать, было рассказано при описании создания программы timedate.
Теперь необходимо сохранить проект с помощью горячих клавиш <Ctrl>+<S> и выполнить его трансляцию и запуск с помощью клавиши <F9>. Обратите внимание на что, что при раскрытой на весь экран форме быстрые кнопки и главное меню среды разработки становятся недоступны; в этом случае для выполнения команд удобно использовать горячие клавиши.
Если при создании программы не было допущено ошибок, то она сразу начнет работать по приведенному в начале главы алгоритму. Если в программе встретятся ошибки, внесенные вами при ее создании, воспользуйтесь встроенным в среду разработки отладчиком. При необходимости можно полностью свернуть форму. Вновь отобразить форму на экране можно с помощью комбинации клавиш <Shift>+<F12>.
Для практики создайте программу для обучения английскому алфавиту по аналогии с программой, описанной здесь. Уверен, для тех, кто смог самостоятельно повторить создание программы обучения русской азбуке, решение этой задачи не составит особого труда.

к оглавлению

ПУТИН : РОССИЯ = 5 : 0

Мало ли что я обещал гоям?
Российскую пенсию будут получать только израильтяне!
Мой кошелёк - Минц всё равно уже вывез деньги ПФ за рубеж.


ГОЛОСОВАТЬ ПРОТИВ ПОВЫШЕНИЯ ВОЗРАСТА ВЫХОДА НА ПЕНСИЮ

Владимир Филин: Патриоты призывают к протесту

ВСЕ ВИДЕО
Знаете ли Вы, в чем ложность понятия "физический вакуум"?

Физический вакуум - понятие релятивистской квантовой физики, под ним там понимают низшее (основное) энергетическое состояние квантованного поля, обладающее нулевыми импульсом, моментом импульса и другими квантовыми числами. Физическим вакуумом релятивистские теоретики называют полностью лишённое вещества пространство, заполненное неизмеряемым, а значит, лишь воображаемым полем. Такое состояние по мнению релятивистов не является абсолютной пустотой, но пространством, заполненным некими фантомными (виртуальными) частицами. Релятивистская квантовая теория поля утверждает, что, в согласии с принципом неопределённости Гейзенберга, в физическом вакууме постоянно рождаются и исчезают виртуальные, то есть кажущиеся (кому кажущиеся?), частицы: происходят так называемые нулевые колебания полей. Виртуальные частицы физического вакуума, а следовательно, он сам, по определению не имеют системы отсчета, так как в противном случае нарушался бы принцип относительности Эйнштейна, на котором основывается теория относительности (то есть стала бы возможной абсолютная система измерения с отсчетом от частиц физического вакуума, что в свою очередь однозначно опровергло бы принцип относительности, на котором постороена СТО). Таким образом, физический вакуум и его частицы не есть элементы физического мира, но лишь элементы теории относительности, которые существуют не в реальном мире, но лишь в релятивистских формулах, нарушая при этом принцип причинности (возникают и исчезают беспричинно), принцип объективности (виртуальные частицы можно считать в зависимсоти от желания теоретика либо существующими, либо не существующими), принцип фактической измеримости (не наблюдаемы, не имеют своей ИСО).

Когда тот или иной физик использует понятие "физический вакуум", он либо не понимает абсурдности этого термина, либо лукавит, являясь скрытым или явным приверженцем релятивистской идеологии.

Понять абсурдность этого понятия легче всего обратившись к истокам его возникновения. Рождено оно было Полем Дираком в 1930-х, когда стало ясно, что отрицание эфира в чистом виде, как это делал великий математик, но посредственный физик Анри Пуанкаре, уже нельзя. Слишком много фактов противоречит этому.

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

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

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
  19.07.2018 - 17:21: ЭКСПЕРИМЕНТАЛЬНАЯ ФИЗИКА - Experimental Physics -> Вихревые эффекты и вихревые теплогенераторы - Карим_Хайдаров.
19.07.2018 - 17:18: ЭКСПЕРИМЕНТАЛЬНАЯ ФИЗИКА - Experimental Physics -> Ядерные эксперименты - Карим_Хайдаров.
19.07.2018 - 17:08: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от О.Н. Четвериковой - Карим_Хайдаров.
17.07.2018 - 21:55: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
17.07.2018 - 21:52: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Проблема народного образования - Карим_Хайдаров.
17.07.2018 - 21:09: СОВЕСТЬ - Conscience -> РУССКИЙ МИР - Карим_Хайдаров.
17.07.2018 - 17:19: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> ПРОБЛЕМА КРИМИНАЛИЗАЦИИ ЭКОНОМИКИ - Карим_Хайдаров.
15.07.2018 - 20:56: СОВЕСТЬ - Conscience -> Проблема государственного терроризма - Карим_Хайдаров.
15.07.2018 - 18:35: СОВЕСТЬ - Conscience -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
13.07.2018 - 07:28: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
13.07.2018 - 07:24: ЦИТАТЫ ЧУЖИХ ФОРУМОВ - Outside Quotings -> ЗА НАМИ БЛЮДЯТ - Карим_Хайдаров.
12.07.2018 - 12:19: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> КОЛЛАПС МИРОВОЙ ФИНАНСОВОЙ СИСТЕМЫ - Карим_Хайдаров.
Bourabai Research Institution home page

Bourabai Research - Технологии XXI века Bourabai Research Institution