- •Содержание
- •Глава 1. Описание языка c ......................................................................... 5
- •Глава 2. Описание языка fortran ....................................................... 38
- •Глава 3. Решение задач на языках c и fortran ................................ 70
- •Глава 1. Описание языка c
- •1.1. Структура c-программы
- •1.2. Скалярные типы данных и константы, строковые константы
- •1.3. Описание скалярных переменных. Директива #define
- •1.4. Операции. Выражения
- •1.5. Стандартные математические функции
- •1.6. Ввод-вывод
- •Int printf ( строка формата [ , список вывода ] )
- •Int scanf ( строка формата , список ввода )
- •1.7. Метки, оператор goto, условные конструкции, оператор break, функция exit
- •If ( логическое выражение ) оператор/блок [ else оператор/блок ]
- •1.8. Циклические конструкции
- •1.9. Указатели, адресная арифметика
- •1.10. Массивы
- •1.11. Функции
- •1.12. Классы памяти. Общие правила описания. Оператор typedef
- •1.13. Строковые переменные, ввод-вывод строк, стандартные функции обработки строк. Функции проверки символов
- •Int sprintf(char* s,char* формат [ , список вывода ] )
- •1.14. Макроопределения
- •1.15. Внешние файлы
- •Int fclose(file* указатель на файл )
- •Int feof(file* файл )
- •1.16. Структуры, объединения, битовые поля
- •1.17. Динамическое распределение памяти
- •1.18. Графика
- •Глава 2. Описание языка fortran
- •2.1. Структура fortran-программы
- •2.2. Типы данных. Константы
- •2.3. Описание переменных, правила умолчания, операторы
- •Implicit тип ( буквы ) , ...
- •2.4. Оператор присваивания. Операции
- •2.5. Стандартные математические функции
- •2.6. Ввод-вывод
- •2.7. Оператор соntinue. Операторы перехода. Условные операторы
- •If (логическое выражение)оператор
- •If (арифметическое выражение)метка1,метка2,метка3
- •2.8. Операторы цикла
- •2.9. Функции loc, locfar, locnear
- •2.10. Массивы
- •2.11. Подпрограммы subroutine, function и interface
- •Intrinsic список имен
- •2.12. Общие области, подпрограмма block data. Оператор equivalence
- •2.13. Символьные переменные
- •2.14. Операторные функции
- •2.15. Внешние файлы
- •2.16. Структуры
- •2.17. Динамические массивы
- •2.18. Графика
- •Глава 3. Решение задач на языках c и fortran
- •Задача 1. Вывод натурального числа
- •Задача 2. Сумма ряда
- •Задача 3. Медленная сортировка
- •Задача 4. Быстрая сортировка
- •Задача 5. Слова
- •Задача 6. График
- •Задача 7. Кубическое уравнение
- •Задача 8. Собственное число
- •Комментарии к задачам
Глава 3. Решение задач на языках c и fortran ................................ 70
Задача 1. Вывод натурального числа ........................................................... 70
Задача 2. Сумма ряда .................................................................................... 71
Задача 3. Медленная сортировка .................................................................. 72
Задача 4. Быстрая сортировка ...................................................................... 74
Задача 5. Слова .............................................................................................. 77
Задача 6. График ........................................................................................... 81
Задача 7. Кубическое уравнение .................................................................. 85
Задача 8. Собственное число ........................................................................ 89
Комментарии к задачам ................................................................................ 91
ВВЕДЕНИЕ
Эта книга состоит из трех глав. Первые две представляют собой краткие описания языков программирования C и FORTRAN 77, а в третьей главе приведены решения некоторых часто встречающихся задач на этих двух языках и на языке PASCAL. Авторы предполагают, что читатели этой книги уже в достаточной мере знакомы с языком программирования PASCAL, и в ряде мест ссылаются на соответствующие конструкции этого языка. Но владение языком PASCAL не является абсолютно необходимым для пользования этой книгой, читатель должен иметь лишь некоторое представление о языках программирования высокого уровня, поскольку из-за ограниченного объема книги авторы вынуждены излагать материал очень лаконично. Тем, кого интересует только один из представленных языков, можно порекомендовать читать только первую или только вторую главу.
Глава 1. Описание языка c
Приведенное ниже описание языка C полностью соответствует среде программирования Borland C++ версий 2.0 и 3.0. Многие программисты предпочитают пользоваться языком C++, который является расширением языка C. Оба языка в основном используют один и тот же синтаксис, операторы, выражения, встроенные типы данных, структуры, массивы, объединения, циклы, функции и указатели. Основные расширения языка С++ также описаны и специально оговорены в тексте главы.
1.1. Структура c-программы
С-программа размещается в одном или нескольких файлах. Она состоит из оболочки, включающей описания и директивы препроцессора, и одной или нескольких функций. Одна из функций всегда имеет имя main, с нее начинается выполнение программы. Функция состоит из заголовка функции:
тип имя ([список параметров])
и тела функции. Тело функции - это блок (последовательность операторов в фигурных скобках). Символы {} в языке С являются логическими скобками. Список параметров может быть пустым, но ( ) должны присутствовать и в этом случае. Для функций, не имеющих параметров, можно указывать список параметров в виде (void) . Если список параметров не пуст, то для каждого параметра указывается его тип. Если функция не должна возвращать никакого значения, то ее тип - void ("пустой" тип). В языке С нет понятия процедуры.
Каждый оператор заканчивается символом ; .
Идентификаторы могут иметь длину до 31 символа, компилятор различает большие и малые латинские буквы, откуда, в частности, следует, что написание Main или MAIN имени главной функции является ошибкой.
Комментарии заключаются в составные символы /* */ . В языке С++ появился еще один вид комментариев: так называемый однострочный комментарий - строка, начинающаяся парой символов // .
Директивы препроцессора начинаются с символа # и записываются в отдельной строке, они могут располагаться в любом месте программы, но не внутри функции. Директивы действуют от места появления до конца файла или до их отмены. Препроцессор языка С - это программа, которая, обрабатывая исходный текст до компилятора, выполняет подстановки для макровызовов, осуществляет условную компиляцию, подключает необходимые файлы. Директива #include<файл> или #include"файл" присоединяет к программе внешний файл, "" означают поиск файла в текущем каталоге (пользовательский файл), а <> - поиск в системном каталоге (системный файл). Директиву #include следует использовать в любой программе, вызывающей внешние функции, для подключения т.н. заголовочных файлов - файлов с расширением h (header). В заголовочных файлах содержатся описания (прототипы) функций, необходимые для успешной компиляции программы.
