Лабораториялық жұмыс №1



бет4/5
Дата07.04.2020
өлшемі2,32 Mb.
#61825
түріПрограмма
1   2   3   4   5
Байланысты:
лаб doc

Есеп мазмұны


  1. Жұмыстың тақырыбы және мақсаты.

  2. Бақылау сұрақтарына жауап жазу.

  3. Тапсырманың блок-схема, алгоритмі.

  4. C++ Builder тілінде программасы.


Әдебиеттер

1. Атымбаева Объектіге бағытталған программалау негіздері.Алматы, 2005 ж.

2. Програ ммирование в среде С ++ Builder. А. Вальвачев, Д. Сурков, К. Сурков.

Мин.1998г

3. С ++ Builder. С.В.Глушаков, В.Н. Зорянский, С.Н. Хоменко

4. С++ и информатика . Н.Культин, М. 2002г.4. 4 4

5. С ++ Builder книга рецептов. В. Ермолаев. Кудиц. – образ. 2006г.

6. Справочник по С ++ Builder. Учебное пособие. 2005г.

7. Разработка приложений в среде С ++ Builder 6 и решение задач информационно-радиационного профиля. Учебное пособие. А.И. Купчишин, Т.А. Шмыгалева.
Лабораториялық жұмыс № 5-6

Тақырыбы: С++ Builder ортасында жолдарды өңдеу.Жолдарды сипаттау,жолдық шамаларды өңдеуге арналған функциялар.

Мақсаты: string жолдық айнымалылармен жұмыс жасау принциптерін меңгеру , жолдарға фрагменттерін форматтау жұмыстарын орындауды үйрену .
Материалдар және жабдықтар: ДК, C++ Builder программалау ортасы.
Жұмыстың мазмұны және орындалу тәртібі:


  1. Вариант бойынша тапсырманы алу

  2. Есептің қойылымы

  3. Есепті шешу алгоритмі

  4. Есепті шешу программасын C++ Builder программалау ортасында құру

  5. Программа листингі

  6. Орындалған жұмыс жөнінде есеп беру


Әдістемелік нұсқау

СИ/СИ++те Турбо Паскальдағы сияқты арнайы жазба қатарының типі жоқ. Символдық қатарлар символдардан тұратын массивтер түрінде ұйымдастырылады. Ең соңғы элементі 0 болып табылады, яғни ішкі коды 0-ге тең. Паскальда жолдық қатардың ұзындығы 255-тен аспайтын болса, Си-де символдық массив ұзындығының шегі жоқ. Жазба қатары символдық массив түрінде сипатталады: char STR [20]

Қатар сипатталуы кезінде анықталуы да мүмкін. Оның екі жолы бар:

1. қатар тұрақтамасы арқылы;

2. символдар тізімі түрінде.



char S[10]=”строка”;-S жолдыќ қатарына 10 байт жады бөлінеді. Оның бірінші жетеуі инициализация (мән алу) кезінде мән ќабылдайды.

char S[ ]=”строка”;-жеті таңбадан тұратын жолдыќ қатарын сипаттайды.

