Помощь в написании студенческих работ
Антистрессовый сервис

Обработка статистических данных по файлу

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Компоненты C++ Builder разделяются на видимые (визуальные) и невидимые (невизуальные). Визуальные компоненты появляются во время выполнения точно так же, как и во время проектирования. Примерами являются кнопки и редактируемые поля. Невизуальные компоненты появляются во время проектирования как пиктограммы на форме. Они никогда не видны во время выполнения, но обладают определенной… Читать ещё >

Обработка статистических данных по файлу (реферат, курсовая, диплом, контрольная)

Белорусский национальный технический университет

приборостроительный факультет

Кафедра Информационно-измерительнОЙ техникИ и технологии

Пояснительная записка

К КУРСОВОЙ РАБОТЕ

по дисциплине «Языки программирования»

Тема: Обработка статистических данных по файлу

Минск 2011

РЕФЕРАТ

Пояснительная записка 38 с., 6 рис., 5 источников, 3 прил.

С++, ФАЙЛ, ПОДСЧЕТ, СИМВОЛ, ТАБЛИЦА, КОМПОНЕНТ

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

программа статистический текстовый информация

1. Разработка алгоритма

1.1 Постановка задачи

1.2 Описание алгоритма

2. Разработка рабочего проекта

2.1 Описание логической структуры

2.2 Входные данные

2.3 Выходные данные

2.4 Вызов и загрузка

3. Тестирование проекта

4. Внедрение

4.1 Условия выполнения программы

4.2 Сообщения оператору

Заключение

Список использованных источников

Приложение А. Блок-схема программы

Приложение Б. Листинг программы

Приложение В. Результаты выполнения программы

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

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

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

В разделе описания программы дается обобщенное словесное описание алгоритма решения поставленной задачи.

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

В разделе описания тестирования программы кратко описывается среда программирования.

1. РАЗРАБОТКА АЛГОРИТМА

1.1 Постановка задачи

Необходимо составить программу для обработки текстовой информации:

— пользователь вводит текст вручную или загружает из файла;

— программа выводит статистические данные по файлу: общее число знаков, число гласных, согласных, знаков препинания;

— сохранение статистических данных в текстовом файле.

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

Функциональность ввода-вывода языка Си по текущим стандартам реализуется на низком уровне. Язык Си абстрагирует все файловые операции, превращая их в операции с потоками байтов, которые могут быть как «потоками ввода», так и «потоками вывода». В отличие от некоторых ранних языков программирования, язык Си не имеет прямой поддержки произвольного доступа к файлам данных; чтобы считать записанную информацию в середине файла, программисту приходится создавать поток, ищущий в середине файла, а затем последовательно считывать байты из потока.

Потоковая модель файлового ввода-вывода была популяризирована во многом благодаря операционной системе Unix, написанной на языке Си. Большая функциональность современных операционных систем унаследовала потоки от Unix, а многие языки семейства языков программирования Си унаследовали интерфейс файлового ввода-вывода языка Си с небольшими отличиями (например, PHP). Стандартная библиотека C++ отражает потоковую концепцию в своем синтаксисе (iostream).

1.2 Описание алгоритма

Алгоритм работы с программой включает следующую последовательность действий:

— ввод данных с клавиатуры или загрузка из текстового файла;

— получение статистической информации;

— сохранение статистической информации.

Рисунок 1.1 — Обобщенный алгоритм работы программы

2. РАЗРАБОТКА РАБОЧЕГО ПРОЕКТА

2.1 Описание логической структуры

Программа состоит из следующих процедур:

— процедура — обработчик события однократного щелчка мышью по компоненту FileListBox1:

void __fastcall TForm1: FileListBox1Click (TObject *Sender);

— процедура — обработчик события при закрытии формы:

void __fastcall TForm1: FormClose (TObject *Sender, TCloseAction &Action);

— процедура — обработчик события при создании формы:

void __fastcall TForm1: FormCreate (TObject *Sender);

— процедура — обработчик события при однократном щелчке по кнопке «Сохранить как…»:

void __fastcall TForm1: Button2Click (TObject *Sender);

— процедура — обработчик события при однократном щелчке по кнопке «Получить статистические данные»:

void __fastcall TForm1: Button1Click (TObject *Sender).

2.2 Входные данные

Входными данными программы является текстовая информация.

Рисунок 2.1 — Входные данные для обработки

2.3 Выходные данные

Выходными данными являются статистические данные об информации.

Рисунок 2.2 — Результат получения статистической информации

Рисунок 2.3 — Окно сохранения результатов работы

2.4 Вызов и загрузка программы

Программа может быть загружена путем запуска EXE-файла из Windows.

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

3. ТЕСТИРОВАНИЕ ПРОГРАММЫ

C++ Builder — среда быстрой разработки (RAD), выпускаемая компанией CodeGear, дочерней фирмой компании Embarcadero (ранее Borland). Предназначена для написания программ на языке программирования C++. C++ Builder объединяет Библиотеку визуальных компонентов и среду программирования (IDE), написанную на Delphi с компилятором C++. Цикл разработки аналогичен Delphi, но с существенными улучшениями, добавленными в C++ Builder. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но, к сожалению, обратное утверждение не верно.

C++ Builder содержит инструменты, которые позволяют осуществлять настоящую визуальную разработку Windows-приложений методом drag-and-drop, упрощая программирование благодаря WYSIWYG редактору интерфейса, встроенному в его среду разработки.

C++ Builder представляет собой SDI-приложение, главное окно которого содержит настраиваемую инструментальную панель (слева) и палитру компонентов (справа). Помимо этого, по умолчанию при запуске C++ Builder появляются окно инспектора объектов (слева) и форма нового приложения (справа). Под окном формы приложения находится окно редактора кода.

Формы являются основой приложений C++ Builder. Создание пользовательского интерфейса приложения заключается в добавлении в окно формы элементов объектов C++ Builder, называемых компонентами. Компоненты C++ Builder располагаются на палитре компонентов, выполненной в виде многостраничного блокнота. Важная особенность C++ Builder состоит в том, что он позволяет создавать собственные компоненты и настраивать палитру компонентов, а также создавать различные версии палитры компонентов для разных проектов.

Компоненты C++ Builder разделяются на видимые (визуальные) и невидимые (невизуальные). Визуальные компоненты появляются во время выполнения точно так же, как и во время проектирования. Примерами являются кнопки и редактируемые поля. Невизуальные компоненты появляются во время проектирования как пиктограммы на форме. Они никогда не видны во время выполнения, но обладают определенной функциональностью (например, обеспечивают доступ к данным, вызывают стандартные диалоги Windows и др.)

Каждый компонент C++ Builder имеет три разновидности характеристик: свойства, события и методы.

Свойства являются атрибутами компонента, определяющими его внешний вид и поведение. Многие свойства компонента в колонке свойств имеют значение, устанавливаемое по умолчанию (например, высота кнопок). Свойства компонента отображаются на странице свойств (Properties). Инспектор объектов отображает опубликованные (published) свойства компонентов. Помимо published-свойств, компоненты могут и чаще всего имеют общие (public), опубликованные свойства, которые доступны только во время выполнения приложения.

Страница событий (Events) инспектора объектов показывает список событий, распознаваемых компонентом (программирование для операционных систем с графическим пользовательским интерфейсом предполагает описание реакции приложения на те или иные события, а сама операционная система занимается постоянным опросом компьютера с целью выявления наступления какого-либо события). Каждый компонент имеет свой собственный набор обработчиков событий.

Метод является функцией, которая связана с компонентом, и которая объявляется как часть объекта.

4. ВНЕДРЕНИЕ

4.1 Условия выполнения программы

Программа может быть загружена путем запуска EXE-файла из Windows. Пользователю необходимо ввести текстовую информацию или загрузить ее из файла.

4.2 Сообщения оператору

После запуска программы перед пользователем появляется окно программы (рисунок 4.1).

Рисунок 4.1 — Окно программы Все окно программы разделено на две функциональные части:

-«Файл 1» — для открытия текстового файла;

-«Результат» — для отобращения статистической таблицы.

Для получения статистической информации о содержимом файла неоходимо щелкнуть по кнопке «Получить статистические данные».

