Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная работа №1.Основы алгоритмизации и программирования.Вариант №3..doc
Скачиваний:
78
Добавлен:
01.04.2014
Размер:
158.72 Кб
Скачать

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)

{

}

//---------------------------------------------------------------------------