Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика отчет.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
241 Кб
Скачать

14)Вычислить сумму векторов

class vektor

{

private:

int x[5];

public:

void setx(int i,int k);

int getx(int i);

vektor operator+(vektor v)

{

vektor tmp;

for (int i=0;i<5;i++)

{

tmp.x[i]=x[i]+v.x[i];

}

return tmp;

}

bool operator==(vektor v)

{

for (int i=0;i<5;i++)

if (v.x[i]!=x[i])return 0;

return 1;

}

};

#include"vektor.h"

#include<iostream.h>

void vektor::setx(int i,int k)

{

x[i]=k;

}

int vektor::getx(int i){

return x[i];

}

#include"vektor.h"

#include<iostream.h>

istream&operator>>(istream&input,vektor&x)

{

int tmp;

for (int i=0;i<5;i++)

{

input>>tmp;

x.setx(i,tmp);

}

return input;

}

ostream&operator<<(ostream&out,vektor&x)

{

for (int i=0;i<5;i++)

out<<x.getx(i)<<" ";

return out;

}

int main()

{

vektor v11,v22,v33;

cout<<"vvedite V1:"<<endl;

cin>>v11;

cout<<"vvedite V2:"<<endl;

cin>>v22;

v33=v11+v22;

cout<<v11<<endl<<v22<<endl<<v33;

return 0;

}

/*

istream file("sinput.txt");

b=qwerty(file,cout);

int qwerty(istream&in,ostream&out)

{

double z;

in>>z;

out<<z;

return z;

}*/

15)Сортировка по возрастанию

#include <iostream.h>

#include <string.h>

#include <conio.h>

#include <stdlib.h>

#include <time.h>

// Класс - строка символов

class SymStr

{

private:

char *s; // Строка

int length; // Длина строки

public:

// Конструкторы

SymStr()

{

s=new char[1];

*s='\0';

length=0;

}

SymStr(char *str)

{

length = strlen(str);//Возвращает длину строки str(без учета символа завершения строки)

s = new char[length + 1];

strcpy (s, str);//копирует строку str в строку s

}

SymStr(const SymStr &str)

{

length = str.length;

s = new char[length + 1];

strcpy (s, str.s);//копирует строку str.s в строку s

}

// Деструктор

~SymStr() { delete s; }

// Перегрузка оператора >

int operator> (SymStr &);

// Перегрузка оператора >=

int operator>=(SymStr &);

// Перегрузка оператора <

int operator< (SymStr &);

// Перегрузка оператора <=

int operator<=(SymStr &);

// Перегрузка оператора ==

int operator==(SymStr &);

// Перегрузка оператора =

SymStr &operator=(SymStr &Object);

// Перегрузка оператора << для вывода строки

friend ostream &operator<<(ostream &, SymStr &);

};

// Перегрузка оператора >

int SymStr::operator> (SymStr &Object)

{

if(strcmp(s, Object.s) > 0) return 1;

return 0;

}

// Перегрузка оператора >=

int SymStr::operator>=(SymStr &Object)

{

if(strcmp(s, Object.s) >= 0) return 1;

return 0;

}

// Перегрузка оператора <

int SymStr::operator< (SymStr &Object)

{

if(strcmp(s, Object.s) < 0) return 1;

return 0;

}

// Перегрузка оператора <=

int SymStr::operator<=(SymStr &Object)

{

if(strcmp(s, Object.s) <= 0) return 1;

return 0;

}

// Перегрузка оператора ==

int SymStr::operator==(SymStr &Object)

{

if(strcmp(s, Object.s) == 0) return 1;

return 0;

}

// Перегрузка оператора =

SymStr& SymStr::operator=(SymStr &Object)

{

length = strlen(Object.s);

s = new char[length + 1];

strcpy(s, Object.s);

return *this;

}

// Перегрузка оператора << для вывода строки

ostream &operator<<(ostream &fo, SymStr &fp)

{

fo << fp.s;

return fo;

}

// Cортировка вставками

template <class Type>

void insert (Type *x, int n)

{ int i, j;

Type t;

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

{

t = x[i];

for (j = i - 1; j >= 0 && t < x[j]; j--)

x[j + 1] = x[j]; // Сдвиг на одну позицию

x[j + 1] = t;

}

}