
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::FormCreate(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
- •Void __fastcall tForm1::Button1Click(tObject *Sender)
Void __fastcall tForm1::Button1Click(tObject *Sender)
{
for (i=0;i<n+1;i++)
{Form1->StringGrid2->Cells[0][i]="k=";}
pr=0;
for (i=1;i<n;i++)
for (j=1;j<m;j++)
if (Form1->StringGrid1->Cells[i][j]=="")
pr=1;
b=new int[n];
a=new int*[m];
for(i=0;i<m;i++)
a[i]=new int[n];
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{ tp2=StrToInt(Form1->StringGrid1->Cells[j+1][i+1]);
a[i][j]=tp2;
{
tp1=a[i][j];
}
}
for (i=0;i<m;i++)
{
for (j=0;j<n/2;j++)
{ tp1=a[i][j];
tp2=a[i][n-j-1];
if (tp1==tp2){
b[i]=1 ;
StringGrid2->Cells[1][i]=IntToStr(b[i]);}
else {
b[i]=0 ;
StringGrid2->Cells[1][i]=IntToStr(b[i]);
break;
}}}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2Change(TObject *Sender)
{
if(Edit2->Text=="")
{ShowMessage("Ошибка!Требуется ввести числовое значение!");
Edit2->Text="0";}
n=StrToInt(Edit1->Text);
m=StrToInt(Edit2->Text);
StringGrid1->ColCount=n+1;
StringGrid1->RowCount=m+1;
StringGrid2->RowCount=m;
StringGrid1->Cells[0][0]="Матрица N*M";
for(i=1;i<=n+1;i++)
StringGrid1->Cells[0][i]="i="+IntToStr(i);
for(i=1;i<=m+1;i++)
StringGrid1->Cells[i][0]="j="+IntToStr(i);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for(i=0;i<n;i++)
delete[]a[i];
delete[]a;
//delete []b;
ShowMessage("Память освобождена!");
exit(0);
}
//---------------------------------------------------------------------------
Результат работы программы:
Ответ: Обработали динамический массив. Из матрицы размером N☓M получили вектор B, присвоив его k-му элементу значение 1, если k-я строка матрицы симметрична, иначе значение 0.
ЗАДАНИЕ 7
В оконном приложении исходные данные вводить из компоненты Edit в ListBox (заканчивать нажатием Enter). Скалярный результат выводить в компоненту Label. Для выхода из программы использовать кнопку «Close».
В строке, состоящей из групп нулей и единиц, подсчитать количество символов в самой длинной группе.
Текст программы:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int pr;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
String s1;
int ch,max,i;
ch=0; max=ch;
s1=Form1->ListBox1->Items->Strings[Form1->ListBox1->ItemIndex]+" ";
for (i=1;i<=s1.Length();i++)
{
if (s1[i]!=' ')
ch=ch+1;
if (s1[i]==' ')
{
if (ch>max)
max=ch;
ch=0;
}
}
Label2->Caption=IntToStr(max)+" ";
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
int i;
String s;
pr=0;
if (Key==13) //
{
s=Edit1->Text;
for (i=1;i<=s.Length();i++)
if (s[i]!='0' && s[i]!='1' && s[i]!=' ')
pr=1;
if (pr==0)
{
Form1->ListBox1->Items->Add(Form1->Edit1->Text);
Form1->Edit1->Clear();
pr=0;
}
if (pr==1)
{
Form1->Edit1->Clear();
ShowMessage("Необходимо ввести комбинацию из нулей и единиц!");
}
}
}
//---------------------------------------------------------------------------
Результат работы программы:
Ответ: В строке, состоящей из групп нулей и единиц, подсчитали количество символов в самой длинной группе.
ЗАДАНИЕ 8
Написать программу обработки файла типа запись, содержащую следующие пункты меню: «Создание», «Просмотр», «Коррекция» (добавление новых данных или редактирование старых), «Решение индивидуального задания».
Каждая запись должна содержать следующую информацию о студентах:
– фамилия и инициалы;
– год рождения;
– номер группы;
– оценки за семестр по физике, математике, информатике, химии;
– средний балл.
Организовать ввод исходных данных, средний балл рассчитать по введенным оценкам.
Содержимое всего файла и результаты решения индивидувльного задания записать в текстовый файл.
Распечатать анкетные данные студентов-отличников из интересующей вас группы.
Текст программы:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <io.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct TZap{
char FIO[15];
int gr,ng,fiz,mat,inf,him;
double sb;
}Zap;
int size=sizeof(TZap);
FILE *Fz;
AnsiString File_Zap;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------