Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория и примеры ОАиП.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
453.3 Кб
Скачать

7.3. Пример выполнения задания

Написать программу подсчета числа слов в строке, содержащей пробелы.

7.3.1. Создание оконного приложения

Для ввода строк и работы с ними использовать компоненту 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

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

Для ввода строки, содержащей пробелы используем функцию 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();

}

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