В задании указано сделать дружественную функцию для того чтобы устанавливать новую цену на книгу, но не указано делать поле price, поэтому я его добавил (с типом double).
Мой вариант:
#include <iostream>
#include <string.h>
using namespace std;
class Book
{
char *autor;
char name[50];
int year;
double price;
public:
Book()
{
autor = new char[50];
strcpy(autor,"undefined");
strcpy(name,"undefined");
year=0;
price=0;
}
Book(char *name, char *autor, int year, double price)
{
this->autor = new char[50];
this->year=year;
strcpy(this->name,name);
strcpy(this->autor,autor);
this->price=price;
}
~Book()
{
delete[]autor;
}
char* getName() { return name; }
char* getAutor() { return autor; }
double getPrice() { return price; }
int getYear() { return year; }
friend void setPrice(Book& obj, double price);
friend void setYear(Book& obj, int year);
};
void setPrice(Book& obj, double price)
{
obj.price = price;
}
void setYear(Book& obj, int year)
{
obj.year = year;
}
int main()
{
Book b("Harry Potter","Joanne Rowling",1995,100);
cout << "Book name - " << b.getName() << endl;
cout << "Autor name - " << b.getAutor() << endl;
cout << "Release year - " << b.getYear() << endl;
cout << "Book price - " << b.getPrice() << endl;
setPrice(b,150);
setYear(b,1997);
cout << "New book price - " << b.getPrice() << endl;
cout << "New release year - " << b.getYear() << endl;
Var ar:array[1..s] of integer; n,m,i:integer; begin writeln('N'); readln(n); writeln('M'); readln(m); writeln('Array:'); for i:=1 to s do readln(ar[i]); writeln('First array:'); for i:=1 to s do begin write(ar[i]:4); if ar[i] div n<>0 then ar[i]:=ar[i]+m; end; writeln; writeln('Final array:'); for i:=1 to s do write(ar[i]:4); end.
Пример ввода: 3 3 1 2 3 4 5 Пример вывода: First array: 1 2 3 4 5 Final array: 1 2 6 7 8
В задании указано сделать дружественную функцию для того чтобы устанавливать новую цену на книгу, но не указано делать поле price, поэтому я его добавил (с типом double).
Мой вариант:#include <iostream>
#include <string.h>
using namespace std;
class Book
{
char *autor;
char name[50];
int year;
double price;
public:
Book()
{
autor = new char[50];
strcpy(autor,"undefined");
strcpy(name,"undefined");
year=0;
price=0;
}
Book(char *name, char *autor, int year, double price)
{
this->autor = new char[50];
this->year=year;
strcpy(this->name,name);
strcpy(this->autor,autor);
this->price=price;
}
~Book()
{
delete[]autor;
}
char* getName() { return name; }
char* getAutor() { return autor; }
double getPrice() { return price; }
int getYear() { return year; }
friend void setPrice(Book& obj, double price);
friend void setYear(Book& obj, int year);
};
void setPrice(Book& obj, double price)
{
obj.price = price;
}
void setYear(Book& obj, int year)
{
obj.year = year;
}
int main()
{
Book b("Harry Potter","Joanne Rowling",1995,100);
cout << "Book name - " << b.getName() << endl;
cout << "Autor name - " << b.getAutor() << endl;
cout << "Release year - " << b.getYear() << endl;
cout << "Book price - " << b.getPrice() << endl;
setPrice(b,150);
setYear(b,1997);
cout << "New book price - " << b.getPrice() << endl;
cout << "New release year - " << b.getYear() << endl;
cin.get();
cin.get();
}
Const
s=5;
Var
ar:array[1..s] of integer;
n,m,i:integer;
begin
writeln('N');
readln(n);
writeln('M');
readln(m);
writeln('Array:');
for i:=1 to s do
readln(ar[i]);
writeln('First array:');
for i:=1 to s do
begin
write(ar[i]:4);
if ar[i] div n<>0 then ar[i]:=ar[i]+m;
end;
writeln;
writeln('Final array:');
for i:=1 to s do
write(ar[i]:4);
end.
Пример ввода:
3
3
1
2
3
4
5
Пример вывода:
First array:
1 2 3 4 5
Final array:
1 2 6 7 8
//Блок-схема во вложении