Рисунок 4.2 — Результат работы программы

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Джерод Холлингворс, Дэн Баттерфилд, Боб Свот C++ Builder 5. Руководство разработчика = C++ Builder 5 Developer’s Guide. — М.: «Диалектика», 2001.

2. Прата Стивен. Язык программирования С. Лекции и упражнения, 5-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2006. — 960 с.: с ил. — Парал. Тит. Англ.

3. Аксёнкин М. А., Целобёнок О. Н. Язык С. — Мн.: Унiверсiтэцкае, 1995. — 302 с.

4. Громов Ю. Ю., Татаренко С. И. Программирование на языке СИ: Учебное пособие. — Тамбов, 1995. 169 с.

5. Мартынов Н. Н. Программирование для Windows на C/C++. — М.: Издательство «БИНОМ», т. 1, 2004; т. 2, 2005

Приложение А

Блок-схема программы

Приложение Б

Текст программы

//—————————————————————————————————————;

#include

#include

#include

#pragma hdrstop

#include «Unit1.h»

//————————————————————————————————————-;

#pragma package (smart_init)

#pragma resource «*.dfm»

TForm1 *Form1;

FILE* F1=0;

FILE* F2=0;

char* path1, *path2;

//—————————————————————————————————————;

__fastcall TForm1: TForm1(TComponent* Owner)

: TForm (Owner)

{ }

//—————————————————————————————————————;

//Открытие файла

void __fastcall TForm1: FileListBox1Click (TObject *Sender)

{

Memo1->Clear ();

if ((F1=fopen (FileListBox1->FileName.c_str (), «r»))==0)

{

Label9->Caption="Ошибка при открытии файла" ;

}

else

{

Label9->Caption=FileListBox1->FileName;

fseek (F1,0,SEEK_SET);

int i=1;

char ch;

Memo1->Lines->LoadFromFile (FileListBox1->FileName.c_str ());

}

fclose (F1);

}

//—————————————————————————————————————;

//Получение статистических данных

void __fastcall TForm1: Button1Click (TObject *Sender)

{

int N=10;

N=Memo1->Text.Length ();

int i;

for (i=0; i<65; i++)

StringGrid1->Cells[1][i]='0';

StringGrid1->Cells[1][0]=IntToStr (N);

for (i=1; i<=N; i++)

{

switch (Memo1->Text[i])

{

case 'A':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][6]=IntToStr (StrToInt (StringGrid1->Cells[1][6])+1);

}; break;

case 'a':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][6]=IntToStr (StrToInt (StringGrid1->Cells[1][6])+1);

}; break;

case 'B':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][7]=IntToStr (StrToInt (StringGrid1->Cells[1][7])+1);

}; break;

case 'b':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][7]=IntToStr (StrToInt (StringGrid1->Cells[1][7])+1);

}; break;

case 'C':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][8]=IntToStr (StrToInt (StringGrid1->Cells[1][8])+1);

}; break;

case 'c':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][8]=IntToStr (StrToInt (StringGrid1->Cells[1][8])+1);

}; break;

case 'D':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][9]=IntToStr (StrToInt (StringGrid1->Cells[1][9])+1);

}; break;

case 'd':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][9]=IntToStr (StrToInt (StringGrid1->Cells[1][9])+1);

}; break;

case 'E':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][10]=IntToStr (StrToInt (StringGrid1->Cells[1][10])+1);

}; break;

case 'e':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][10]=IntToStr (StrToInt (StringGrid1->Cells[1][10])+1);

}; break;

case 'F':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][11]=IntToStr (StrToInt (StringGrid1->Cells[1][11])+1);

}; break;

case 'f':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][11]=IntToStr (StrToInt (StringGrid1->Cells[1][11])+1);

}; break;

case 'G':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][12]=IntToStr (StrToInt (StringGrid1->Cells[1][12])+1);

}; break;

case 'g':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][12]=IntToStr (StrToInt (StringGrid1->Cells[1][12])+1);

}; break;

case 'H':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][13]=IntToStr (StrToInt (StringGrid1->Cells[1][13])+1);

}; break;

case 'h':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][13]=IntToStr (StrToInt (StringGrid1->Cells[1][13])+1);

}; break;

case 'I':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][14]=IntToStr (StrToInt (StringGrid1->Cells[1][14])+1);

}; break;

