Язык Си - [29]
Тем из вас, кто предпочитает знать правильные названия понятий, скажем, что вместо использованного ранее термина "элемент" обычно употребляют слово "операнд". Операнды - это то, над чем выполняются операции. Например, вы можете описать процесс "поедания" гамбургера как применение операции "поедание" к oпeранду "гамбургер".
Операция присваивания в языке Си представляется несколько более интересной, чем в большинстве других языков. Попробуйте выполнить приведенную ниже короткую программу.
/* таблица результатов турнира по гольфу */
main( ) {
int Jane, tarzan, cheeta, cheeta = tarzan = jane = 68;
printf("cheeta tarzan jane\n");
printf("Cчетпервойпартии%4d %8d %8d \n", cheeta, tarzan, jane);
}
В то время как многие языки запрещают применять такое троиное присваивание, присутствующее в данной программе, для Си это обычная практика. Присваивания выполняются справа налево сначала переменная jane получает значение 68, затем переменная tarzan и наконец переменная cheeta. Результат выглядит так:
cheeta tarzan jane
Счет первой партии 68 68 68
В языке Си имеется несколько других операции присваивания, которые отличаются от операции, описанной в данном разделе, и мы обещаем рассказать о них в следующей главе.
Операция сложения: +
Выполнение операции + приводит к сложению двух величин, стоящих слева и справа от этого знака. Например, в результате работы оператора
printf(" %d", 4 + 20);
на печать будет выведено число 24, а не выражение 4 + 20
Операнды могут быть как переменными, так и константами. Поэтому при выполнении оператора
income = salary + bribes;
компьютер возьмет значения двух переменных, стоящих в правой части, сложит их и присвоит затем полученную сумму переменной income.
Операция + называется "бинарной", или "диадической". Эти названия отражают тот факт, что она имеет дело с двумя операндами.
Операция вычитания: -
Выполнение операции вычитания приводит к вычитанию числа, расположеного справа от знака -, из числа, стоящего слева от этого знака. Оператор
takehome = 224.00 - 24.00;
присваивает переменной takehome значение 200.
Операция изменения знака: -
Знак минус используется также для указания или изменения алгебраического знака некоторой величины. Например, в результате выполнения последовательности операторов
rocky = -12;
smokey = -rocky;
переменной smokey будет присвоено значение 12.
Когда знак минус используется подобным образом, данная oneрация называется "унарной". Такое название указывает на то, что она имеет дело только с одним операндом.
РИС. 5.2. Унарные и бинарные операции
Операция умножения: *
Операция умножения обозначается знаком *. При выполнении оператора
cm = 2.54 * in;
значение переменной in умножается на 2.54, и результат присваивается переменной cm.
Вы хотите иметь таблицу квадратов натуральных чисел? В языке Си нет функции, осуществляющей возведение в квадрат; вместо этого мы можем использовать умножение.
/* квадраты чисел */
main( ) /* получение таблицы квадратов */
{
int num = 1;
while(num < 21) {
printf("%10d %10d", n, n*n);
n = n + 1;
}
Эта программа выводит на печать первые 20 целых чисел и их квадраты, в чем вы сами легко можете убедиться. Теперь давайте рассмотрим более интересный пример. Вы, наверное, слышали историю о том, как один могущественный правитель обещал наградить ученого, оказавшего ему большую услугу. Ученый, когда его спросили, что бы он хотел получить в награду, указал на шахматную доску и промолвил: "Положите одно пшеничное зерно на первую клетку, два - на вторую, четыре на третью, восемь на следующую и т. д.". Правитель, которому явно недоставало математической эрудиции, был поражен, услышав такую скромную просьбу,- ведь он уже приготовил богатые дары. Программа, приведенная ниже, показывает, в какое смешное положение попал правитель. В ней вычисляется количество зерен, которое надо положить на каждую клетку, а также промежуточные результаты (суммы зерен по числу клеток). Поскольку вы, возможно, не знакомы с урожаями пшеницы, мы, кроме того, сравниваем промежуточные суммы зерен с приблизительными цифрами годового урожая пшеницы в США.
/* пшеница */
#define SQUARES 64 /* число клеток на шахматной доске */
#define CROP 7E14 /* урожай пшеницы в США, выраженный в числе зерен */
main( ) {
double current, total, int count = 1;
printf(" клетка число зерен сумма зерен доля\n");
printf("от урожая в США\n"),
total = current = 1.0; /* начинаем с одного зерна */
printf("%4d %15.2е%13.2е%12.2e\n", count, current, total, total/CROP);
while (count < SQUARES){
count = count + 1;
current =2.0 * current; /* у двоение числа зерен на следующей клетке*/
total = total + current; /* коррекциясуммы*/
printf(" %4d %15.2е%13.2е%12 2e\n" , count, current, total, total/CROP); }
}
Вначале результаты работы программы выглядят довольно безобидно.
На первых 10 клетках оказалось чуть более тысячи зерен пшеницы. Но давайте посмотрим, сколько зерен на пятидесяти клетках.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.