char S[10]={‘c’,’т’,’р’,’о’,’к’,’а’,\0'};-соңғы сипаттау нәтижесі бойынша алѓашќы сипаттауға тең. Әрине, символдық массивті былай да анықтауға болады, яғни соңғы 0 символынсыз, бірақ ондай жазба қатарын өңдегенде оның соңы көрсетілмегендіктен қиындыққа ұшырайды. Жазба қатарларының жеке символдары индексті атауымен аталуы мүмкін. S[0]='c' S[5]='a'. Символдық қатарларды өңдеу барлық символдарды басынан аяғына дейін оқып талдауына байланысты. Бұл өңдеудің соңы 0-дік символы кездескеннен кейін ғана тоқтатылады.
Мысал 1.


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

#include

#pragma hdrstop

#include"Unitl.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForml *Forml;

_fastcall TForml::TForml(TComponent* Owner)

: TForm( Owner)

{

}

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

void_fastcall TForml ::ButtonlClick(TObject *Sender)

{

if(Editl->Text!="")

ListBox1->Items->Add(Edit1->Text);

Edit1->Text=""; Edit1->SetFocus();

}

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

void _fastcall TForml ::Button2Click(TObject *Sender)

{

if (ListBox1->Itemlndex!=-1)

ListBoxl->Items->Delete(ListBoxl->ItemIndex);

else

ShowMessage("выделите элемент");

}

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



void _fastcall TForml ::Button3Click(TObject *Sender)

{

Button3->Caption=ListBox1->Items->Count;

}

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

void_fastcall TForml ::Button4Click(TObject * Sender)

{

int n,k;



k=ListBoxl->ltemIndex;

n=ListBox1->Items->Count;

if(ListBoxl->ItemIndex!=0)

ListBoxl->ItemIndex=k-l;

else

ListBox1->ItemIndex=n-1;

}

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

void_fastcall TForml ::Button5Click(TObject *Sender)

{

int n,k;



k=ListBox1->ItemIndex;

n=ListBox1->Items->Count;

if(ListBoxl->ItemIndex!=n-l)



ListBoxl->ItemIndex=k+l;

else

ListBoxl->ItemIndex=0;

}

//--------------------------------------------------------------------------------------
Өзіндік жұмысқа тапсырмалар варианттары :

 


  1. Берілген тексте «А» әрпі қанша рет кездесетінін анықтаңыз.

  2. Берілген текстегі жақшаға алынған сөздерді алып тастау программасын құрың.

  3. Тексті мынадай үлгімен экранға шығар: бірінші символ ‐ бірінші сөздің ұзындығын көрсететін цифр, бірінші сөзден кейін тағы цифр ‐ екінші сөздің ұзындығын көрсетеді. (символ ұзындығы ≤9 )

  4. Берілген текстен ең ұзын сөзді экранға шығар

  5. Ұзындығы ең кіші сөз қандай әріптен басталатынын анықта.

  6. Берілген сөз тексте қанша рет кездесетінін анықта.

  7. Егер берілген тексте «а» әрпі «в» әрпінен жиі кездессе «TRUE» сөзін шығар, кері жағдайда «FALSE» сөзін шығар.

  8. Берілген текстегі бір пробелдің орнына үтір қойу программасын құрың.

  9. Берілген текстен артық пробелдерді алып тастап жазыңыз, яғни бірнеше қатар койылған пробелдан тек біреуін қалдырыңыз.

  10. Берілген тексте «а» әрпі кездесетіні белгілі және ол соңғы әріп емес. Осы «а» әрпінен кейінгі текст литерін экранға шығар

  11. Берілген текстен «ph» символын «f» әрпіне ауыстырып экранға шығарыңыз.

  12. Латын әрпімен жазылған сөздер тізімі берілген. Көршілес сөздер бір-бірімен үтір арқылы ажыратылған және соңғы сөзден кейін нүкте қойылған. «а» әрпімен басталатын сөздер санын табыңыз.

  13. Егер берілген тексте «key» сөзінің әрбір әрпі кездессе, онда «yes» деп, әйтпесе «no» сөзін экранға шығар.

  14. Берілген текстен «с» әрпінен кейінгі «b» әріптерін алып тастап жазыңыз.

  15. Берілген тексте жақшалардың дұрыс қойылуын тексеріңіз. Жауабы «YES» немесе «NO»

  16. Латын әрпімен жазылған бос емес сөздер тізбегі берілген. «w» әрпімен аяқталатын сөэдер санын табыңыз.

  17. Берілген тексте көрші орналасқан ., (нүкте, үтір) символы кездесетінін анықта. Жауабы «Yes» немесе «No»

  18. Берілген текстен бірдей әріппен басталатын және сол әріппен аяқталатын сөздер санын табыңыз.

  19. Abbcccdddd zzz…z символдар тізбегін экранға шығар

  20. Берілген тексте бір сөзде үш рет «е» әрпі кездесетін сөздер санын табыңыз.

Бақылау сұрақтары:

  1. Жолдар өңдеу алгоритмдері ?

  2. Жолдарды өңдейтін қандай функциялар бар?

  3. «Жол» терминнің мағынасы қандай?

  4. Жол қалай анықталады және инициализациялайды?

  5. «Нөлдік байт» терминнің мағынасы қандай?

  6. жолды клавиатурадан енгізу үшін қандай функцияларды қолдануға болады?

  7. жолдарды өңдеу фнкуциялар кітапханасы қандай файлда орналасқан?

  8. жолдарды салыстыру үшін қандай функцияларды қолдануға болады?

  9. жолдарды қосу және көшіру үшін қандай функцияларды қолдануға болады?

Блиц-тест


1. Код редакторы не үшін қолданылады?

  1. Компоненттер қасиеттерін өзгерту үшін

  1. Шифрленген мәліметтерді өңдеу үшін

  1. Жағдайларды өңдеу процедураларын құру үшін

  1. Программаның тоқтатылуын көрсету үшін

  1. Программа мәтінін өңдеу үшін




2. Әдіс арқылы мәліметтерді қандай ма бір объектіге жіберу-бұл

  1. Полиморфизм

  1. Декапсуляция

  1. Мұралау

  1. Делегирлеу

  1. Инкапсуляция

3. Объект құрылымы екі бөліктен тұрады:

  1. айнымалылар және әдістер

  1. объект және субъект

  1. айнымалылар және функциялар

  1. функциялар және әдістер

  1. функциялар және қасиеттер

4. Визуальды емес компонент

  1. біздің программамыздың қолданушы жұмыс кезінде арақатынас жасай алатын басқару элементі болып табылады

  1. интерфейсінде көрінбейтін заттарды программалауға арналған

  1. арнайы мастердің көмегімен менюді, құрылымды құрады

  1. жазулар типін басқару элементі

  1. қосымшаны құру және орындау кезінде компоненттің сыртқы түрін, іс-әрекетін басқаруға қасиеттер қолданылады

5. String Grid компоненті

  1. тез шақырылатын графикалық батырманы құрады

  1. жолдарды бейнелеу үшін жол бойынша немесе баған бойынша сетка құрады.

  1. арнайы форматтағы мәліметтерді енгізуді редакциялайтын облыс құрады

  1. жазбалы және пиктограммалы командалық батырма құрады

  1. қарапайым геометриялық фигураларды салады.

Жұмысты орындауға тапсырмалар

.

  1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.

  2. Бақылау сұрақтарына ауызша жауап беру.

  3. Тапсырма вариантын таңдау және орындау

  4. Есеп жазу

Есеп мазмұны


  1. Жұмыстың тақырыбы және мақсаты.

  2. Бақылау сұрақтарына жауап жазу.

  3. Тапсырманың блок-схема, алгоритмі.

  4. C++ Builder тілінде программасы


Әдебиеттер

1. Атымбаева Объектіге бағытталған программалау негіздері.Алматы, 2005 ж.

2. Програ ммирование в среде С ++ Builder. А. Вальвачев, Д. Сурков, К. Сурков.

Мин.1998г

3. С ++ Builder. С.В.Глушаков, В.Н. Зорянский, С.Н. Хоменко

4. С++ и информатика . Н.Культин, М. 2002г.4. 4 4

5. С ++ Builder книга рецептов. В. Ермолаев. Кудиц. – образ. 2006г.

6. Справочник по С ++ Builder. Учебное пособие. 2005г.

7. Разработка приложений в среде С ++ Builder 6 и решение задач информационно-радиационного профиля. Учебное пособие. А.И. Купчишин, Т.А. Шмыгалева.

Лабораториялық жұмыс № 7-8

Тақырыбы: С++Builder ортасында бір өлшемді массивтермен жұмыс.

Мақсаты: Бір өлшемді массивтерді сипаттау,массив элементтерін енгізу,массивпен жұмыс істеу дағдысын қалыптастыру, оларды енгізу және шығару ерекшеліктерін игеру, программалау үрдістерін пайдаланып циклді программалар структурасын ұйымдастыру дағдысын жетілдіру.

Материалдар және жабдықтар: ДК, C++ Builder программалау ортасы
Жұмыстың мазмұны және орындалу тәртібі:


  1. Вариант бойынша тапсырманы алу

  2. Есептің қойылымы

  3. Есепті шешу алгоритмі

  4. Есепті шешу программасын C++ Builder программалау ортасында құру

  5. Программа листингі

  6. Орындалған жұмыс жөнінде есеп беру

Әдістемелік нұсқау

Массивтер деп бiр атаумен берiлетiн бiрыңғай мәндер қабылдайтын реттелген шамалар тiзбегiн айтамыз. Массивтердi колданбастан бұрын, массив атын айнымалыны бейнелеу бөлiмiнде жазылуы керек. Жалпы түрі:

Элемент типі: массив‐аты:[массив өлшемі]

Мысалдар: float temper[3];

char name[30];

int koef[];



Әрбiр массивке 03 алдын-ала оның элементтерiнiң саны ескерiлiп, қатар орналасқан ұяшықтар бөлiнедi. Массивтерді енгізу үшін for циклдық операторын қолданған оңай.


Есеп: A(10) массиві берілген. Массивтің оң

элементтерін 2-мен ауыстыру .



Есепті шешуде қолданылатын компонент ---тер:

Edit1 , Memo1 , Memo2 , Button1 , Button2 , Button3.
Программа мәтіні
#include

#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int i,n;

int a[30];

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}



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