case 'i':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][14]=IntToStr (StrToInt (StringGrid1->Cells[1][14])+1);

}; break;

case 'J':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][15]=IntToStr (StrToInt (StringGrid1->Cells[1][15])+1);

}; break;

case 'j':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][15]=IntToStr (StrToInt (StringGrid1->Cells[1][15])+1);

}; break;

case 'K':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][16]=IntToStr (StrToInt (StringGrid1->Cells[1][16])+1);

}; break;

case 'k':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][16]=IntToStr (StrToInt (StringGrid1->Cells[1][16])+1);

}; break;

case 'L':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][17]=IntToStr (StrToInt (StringGrid1->Cells[1][17])+1);

}; break;

case 'l':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][17]=IntToStr (StrToInt (StringGrid1->Cells[1][17])+1);

}; break;

case 'M':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][18]=IntToStr (StrToInt (StringGrid1->Cells[1][18])+1);

}; break;

case 'm':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][18]=IntToStr (StrToInt (StringGrid1->Cells[1][18])+1);

}; break;

case 'N':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][19]=IntToStr (StrToInt (StringGrid1->Cells[1][19])+1);

}; break;

case 'n':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][19]=IntToStr (StrToInt (StringGrid1->Cells[1][19])+1);

}; break;

case 'O':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][20]=IntToStr (StrToInt (StringGrid1->Cells[1][20])+1);

}; break;

case 'o':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][20]=IntToStr (StrToInt (StringGrid1->Cells[1][20])+1);

}; break;

case 'P':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][21]=IntToStr (StrToInt (StringGrid1->Cells[1][21])+1);

}; break;

case 'p':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][21]=IntToStr (StrToInt (StringGrid1->Cells[1][21])+1);

}; break;

case 'Q':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][22]=IntToStr (StrToInt (StringGrid1->Cells[1][22])+1);

}; break;

case 'q':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][22]=IntToStr (StrToInt (StringGrid1->Cells[1][22])+1);

}; break;

case 'R':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][23]=IntToStr (StrToInt (StringGrid1->Cells[1][23])+1);

}; break;

case 'r':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][23]=IntToStr (StrToInt (StringGrid1->Cells[1][23])+1);

}; break;

case 'S':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][24]=IntToStr (StrToInt (StringGrid1->Cells[1][24])+1);

}; break;

case 's':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][24]=IntToStr (StrToInt (StringGrid1->Cells[1][24])+1);

}; break;

case 'T':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][25]=IntToStr (StrToInt (StringGrid1->Cells[1][25])+1);

}; break;

case 't':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][25]=IntToStr (StrToInt (StringGrid1->Cells[1][25])+1);

}; break;

case 'U':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][26]=IntToStr (StrToInt (StringGrid1->Cells[1][26])+1);

}; break;

case 'u':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][26]=IntToStr (StrToInt (StringGrid1->Cells[1][26])+1);

}; break;

case 'V':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][27]=IntToStr (StrToInt (StringGrid1->Cells[1][27])+1);

}; break;

case 'v':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][27]=IntToStr (StrToInt (StringGrid1->Cells[1][27])+1);

}; break;

case 'W':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][28]=IntToStr (StrToInt (StringGrid1->Cells[1][28])+1);

}; break;

case 'w':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][28]=IntToStr (StrToInt (StringGrid1->Cells[1][28])+1);

}; break;

case 'X':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][29]=IntToStr (StrToInt (StringGrid1->Cells[1][29])+1);

}; break;

case 'x':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][29]=IntToStr (StrToInt (StringGrid1->Cells[1][29])+1);

}; break;

case 'Y':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][30]=IntToStr (StrToInt (StringGrid1->Cells[1][30])+1);

}; break;

case 'y':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][30]=IntToStr (StrToInt (StringGrid1->Cells[1][30])+1);

}; break;

case 'Z':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][31]=IntToStr (StrToInt (StringGrid1->Cells[1][31])+1);

}; break;

case 'z':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][31]=IntToStr (StrToInt (StringGrid1->Cells[1][31])+1);

}; break;

case 'А':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][32]=IntToStr (StrToInt (StringGrid1->Cells[1][32])+1);

}; break;

