Рассказы о математике с примерами на языках Python и C | страница 3



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

}


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

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

for(int i=0; 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; i<25; i++) {

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

}

free(valuesArray);


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

int x;

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

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


Арифметические операции

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

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; i

       sum += values[i];

      }

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


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