Переменные
- Память компьютера и адреса
- Неудобство адресной арифметики (выравнивание, множители в зависимости от типа данных)
Си: разные типы числовых данных:
- Байты
- Целые
- Длинные целые
- вещественные (совсем другой тип данных!)
- длинные вещественные
- Си: имена вместо адресов
- Идентификатор
пример с sizeof() для разных типов
1 #include <stdio.h> 2 main() { 3 int i; /* Задание целочисленной переменной */ 4 float y; /* Задание вещественой переменной */ 5 6 y=2.718281828459045; /* Присваивание вещественной константы */ 7 i=(2+3)*5; /* Вычисление целочисленного выражения */ 8 9 printf("%d\n", i); /* Вывод переменной как целого */ 10 printf("%f\n", y); /* ВЫвод переменной как вещестенного */ 11 12 /* Размер i и y в байтах */ 13 printf("%d %d\n", sizeof(i), sizeof(y)); 14 }
- Операция присваивания
- Си: арифметические выражения вместо атомарных операций
- приоритет операций
- правые операции
- присваивание — тоже операция! (левая)
- a = b = c
- Волшебный scanf(), пока без объяснений
1 int a, b, c; 2 float f; 3 4 /* операция = сама возвращает значение, равное левой части 5 * так что это то же самое, что a=(b=(c=123)) */ 6 a = b = c = 123; 7 /* Операция & — взятие адреса 8 * scanf не интересуют старые значения переменных 9 * ему нужно знать, куда записывать новые */ 10 scanf("%d %f", &a, &f); 11 printf("%d %d %d %f\n", a, b, c, f);
На следующий раз:операции ++, --, +=, -=, математические функции в <math.h> (введение) На потом системы счисления, представление беззнаковых и знаковых чисел, побитовые операции
Домашнее задание
Решением является работающая программа
Решения прикладываются в качестве ответа на сообщение ВКонтакте (присоединяйтесь к группе)
Прочитать в учебнике про имена переменных и типы и размеры данных
- Известна длина окружности. Найти площадь круга, ограниченного этой окружностью.
Найти произведение цифр заданного четырехзначного числа (подсказка: n%10 — последняя цифра числа n ☺ )
Дано действительное число a. Не пользуясь никакими другими арифметическими операциями, кроме умножения, получить
a4 за две операции;
a10 за четыре операции