
- •Міністерство освіти і науки
- •З проходження навчальної практики після третього року навчання
- •Черкаси 2013
- •2.2.1. Постановка задачі та алгоритм вирішення. 17
- •Розділ I. Розробка бд за допомогою скбд Access
- •1.1. Розробка структури бд
- •1.2. Створення таблиць
- •1.3. Предметна область
- •1.3.1 Завдання 1
- •Завдання 2
- •Завдання 3
- •Створення бд
- •2.1. Програмування з використанням рядків, файлів.
- •2.1.1.Постановка задачі та алгоритм вирішення.
- •2.1.2.Лістинг програми.
- •2.1.3.Результати тестування програми.
- •2.2.Програмування з використанням механізму обробки виключних ситуацій
- •2.2.1 Постановка задачі та алгоритм вирішення.
- •2.2.2.Лістинг програми.
- •2.2.3.Результати тестування програми.
- •2.3 Пошук та сортування масивів
- •2.3.1.Постановка задачі та алгоритм вирішення
- •2.4 Об’єктно-орієнтоване програмування
- •2.4.1. Постановка задачі та алгоритм вирішення.
- •2.4.2.Лістинг програми.
- •Висновок
2.1. Програмування з використанням рядків, файлів.
2.1.1.Постановка задачі та алгоритм вирішення.
Умова задачі: Маємо рядок символів, який містить деякий текст. Розробити програму, яка визначає, чи є цей текст паліндромом, тобто читається справа наліво, так само як і зліва направо. ( например, «А роза упала на лапу Азора» є паліндромом).
Для вирішення цієї задачі, необхідно і достатню порівняти засобами середовища програмування символи вхідного тексту, в прямому та реверсивному порядку.
2.1.2.Лістинг програми.
Код програми:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <string>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String TextP;
char P[3]=" ";
int i,ir;
int len;
int NotP=0;
TextP=Edit1->Text;
len=Edit1->Text.Length();
for (i=1;i<=len;i++)
{
if (TextP[i]==P[1])
{
for (ir=i;ir<len;ir++)
{
TextP[ir]=TextP[ir+1];
}
len--;
i--;
}
}
for(i=1,ir=len;i<=len;i++,ir--)
{
if (TextP[i]!=TextP[ir]) {NotP=1; break;}
}
if (NotP==1) Label1->Caption="Текст не є поліндромом.";
else Label1->Caption="Текст поліндром";
}
//---------------------------------------------------------------------------
2.1.3.Результати тестування програми.
Програма тестувалася за допомогою двох паліндромів :”а роза упала на лапу азора”, “я иду съ мечемъ судия” та звичайних речень які не є паліндромами. Тестування було успішно, програма виводить повідомлення чи є висловлення паліндромом чи ні.
2.2.Програмування з використанням механізму обробки виключних ситуацій
2.2.1 Постановка задачі та алгоритм вирішення.
Умова задачі:Створити додаток Windows, який використовує механізм обробки виключних ситуацій, та дозволяє виконувати перевід натурального числа з однієї системи числення в іншу. Для позначення використовувати цифри 0..9 та букви латинського алфавіту.
Забезпечити: Перевід числа з восьмеричної системи числення в шестирічну й п’ятнадцятирічну.
Для вирішення задачі, число переводилося через проміжне його значення в десятирічній системі числення, визначалася остача від ділення числа на дільник системи(6,15), й виводилося на екран в текстове поле.
2.2.2.Лістинг програми.
Вигляд основного коду програми:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
int Nglobal;
int click=0;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BN1Click(TObject *Sender)
{
Nglobal=Nglobal+1*pow(8,click);
click++;
Edit1->Text=Edit1->Text+"1";
Label2->Caption=IntToStr(Nglobal);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BN2Click(TObject *Sender)
{
Nglobal=Nglobal+2*pow(8,click);
click++;
Edit1->Text=Edit1->Text+"2";
Label2->Caption=IntToStr(Nglobal);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BN3Click(TObject *Sender)
{
Nglobal=Nglobal+3*pow(8,click);
click++;
Edit1->Text=Edit1->Text+"3";
Label2->Caption=IntToStr(Nglobal);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BN4Click(TObject *Sender)
{
Nglobal=Nglobal+4*pow(8,click);
click++;
Edit1->Text=Edit1->Text+"4";
Label2->Caption=IntToStr(Nglobal);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BN5Click(TObject *Sender)
{
Nglobal=Nglobal+5*pow(8,click);
click++;
Edit1->Text=Edit1->Text+"5";
Label2->Caption=IntToStr(Nglobal);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BN6Click(TObject *Sender)
{
Nglobal=Nglobal+6*pow(8,click);
click++;
Edit1->Text=Edit1->Text+"6";
Label2->Caption=IntToStr(Nglobal);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BN7Click(TObject *Sender)
{
Nglobal=Nglobal+7*pow(8,click);
click++;
Edit1->Text=Edit1->Text+"7";
Label2->Caption=IntToStr(Nglobal);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BN0Click(TObject *Sender)
{
click++;
Edit1->Text=Edit1->Text+"0";
Label2->Caption=IntToStr(Nglobal);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClearClick(TObject *Sender)
{
click=0;
Nglobal=0;
Edit1->Clear();
Label2->Caption=IntToStr(Nglobal);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::sixClick(TObject *Sender)
{
if (Nglobal==0) ShowMessage("Нулевое значение не подходит для перевода");
else
{
int Temp;
try
{
int Exit=0;
int N=0,N1;
Edit1->Clear();
N1=Nglobal;
for (;Exit==0;)
{
if (N1>=6)
{N=N+N1%6;
Edit1->Text=Edit1->Text+IntToStr(N);
N1=N1/6;
N=0;
}
else
{
Edit1->Text=Edit1->Text+IntToStr(N1);
Exit=1;}
}
Temp=StrToInt(Edit1->Text);
}
catch(EConvertError &) {ShowMessage("Не указано ни одного значения");}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::fiftnClick(TObject *Sender)
{
if (Nglobal==0) ShowMessage("Нулевое значение не подходит для перевода");
else
{
try
{
int N1=0,N=0;
int Exit=0;
int len,i,i2;
char x;
Edit1->Clear();
N1=Nglobal;
for (;Exit==0;)
{
if (N1>=15)
{N=N+N1%15;
if (N<10)
Edit1->Text=Edit1->Text+IntToStr(N);
else
switch (N) {
case 10:{Edit1->Text=Edit1->Text+"A";break;}
case 11:{Edit1->Text=Edit1->Text+"B";break; }
case 12:{Edit1->Text=Edit1->Text+"C";break; }
case 13:{Edit1->Text=Edit1->Text+"D";break; }
case 14:{Edit1->Text=Edit1->Text+"E";break; }
}
N1=N1/15;
N=0;
}
else
{
if (N1<10)
Edit1->Text=Edit1->Text+IntToStr(N1);
else
switch (N1) {
case 10:{Edit1->Text=Edit1->Text+"A";break;}
case 11:{Edit1->Text=Edit1->Text+"B";break; }
case 12:{Edit1->Text=Edit1->Text+"C";break; }
case 13:{Edit1->Text=Edit1->Text+"D";break; }
case 14:{Edit1->Text=Edit1->Text+"E";break; }
}
Exit=1;}
}
}
catch(EConvertError &) {ShowMessage("Не указано ни одного значения");}
}
}
//---------------------------------------------------------------------------