Классы и объекты.
a,
f и
z - переменные. В языке С++
a,
f и
z - называют
объекты.
Задача Classes.1
Отрезок на прямой задан началом и концом (координаты).
Нужно:
- вычислять длину отрезка
- получать координаты отрезка
- печатать координаты отрезка
- двигать отрезок в заданном направлении
Решение 1 (Длина отрезка).
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
// Создадим новый тип Line
class Line{
public:
// атрибуты
int start; //атрибут start
int finish; // атрибут finish
};
int main(){
// Создадим ОБЪЕКТ Line и назовем его a:
Line a;
// Зададим значения атрибутов:
a.start = 0;
a. finish = 10;
int length; // объект длина отрезка
length = abs(a.finish - a.start);
cout<<length<<endl;
}
Решение 2 (Длина отрезка).
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
// Создадим новый тип Line
class Line{
public:
// атрибуты
int start; //атрибут start
int finish; // атрибут finish
};
// Напишем функцию, которая вычисляет длину
int Length(Line a){
int len;
len = abs(a.finish - a.start);
return len;
};
int main(){
// Создадим ОБЪЕКТ Line и назовем его a:
Line a;
// Зададим значения атрибутов:
a.start = 0;
a. finish = 10;
int length; // объект длина отрезка
// вызов функции
length = Length(a);
cout<<length<<endl;
}
Решение 4 (Печать концов отрезка).
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
// Создадим новый тип Line
class Line{
public:
// атрибуты
int start; //атрибут start
int finish; // атрибут finish
};
// Напишем функцию, которая печатает концы отрезка
void printLine(Line a){
cout<<a.start<<" "<<a.finish<<endl;
};
int main(){
// Создадим ОБЪЕКТ Line и назовем его a:
Line a;
// Зададим значения атрибутов:
a.start = 0;
a. finish = 10;
// печать концов отрезка
printLine(a);
}
Решение 5 (Получение концов отрезка).
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
// Создадим новый тип Line
class Line{
public:
// атрибуты
int start; //атрибут start
int finish; // атрибут finish
};
// Напишем функцию, получает концы отрезка
// Функция вернет Line
Line volumeLine(){
// Создадим временный объект tmp
Line tmp;
// Получение значений для атрибутов tmp
cin>>tmp.start>>tmp.finish;
// Вернуть tmp
return tmp;
};
// Напишем функцию, которая печатает концы отрезка
void printLine(Line a){
cout<<a.start<<" "<<a.finish<<endl;
};
int main(){
// Создадим ОБЪЕКТ Line и назовем его a:
Line a;
// Получим значения атрибутов:
a = volumeLine();
// Печать концов отрезка
printLine(a);
}
Решение 6 (Подвинуть отрезок на x).
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
// Создадим новый тип Line
class Line{
public:
// атрибуты
int start; //атрибут start
int finish; // атрибут finish
};
// Напишем функцию, получает концы отрезка
// Функция вернет Line
Line volumeLine(){
// Создадим временный объект tmp
Line tmp;
// Получение значений для атрибутов tmp
cin>>tmp.start>>tmp.finish;
// Вернуть tmp
return tmp;
};
// Напишем функцию, которая печатает концы отрезка
void printLine(Line a){
cout<<a.start<<" "<<a.finish<<endl;
};
// Напишем функцию, двигает отрезок на x
// Функция вернет новую Line
Line moveLine(Line a, int x){
// Создадим временный объект tmp
Line tmp;
// значения для нового отрезка положим в tmp
tmp.start = a.start + x;
tmp.finish = a.finish + x;
// Вернуть tmp
return tmp;
};
int main(){
// Создадим ОБЪЕКТ Line и назовем его a:
Line a;
Line newline;
int x;
// Получим значения атрибутов:
a = volumeLine();
// Получим объект x
cin>>x;
// подвинем отрезок на x и получим новый отрезок
newline = moveLine(a,x);
// Печать концов нового отрезка
printLine(newline);
}
Задача Classes.2
Отрезок на плоскости задан началом и концом (координаты x и y).
Нужно:
- вычислять длину отрезка
- получать координаты отрезка
- печатать координаты отрезка
- двигать отрезок в заданном направлении по оси x
Решение 1 (Получить координаты отрезка).
#include <iostream>
#include <cstdlib>
#include <math.h>
using namespace std;
// Создадим новый тип Координаты
class Coord{
public:
int x; // атрибут x
int y; // атрибут y
};
// Создадим новый тип Line
class Line{
public:
// атрибуты
Coord start; //атрибут start (один конец)
Coord finish; // атрибут finish (второй конец)
};
//____________Координаты:______________
// Функция получения координаты
Coord volumeCoord(){
// Создадим временно tmpCoord
Coord tmpCoord;
cin>>tmpCoord.x>>tmpCoord.y;
return tmpCoord;
};
// Функция печать координат
void printCoord(Coord a){
cout<<'('<<a.x<<" "<<a.y<<')';
};
//________________Конец координат_____________
//__________________Отрезок____________________
// Функция получения координат отрезков
Line volumeLine(){
// Создадим временно tmpLine
Line tmpLine;
// Создадим временно start и finish
Coord start;
Coord finish;
// получим start
start = volumeCoord();
// получим finish
finish = volumeCoord();
// дадим значения атрибутам tmpLine
tmpLine.start = start;
tmpLine.finish = finish;
return tmpLine;
};
// Функция печати координат отрезков
void printLine(Line a){
// Используем функцию печати координат
printCoord(a.start);
printCoord(a.finish);
cout<<endl;
};
// Двигаем отрезок по оси x
Line moveLine(Line a, int x){
Line tmpLine;
// Изменяем координату x начала (start)
tmpLine.start.x = a.start.x + x;
// Коррдинату y не меняем, так присваиваем
tmpLine.start.y = a.start.y;
// Изменяем координату x конца (finish)
tmpLine.finish.x = a.finish.x + x;
// Коррдинату y не меняем, так присваиваем
tmpLine.finish.y = a.finish.y;
return tmpLine;
};
//____________конец отрезка___________________
int main(){
// Создадим ОБЪЕКТ Line и назовем его a:
Line a;
// Получим координаты концов
a = volumeLine();
// Создадим ОБЪЕКТ Line и назовем его newline:
Line newline;
// Создадим объект x (куда двигать)
int x;
// получим x
cin>>x;
// Получим координаты нового отрезка
newline = moveLine(a, x);
// Напечатаем координаты нового отрезка
printLine(newline);
}
--
TatyanaOvsyannikova2011 - 26 Oct 2014