- •Содержание
- •Глава 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.5. Стандартные математические функции
Библиотека математических функций (прототипы функций содержатся в файле math.h) включает :
int abs(int x) - x для int
long labs(long x) - x для long
double fabs(double x) - x для double
double ceil(double x) - наименьшее целое, не меньшее x
double floor(double x) - наибольшее целое, не большее x
double fmod(double x,double y) - остаток от деления x на y
double sqrt(double x) - x
double hypot(double x,double y) - (x2 +y2 )
double ldexp(double x,int n) - x2n
double pow(double x,double y) - xy
double pow10(int p) - 10p
double exp(double x) - ex
double log(double x) - ln(x)
double log10(double x) - log(x)
double sin(double x) - sin(x)
double cos(double x) - cos(x)
double tan(double x) - tg(x)
double asin(double x) - arcsin(x)
double acos(double x) - arccos(x)
double atan(double x) - arctg(x)
double atan2(double x,double y) - arctg(y/x), возвращает значение от- до
double sinh(double x) - sh(x)
double cosh(double x) - ch(x)
double tanh(double x) - th(x)
1.6. Ввод-вывод
Форматный вывод данных осуществляется функцией printf :
Int printf ( строка формата [ , список вывода ] )
которая возвращает количество выведенных символов. Список вывода может содержать любые выражения, разделенные запятыми (полностью аналогичен списку вывода оператора WRITE в языке PASCAL). Строка формата заключается в “ “ и может содержать :
1) обычные символы, которые просто выводятся на экран;
2) специальные символы, управляющие размещением данных на экране;
3) элементы формата данных.
Для вывода строки на экран элементы формата можно не использовать, в этом случае список вывода пуст :
printf("\n\tВыведем что-нибудь...\a");
Элемент формата представляет собой последовательность :
% [ - ] [ длина поля ] [ . точность ] [ l ] спецификация типа
“ - “ означает сдвиг выводимых данных к левому краю поля ( по умолчанию данные сдвигаются вправо); длина поля - количество позиций для вывода; точность - количество дробных цифр для чисел или количество выводимых символов строки для строк; “ . ” - разделитель; l - означает, что число должно рассматриваться как long или double. Могут использоваться следующие спецификации типов :
d,i - для данных типа int;
u - для данных типа unsigned;
o - для данных типа unsigned (выводятся в восьмеричном виде);
x,X - для данных типа unsigned (выводятся в шестнадцатеричном виде), шестнадцатеричные цифры A,B,C,D,E,F изображаются большими буквами при использовании типа X и малыми буквами при использовании x;
c - для данных типа char, unsigned char (выводятся в символьном виде);
f - для данных типа float,double (выводятся в виде с фиксированной точкой, по умолчанию выводится 6 дробных цифр);
e,E - для данных типа float,double (выводятся в виде с плавающей точкой, по умолчанию выводится 7 цифр мантиссы и две цифры порядка, всего 13 позиций), отличаются изображением буквы E;
g,G - для данных типа float,double - величины 0.0001<x<1000000 выводятся в виде с фиксированной точкой с шестью значащими цифрами, другие величины выводятся с плавающей точкой с шестью значащими цифрами (всего занимают 12 позиций), спецификации g и G различаются только изображением буквы e(E);
s - для строк;
p - для данных типа указатель.
Перед выводом всегда осуществляется преобразование данных к типу, определенному спецификацией, что может приводить к изменению выводимого значения. Программист сам должен заботиться о правильном выборе формата, поскольку компилятор не обращает на это никакого внимания. Несоответствие количества элементов формата и количества выводимых данных также может приводить к неприятным последствиям.
Форматный ввод данных осуществляется функцией scanf :
