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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 03.07.2011
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Курсовая работа

Тема:

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

Введение

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

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

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

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

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

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

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

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

алгоритм программа задача

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

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

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

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

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

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

Потоковая модель файлового ввода-вывода была популяризирована во многом благодаря операционной системе 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 <vcl.h>

#include <stdio.h>

#include <io.h>

#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= «Ioeaea i?e ioe?uoee oaeea»;

}

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 'A':

{

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

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

}; break;

case 'a':

{

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

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

}; break;

case 'A':

{

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

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

}; break;

case 'a':

{

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

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

}; break;

case 'A':

{

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

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

}; break;

case 'a':

{

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

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

}; break;

case 'A':

{

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

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

}; break;

case 'a':

{

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

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

}; break;

case 'A':

{

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

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

}; break;

case 'a':

{

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

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

}; break;

case 'A':

{

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

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

}; break;

case 'a':

{

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 'C':

{

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

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

}; break;

case 'c':

{

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

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

}; break;

case 'E':

{

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

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

}; break;

case 'e':

{

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

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

}; break;

case 'E':

{

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

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

}; break;

case 'e':

{

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

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

}; break;

case 'E':

{

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

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

}; break;

case 'e':

{

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

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

}; break;

case 'E':

{

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

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

}; break;

case 'e':

{

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

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

}; break;

case 'I':

{

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

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

}; break;

case 'i':

{

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

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

}; break;

case 'I':

{

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

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

}; break;

case 'i':

{

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

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

}; break;

case 'I':

{

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

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

}; break;

case 'i':

{

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

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

}; break;

case 'I':

{

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

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

}; break;

case 'i':

{

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 'N':

{

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

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

}; break;

case 'n':

{

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

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

}; break;

case 'O':

{

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

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

}; break;

case 'o':

{

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

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

}; break;

case 'O':

{

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

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

}; break;

case 'o':

{

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

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

}; break;

case 'O':

{

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

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

}; break;

case 'o':

{

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

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

}; break;

case 'O':

{

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

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

}; break;

case 'o':

{

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

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

}; break;

case 'O':

{

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

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

}; break;

case 'o':

{

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 'O':

{

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

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

}; break;

case 'o':

{

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

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

}; break;

case 'U':

{

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

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

}; break;

case 'u':

{

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

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

}; break;

case 'u':

{

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

}; break;

case 'U':

{

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

}; break;

case 'U':

{

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

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

}; break;

case 'u':

{

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

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

}; break;

case 'u':

{

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

}; break;

case 'U':

{

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

}; break;

case 'Y':

{

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

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

}; break;

case 'y':

{

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 'y':

{

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, 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 (eao.)»;

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]=» Количество букв A, a (кирил.)»;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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);

}

 // -

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.