Array M. УЭИТ - Язык Си - руководство для начинающих

Здесь есть возможность читать онлайн «Array M. УЭИТ - Язык Си - руководство для начинающих» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 1988, ISBN: 1988, Издательство: Мир, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык Си - руководство для начинающих: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык Си - руководство для начинающих»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

M. УЭИТ   С. ПРАТА    Д. МАРТИН
Язык Си — руководство для начинающих

Язык Си - руководство для начинающих — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык Си - руководство для начинающих», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Во многих языках программирования адрес объекта скрыт от программиста и считается относящимся к уровню машины. В языке Си благодаря операции &мы имеем возможность узнать и использовать адрес переменной:

&bаrn- это адрес переменной bаrn.

Мы можем получить значение переменной, соответствующее данному имени, используя только само имя :

printf(" %d\n", barn) печатает значение переменной barn

Мы можем также получить значение переменной, исходя из ее адреса, при помощи операции *:

РИС 96 Имена адреса и величнны в системе с байтовой адресацией тина IBM - фото 57

РИС. 9.6. Имена, адреса и величнны в системе с "байтовой адресацией" тина IBM PC.

Дано pbarn= &bаrn;тогда *pbarn- это величина, помещенная по адресу &bаrn. Хотя мы и можем напечатать адрес переменной для удовлетворения своего любопытства, это не основное применение операции &. Более важным является то, что наличие операций &, *и указателей позволяет обрабатывать адреса и их содержимое в символическом виде, чем мы и занимались в программе обмен3.

ИСПОЛЬЗОВАНИЕ НАШИХ ЗНАНИЙ О ФУНКЦИЯХ

Теперь, когда мы знаем о функциях немного больше, соберем вместе несколько поучительных примеров, но сначала решим, чем мы будет заниматься.

Что вы скажете насчет функции возведения в степень, которая дает возможность возводить 2 в 5-ю степень или 3 в 3-ю и т. д.? Во-первых, необходимо решить, что будет служить входом программы. Это понятно: Cи требуется знать число, возводимое в степень, и показатель степени. Достичь этого можно путем введения двух аргументов:

powеr(base, exp)

int base, exp;

(Мы ограничились здесь целыми числами, а также тем предположением, что результат будет сравнительно невелик.)

Далее требуется решить, что будет выходом функции. Ответ, конечно, тоже очевиден. Выходом должно быть одно число, являющееся значением переменной answer. Мы можем реализовать это с помощью оператора

rеturn(answcr);

Теперь для получения требуемого результата выберем алгоритм:

установим переменную answerравной 1,

умножим answerна baseстолько раз, сколько указывает exp.

Возможно, не совсем ясно, как осуществить второй шаг, поэтому разобьем его дальше на более мелкие шаги:

умножим answerна baseи уменьшим на 1, остановимся, когда expстанет равной 0.

Если значение expравно, скажем 3, тогда использование такого алгоритма приведет к трем умножениям; поэтому данный способ кажется вполне разумным.

Очень хорошо. Выразим теперь этот алгоритм в виде программы на языке Си.

/* возводит основание в степень */

power(base, exp)

int base, exp;

{

int answer;

for (answer = 1; exp > 0; exp--)

answer = answer* base;

return(answer);

}

Теперь проверим ее работу с помощью драйвера.

/* проверка возведения в степень */

main( )

{

int x;

х= power(2,3);

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

x = power(-3,3);

prinif(" %d\n", x);

x = power(4, -2);

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

x = power(5, 10);

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

}

Объединим указанные две функции, проведем компиляцию и выполним данную программу. Результаты оказываются следующими:

8

-27

1

761

Итак, 2 в 3-й степени - это 8, а - 3 в 3-й равно -27. Пока все правильно. Но 4 в степени -2 равно 1/16, а не 1. А 5 в 10-й степени, если память нам не изменяет,- это 9 765 625. В чем дело? Во-первых, программа не предназначалась для обработки отрицательных степеней, поэтому она и не смогла справиться с этой задачей. Во-вторых, в нашей системе величины типа intне могут превосходить 65 535.

Можно расширить программу путем включения в нее обработки отрицательных степеней и использования чисел с плавающей точкой для представления переменных baseи answer. В любом случае показатель степени должен выражаться целым числом, потому что это число выполняемых умножений; нельзя произвести 2,31 умножения.

/* возводит основание в степень*/

double powеr(base, еxp)

double, base;

int exp;

{

double answer;

if(exp > 0)

{

for(answer = 1.0; exp > 0; exp --) answer * = base;

return(answer);

}

else if(base != 0)

{

for(answer = 1.0; exp < 0; exp++ ) answer /= base;

return(answer);

}

else /* base = 0 иеxp <= 0 */

{

printf(" Нельзя возводить 0 в %d стeпень!\n", exp);

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Язык Си - руководство для начинающих»

Представляем Вашему вниманию похожие книги на «Язык Си - руководство для начинающих» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Язык Си - руководство для начинающих»

Обсуждение, отзывы о книге «Язык Си - руководство для начинающих» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x