case 'а':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][32]=IntToStr (StrToInt (StringGrid1->Cells[1][32])+1);

}; break;

case 'Б':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][33]=IntToStr (StrToInt (StringGrid1->Cells[1][33])+1);

}; break;

case 'б':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][33]=IntToStr (StrToInt (StringGrid1->Cells[1][33])+1);

}; break;

case 'В':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][34]=IntToStr (StrToInt (StringGrid1->Cells[1][34])+1);

}; break;

case 'в':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][34]=IntToStr (StrToInt (StringGrid1->Cells[1][34])+1);

}; break;

case 'Г':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][35]=IntToStr (StrToInt (StringGrid1->Cells[1][35])+1);

}; break;

case 'г':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][35]=IntToStr (StrToInt (StringGrid1->Cells[1][35])+1);

}; break;

case 'Д':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][36]=IntToStr (StrToInt (StringGrid1->Cells[1][36])+1);

}; break;

case 'д':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][36]=IntToStr (StrToInt (StringGrid1->Cells[1][36])+1);

}; break;

case 'Е':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][37]=IntToStr (StrToInt (StringGrid1->Cells[1][37])+1);

}; break;

case 'е':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][37]=IntToStr (StrToInt (StringGrid1->Cells[1][37])+1);

}; break;

case 'Ё':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][38]=IntToStr (StrToInt (StringGrid1->Cells[1][38])+1);

}; break;

case 'ё':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][38]=IntToStr (StrToInt (StringGrid1->Cells[1][38])+1);

}; break;

case 'Ж':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][39]=IntToStr (StrToInt (StringGrid1->Cells[1][39])+1);

}; break;

case 'ж':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][39]=IntToStr (StrToInt (StringGrid1->Cells[1][39])+1);

}; break;

case 'З':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][40]=IntToStr (StrToInt (StringGrid1->Cells[1][40])+1);

}; break;

case 'з':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][40]=IntToStr (StrToInt (StringGrid1->Cells[1][40])+1);

}; break;

case 'И':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][41]=IntToStr (StrToInt (StringGrid1->Cells[1][41])+1);

}; break;

case 'и':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][41]=IntToStr (StrToInt (StringGrid1->Cells[1][41])+1);

}; break;

case 'Й':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][42]=IntToStr (StrToInt (StringGrid1->Cells[1][42])+1);

}; break;

case 'й':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][42]=IntToStr (StrToInt (StringGrid1->Cells[1][42])+1);

}; break;

case 'К':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][43]=IntToStr (StrToInt (StringGrid1->Cells[1][43])+1);

}; break;

case 'к':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][43]=IntToStr (StrToInt (StringGrid1->Cells[1][43])+1);

}; break;

case 'Л':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][44]=IntToStr (StrToInt (StringGrid1->Cells[1][44])+1);

}; break;

case 'л':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][44]=IntToStr (StrToInt (StringGrid1->Cells[1][44])+1);

}; break;

case 'М':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][45]=IntToStr (StrToInt (StringGrid1->Cells[1][45])+1);

}; break;

case 'м':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][45]=IntToStr (StrToInt (StringGrid1->Cells[1][45])+1);

}; break;

case 'Н':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][46]=IntToStr (StrToInt (StringGrid1->Cells[1][46])+1);

}; break;

case 'н':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][46]=IntToStr (StrToInt (StringGrid1->Cells[1][46])+1);

}; break;

case 'О':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][47]=IntToStr (StrToInt (StringGrid1->Cells[1][47])+1);

}; break;

case 'о':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][47]=IntToStr (StrToInt (StringGrid1->Cells[1][47])+1);

}; break;

case 'П':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][48]=IntToStr (StrToInt (StringGrid1->Cells[1][48])+1);

}; break;

case 'п':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][48]=IntToStr (StrToInt (StringGrid1->Cells[1][48])+1);

}; break;

case 'Р':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][49]=IntToStr (StrToInt (StringGrid1->Cells[1][49])+1);

}; break;

case 'р':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][49]=IntToStr (StrToInt (StringGrid1->Cells[1][49])+1);

}; break;

case 'С':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][50]=IntToStr (StrToInt (StringGrid1->Cells[1][50])+1);

}; break;

