- •Содержание
- •Глава 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. Собственное число
- •Комментарии к задачам
1.2. Скалярные типы данных и константы, строковые константы
В языке С определены следующие арифметические типы данных:
Тип данных |
Размер |
Диапазон значений |
char |
1 байт |
от -128 до +127 |
unsigned char |
1 байт |
от 0 до 255 |
int |
2 байта |
от -32768 до +32767 |
unsigned |
2 байта |
от 0 до 65535 |
long |
4 байта |
от -2147483648 до +2147483647 |
float |
4 байта |
от 3.4Е-38 до 3.4Е+38 (7 верных цифр) |
double |
8 байтов |
от 1.7Е-308 до 1.7Е+308 (16 верных цифр) |
Все арифметические типы данных имеют аналогии в языке PASCAL: char=ShortInt, unsigned char=Byte, int=Integer, unsigned=Word, long=LongInt, float=Single, double=Double. Целые константы можно записывать в десятичном, восьмеричном и шестнадцатеричном виде, например, 255 или 0377, или 0XFF. Константа, начинающаяся цифрой 0, считается восьмеричной, а константа, начинающаяся символами 0X или 0x, - шестнадцатеричной. По умолчанию десятичные целые константы имеют тип int, константы типов unsigned и long образуются добавлением справа буквы U (u) или L (l) : -1L, 65535U .
Вещественные константы записываются в виде с фиксированной точкой: -2. , 1.3 , .45, или с плавающей точкой: -2e-2, 1.33e0 - и по умолчанию имеют тип double. Константы типа float образуются добавлением справа буквы F (f) : -2.f, 1.22e0f .
Символьные константы (они являются в языке C целыми числами и имеют тип int) записываются в одном из четырех видов:
- ' символ ' ( например, '!' )
- ' \8-ричная константа ' ( например, '\041' )
- ' \x одна или две 16-ричные цифры ' ( например, '\x21' )
- специальные символы '\a' - звук, '\b' - backspace, '\t' - горизонтальная табуляция, '\n' - новая строка, '\v' - вертикальная табуляция, '\f' - новая страница, '\r' - возврат каретки, '\\' - символ \, '\''- апостроф, '\”' - кавычка, '\%' - символ %.
Строковые константы задаются в виде “символы”, в т.ч. могут содержать и специальные символы, например : "abcdef..." или "\n\a\n\t\\\b" . Символы \,'," и в ряде случаев % являются специальными управляющими символами в языке C и не должны входить в строки непосредственно, но лишь в виде составного символа. Компилятор языка C всегда соединяет строковые константы, не разделенные в тексте программы ничем, кроме пробелов.
1.3. Описание скалярных переменных. Директива #define
Переменные описываются и инициализируются в виде:
тип имя [ = выражение ] , имя [ = выражение] , ... ;
Например:
int a,b='\020',c=-11; long d=-1L; double e,f=.003,g=1.2E40;
Каждая переменная, использованная в программе, должна быть явно описана. Инициализация переменных не является обязательной. Все переменные должны быть описаны раньше, чем будут использоваться. Язык С требует, чтобы все описания локальных переменных внутри блока помещались перед первым исполняемым оператором. В С++ можно описывать переменные в любой точке блока перед их использованием.
Простейшая форма директивы препроцессора #define используется для определения символических констант:
#define имя строка_замещения
Строка замещения, вообще говоря, есть любая последовательность символов. Препроцессор до начала компиляции замещает каждое вхождение имени константы в тексте программы на строку замещения, но только не внутри "". Строка замещения может быть, например, числовой константой: #define PI 3.141592653589793 , тогда идентификатор PI можно рассматривать как именованную константу в языке PASCAL (хотя это и не тождественные вещи). У пользователей языка С существует традиция записывать имена символических констант заглавными буквами, хотя это никак не регламентируется в самом языке.
