Для студентов МГТУ им. Н.Э.Баумана по предмету Параллельное программированиеБогатырев А. - Хрестоматия по программированиюБогатырев А. - Хрестоматия по программированию 2017-12-22СтудИзба

Книга: Богатырев А. - Хрестоматия по программированию

Описание

Описание файла отсутствует

Характеристики книги

Учебное заведение
Просмотров
193
Скачиваний
4
Размер
321,92 Kb

Список файлов

Богатырев А. - Хрестоматия по программированию

Андрей Богатырев. Хрестоматия по программированию на Си в Unix

А. Богатырев, 1992-95 - 1 - Си в UNIX

0. Напутствие в качестве вступления.

Ум подобен желудку.

Важно не то, сколько ты в него вложишь,

а то, сколько он сможет переварить.

В этой книге вы найдете ряд задач, примеров, алгоритмов, советов и стилистичес-

ких замечаний по использованию языка программирования "C" (Си) в среде операционной

системы UNIX. Здесь собраны этюды разной сложности и "штрихи к портрету" языка Си.

Также описаны различные "подводные камни" на которых нередко терпят крушение новички

в Си. В этом смысле эту книгу можно местами назвать "Как не надо программировать на

Си".

В большинстве случаев в качестве платформы используется персональный компьютер

IBM PC с какой-либо системой UNIX, либо SPARCstation 20 с системой Solaris 2 (тоже

UNIX svr4), но многие примеры без каких-либо изменений (либо с минимумом таковых)

могут быть перенесены в среду MS DOS|=, либо на другой тип машины с системой UNIX.

Это ваша ВТОРАЯ книга по Си. Эта книга не учебник, а хрестоматия к учебнику.

Она не является ни систематическим курсом по Си, ни справочником по нему, и предназ-

начена не для одноразового последовательного прочтения, а для чтения в несколько про-

ходов на разных этапах вашей "зрелости". Поэтому читать ее следует вместе с "настоя-

щим" учебником по Си, среди которых наиболее известна книга Кернигана и Ритчи.

Эта книга - не ПОСЛЕДНЯЯ ваша книга по Си. Во-первых потому, что кое-что в языке

все же меняется со временем, хотя и настал час, когда стандарт на язык Си наконец

принят... Но появился язык C++, который развивается довольно динамично. Еще есть

Objective-C. Во-вторых потому, что есть библиотеки и системные вызовы, которые раз-

виваются вслед за развитием UNIX и других операционных систем. Следующими вашими

(настольными) книгами должны стать "Справочное руководство": man2 (по системным вызо-

вам), man3 (по библиотечным функциям).

Мощь языка Си - в существующем многообразии библиотек.

Прошу вас с первых же шагов следить за стилем оформления своих программ. Делайте

отступы, пишите комментарии, используйте осмысленные имена переменных и функций,

отделяйте логические части программы друг от друга пустыми строками. Помните, что

"лишние" пробелы и пустые строки в Си допустимы везде, кроме изображений констант и

имен. Программы на Си, набитые в одну колонку (как на FORTRAN-e) очень тяжело читать

и понимать. Из-за этого бывает трудно находить потерянные скобки { и }, потерянные

символы `;' и другие ошибки.

Существует несколько "школ" оформления программ - приглядитесь к примерам в этой

книге и в других источниках - и выберите любую! Ничего страшного, если вы будете

смешивать эти стили. Но - ПОДАЛЬШЕ ОТ FORTRAN-а !!!

Программу можно автоматически сформатировать к "каноническому" виду при помощи,

например, программы cb.

cb < НашФайл.c > /tmp/$$

mv /tmp/$$ НашФайл.c

но лучше сразу оформлять программу правильно.

Выделяйте логически самостоятельные ("замкнутые") части программы в функции

(даже если они будут вызываться единственный раз). Функции - не просто средство

избежать повторения одних и тех же операторов в тексте программы, но и средство

структурирования процесса программирования, делающее программу более понятной. Во-

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

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

функции, можно рассматривать как неделимый примитив (от довольно простого по смыслу,

вроде strcmp, strcpy, до довольно сложного - qsort, malloc, gets) и забыть о его

внутреннем устройстве (это хорошо - надо меньше помнить).

____________________

|= MS DOS - торговый знак фирмы Microsoft Corporation. (читается "Майкрософт");

DOS - дисковая операционная система.

А. Богатырев, 1992-95 - 2 - Си в UNIX

Не гонитесь за краткостью в ущерб ясности. Си позволяет порой писать такие выра-

жения, над которыми можно полчаса ломать голову. Если же их записать менее мудрено,

но чуть длиннее - они самоочевидны (и этим более защищены от ошибок).

В системе UNIX вы можете посмотреть описание любой команды системы или функции

Си, набрав команду

man названиеФункции

(man - от слова manual, "руководство").

Еще одно напутствие: учите английский язык! Практически все языки программирова-

ния используют английские слова (в качестве ключевых слов, терминов, имен переменных

и функций). Поэтому лучше понимать значение этих слов (хотя и восприятие их как

просто неких символов тоже имеет определенные достоинства). Обратно - программирова-

ние на Си поможет вам выучить английский.

По различным причинам на территории России сейчас используется много разных

восьмибитных русских кодировок. Среди них:

КОИ-8

Исторически принятая на русских UNIX системах - самая ранняя из появившихся.

Отличается тем свойством, что если у нее обрезан восьмой бит: c & 0177 - то она

все же читаема с терминала как транслитерация латинских букв. Именно этой коди-

ровкой пользуется автор этой книги (как и большинство UNIX-sites сети RelCom).

ISO 8859/5

Это американский стандарт на русскую кодировку. А русские программисты к ее

разработке не имеют никакого отношения. Ею пользуется большинство коммерческих

баз данных.

Microsoft 1251

Это та кодировка, которой пользуется Microsoft Windows. Возможно, что именно к

этой кодировке придут и UNIX системы (гипотеза 1994 года).

Альтернативная кодировка для MS DOS

Русская кодировка с псевдографикой, использовавшаяся в MS DOS.

Кодировка для Macintosh

Это великое "разнообразие" причиняет массу неудобств. Но, господа, это Россия - что

значит - широта души и абсолютный бардак. Relax and enjoy.

Многие примеры в данной книге даны вместе с ответами - как образцами для подра-

жания. Однако мы надеемся, что Вы удержитесь от искушения и сначала проверите свои

силы, а лишь потом посмотрите в ответ! Итак, читая примеры - делайте по аналогии.

А. Богатырев, 1992-95 - 3 - Си в UNIX

1. Простые программы и алгоритмы. Сюрпризы, советы.

1.1. Составьте программу приветствия с использованием функции printf. По традиции

принято печатать фразу "Hello, world !" ("Здравствуй, мир !").

1.2. Найдите ошибку в программе

#include <stdio.h>

main(){

printf("Hello, world\n");

}

Ответ: раз не объявлено иначе, функция main считается возвращающей целое значение

(int). Но функция main не возвращает ничего - в ней просто нет оператора return.

Корректно было бы так:

#include <stdio.h>

main(){

printf("Hello, world\n");

return 0;

}

или

Картинка-подпись
Хочешь зарабатывать на СтудИзбе больше 10к рублей в месяц? Научу бесплатно!
Начать зарабатывать

Комментарии

Поделитесь ссылкой:
Рейтинг5,00
0
0
0
0
1
Поделитесь ссылкой:
Сопутствующие материалы
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее