Основы программирования на С++ для начинающих

Задачи и решения: Классы C++

Прошло немного времени после публикации вводного урока о классах в C++. Теперь мы предлагаем вам попрактиковаться в решении достаточно простых задач с применением классов. Старайтесь решать самостоятельно.

1. Создать класс Tiles (кафель), который будет содержать поля с открытым доступом: brandsize_hsize_wprice и метод класса getData(). В главной функции объявить пару объектов класса и внести данные в поля. Затем отобразить их, вызвав метод getData().

2. Определить класс Children, который содержит такие поля (члены класса): закрытые – имя ребенка, фамилию и возраст , публичные – методы ввода данных и отображения их на экран. Объявить два объекта класса, внести данные и показать их.

3. Преобразовать строки двумерного массива в столбцы. Например было: 

задачи и решения, классы c++, классы с++ для начинающих, спецификаторы доступа privat и public, методы класса

стало:

задачи и решения, классы c++, классы с++ для начинающих, спецификаторы доступа privat и public, методы класса

Класс будет содержать два метода: один заполнит массив значениями, второй произведет замену значений строк на значения столбцов.

37 thoughts on “Задачи и решения: Классы C++

  1. #include

    using namespace std;

    class Matrix {

    private:
    int **matrix;
    public:
    void setData(int row, int col) {
    matrix = new int* [row];
    for (int i = 0; i < row; i++) {
    matrix[i] = new int[col];
    }
    for (int i = 0; i < row; i++) {
    cout << '\n';
    for (int j = 0; j < col; j++) {
    matrix[i][j] = 1 + rand() % 9;
    cout << matrix[i][j] << '\t';
    }
    }
    cout << "\n====================================================\n";
    };
    void getData(int row,int col) {
    for (int i = 0; i < col; i++) {
    cout << '\n';
    for (int j = 0; j < row; j++) {
    cout << matrix[j][i] << '\t';
    }
    }
    for (int i = 0; i < row; i++) {
    delete[]matrix[i];
    }
    delete[]matrix;
    };
    };
    int main() {
    Matrix a;
    a.setData(3,6);
    a.getData(3,6);
    return 0;
    }

  2. Я початківець, і ось мій код:

    #include

    using namespace std;

    class ArrayConverter{
    public:
    int numbers[7][3] = {
    0,0,0,
    0,0,0,
    0,0,0,
    0,0,0,
    0,0,0,
    0,0,0,
    0,0,0
    };
    int convertedNumbers[3][7] = {
    0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,
    0,0,0,0,0,0,0
    };

    void SetRandomElements(){
    for(int i = 0; i < 7; i++){
    for(int j = 0; j < 3; j++){
    numbers[i][j] = rand() % 11;
    }
    }
    }
    void ShowOriginalArray(){
    for(int i = 0; i < 7; i++){
    for(int j = 0; j < 3; j++){
    cout << numbers[i][j] << " ";
    }
    cout << endl;
    }
    }

    void ConvertColumnsToRows(){
    for(int i = 0; i < 3; i++){
    for(int j = 0; j < 7; j++){
    convertedNumbers[i][j] = numbers[j][i];
    }
    }
    }
    void ShowConvertedArray(){
    for(int i = 0; i < 3; i++){
    for(int j = 0; j < 7; j++){
    cout << convertedNumbers[i][j] << " ";
    }
    cout << endl;
    }
    }

    ArrayConverter(){
    SetRandomElements();
    }
    };

    int main(){
    ArrayConverter converter;
    converter.ShowOriginalArray();
    converter.ConvertColumnsToRows();
    cout << endl;
    converter.ShowConvertedArray();
    return 0;
    }

  3. #include
    using namespace std;
    class ChangeArr
    {
    public:
    void setArr();
    void change();
    private:
    int** arr;
    int row = 0;
    int col = 0;
    };
    void main()
    {
    setlocale(LC_ALL, “ru”);
    srand(time(NULL));
    ChangeArr arr;
    arr.setArr();
    arr.change();
    }
    void ChangeArr::setArr()
    {
    cout << "Укажите размер массива:" <> row;
    cin >> col;
    arr = new int* [row];
    for (int i = 0; i < row; i++)
    {
    arr[i] = new int[col];
    }
    cout << "Заполните массив:" << endl;
    for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    cout << "Значение ячейки – [" << i << "]" << "[" << j << "]" <> arr[i][j];
    }
    }
    cout << endl;
    cout << "Ваш массив:" << endl<<endl;

    for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    cout << arr[i][j] << " ";
    }
    cout << endl;
    }
    }
    void ChangeArr::change()
    {
    int** tempArr = new int* [col];
    for (int i = 0; i < col; i++)
    {
    tempArr[i] = new int[row];
    }
    for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    tempArr[j][i] = arr[i][j];
    }
    }
    cout << "Замена строчек на столбци " << endl << endl;
    for (int i = 0; i < col; i++)
    {
    for (int j = 0; j < row; j++)
    {
    cout << tempArr[i][j] << " ";
    }
    cout << endl;
    }
    for (int i = 0; i < col; i++)
    {
    delete[] arr[i];
    }
    delete[]arr;
    arr = nullptr;
    for (int i = 0; i < col; i++)
    {
    delete[] tempArr[i];
    }
    delete[]tempArr;
    tempArr = nullptr;
    }

  4. #include
    #include

    using namespace std;

    class Matrix
    {
    private:

    int** arr;
    int row;
    int col;
    int** bufArr;
    int bufRow;
    int bufCol;

    public:

    void Fill_array(int rows_value, int cols_value)
    {
    row = rows_value;
    col = cols_value;
    bufRow = rows_value;
    bufCol = cols_value;

    arr = new int* [row];
    for (int i = 0; i < row; i++)
    {
    arr[i] = new int[col];
    }

    for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    arr[i][j] = rand() % 90 + 10;
    }
    }
    }

    void Change_rows_with_cols()
    {
    bufArr = new int* [row];

    for (int i = 0; i < row; i++)
    {
    bufArr[i] = new int[col];
    }

    for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    bufArr[i][j] = arr[i][j];
    }
    }

    int buf = row;
    row = col;
    col = buf;

    for (int i = 0; i < col; i++)
    {
    delete[] arr[i];
    }
    delete[] arr;

    arr = new int* [row];

    for (int i = 0; i < row; i++)
    {
    arr[i] = new int[col];
    }

    for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    arr[i][j] = bufArr[j][i];
    }
    }
    }

    void PrintArr()
    {
    for (int i = 0; i < row; i++)
    {
    for (int j = 0; j < col; j++)
    {
    cout << arr[i][j] << " ";
    }
    cout << endl;
    }
    }

    ~Matrix()
    {
    for (int i = 0; i < bufRow; i++)
    {
    delete[] bufArr[i];
    }

    delete[]bufArr;

    for (int i = 0; i < row; i++)
    {
    delete[] arr[i];
    }
    delete[]arr;
    }

    };

    int main()
    {
    srand(time(NULL));

    Matrix first;
    first.Fill_array(4, 2);
    first.PrintArr();
    cout << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" << endl;
    first.Change_rows_with_cols();
    first.PrintArr();
    }

  5. class Massiv {
    private:
    int massiv[2][4]{
    {11,33,55,77},
    {22,44,66,88}
    };
    public:
    void vertical() {
    std::cout << massiv[0][0] << " " << massiv[1][0] << std::endl;
    std::cout << massiv[0][1] << " " << massiv[1][1] << std::endl;
    std::cout << massiv[0][2] << " " << massiv[1][2] << std::endl;
    std::cout << massiv[0][3] << " " << massiv[1][3] << std::endl;
    }

    void gorizont() {
    std::cout << massiv[0][0] << " " << massiv[0][1] << " " << massiv[0][2] << " " << massiv[0][3] << " " << std::endl;
    std::cout << massiv[1][0] << " " << massiv[1][1] << " " << massiv[1][2] << " " << massiv[1][3] << " " << std::endl;
    }
    };

    int main() {
    setlocale(LC_ALL, "rus");
    Massiv massiv_two;
    std::cout << "было:" << std::endl;
    massiv_two.vertical();
    std::cout << "стало:" << std::endl;
    massiv_two.gorizont();
    }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *