6 (1108005)
Текст из файла
Курс «Алгоритмы и алгоритмические языки»1 семестр 2015/2016Лекция 61Область действия переменной и классы памяти#include <stdio.h>int count;/* глобальная переменная */void func (void){int count;/* автоматическая переменная */count = count - 2;}static int mult = 0;/* статическая переменная */int sum (int x, int y){static int first = 1;/* статическая переменная */count++;return (x + y) * (++mult);}int main (void){register int s = 0;/* регистровая переменная */count = 0;s += sum (5, 7);s += sum (9, 4);func ();printf ("Сумма равна %d, вызвали функцию %d раз\n", s, count);return 0;}2Инициализация переменнойПри объявлении переменной:int x = 42;автоматические переменные инициализируются каждыйраз при входе в соответствующий блок;если нет инициализации, значение соответствующейпеременной не определено!глобальные и статические инициализируются толькоодин раз в начале работы программы;если нет инициализации, они обнуляются компиляторомвнешние переменные инициализируются только в томфайле, в котором они определяютсяпри инициализации переменной типа с квалификаторомconst она является константой и не может изменятьсвое значение3ЛитералыЛитералы задают константу (фиксированное значение)символьные константы 'c', L'%', '\0x4f', '\040'тип символьной константы – int!целые константы 100, -34l, 1000U, 999lluконстанты с плавающей точкой 11.123F, 4.56e-4f,1.0, -11.123, 3.1415926l, -6.626068e−34Lтип вещественной константы без суффикса – double!шестнадцатеричные константы 0x80(128)восьмеричные константы 012(10)строковые константы "a", "Hello, World!",L"Unicode string"специальные символьные константы \n, \t, \b4Операции над целочисленными данными АрифметическиеОдноместные:изменение знака, или «одноместный минус» (–),одноместный плюс (+).Двухместные:сложение (+), вычитание (–), умножение (*),деление нацело (/), остаток от деления нацело (%).(a/b) * b + (a%b) == a Отношения (результат 0/1 типа int)больше (>), больше или равно (>=),меньше (<), меньше или равно (<=) Сравнения (результат 0/1 типа int)равно (==), не равно (!=) Логическиеотрицание (!), конъюнкция (&&), дизъюнкция (||)ложное значение – 0, истинное – любое ненулевое“ленивое” вычисление && и ||5Операции присваиванияПобочные эффекты: изменение объекта, вызов функцииlvalue = rvaluelvalue –выражение, указывающее на объектпамятиrvalue –выражениеПримерa = b = c = d = 0;Укороченное присваивание: lvalue op= rvalueгде op - двухместная операцияПример a += 15;Инкремент и декремент (++ и --)префиксные и постфиксныеПоследовательное вычисление: операция запятая (,)Пример a = (b = 5, b + 2);6Точки следованияПобочные эффекты: изменение объекта, вызовфункцииТочка следования (sequence point): момент во времявыполнения программы, в котором все побочныеэффекты предыдущих вычислений закончены,а новых – не начатыпервый операнд &&, ||, ,окончание полного выражениямежду двумя точками следованияизменение значения переменной возможноне более одного раза(a=2) + (a=3)i++ + ++iстарое значение переменной читается толькодля определения новогоa = b++ + b7Форматный ввод-вывод#include <stdio.h>int main (void){int s = 0;int a, b;scanf ("%d%d", &a, &b);s += a + b;printf ("Сумма равна %d\n", s);return 0;}8Форматный ввод-выводСпецификаторы ввода-вывода%d, %ld, %lld – напечатать/считать число типа int, long,long long%u, %lu, %llu – напечатать/считать число типа unsigned,unsigned long, unsigned long long%f, %Lf – напечатать число типа double, long double%f, %lf , %Lf – считать число типа float , double, long double%c – напечатать/считать символ%4d – вывести число типа int минимум в четыре символа%.5f – вывести число типа double c пятью знаками%% – напечатать знак процентаФункция scanf возвращает количество удачно считанных элементов9Пример Си-программы/* Решение квадратного уравнения */#include <stdio.h>#include <math.h>int main (void) {int a, b, c, d;/* Введем коэффициенты */if (scanf ("%d%d%d", &a, &b, &c) != 3) {printf ("Требуется ввести три коэффициента!");return 1;}if (!a) {printf ("Уравнение не квадратное!\n");return 1;}d = b*b – 4*a*c;if (d < 0)printf ("Решений нет\n");else if (d == 0) {double db = -b;printf ("Решение: %.4f\n", db/(2*a));} else {double db = -b;double dd = sqrt (d);printf ("Решение 1: %.4f, решение 2: %.4f\n", (db+dd)/(2*a), (db-dd)/(2*a));}10return 0;}Пример Си-программы/* Решение квадратного уравнения */#include <stdio.h>#include <math.h>int main (void) {int a, b, c, d;/* Введем коэффициенты */if (scanf ("%d%d%d", &a, &b, &c) != 3) {printf("Требуется ввести три коэффициента!");return 1;}if (!a) {printf ("Уравнение не квадратное!\n");return 1;11}Пример Си-программыd = b*b – 4*a*c;if (d < 0)printf ("Решений нет\n");else if (d == 0) {double db = -b;printf ("Решение: %.4f\n", db/(2*a));} else {double db = -b;double dd = sqrt (d);printf ("Решение 1: %.4f, решение 2: %.4f\n",(db+dd)/(2*a), (db-dd)/(2*a));}return 0;}12.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.