case 'с':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][50]=IntToStr (StrToInt (StringGrid1->Cells[1][50])+1);

}; break;

case 'Т':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][51]=IntToStr (StrToInt (StringGrid1->Cells[1][51])+1);

}; break;

case 'т':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][51]=IntToStr (StrToInt (StringGrid1->Cells[1][51])+1);

}; break;

case 'У':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][52]=IntToStr (StrToInt (StringGrid1->Cells[1][52])+1);

}; break;

case 'у':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][52]=IntToStr (StrToInt (StringGrid1->Cells[1][52])+1);

}; break;

case 'Ф':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][53]=IntToStr (StrToInt (StringGrid1->Cells[1][53])+1);

}; break;

case 'ф':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][53]=IntToStr (StrToInt (StringGrid1->Cells[1][53])+1);

}; break;

case 'Х':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][54]=IntToStr (StrToInt (StringGrid1->Cells[1][54])+1);

}; break;

case 'х':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][54]=IntToStr (StrToInt (StringGrid1->Cells[1][54])+1);

}; break;

case 'Ц':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][55]=IntToStr (StrToInt (StringGrid1->Cells[1][55])+1);

}; break;

case 'ц':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][55]=IntToStr (StrToInt (StringGrid1->Cells[1][55])+1);

}; break;

case 'Ч':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][56]=IntToStr (StrToInt (StringGrid1->Cells[1][56])+1);

}; break;

case 'ч':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][56]=IntToStr (StrToInt (StringGrid1->Cells[1][56])+1);

}; break;

case 'Ш':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][57]=IntToStr (StrToInt (StringGrid1->Cells[1][57])+1);

}; break;

case 'ш':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][57]=IntToStr (StrToInt (StringGrid1->Cells[1][57])+1);

}; break;

case 'Щ':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][58]=IntToStr (StrToInt (StringGrid1->Cells[1][58])+1);

}; break;

case 'щ':

{

StringGrid1->Cells[1][2]=IntToStr (StrToInt (StringGrid1->Cells[1][2])+1);

StringGrid1->Cells[1][58]=IntToStr (StrToInt (StringGrid1->Cells[1][58])+1);

}; break;

case 'ь':

{

StringGrid1->Cells[1][59]=IntToStr (StrToInt (StringGrid1->Cells[1][59])+1);

}; break;

case 'Ь':

{

StringGrid1->Cells[1][59]=IntToStr (StrToInt (StringGrid1->Cells[1][59])+1);

}; break;

case 'Ы':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][60]=IntToStr (StrToInt (StringGrid1->Cells[1][60])+1);

}; break;

case 'ы':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][60]=IntToStr (StrToInt (StringGrid1->Cells[1][60])+1);

}; break;

case 'ъ':

{

StringGrid1->Cells[1][61]=IntToStr (StrToInt (StringGrid1->Cells[1][61])+1);

}; break;

case 'Ъ':

{

StringGrid1->Cells[1][61]=IntToStr (StrToInt (StringGrid1->Cells[1][61])+1);

}; break;

case 'Э':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][62]=IntToStr (StrToInt (StringGrid1->Cells[1][62])+1);

}; break;

case 'э':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][62]=IntToStr (StrToInt (StringGrid1->Cells[1][62])+1);

}; break;

case 'Ю':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][63]=IntToStr (StrToInt (StringGrid1->Cells[1][63])+1);

}; break;

case 'ю':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][63]=IntToStr (StrToInt (StringGrid1->Cells[1][63])+1);

}; break;

case 'Я':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][64]=IntToStr (StrToInt (StringGrid1->Cells[1][64])+1);

}; break;

case 'я':

{

StringGrid1->Cells[1][1]=IntToStr (StrToInt (StringGrid1->Cells[1][1])+1);

StringGrid1->Cells[1][64]=IntToStr (StrToInt (StringGrid1->Cells[1][64])+1);

}; break;

case ' ':

{

StringGrid1->Cells[1][3]=IntToStr (StrToInt (StringGrid1->Cells[1][3])+1);

}; break;

case '.':

{

StringGrid1->Cells[1][4]=IntToStr (StrToInt (StringGrid1->Cells[1][4])+1);

}; break;

