- •Оглавление
- •Введение
- •2.Константы
- •3.Типы данных
- •3.1.Простые типы данных
- •3.1.1.Арифметические
- •3.1.2.Указатели
- •3.2.Структурированные типы данных
- •3.2.1.Массив
- •3.2.2.Строка
- •3.2.3.Структура
- •3.2.4.Объединение
- •3.2.5.Класс
- •3.2.6.Тип данных AnsiString
- •4.Операции
- •4.1.Арифметические операции и присваивание
- •4.2.Операции отношения
- •4.3.Логические операции
- •4.9.Приоритет операций
- •5.Операторы
- •5.1.Безусловные операторы break, return, cotinue
- •5.2.Оператор условия if
- •5.3.Оператор выбора switch
- •5.4.Оператор цикла for
- •5.5.Оператор цикла while
- •5.6.Оператор цикла do while
- •6.Функции
- •7.Hекоторые стандартные функции
- •7.1.Математические функции
- •7.1.1.Арифметические и алгебраические функции
- •7.1.2.Тригонометрические функции
- •7.2.Функции ввода – вывода для консольных приложений
- •7.3.Функции ввода – вывода для работы с файлами.
- •7.4.Функции для работы со строками
- •7.4.1.Функции преобразования строк и чисел
- •7.4.2.Функции обработки строк
- •8.1.Интерфейс
- •8.2.Работа с проектами
- •8.2.1.Файлы проекта
- •8.2.2.Работа с проектом приложения Windows
- •8.2.3.Работа с проектом консольного приложения
- •8.2.4.Создание и подключение модуля
- •8.2.5.Компиляция и выполнение проекта
- •8.3.Компоненты
- •8.3.1.Работа с компонентами
- •8.3.2.Описание некоторых компонентов
- •8.3.3.Некоторые свойства и события компонентов
- •Список рекомендуемой литературы
- •Приложения
- •Гуров Роман Владимирович
Список рекомендуемой литературы
Павловская, Т.А., Щупак, Ю.А. C/C++. Программирование на языке высокого уровня: структурное программирование: практикум: учеб. для вузов/ Т.А.Павловская, Ю.А.Щупак – М.: Питер, 2002 – 238 с.
Прата, С. Язык программирования C++: Лекции и упражнения: учеб.: [пер.с англ.] С. Прата – Киев: ДиаСофт, 2001 – 636 с.
Культин, Н.Б. Самоучитель С++ Builder./ Н.Б.Культин. – Спб.: БХВ-Петербург, 2004 – 320 с.
Культин, Н.Б. C/C++ в задачах и примерах./ Н.Б.Культин – СПб. и др.: BHV-Санкт-Петербуг,2001. – 281 с.
Архангельский, А.Я. Интегрированная среда разработки С++Builder 5./ А.Я. Архангельский – М.: Бином, 2000 – 272 с.
Приложения
Приложение 1
Консольная программа для поиска минимального элемента в массиве и вывода его значения на экран и в файл.
//Список подключенных файлов описаний библиотеки С:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
//--------------------------------
#pragma hdrstop
#pragma argsused
//Объявление функций пользователя:
int min(float *M); //Определение минимального элемента
char* rus(char* st); //Перекодировка строки ANSI в ASCII
//--------------------------------
//Главная функция:
int main(int argc, char* argv[])
{
FILE *fp; //указатель на файл
int i, k, n;
float mass [5], min_zn;
unsigned char *str1; //Указатель на строку
printf(rus("Введите 5 элементов массива:\n"));
str1=rus("\n Элемент %d: ");
//Прекодировка строки приглашения ввода элемента массива
for (i=0;i<5;i++) //Цикл ввода элементов массива
{
printf (str1, i+1); //Печать приглашения
scanf ("%f",&mass[i]); //Ввод i-го элемента
}
k = min(mass); //Вызов функции min.
//В k записывается номер минимального элемента
min_zn=mass[k]; //В min_zn записывается значение
//минимального элемента
Продолжение приложения 1
printf(rus("Минимальное значение min=%f"),min_zn);
//Вывод на экран минимального значения min_zn
fp=fopen("rezult.txt","wt");
//Создание и открытие файла rezult.txt
fprintf(fp, rus("Минимальное значение равно %f"),min_zn);
// Запись минимального значения в файл
fclose(fp); //Закрытие файла
printf(rus("\n Результат выведен в файл rezult.txt"));
//Вывод на экран сообщения
getche();
return 0;
}
//--------------------------------------------------
//Определение функций пользователя
//Функция поиска минимального элемента в массиве.
//В функцию передается адрес массива М,
// возвращает номер минимального элемента
int min(float *M)
{int i, num=0;
//i - счетчик,
//num - номер минимального элемента
//(предполагаем, что минимальный элемент №0)
for (i=1;i<5;i++) //цикл перебора массива М
{
if (M[num]>M[i]) num = i;
//Если минимальный элемент (№ num) больше
//другого элемента массива (№ i), то номер
//минимального элемента будет i.
}
return num; //Возвращает значение num
}
Окончание приложения 1
//Функция перекодировки строки ANSI в ASCII.
//В функцию передается указатель на строку (строка),
// возвращает указатель на перекодированную строку
char* rus(char* st)
{
unsigned char* p = st;
while (*p) //Пока не достигнут конец строкии...
{
if (*p>=192) //Если код больше или равен 192...
{
if (*p<=239) *p-=64; //...и меньше или равен 239, то из кода
// вычитается 64...
else *p-=16; //иначе вычитается 16.
}
p++; //Следующая буква
}
return st; //Возвращается указатель на строку.
}
Вид окна программы представлен на рисунке.
Приложение 2
Windows–программа для поиска минимального элемента в массиве и вывода его значения на экран и в файл.
Представлен только файл Unit1.cpp.
//Подключение библиотек
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
//--------------------------------
#pragma hdrstop
#include "Unit1.h"
//---------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------
int num; //глобальная переменная
//---------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{ }
//---------------------------------
//Функция, выполняемая в момент запуска приложения
//Заполняет заголовки таблицы компонента StringGrid
//(событие OnCreate формы)
void __fastcall TForm1::FormCreate(TObject *Sender)
{
StringGrid1->Cells[0][0]="№ Элем-а";
StringGrid1->Cells[0][1]="Значение";
StringGrid1->Cells[1][0]="1";
StringGrid1->Cells[2][0]="2";
StringGrid1->Cells[3][0]="3";
StringGrid1->Cells[4][0]="4";
StringGrid1->Cells[5][0]="5";
}
Продолжение приложения 2
//---------------------------------
//Функция обрабатывает нажатие на кнопку
//«Поиск минимального значения» (событие OnClick кнопки)
void __fastcall TForm1::Button1Click(TObject *Sender)
{float min; //Хранение минимального значения
int i; //Счетчик
num = 1; //Номер ячейки с минимальным значением
min = StrToFloat(StringGrid1->Cells[1][1]);
//Записываем в переменную min значение из
//ячейки (2;2) компонента StringGrid
for (i=2;i<=5;i++)
{ if (min>StrToFloat(StringGrid1->Cells[i][1]))
//Если минимальный элемент (min) больше
//другого элемента массива (№ i), то...
{ min = StrToFloat(StringGrid1->Cells[i][1]);
//...присваиваем новое значение минимума,
num = i; //...новый номер минимального элемента будет i.
}
}
Edit1->Text=StringGrid1->Cells[num][1];
//Выводим минимальное значение
Button2->Enabled = true; //Разблокируем кнопку записи в файл
}
//---------------------------------
//Функция обрабатывает нажатие на кнопку
//«Сохранить в файл» (событие OnClick кнопки)
void __fastcall TForm1::Button2Click(TObject *Sender)
{
FILE *fp;
if (SaveDialog1->Execute())
{fp=fopen(SaveDialog1->FileName.c_str(),"wt");
fprintf (fp,"Минимальное значение равно %s",
StringGrid1->Cells[num][1].c_str());
fclose(fp);
} }
Продолжение приложения 2
//---------------------------------
//Функция блокирует кнопку сохранения в файл при вводе
//данных в таблицу (событие OnEnter компонента StringGrid)
void __fastcall TForm1::StringGrid1Enter(TObject *Sender)
{
Button2->Enabled=false;
}
На рисунках представлены вид окна программы при разработке и после запуска, ввода данных и нажатия кнопки «Найти минимальное значение».
Окончание приложения 2
Для этой программы использовались следующие компоненты:
Label1 и Label2 – вывод поясняющих сообщений на форме;
Edit1 – вывод результата (минимального значения);
StringGrid1 – ввод данных в массив;
Button1 и Button2 – кнопки «Найти минимальный элемент» и «Сохранить в файл».
В компоненте Edit1 блокируется ввод данных с клавиатуры (свойство ReadOnly устанавливается в true), и начальное значение задается как пустая строка (удаляется надпись в свойстве Text).
В компоненте StringGrid1 задается количество строк, равное 2, и столбцов, равное 6 (свойства RowCount и ColCount соответственно), разрешается редактирование данных (свойство goEditing устанавливается в true) и переход по таблице с помощью клавиши Tab (свойство goTabs устанавливается в true).
В компоненте Button2 (кнопка «Сохранить в файл») блокируется нажатие кнопки (свойство Enabled устанавливается в false).
Программирование и основы алгоритмизации: справочные материалы для выполнения лабораторных работ, практических занятий и курсовых работ для студентов всех форм обучения специальностей 151002 – «Металлообрабатывающие станки и комплексы», 151003 – «Инструментальные системы машиностроительных производств», 220301 - «Автоматизация технологических процессов и производств»