Обработка статистических данных по файлу
Описание решения задачи, ее постановка, общий подход к решению. Представление исходных данных, условий задачи и целей ее решения. Составление алгоритма решения поставленной задачи. Написание программного обеспечения и тестирование конечного продукта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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
Подобные документы
Проектирование программного модуля. Описание схемы программы и структуры разрабатываемого пакета. Написание кода ввода исходных данных и основных расчетов. Тестирование программного модуля. Тестирование решения задачи. Методы численного интегрирования.
курсовая работа [549,9 K], добавлен 20.03.2014Составление программы, с помощью которой пользователь может получать статистические сведения о текстовой информации. Для разработки программы использовался язык С++ и среда программирования Borland C++ Builder 6. Постановка задачи и описание ее решения.
курсовая работа [1,6 M], добавлен 03.07.2011Теоретические сведения, касающиеся метода. Алгоритм решения задачи. Обоснование выбора структур данных. Программа. Тестирование программы. Создание программного продукта, находящего решения головоломки "Y-пентамино".
курсовая работа [55,9 K], добавлен 08.06.2006Транспортная задача как одна из самых распространенных специальных задач линейного программирования: понятие, основное назначение. Формальное описание метода минимального элемента. Характеристика этапов разработки алгоритма решения поставленной задачи.
курсовая работа [713,3 K], добавлен 19.10.2012Анализ входной информации необходимой для решения задачи. Разработка исходных данных контрольного примера создания базы данных. Описание технологии и алгоритмов решения задачи и их математических реализаций. Разработка диалогов приложения пользователя.
курсовая работа [1,3 M], добавлен 26.04.2015Обзор методов и подходов решения поставленной задачи аппроксимации логического вывода экспертной системы. Разработка и описание метода сетевого оператора для решения данной задачи. Разработка алгоритма решения. Проведение вычислительного эксперимента.
дипломная работа [1,5 M], добавлен 23.02.2015Описание алгоритма решения транспортной задачи по планированию перевозки зерна. Ход решения задачи вручную, в программе TORA методом наименьшего элемента, с помощью MS Excel. Разработка программы для решения задачи в общем виде средствами Delphi.
курсовая работа [2,5 M], добавлен 22.11.2012Постановка задачи и математическое описание ее решения. Назначение программного обеспечения. Описание принятых идентификаторов. Выбор языка программирования и написание программы на входном языке. Методика отладки программы и проведение ее тестирования.
курсовая работа [96,1 K], добавлен 25.06.2013Комплексное функциональное и структурное тестирование программного продукта - граф-программа решения квадратного уравнения. Постановка задачи структурного тестирования маршрутов. Заключение о типе и причине ошибки, предложение по ее исправлению.
курсовая работа [2,8 M], добавлен 05.01.2013Характеристика задачи АВ01, ее выходная и входная информация, выбор и обоснование состава технических средств и средств программной реализации. Разработка алгоритма и программы решения задачи АВ01, руководства пользователя и контрольный пример решения.
курсовая работа [2,1 M], добавлен 21.12.2011