2022-fall-computer-science

Практика

Разминка

  1. Создайте в своём репозитории 2022-polytech-%фамилия% пустой файл README.md в директории 03_cpp/intro
  2. Сделайте коммит
  3. Напишите программу, которая запрашивает имя пользователя и выводит его обратно в строке “Hello, %имя пользователя%!”
  4. Настройте cmake-проект
  5. Отправьте решение на GitHub

Задание

Калькулятор

  1. Создайте в своём репозитории 2022-polytech-%фамилия% пустой файл README.md в директории 03_cpp/calculator
  2. Настройте cmake-проект
  3. Напишите программу, которая в бесконечном цикле считывает команды пользователя, вычисляет результат и выводит его (это REPL-режим)
  4. Реализуйте опреации вида a $ b, где a и b — вещественные числа, а $ — операции: +, -, *, /, ^ (возведение в целочисленную степень)
  5. Совет: разделите программу на несколько файлов
  6. Отправьте решение на GitHub

Домашнее задание

  1. Создайте в своём репозитории директорию 03_cpp/gcd
  2. Настройте cmake-проект
  3. Возьмите заготовку (см. ниже) и напишите программу, которая вычисляет наибольший общий делитель двух целых чисел с помощью алгоритма Евклида (см. литературу)
  4. В main выполняются проверочные запуски функции gcd с помощью assert (см. документацию). Обеспечьте корректное выполнение всех проверок
#include <iostream>
#include <cassert>

int gcd(int a, int b) {

  if (a < 0) a *= -1;
  if (b < 0) b *= -1;

  // Решение тут

  return 0;
}

int main() {
  assert(gcd(0, 5) == 5);
  assert(gcd(9, 0) == 9);
  assert(gcd(48, 64) == 16);
  assert(gcd(-64, 48) == 16);
  assert(gcd(30, 18) == 6);
  assert(gcd(-30, -18) == 6);
  assert(gcd(270, 192) == 6);

  return 0;
}

Комментарии