Зертханалық жұмыс №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. Есептің шешуі:
Есепті шешу алгоритмінің блок-схемасы:
БАСЫ
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. Есептің шешуі:
Есепті шешу алгоритмінің блок-схемасы:
БАСЫ
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)Бағдарламаны тестілеу нәтижесі:
Мәтіндік файл:
Бағдарлама жұмысы:
Алынған мәтіндік файл:
Достарыңызбен бөлісу: |