case ',':

{

StringGrid1->Cells[1][4]=IntToStr (StrToInt (StringGrid1->Cells[1][4])+1);

}; break;

case ';':

{

StringGrid1->Cells[1][4]=IntToStr (StrToInt (StringGrid1->Cells[1][4])+1);

}; break;

default: StringGrid1->Cells[1][5]=IntToStr (StrToInt (StringGrid1->Cells[1][5])+1);

}

}

for (i=5; i<65; i++)

{

if (StrToInt (StringGrid1->Cells[1][i])≠0)

{

if ((StrToInt (StringGrid1->Cells[1][i])/N)<=0.05)

StringGrid1->Cells[2][i]="-" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>5)

StringGrid1->Cells[2][i]="**" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>=10)

StringGrid1->Cells[2][i]="****" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>=20)

StringGrid1->Cells[2][i]="******" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>=30)

StringGrid1->Cells[2][i]="********" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>=40)

StringGrid1->Cells[2][i]="**********" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>=50)

StringGrid1->Cells[2][i]="************" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>=60)

StringGrid1->Cells[2][i]="**************" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>=70)

StringGrid1->Cells[2][i]="****************" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>=80)

StringGrid1->Cells[2][i]="******************" ;

if ((100*StrToInt (StringGrid1->Cells[1][i])/N)>=90)

StringGrid1->Cells[2][i]="********************" ;

}

}

}

//—————————————————————————————————————;

void __fastcall TForm1: FormClose (TObject *Sender, TCloseAction &Action)

{

fclose (F1);

fclose (F2);

}

//—————————————————————————————————————;

//Настройка параметров компонентов

void __fastcall TForm1: FormCreate (TObject *Sender)

