«Программалау 3» ПӘнінің ОҚУ-Әдістемелік кешені



бет6/12
Дата17.06.2018
өлшемі1,26 Mb.
#42615
1   2   3   4   5   6   7   8   9   ...   12

Зертханалық жұмыс №5

Функциялар



1.Жұмыстың мақсаты: С/С++ тілінде функцияларды жүзеге асыру дағдысын қалыптастыру.
2.Есептің шарттары:

k векторлар берілген. қосындысын табу керек.

Процедура: екі вектордың қосындысын есептеу
3.Есептің шешуі
1)Есепті шешу алгоритмінің блок-схемасы


input (a,b,c,N)

mult (S,a,b,c,N)


БАСЫ

S[i] енгізу

i++

input (a,b,c,N)


i=0

Ввод

a[i]


i
i++

i=0

b[i] енгізу

i

i++




i=0



i



СОҢЫ



i=0

c[i] енгізу

i

i++

mult(S,a,b,c,N)


i=0

i

i++


S[i]=a[i]+b[i]+c[i]



Қайтару



Қайтару


2) С++ тіліндегі бағдарлама мәтіні:
#include

#include

#include

#include

int i;

const int N=3;

void input(double a[],double b[],double c[], int k);

void mult(double s[],double a[],double b[],double c[],int k);

void main()

