Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчёт о выч практике.docx
Скачиваний:
4
Добавлен:
18.09.2019
Размер:
30.07 Кб
Скачать

I,j,q:integer;

q1,q2:boolean;

begin

q1:=true;

q2:=true;

q:=0;

for i:=1 to 10 do

begin{}

if q1=false then break;

if q2=false then break;

for j:=1 to 10 do

if CheckLength(SGMatr.Cells[j,i])=false then

begin

ShowMessage('Вводить можно не более 2-х символов');

q1:=false;

break;

end

else

begin

if CheckValue(SGMatr.Cells[j,i])=false then

begin

ShowMessage('!Недопустимое значение!');

q2:=false;

break;

end

else

begin

mas[i,j]:=StrToInt(SGMatr.Cells[j,i]);

q:=q+1;

end;

end;

end;{}

if q=100 then

begin

BtAuto.Enabled:=false;

BtVvod.Enabled:=false;

BtCancel.Enabled:=true;

BtWork.Enabled:=true;

SGMatr.Enabled:=false;

showmessage('Данные успешно введены');

end;

end;

procedure TFMain.BtWorkClick(Sender: TObject);

var

I,j,q:integer;

begin

LbOtvet.Caption:='';

q:=0;

for i:=1 to 10 do

for j:=1 to 10 do

if (i=j) and (i=mas[i,j]) then

begin

q:=q+1;

LbOtvet.Caption:=LbOtvet.Caption+IntToStr(i)+'\ '+IntToStr(j)+'\ '+IntToStr(mas[i,j])+'\; ';

end;

if q=0 then

ShowMessage('Таких чисел К не найдено');

end;

end.

Задание №3 (C++)

Дана последовательность , содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами – запятая, за последним словом точка. Напечатать те слова, перед которыми в последовательности находятся только меньшие (по алфавиту) слова, а за ними – только большие.

Код программы

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

#include <vcl.h>

#pragma hdrstop

#include "UnMain.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TFMain *FMain;

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

int **paramw;

int l,j;

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

int fQuantityComma(AnsiString s); //считает кол-во запятых в строке

bool fFindBlank(AnsiString s); //поиск пробела в строке (если находит то true)

bool fCheckLength(AnsiString s); //проверка длины слов true -норм длина

void fCalcParam(AnsiString s); //обсчёт параметров

void fShowMas(); //Вывод массива

AnsiString fChangeStr(AnsiString s, int i); //меняем 2 рядом стоящие

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

__fastcall TFMain::TFMain(TComponent* Owner)

: TForm(Owner)

{

}

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

int fQuantityComma(AnsiString s) //считает кол-во запятых в строке

{

int pos=0,kolz=0;

for (int i=1;i-2<=s.Length();i++)

{

pos=s.Pos(',');

if (pos!=0)

{

kolz=kolz+1;

s.Delete(1,pos);

}

}

return kolz;

}

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

bool fFindBlank(AnsiString s) //поиск пробела в строке (если находит то true)

{

int pos=0;

pos=s.Pos(' ');

if (pos!=0)

return true;

else

return false;

}

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

bool fCheckLength(AnsiString s) //проверка длины слов true -норм длина

{

int pos=0;

bool check;

for (int i=0;i-2<=s.Length();i++)

{

if ( (s.Pos(',')==1) || (s.Length()!=s.Pos('.')) || (s.Pos(',')>6) )

{

check=false;

break;

}

else

check=true;

pos=s.Pos(',');

if (pos!=0)

s.Delete(1,pos);

}

return check;

}

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