- •Достоинства
- •Недостатки
- •Отчет по лабораторным работам. Лабораторная работа№1
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5.1
- •Лабораторная работа № 5.2
- •Лабораторная работа № 6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Лабораторная работа № 9
- •Лабораторная работа № 10
Лабораторная работа №7
Матрица — это двумерный массив. Создайте класс matrix, который предоставляет те же меры безопасности, как и класс из предыдущего упражнения, то есть осуществляет проверку индексов массива на вхождение их в границы массива. Полем класса matrix будет массив 10 на 10. Конструктор должен позволять программисту определить реальный размер массива (допустим, сделать его меньше, чем 10 на 10).
Методам, предназначенным для доступа к членам матрицы, теперь нужны два индекса: по одному для каждой размерности массива. Вот фрагмент функции main(), которая работает с таким классом:
matrix ml ( 3, 4 ): // описываем матрицу
int temp = 12345; // описываем целое
ml.putel ( 7, 4, temp ); // помещаем значение temp в матрицу
temp « ml.getel ( 7, 4 ); // получаем значение из матрицы
# include <iostream>
using namespace std;
const int lim=10;
const int lm=10;
class saf
{private:
int mas[lim][lm];
public:
saf()
{int i=1;
int j=1;
mas[i][j];};
void put(int i, int j, int a)
{if ((i>=0)&(i<=(lim-1))&(j>=0)&(j<=(lm-1)))
mas[i][j]=a;
else
cout<<"massiv uje zakonchen"<<endl;
}
void get(int i, int j)
{if ((i>=0)&(i<=(lim-1))&(j>=0)&(j<=(lm-1)))
{cout<<mas[i][j]<<endl;}
else
cout<<"ne prinadlegit massivy"<<endl;
};
};
int main()
{char q='q';
while (q!='n')
{saf q1;
int i,j, a;
cout<<"dlya vvoda znacenia v massiv nagmite 1, dlya vivoda - 2"<<endl;
int w;
cin>>w;
if (w==1)
{
cout<<"vvedite indeks v massive razmerom 40 i znachenie"<<endl;
cin>>i>>j>>a;
q1.put(i,j,a);
}
else
{cout<<"vvedite indeks v massive"<<endl;
cin>> i>>j;
q1.get(i,j);
};
cout<<"ischo operaciyu? y/n"<<endl;
cin>>q;
};
return 0;
}
Лабораторная работа №8
Напишите программу с функцией convert_temp. Функция принимает адрес
переменной типа double и применяет преобразование температуры по шкале Цельсия и температуры по шкале Фаренгейт. Переменная, хранящая температуру по Цельсию, после вызова функции должна содержать эквивалентную температуру по шкале Фаренгейта. Проинициализируйте переменную temperature значением 10.0 и напечатайте значение переменной до и после вызова функции. F=(C*1.8) + 32
# include <iostream>
using namespace std;
void umn(int* ptr);
int main()
{
cout<<" vvedite chislo"<<endl;
int q;
cin>>q;
int* ptr;
ptr=&q;
umn(ptr);
return 0;}
void umn(int* ptr)
{*ptr=*ptr*1.8+32;
cout<<*ptr<<endl;}
Лабораторная работа № 9
Текстовый файл содержит в каждой своей строке имя пользователя, пол, возраст, рост. Например:
Вася, м, 17, 176.
Вывести для своего пола средний возраст и рост пользователей.
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1;
int m, a, m1, a1,i;
char ch;
m1=0;
a1=0;
i=0;
ifstream infile("imia.txt");
while (infile)
{infile>>str1>>ch>>m>>a;
if (ch=='m')
{m1+=m;
a1+=a;
i++;
};
}
m1/=i;
a1/=i;
cout<<"rost="<<m1<<" vozrast="<<a1<<endl;
return 0;
}
Лабораторная работа № 10
Составить программу, описывающую домашнюю библиотеку из N книг
(задаётся с клавиатуры) вида: автор, название, год издания, и выводящую на экран все книги нужного автора в библиографическом порядке(по году издания).
Main.cpp
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include "Funk.h"
void main()
{
int n;
int k;
char auth[50];
cout<<"input book's quantity>";
cin>>n;
cin.get();
book* bibl=InputBibl(n);
cout<<"input an author name>";
cin>>auth;
cout<<"for author "<<auth<<" finding books: "<<endl;
k=printAuthor(bibl,n,auth);
cout<<"counts-"<<k<<endl;
}
Func.cpp
#include "const.h"
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
book*InputBibl(int n)
{
book* B=new book[n];
for(int i=0;i<n;i++)
{cout<<"Input Header for "<<i<<" book>";
cin>>B[i].header;
cout<<"Input author for "<<i<<" book>";
cin>>B[i].author;
cout<<"Input god for "<<i<<" book>";
cin>>B[i].god;
};
return B;
};
void order (book* numb1, book* numb2)
{
book* temp;
if ( ((*numb1).god) > ((*numb2).god))
{
temp=numb1;
numb1= numb2;
numb2=temp;
};
};
void sort(book* A, int q)
{
int j,k;
for (j=0; j<q-1; j++)
for (k=j+1; k<q; k++)
order ((A+j), (A+k));
};
int printAuthor(book* B, int n, char auth[50])
{ book* A=new book[n];
int k=0;
int q=0;
for(int i=0;i<n;i++)
if(strcmp(B[i].author,auth)==0)
{k++;
A[q]=B[i];
q++;
};
sort(A,q);
for(int j=1;j<=q;j++)
cout<<"Book - "<<j<<" - "<<B[j].header<<", "<<B[j].god<<" goda izdania"<<endl;
return k;
};
Func.h
#include "const.h"
book*InputBibl(int n);
int printAuthor(book*B, int n, char auth[50]);
void sort(book*A, int n);
void order (book*A ,int*q );
const.h
struct book
{char header[50];
char author[50];
int god;
};