{

double a[N],b[N],c[N],S[N];

input (a,b,c,N);

mult(S,a,b,c,N);

cout<<"Summa =";

for(i=0;i

cout<

}

void input(double a[],double b[],double c[],int k)

{cout<<”Bbedite vectora a,b,c\n”;

for(i=0;i

cin>>a[i];

for(i=0;i

cin>>b[i];

for(i=0;i

cin>>c[i];

}

void mult(double S[],double a[],double b[],double c[],int k)

{

for(i=0;i

S[i]=a[i]+b[i]+c[i];

}
3)Бағдарламаны тестілеу нәтижесі:
a{1;2;5}, b{5;3;4}, c{1;0;2}. Олардың қосындысы {7;5;11} болады



Зертханалық жұмыс №6.
Құрылымдар (структуры)


1.Жұмыстың мақсаты:

С++ тілінде құрылымдық берілгендер және массивтермен танысу және олармен жұмыс істеу дағдысын қалыптастыру.



2. Есептің шарттары:

Құрылым: FLAT, өрістер: адрес, бөлмелер саны, жалпы ауданы, квадрат метрлің бағасы. Берілген бағадағы квартираны іздеу.



3. Есептің шешуі:


  1. Есепті шешу алгоритмінің блок-схемасы:


БАСЫ



i=0



i<=n-1

-


+


s[i].adres

s[i].kolvo

s[i].ploshad

s[i].stoimost





i++



i=0



i<=n-1

-
+



s[i].adres

s[i].kolvo

s[i].ploshad

s[i].stoimost





i++



1




1




stoimost



i=0



-
i<=n-1



+


s[i].stoimost<=stoimost



+ -



s[i].adres

s[i].kolvo

s[i].ploshad

s[i].stoimost







i++




СОҢЫ


2)С++ тіліндегі бағдарлама мәтіні:

#include

#include

#include

#include

struct flat

{

char adres[30];



int kolvo;

long int stoimost;

double ploshad;

};

int main()



{

const n=3;

int i,j;

flat s[n],t;

cout.setf(ios::left);

clrscr();

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

{

cout<<" Vvedite adress\n";



cin>>s[i].adres;

cout<<" Vvedite kolichestvo komnat\n";

cin>>s[i].kolvo;

cout<<" Vvedite ploshad\n";

cin>>s[i].ploshad;

cout<<" Vvedite stoimost\n";

cin>>s[i].stoimost;

cout<<"\n";

}

cout<<"\n Adress Kolichestvo_komnat Ploshad Stoimost\n\n";



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

{

cout.width(20);cout<

cout.width(20);cout<

cout.width(15);cout<

cout.width(15);cout<

}

int stoimost;



cout<<"\n\n Vvedute stoimost kvartirbl za kv metr\n";

cout<<"\n";

cin>>stoimost;

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

if(s[i].stoimost<=stoimost)

{

cout.width(20);cout<

cout.width(20);cout<

cout.width(20);cout<

cout.width(20);cout<

}

getch();



clrscr();

}

3)Бағдарламаны тестілеу нәтижесі:




2-мысал. Динамикалық массивтер


С++ тіліндегі динамикалық массивтермен жұмыс істеу дағдыларын қалыптастыру.
2. Есептің шарттары:

Берілгендер кестесінің жолдарында келесідей ақпарат бар: авторы, атауы, басылым, шығарылған жылы. Авторлар тізімін және олардың кітаптарының санын анықтау керек.


3. Есептің шешуі:


  1. Есепті шешу алгоритмінің блок-схемасы:



БАСЫ



book *ps




int n




avtor *pp




int I



ps=Inputbookfile(n)



pp=perech(ps,n,I)




outputperech(pp,I)




outputperechfile(pp,I)



delete []ps



delete []pp




СОҢЫ


Book

inputbookfile(n)





book t;

book *ps




file




Fin.open(file)




fin==Null

Файл ашылмаған




Exit(1)




k=0




Файлдан оқу

Файл



k++




fin.good




k--



Fin.close()



Fin.open(file)




i=0




i




Файлдан оқу

Файл




i++



Fin.close()



Return ps



avtor

perech(ps,n,I)





int zi,j,fl



Avtor *t

t=new avtor[k]




Динамикалық жады жоқ




t==Null




kk=0

Exit(1)



i=0



i




fl=0



j=0



j




strcmp(x[i],avtor.t[i].avtor)==0



fl=1




t[j].kolvo++




Fl==0




strcpy(t[kk].avtor,x[i]avtor)




Return t



t[kk].avtor



k++



outputperech(pp,I)

outputperechfile(pp,I)




file




int i



Автор

Саны


Fout.open(file)



!fout.good

Файл құрылмаған




i=0



i

Exit(1)

i=0



i



y[i].avtor,

y[i].kolvo





Файлға жазу

Файл




i++



i++



return

fout.close()




return



2) С++ тіліндегі бағдарлама мәтіні:

#include

#include

#include

#include

#include

#include

struct book

{char avtor[15];

char name[15];

char izdat[15];

int god;

};

struct avtor

{char avtor[15];

int kolvo;

};

book *inputbookfile(int &k);

avtor *perech(book x[],int k,int &kk);

void outputperech(avtor y[],int kk);

void outputperechfile(avtor y[],int kk);

book *inputbookfile(int &k)

{int i;

book t;

book *ps;

ifstream fin;

char file[10];

cout<<"Name of input file:\n";

cin>>file;

fin.open(file);

if (fin==NULL) {cout<

k=0;

do {fin>>t.avtor>>t.name>>t.izdat>>t.god;

k++; }while (fin.good());

k--;

fin.close();

fin.open(file);

ps=new book[k];

if(ps==NULL){cout<<"No memory\n";getch();exit(1);}

for (i=0;i

fin>>ps[i].avtor>>ps[i].name>>ps[i].izdat>>ps[i].god;

fin.close();

return ps;

}

avtor *perech(book x[],int k,int &kk)

{

int i,j,fl;

avtor *t;

t=new avtor[k];

if(t==NULL){cout<<"No memory";getch();exit(1);}

kk=0;

for(i=0;i

{fl=0;

for(j=0;j

if(strcmp(x[i].avtor,t[j].avtor)==0){fl=1;t[j].kolvo++;}

if (fl==0){strcpy(t[kk].avtor,x[i].avtor);

t[kk].kolvo=1;

kk++;}

}

return t;

}

void outputperech(avtor y[],int kk)

{int i;

cout<<"ABTOP Koli4ECTBO\n";

for(i=0;i

cout<

}

void outputperechfile(avtor y[],int kk)

{ofstream fout;

int i;

char file[10];

cout<<"Name of output file:\n";

cin>>file;

fout.open(file);

if (!fout.good()) {cout<

for (i=0;i

fout<

fout.close();

}

void main()

{book *ps;

int n;

avtor *pp;

int l;

ps=inputbookfile(n);

pp=perech(ps,n,l);

outputperech(pp,l);

outputperechfile(pp,l);

delete[] ps;

delete[] pp;

}
3)Бағдарламаны тестілеу нәтижесі:
Мәтіндік файл:


Бағдарлама жұмысы:


Алынған мәтіндік файл:




Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   12




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

    Басты бет