void __fastcall TForm1::FormCreate(TObject *Sender)

{ i=0;

Memo1->Clear(); Memo2->Clear();



}

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

void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,

TShiftState Shift)

{ if (Key==13) Button1->SetFocus();}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{ i=i+1;


Memo1->Lines->Add(Edit1->Text);

a[i]=StrToInt(Edit1->Text);

Edit1->SetFocus();

}

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



void __fastcall TForm1::Button3Click(TObject *Sender)

{ n=i;


for(i=1;i<=n;i++)

if (a[i]>=0) a[i]=2;

for(i=1;i<=n;i++)

Memo2->Lines->Add(IntToStr(a[i]));

}

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



void __fastcall TForm1::Button2Click(TObject *Sender)

{

Close();



}

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



Тапсырма варианттары(А)

 


  1. А массиві 41, 52, 23, 15, 94, 79, 12, 38, 13, 17 бүтін он саннан тұрады. Әрбір элементін сәйкес нөмеріне көбейткенде құралатын, жаңа массив құру программасын жазың. в = i·a

  2. 10 компоненттен тұратын вектордың модульін есептеңіз



  1. Әрқайсысында 14 элементтен тұратын екі А және В массиві берілген. ci=ai+bi бойынша құрылған жаңа массивтің ен кіші элементін табу программасын жаз.

