Читаем Рассказы о математике с примерами на языках Python и C (СИ) полностью

printf("%d\n", x+y);

<p>Циклы</p>

В отличие от того же С++ или Java, циклы задаются отступами, что после других языков программирования может быть непривычным. Часть кода, находящаяся внутри цикла, будет выполнена заданное количество раз.

Python

Вывод чисел от 1 до 9:

for p in range(1, 10):

    print (p)

Вывод чисел от 1 до 9 с шагом 2:

for p in range(1, 10, 2):

    print (p)

Си

Вывод чисел от 1 до 9:

for(int i=1; i10; i++) {

  printf("%d\n", i);

}

Вывод чисел от 1 до 9 с шагом 2:

for(int i=1; i10; i+=2) {

  printf("%d\n", i);

}

<p>Массивы</p>

Массив это линейный набор чисел, с которыми удобно выполнять однотипные операции, например вычисление суммы или среднего арифметического.

Python

Объявляем массив чисел:

values = [1, 2, 3, 5, 10, 15, 20]

Добавляем элемент в массив:

values.append(7)

Выводим массив на экран:

print(values)

Выводим элементы массива построчно:

for p in values:

    print(p)

Это же можно сделать с помощью индексов (нумерация элементов массива начинается с 0):

for i in range(0, len(values)):

    print (values[i])

Си: Динамические массивы поддерживаются только в C++, статические массивы создаются так:

int values[7] = { 1,2,3,5,10,15,20 };

for(int i=0; i7; i++) {

  printf("%d\n", values[i]);

}

При желании можно слегка схитрить, если максимальный размер массива заранее известен.

int values[255] = { 1,2,3,5,10,15,20 }, cnt = 7;

for(int i=0; icnt; i++) {

  printf("%d\n", values[i]);

}

values[cnt] = 7;

cnt++;

Можно пользоваться динамическим распределением памяти, хотя это немного сложнее:

int *valuesArray = (int*)malloc(10*sizeof(int));

valuesArray[0] = 1;

valuesArray[1] = 3;

valuesArray[2] = 15;

valuesArray = (int*)realloc(valuesArray, 25*sizeof(int));

valuesArray[20] = 555;

valuesArray[21] = 777;

for(int i=0; i25; i++) {

  printf("%d\n", valuesArray[i]);

}

free(valuesArray);

Важно заметить, что неинициализированные значения массива, например valuesArray[16], будут содержать «мусор», некие значения которые были до этого в памяти. Си достаточно низкоуровневый язык, и такие моменты нужно учитывать. Хорошим тоном является инициализация всех переменных при их описании. Вот такой код формально не содержит ошибок:

int x;

printf("x=%d\n", x);

Однако при его запуске выведется значение 4196608, или 0, или 32, результат непредсказуем. В большой программе такие ошибки может быть сложно найти, тем более что проявляться они могут не всегда.

<p>Арифметические операции</p>

Сложение, умножение,деление:

x1 = 3

x2 = (2 * x1 * x1 + 10*x1 + 7)/x1

Возведение в степень:

x3 = x1**10

print(x1, x2, x3)

Переменную также можно увеличить или уменьшить:

x1 += 1

x1 -= 10

print(x1)

Остаток от деления:

x2 = x1 % 6

print(x2)

Подсчитаем сумму элементов массива:

values = [1,2,3,5,10,15,20]

sum = 0

for p in values:

    sum += p

print(sum)

Для более сложных операций необходимо подключить модуль math. Вычисление квадратного корня:

import math

print(math.sqrt(x3))

Условия задаются отступами, аналогично циклам:

print (x1)

if x1 % 2 == 0:

    print("x1 четное число")

else:

    print("x1 нечетное число")

Python может делать вычисления с большими числами, что достаточно удобно:

x1 = 12131231321321312312313131124141

print(10 * x1)

print(math.sqrt(x1))

Можно вывести даже факториал числа 1024, что не сделает ни один калькулятор:

print(math.factorial(1024))

В Си вычисление суммы элементов массива выглядит так:

int sum = 0;

for(int i=0; icnt; i++) {

  sum += values[i];

}

printf("Sum=%d\n", sum);

Пожалуй, этого не хватит чтобы устроиться на работу программистом, но вполне достаточно для понимания большинства примеров в книге. Теперь вернемся к математике.

<p>2. Математические фокусы</p>
Перейти на страницу:

Похожие книги

История математики. От счетных палочек до бессчетных вселенных
История математики. От счетных палочек до бессчетных вселенных

Эта книга, по словам самого автора, — «путешествие во времени от вавилонских "шестидесятников" до фракталов и размытой логики». Таких «от… и до…» в «Истории математики» много. От загадочных счетных палочек первобытных людей до первого «калькулятора» — абака. От древневавилонской системы счисления до первых практических карт. От древнегреческих астрономов до живописцев Средневековья. От иллюстрированных средневековых трактатов до «математического» сюрреализма двадцатого века…Но книга рассказывает не только об истории науки. Читатель узнает немало интересного о взлетах и падениях древних цивилизаций, о современной астрономии, об искусстве шифрования и уловках взломщиков кодов, о военной стратегии, навигации и, конечно же, о современном искусстве, непременно включающем в себя компьютерную графику и непостижимые фрактальные узоры.

Ричард Манкевич

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Математика / Научпоп / Образование и наука / Документальное