Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Создание оконного приложения. void __fastcall TForm1::FormActivate(TObject *Sender)




Для ввода строк и работы с ними использовать компоненту ComboBox. Ввод строки заканчивать нажатием клавиши Enter, для выхода использовать кнопку «Close». Панель диалога с результатами программы может иметь вид, представленный на рис. 7.1.

В тексте программы приведем только функции-обработчики:

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

void __fastcall TForm1::FormActivate(TObject *Sender)

{

Form1->ComboBox1->SetFocus(); // Передача фокуса ComboBox1

}

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

void __fastcall TForm1::ComboBox1KeyDown(TObject *Sender, WORD &Key,TShiftState Shift)

{

if (Key == 13) {

ComboBox1->Items->Add(ComboBox1->Text);

// Строка из окна редактирования заносится в ComboBox1

ComboBox1->Text=""; // Очистка окна

}

}

//------------ Обработка нажатия кнопки мыши --------------------

void __fastcall TForm1::ComboBox1Click(TObject *Sender)

{

int n, i, nst;

nst = ComboBox1->ItemIndex; // Определение номера строки

String st = ComboBox1->Items->Strings[nst]; // Запись выбранной строки st

if (st[1] != ' ') n = 1; // Здесь и ниже ' ' – пробел

else n = 0;

for(i=1; i<st.Length(); i++) // Просмотр символов строки st

if(st[i] == ' ' && st[i+1] != ' ') n++;

Edit1->Text = IntToStr(n); // Вывод числа слов в Edit1

}

Рис. 7.1

Создание консольного приложения

Для ввода строки, содержащей пробелы используем функцию gets (см. лаб.раб. №1).

Текст функции main() может иметь следующий вид:

#include <string.h>

void main()

{

int n, i, nst, len;

char st[81];

puts(" Input string ");

gets(st);

if (st[0] != ' ') n = 1; // Здесь и ниже ' ' – пробел

else n = 0;

len = strlen(st);

for(i=1; i<=len; i++) // Просмотр символов строки

if(st[i] == ' ' && st[i+1] != ' ') n++;

printf("\n Words = %d", n); // Вывод количества слов

puts("\nPress any key ... ");

getch();

}

 

Результат выполнения представленной программы будет иметь следующий вид:


Индивидуальные задания

В оконном приложении исходные данные вводить из компоненты Edit в ListBox (заканчивать нажатием Enter). Скалярный результат выводить в компоненту Label. Для выхода из программы использовать кнопку «Close».

 

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

2. В строке, состоящей из групп нулей и единиц, найти и вывести на экран самую короткую группу.

3. В строке, состоящей из групп нулей и единиц, подсчитать количество символов в самой длинной группе.

4. В строке, состоящей из групп нулей и единиц, найти и вывести на экран группы с четным количеством символов.

5. В строке, состоящей из групп нулей и единиц, подсчитать количество единиц в группах с нечетным количеством символов.

6. Из строки, состоящей из букв, цифр, запятых, точек, знаков + и – , выделить подстроку, которая соответствует записи целого числа.

7. Из строки, состоящей из букв, цифр, запятых, точек, знаков + и – , выделить подстроку, задающую вещественное число с фиксированной точкой.

8. Из строки, состоящей из букв, цифр, запятых, точек, знаков + и – , выделить подстроку, задающую вещественное число с плавающей точкой.

9. Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести на экран числа этой строки в порядке возрастания их значений.

10. Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести четные числа этой строки.

11. Дана строка, состоящая из слов на английском языке, разделенных пробелами. Вывести на экран эти слова в порядке алфавита.

12. Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова, содержащего k-ю позицию, если в k-й позиции пробел, то – номер предыдущего слова. Значение k ввести с клавиатуры.

13. Дана строка, состоящая из слов, разделенных пробелами. Разбить исходную строку на две подстроки, причем первая длиной k символов, если на k-ю позицию попадает слово, то его следует отнести ко второй строке. Значение k вводится с клавиатуры.

14. Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова максимальной длины и номер позиции строки с которой оно начинается.

15. Дана строка, состоящая из слов, разделенных пробелами. Вывести на экран порядковый номер слова минимальной длины и количество символов в этом слове.

16. В строке символов посчитать количество скобок различного вида.





Рекомендуемые страницы:

Воспользуйтесь поиском по сайту:



©2015- 2021 megalektsii.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.