{

StringGrid1->ColCount=3;

StringGrid1->RowCount=65;

StringGrid1->ColWidths[0]=320;

StringGrid1->ColWidths[1]=60;

StringGrid1->ColWidths[2]=200;

StringGrid1->Cells[0][0]="Общее количество гласных в файле" ;

StringGrid1->Cells[0][1]="Количество гласных" ;

StringGrid1->Cells[0][2]="Количество согласных" ;

StringGrid1->Cells[0][3]="Количество пробелов «;

StringGrid1->Cells[0][4]="Количество знаков препинания" ;

StringGrid1->Cells[0][5]="Количество прочих символов" ;

StringGrid1->Cells[0][6]="Количество букв A, а (лат.)" ;

StringGrid1->Cells[0][7]=" Количество букв B, b (лат.)" ;

StringGrid1->Cells[0][8]=" Количество букв C, c (лат.)" ;

StringGrid1->Cells[0][9]=" Количество букв D, d (лат.)" ;

StringGrid1->Cells[0][10]=" Количество букв E, e (лат.)" ;

StringGrid1->Cells[0][11]=" Количество букв F, f (лат.)" ;

StringGrid1->Cells[0][12]=" Количество букв G, g (лат.)" ;

StringGrid1->Cells[0][13]=" Количество букв H, h (лат.)" ;

StringGrid1->Cells[0][14]=" Количество букв I, i (лат.)" ;

StringGrid1->Cells[0][15]=" Количество букв J, j (лат.)" ;

StringGrid1->Cells[0][16]=" Количество букв K, k (лат.)" ;

StringGrid1->Cells[0][17]=" Количество букв L, l (лат.)" ;

StringGrid1->Cells[0][18]=" Количество букв M, m (лат.)" ;

StringGrid1->Cells[0][19]=" Количество букв N, n (лат.)" ;

StringGrid1->Cells[0][20]=" Количество букв O, o (лат.)" ;

StringGrid1->Cells[0][21]=" Количество букв P, p (лат.)" ;

StringGrid1->Cells[0][22]=" Количество букв Q, q (лат.)" ;

StringGrid1->Cells[0][23]=" Количество букв R, r (лат.)" ;

StringGrid1->Cells[0][24]=" Количество букв S, s (лат.)" ;

StringGrid1->Cells[0][25]=" Количество букв T, t (лат.)" ;

StringGrid1->Cells[0][26]=" Количество букв U, u (лат.)" ;

StringGrid1->Cells[0][27]=" Количество букв V, v (лат.)" ;

StringGrid1->Cells[0][28]=" Количество букв W, w (лат.)" ;

StringGrid1->Cells[0][29]=" Количество букв X, x (лат.)" ;

StringGrid1->Cells[0][30]=" Количество букв Y, y (лат.)" ;

StringGrid1->Cells[0][31]=" Количество букв Z, z (лат.)" ;

StringGrid1->Cells[0][32]=" Количество букв А, а (кирил.)" ;

StringGrid1->Cells[0][33]=" Количество букв Б, б (кирил.)" ;

StringGrid1->Cells[0][34]=" Количество букв В, в (кирил.)" ;

StringGrid1->Cells[0][35]=" Количество букв Г, г (кирил.)" ;

StringGrid1->Cells[0][36]=" Количество букв Д, д (кирил.)" ;

StringGrid1->Cells[0][37]=" Количество букв Е, е (кирил.)" ;

StringGrid1->Cells[0][38]=" Количество букв Ё, ё (кирил.)" ;

StringGrid1->Cells[0][39]=" Количество букв Ж, ж (кирил.)" ;

StringGrid1->Cells[0][40]=" Количество букв З, з (кирил.)" ;

StringGrid1->Cells[0][41]=" Количество букв И, и (кирил.)" ;

StringGrid1->Cells[0][42]=" Количество букв Й, й (кирил.)" ;

StringGrid1->Cells[0][43]=" Количество букв К, к (кирил.)" ;

StringGrid1->Cells[0][44]=" Количество букв Л, л (кирил.)" ;

StringGrid1->Cells[0][45]=" Количество букв М, м (кирил.)" ;

StringGrid1->Cells[0][46]=" Количество букв Н, н (кирил.)" ;

StringGrid1->Cells[0][47]=" Количество букв О, о (кирил.)" ;

StringGrid1->Cells[0][48]=" Количество букв П, п (кирил.)" ;

StringGrid1->Cells[0][49]=" Количество букв Р, р (кирил.)" ;

StringGrid1->Cells[0][50]=" Количество букв С, с (кирил.)" ;

StringGrid1->Cells[0][51]=" Количество букв Т, т (кирил.)" ;

StringGrid1->Cells[0][52]=" Количество букв У, у (кирил.)" ;

StringGrid1->Cells[0][53]=" Количество букв Ф, ф (кирил.)" ;

StringGrid1->Cells[0][54]=" Количество букв Х, х (кирил.)" ;

StringGrid1->Cells[0][55]=" Количество букв Ц, ц (кирил.)" ;

StringGrid1->Cells[0][56]=" Количество букв Ч, ч (кирил.)" ;

StringGrid1->Cells[0][57]=" Количество букв Ш, ш (кирил.)" ;

StringGrid1->Cells[0][58]=" Количество букв Щ, щ (кирил.)" ;

StringGrid1->Cells[0][59]=" Количество букв Ь, ь (кирил.)" ;

StringGrid1->Cells[0][60]=" Количество букв Ы, ы (кирил.)" ;

StringGrid1->Cells[0][61]=" Количество букв Ъ, ъ (кирил.)" ;

StringGrid1->Cells[0][62]=" Количество букв Э, э (кирил.)" ;

StringGrid1->Cells[0][63]=" Количество букв Ю, ю (кирил.)" ;

StringGrid1->Cells[0][64]=" Количество букв Я, я (кирил.)" ;

int i;

for (i=0; i<65; i++)

StringGrid1->Cells[1][i]='0';

}

//—————————————————————————————————————;

//Сохранение статистических данных в файле

void __fastcall TForm1: Button2Click (TObject *Sender)

{

int i;

if (SaveDialog1->Execute ())

{

F2=fopen (SaveDialog1->FileName.c_str ()," w+");

for (i=0;i<65;i++)

{

fputs (StringGrid1->Cells[0][i]. c_str (), F2);

fputs (««, F2);

fputs (StringGrid1->Cells[1][i]. c_str (), F2);

fputs («n», F2);

}

}

fclose (F2);

}

//—————————————————————————————————————;

Приложение В

Результаты выполнения программы

Показать весь текст
Заполнить форму текущей работой