Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МИНЕСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ.docx
Скачиваний:
12
Добавлен:
23.12.2018
Размер:
54.25 Кб
Скачать

Лабораторная работа №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;

};