Основи програмування на С ++ для початківців

Задачи и решение. С

  1. Типи даних, змінними і константами
  2. Ввод с клавиатуры и вывод данных на экран
  3. Арифметические операции и комбинированные операторы
  4. Операторы выбора if и else в С
  5. Оператор switch в С
  6. Цикл for в C++
  7. Циклы while, do while, вложенные циклы
  8. Двумерные массивы C
  9. Массиви в C++
  10. Функції в C++
  11. Указатели C
  12. Покажчик на покажчик C ++
  13. Классы в С

Додатковий збірник задач з рішеннями

практика программирования, задачи с решением, задачи по программированию с++, задачи по программированию C++

На цій сторінці зібрані всі завдання по темам уроків, розміщених на нашому сайті. К каждой задаче прилагается наш вариант решения. Постарайтесь всё же решать их самостоятельно и только потом сравнивать наш исходный код со своим. “Хочешь научиться программировать – программируй”!

Больше практических заданий с решениями найдёте тут.

Рекомендуем посетить Сайт для юных программистов – где вы найдете уроки по различным языкам программирования (в том числе для детей), 3D-моделированию, Linux и др.

132 думки про "Задачи и решение. С

  1. Всім привіт,потрібна допомога в написанні коду на Сі для мікроконтролера С8051F38 з жк екраном ,потрібно підключити до мікроконтролера 7-сигментне табло(загальний анод) через кнопку,при включенні на табло та на екрані має відображатися 0, при затисканні на кнопку повинен піти відлік вперед до 9 із затримкою в 500мс,при відпусканні кнопки табло зберігає останнє показане число ,при черговому затисканні відлік триває з того місця, де зупинився і так по колу,відлік повинен відображатися паралельно і на жк екрані з написом Status:running зеленим кольором коли відлік іде,і Держ :stop червоним коли зупиняється,пробував,але не виходить
    #include
    #include
    #include
    #визначте BUTTON_PIN PB0
    #визначте SEGMENT_A_PIN PD0
    #визначте SEGMENT_B_PIN PD1
    #визначте SEGMENT_C_PIN PD2
    #визначте SEGMENT_D_PIN PD3
    #визначте SEGMENT_E_PIN PD4
    #визначте SEGMENT_F_PIN PD5
    #визначте SEGMENT_G_PIN PD6

    #визначте SEGMENT_PORT PORTD
    #визначити SEGMENT_DDR DDRD

    #визначте BUTTON_PORT PORTB
    #визначити BUTTON_DDR DDRB

    // Таблиця символів для 7-сегментного індикатора (загальний анод)
    const unsigned char SEGMENT_DIGITS[] = {
    0b00001000, // 0
    0b00111110, // 1
    0b00100100, // 2
    0b00011100, // 3
    0b01001110, // 4
    0b01100100, // 5
    0b01111000, // 6
    0b00000110, // 7
    0b01111110, // 8
    0b01101100, // 9
    };

    // Змінні
    volatile uint8_t current_digit = 0;
    volatile uint8_t button_state_prev = 1; // Як ініціалізувати “відпущена” для виключення хибних натискань

    void display_digit(uint8_t цифра) {
    SEGMENT_PORT = ~SEGMENT_DIGITS[digit]; // Інвертувати значення для загального анода
    }

    void update_display() {
    дисплей_цифра(статус == 0 ? 0 : поточна_цифра);
    }

    void handle_button_press() {
    if (статус == 0) {
    статус = 1;
    поточна_цифра = 0;
    } else {
    поточна_цифра = (поточна_цифра + 1) % 16;
    }
    update_display();
    }

    void handle_button_release() {
    if (статус == 1) {
    статус = 0;
    }
    }

    недійсне налаштування() {
    // Налаштування кнопки як входу з резистором, що підтягує.
    BUTTON_DDR &= ~(1 << BUTTON_PIN);
    BUTTON_PORT |= (1 << BUTTON_PIN);

    // Налаштування висновків сегментів як виходів
    SEGMENT_DDR |= (1 << SEGMENT_A_PIN) |
    (1 << SEGMENT_B_PIN) |
    (1 << SEGMENT_C_PIN) |
    (1 << SEGMENT_D_PIN) |
    (1 << SEGMENT_E_PIN) |
    (1 << SEGMENT_F_PIN) |
    (1 << SEGMENT_G_PIN);
    }

    порожня петля() {
    // Зчитування стану кнопки з виявленням фронтів (volatile для оновлення прапора)
    volatile uint8_t button_state = PINB & (1 << BUTTON_PIN);

    // Обробка натискання кнопки з виявленням фронтів
    if (!button_state && button_state_prev) {
    handle_button_press();
    }

    // Обробка відпускання кнопки з виявленням фронтів
    if (button_state && !button_state_prev) {
    handle_button_release();
    }

    // Оновлення відображення
    update_display();

    // Затримка 500 РС (замінити на відповідну функцію затримки)
    _delay_ms(500);

    // Оновлення попереднього стану кнопки
    button_state_prev = button_state;
    }

    int main() {
    налаштування();
    петля();
    return 0;
    }

  2. Допоможіть будь ласка, через тиждень у мене іспит з с++ ще я зламав палець що мені робити допоможіть навчіть мене прогроммувати ато я вашому сайту поставлю 1 зірку швидко допоможіть мені суки тварюки

  3. Дано натуральне число n (n <= 100), ціле число k (k =+-1) і послідовність цілих чисел a1, a2, ..., ан. Здійснити циклічний зсув елементів послідовності на 1 позицію вправо (при k =1) або вліво (при
    k = −1)

  4. cpp
    #include

    class Matrix
    {
    public:
    void setData()
    {
    if (arrBase != nullptr)
    {
    clearMatrix();
    }
    std::cin >> rows >> cols;
    arrBase = new int* [rows];
    for (int i = 0; i < rows; i++)
    {
    arrBase[i] = new int[cols];
    }

    int data;
    for (int i = 0; i < rows; i++)
    {
    for (int j = 0; j > data;
    arrBase[i][j] = data;
    }
    }

    arrInverted = new int* [cols];
    for (int i = 0; i < cols; i++)
    {
    arrInverted[i] = new int[rows];
    }
    for (int i = 0; i < cols; i++)
    {
    for (int j = 0; j < rows; j++)
    {
    arrInverted[i][j] = arrBase[j][i];
    }
    }
    }
    void getData()
    {
    std::cout << " ~ ~ ~ arrBase ~ ~ ~ " << std::endl;
    for (int i = 0; i < rows; i++)
    {
    for (int j = 0; j < cols; j++)
    {
    std::cout << arrBase[i][j] << "\t";
    }
    std::cout << std::endl;
    }
    std::cout << std::endl;

    std::cout << " ~ ~ ~ arrInverted ~ ~ ~ " << std::endl;
    for (int i = 0; i < cols; i++)
    {
    for (int j = 0; j < rows; j++)
    {
    std::cout << arrInverted[i][j] << "\t";
    }
    std::cout << std::endl;
    }
    std::cout << std::endl;
    }
    private:
    void clearMatrix()
    {
    for (int i = 0; i < rows; i++)
    {
    delete[] arrBase[i];
    }
    delete[] arrBase;
    arrBase = nullptr;

    for (int i = 0; i < cols; i++)
    {
    delete[] arrInverted[i];
    }
    delete arrInverted;
    arrInverted = nullptr;
    }
    int** arrBase = nullptr;
    int** arrInverted = nullptr;
    size_t rows;
    size_t cols;
    };

    int main()
    {
    Matrix m;
    m.setData();
    m.setData();
    m.setData();
    m.getData();
    return 0;
    }

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *