Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пр и Осн Алг(Спр).doc
Скачиваний:
6
Добавлен:
22.09.2019
Размер:
549.89 Кб
Скачать

Список рекомендуемой литературы

  1. Павловская, Т.А., Щупак, Ю.А. C/C++. Программирование на языке высокого уровня: структурное программирование: практикум: учеб. для вузов/ Т.А.Павловская, Ю.А.Щупак – М.: Питер, 2002 – 238 с.

  2. Прата, С. Язык программирования C++: Лекции и упражнения: учеб.: [пер.с англ.] С. Прата – Киев: ДиаСофт, 2001 – 636 с.

  3. Культин, Н.Б. Самоучитель С++ Builder./ Н.Б.Культин. – Спб.: БХВ-Петербург, 2004 – 320 с.

  4. Культин, Н.Б. C/C++ в задачах и примерах./ Н.Б.Культин – СПб. и др.: BHV-Санкт-Петербуг,2001. – 281 с.

  5. Архангельский, А.Я. Интегрированная среда разработки С++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 - «Автоматизация технологических процессов и производств»