ai={0.1; 0.3; 0.5; 0.7; 0.9; 1.1; 1.3; 2.3; 5.7; 9.8;2.3; 3.1; 6.4; 5.6; 9.7}

bi={5.2; ‐0.5; ‐4.8; 4.6; 4.4; 4.2; ‐6.4;1.3; 5.6; ‐1.2; ‐0.6; 5.2; 7.1; 4.1 }



  1. Екі вектордың жарты элементтерінің арифметикалық ортасын табу программасын жазың. А={1,5; 2,5; -0,34; 6; 4.4; 4.2; ‐6.4;1.3; 5.6;}

В={-11,7; 9,3; 2,5; 3,7; -1,2}

  1. А={-2,5;3;13;0,5;1,5;-2;0,7;1,9;7,1}. Сандар тізбегі берілсін. -1=

  2. А(а12, …, а20) массив элементтерінен қандай да бір «с» мәнінен үлкен болатын (½аi½> с) жаңа В массивін құру программасын жаз.

  3. Берілген b және с үшін (b< 1,а2,…,а15) массив элементтерінің қосындысын табу программасын жазың.

  4. А (а1, а2,…,а30) массивінің 0‐ге тең элементтерінің санын табу программасын жазың.

  5. А (а1,а2,…, а25), массивінің >c шартты қанағаттандыратын барлық элементтерінің арифметикалиқ ортасын табу программасын құрың.

  6. А(а1, a2,…,а10) массивіндегі аi>100 шартты қанағаттандыратын элементтерін 777 санымен ауыстыру программасын құрың.

  7. Он элементтен тұратын А массивінің оң және теріс элементтерінің қосындысын жеке‐жеке табыңдар.

