for(int i=1; i<10; i++) {
printf("%d\n", i);
}
Вывод чисел от 1 до 9 с шагом 2:
for(int i=1; i<10; i+=2) {
printf("%d\n", i);
}
Массив это линейный набор чисел, с которыми удобно выполнять однотипные операции, например вычисление суммы или среднего арифметического.
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; i<7; i++) {
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);
Пожалуй, этого не хватит чтобы устроиться на работу программистом, но вполне достаточно для понимания большинства примеров в книге. Теперь вернемся к математике.
Для «разминки» рассмотрим несколько фокусов, имеющих отношение к числам. Никаких особых сложностей в них нет, но их знание поможет развеселить или удивить знакомых знанием математики.
Умножение в уме числа на 11
Рассмотрим простой пример: 26 * 11 = 286
Сделать это в уме просто, если взять сумму чисел и поместить в середину: 26 * 11 = 2 [2+6] 6
Аналогично 43 * 11 = 473, 71 * 11 = 781 и так далее.
Чуть длиннее расчет, если сумма чисел больше либо равна 10. Но и тогда все просто: в середину кладется младший разряд, а 1 уходит в старший разряд:
47 * 11 = [4] [4 + 7 = 11] [7] = [4 + 1] [1] [7] = 517
94 * 11 = [9] [9 + 4 = 13] [4] = [10] [3] [4] = 1034
Возведение в квадрат числа, оканчивающегося на 5
Подсчитать это тоже просто. Если число рассмотреть как пару NM, то первая часть результата — это число N, умноженное на (N + 1), вторая часть числа — всегда 25. 35 2= [3 * 4] [25] = 12 25
Аналогично:
25 2= [2 * 3] 25 = 625 85 2= [8*9] 25 = 7225 и так далее.
Попросим человека загадать любое число. Например 73. Затем чтобы еще больше запутать отгадывающего, попросим сделать следующие действия:
Читать дальше