11.03.2023
статья
Перевожу Python в C плюс-плюс! Часть #2

Всем привет!

Сегодня выйдет вторая часть поста, который выходил 3 месяца назад. И я снова будут брать задачи с курса по питону и переводить уже в CPP. Ещё скажу, что это не совсем перевод. Я просто буду показывать, как те, или иные задачи решались с помощью CPP. Причём весь код, а не основную часть.


О языке.
CPP - компилируемый, типизированный, c-подобный, низкоуровневый язык программирования. Поддерживает П.П., О.О.П. и О.П. Включает множество разных функций. Широко используется для...   всего. От разработки программного обеспечения, до создания игр (Unreal Engine, например).


Задача: Hello, world!

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello World!\n";
}

Она довольно простая. В ней используется библиотека iostream и пространство имён std.


Задача: Экзаменатор
Вот, как она выглядит:

#include <iostream>
#include <ctime>

using namespace std;

int random(int start, int stop) {
    return rand() % (stop - 1)   start;
}

int main()
{
    setlocale(LC_ALL, "Rus");

    srand(time(NULL));
    int success = 0;
    for (int i = 0; i < 5; i  )
    {
	int a = random(1, 9);
	int b = random(1, 9);

	cout << a << "   " << b << " = ";

	int answer;

	cin >> answer;

	if (answer == a b) {
	    success  ;
	    cout << "Верно!\n";
	}
	else {
	    cout << "Неверно!\n";
	}
    }
    cout << "Правильных ответов: " << success;
}

Эта задача уже заметно сложнее (кто бы мог подумать). Она использует две библиотеки iostream и ctime. И генератор псевдослучайных чисел.


Задача: Инвестиционный калькулятор
Вот эта задача уже сложнее. Даже не в написании кода. Для её выполнения нужно быть внимательным и знать типы данных.

#include <iostream>
#include <math.h>

using namespace std;

double investment(double balance, int years, int percent = 10) {
    double number = balance;
    for (int year = 0; year < years; year  )
    {
        number = (number / 100 * percent);
    } 
    return round(number * 100) / 100;
}

int main()
{
    cout << investment(100, 25) << endl;
}

Просто изначально я использовал тип int, вместо double. Многие сейчас вообще ничего не поняли. В более низкоуровневых (сложных) языках перед переменными нужно указывать тип значения. К примеру, int - число(целое), а string - обычная строка. А double отличается от int тем, что он может хранить дробные числа.


Задача: Количество вхождений числа в списке
Она не такая сложная, но так как C довольно "капризный", пришлось с ней повозиться.

#include <iostream>
using namespace std;

int count_times(int list[], int num, int size) {
    int count = 0;
    for (int i = 0; i < size; i  )
    {
	if (list[i] == num) {
	    count  ;
	}
    }
    return count;
}

int main()
{	
    int list[8] { 15,732,4,7,9,7,5,2}; // Для примера
    int num = count_times(list, 7, sizeof(list) / sizeof(int));
    cout << num;
}

Проблема была в том, что в функциях, находящихся за main, функция sizeof не хотела нормально работать.


На этом сегодня всё. Если вы хотите, могу написать 3-ю часть с языком C, но для этого нужно набрать немало лайков. Обязательно подписывайтесь на мой профиль, чтобы не пропустить следующие посты!

Всем пока!

Перевожу Python в C плюс-плюс! Часть #2
Комментарии (0)
Увы.. комментариев пока нет..