ai={1.2; 3.1; -0.5; -1.7; 0; 1.9; -4.2; 7.1; 8.5; -10}

  1. Әрқайсысында 9 элементтен тұратын А және В массиві берілген. ci=(ai+bi) формуласымен анықталған жаңа С массивінің квадраттарының қосындысын табыңдар.

ai={0.1; 0.2; 0.3; 0.8; 1.6; -4.2; -0.4; 5; 7}

bi={-5; 10; 0; 8; -6; -12; 4; 20; 7}



  1. 15 элементтен тұратын Х массиві берілген. Массивті өсу реті бойынша орналастыру программасын жаз.

Хi={0.2; -3.5; 43; -15; ‐18; 91; 7.7; 25; 54; 6.4; 46; 0.5; -7; 8; 9.2; }

  1. 20 элементтен тұратын Х массиві берілген. Массивтің орта мәнін және бірінші, екінші бөлігіндегі теріс элементтердің санын жеке табыңдар.

хi={1.5; 0; 2.3;-4; 5; 0;2;-5; 0; 1.7; -0.2;12; -2; 0; -4.1; 2.6; 7; 8; 0; -1; 10; 0}

  1. Әрқайсысында 8 элементтен тұратын М және N массиві берілген. С массивінің элементі сi=( ai- bi)/( ai* bi) бойынша анықталған. С массивінен ең үлкен элементін табың.

  2. А(2.6, 4.8, 0.6), В(1.5, 4.0, 3.1), C(2.1, 0.6, 1.9) нүктелерімен берілген үшбұрышың қабырғаларының ұзындығын табу программасы жаз.

  3. 100 элементтен тұратын А и B вектордың формуласы бойынша анықталған скаляр көбейтіндісін табыңдар.

  4. Q векторының квадраттық ортасын табу программасын құрыңдар Q=

  5. P және Q векторының ара қашықтығын табу программасын құрың. D=

  6. 25 элементтен тұратын Х массивінің элементтер санын және олардың қосындысын табу программасын құрың.

 

Бақылау сұрақтары.

  1. Массивтерді сипаттау үшін тілдің қандай операторлары қолданады?

  2. Массивтерді өңдеу үшін циклді ұйымдастыру әдістері қандай?

  3. Массивтерді енгізу және шығару ерекшкліктері қандай?

 Блиц-тест


1. C++ Builder

  1. MS (Inprise) өнімі болып табылады

  1. Borland (Inprise) өнімі болып табылады

  1. Turbo өнімі болып табылады

  1. Win өнімі болып табылады

  1. IBM өнімі болып табылады




2. #pragma package(smart_init) директивасының қызметі қандай

  1. инициализация пакеттерінің тізімін анықтайды.

  1. Unit1.h файлын іске қосады

  1. берілген файлмен атымен аты сәйкес болатын *.dfm файлын формада қолдану қажеттігі

  1. форма объектісін хабарлау

  1. hdrstop опциясы препроцессор жұмысының өзгешеліктерімен байланысты


Достарыңызбен бөлісу:
1   2   3   4   5




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет