- •Часть 1.
- •2. Перечисляемые типы.
- •Int Matrix[5][6];
- •4. Стандартный ввод/вывод в языке с.
- •Void main()
- •Void *pv;
- •7. Оператор безусловного цикла for.
- •Void main()
- •8. Циклы while и do/while
- •9. Условные операторы if и if/else
- •10. Условный оператор switch/case
- •Void main(void)
- •Int sign[10];
- •11. Функции, определяемые пользователем.
- •12. Три способа передачи параметров в функцию
- •Void min(double*, double&);
- •Void min(double mas[10],double &num)
- •13. Массивы и указатели. Указатель на функцию.
- •Void main()
- •Void main()
- •Часть 2.
- •2. Определение класса. Состав класса, создание экземпляров класса.
- •3. Конструктор класса, его назначение.
- •4. Конструктор класса с аргументами, задаваемыми по умолчанию.
- •Int GetX1(){return X;}
- •Int GetX2(){return y;}
- •Int GetX1(){return x1;}
- •Int GetX2(){return x2;}
- •Void main()
- •Void f2();
- •6. Множественное наследование. Виртуальные базовые классы.
- •7. Передача аргументов в базовый класс.
- •9. Виртуальные функции
- •Void main()
- •Virtual void Func(){};
- •Void main()
- •Void SetData(t val);
- •11. Дружественные функции. Указатель this
- •Void main()
- •12. Перегрузка операций
Int Matrix[5][6];
В случае, когда элементы двумерного массива заранее известны, массив может быть объявлен следующим образом:
int Vec[][3]={{1,3,2},{3 6 1},{5,4,9}};
Структура объявляется с помощью ключевого слова struct, за которым обычно следует имя структуры, выступающее в качестве нового имени конкретного структурного типа, а затем в фигурных скобках описание ее членов. Завершается описание нового структурного типа символом точки с запятой (;):
struct Line{ //Созданный пользователем новый тип
char color; //Cимвол для обозначения цвета линии
int thickness; //Номер толщины линии
}; //Конец описания структуры
Существуют два способа объявления в программе структурных переменных: по имени и по адресу (с помощью указателя). Объявление в программе структурных переменных по адресу будет рассмотрено ниже.
Объявление в программе структурных переменных: по имени производится также как и для простых переменных:
int i; //Объявляется целочисленная переменная i (типа int)
Line S1, S2; //Объявляются две структурные переменные
//S1 и S2 типа Line
При таком объявлении компилятор выделяет для каждой из этих переменных столько места в памяти, сколько должны занимать все элементы структуры. Для обращения к членам структурной переменной используется оператор точка:
S1.color=’R’; //Инициализация первого элемента
структурной переменной
S1.thickness=2; //Инициализация второго элемента
S2.color=’G’; //То же для второй
S2.thickness=1; //структурной переменной
4. Стандартный ввод/вывод в языке с.
Во многих системах стандартный ввод/вывод может быть перенаправлен, однако мы будем для простоты предполагать, что стандартный ввод – это ввод с клавиатуры, а стандартный вывод – это вывод на экран. Простейшая функция ввода getche(), которая читает символы с клавиатуры. Функция ожидает, пока не будет нажата клавиша, и возвращает код, соответствующий символу. Одновременно происходит отображение введенного символа на экран. Другой функцией для ввода символа с клавиатуры является функция getch(), которая действует также как и функция getche(), но не выводит символ на экран. Эта функция часто используется для остановки действия программы до нажатия какой-либо клавиши именно потому, что она не выдает эхо на экран. Прототипы функций getche() и getch() находятся в библиотечном файле CONIO.H.
Аналогом функций getche() является функция getchar(). Функция getchar() производит ввод, но требует нажатия клавиши Enter. Простейшая функция вывода – putchar(). Она выводит символ, который является ее аргументом на экран в текущую позицию курсора.
Функция gets() реализует ввод с клавиатуры строки символов. Окончание ввода осуществляется нажатием клавиши Enter. При этом в конец строки записывается символ ‘\0’. Функция puts() выводит на экран строку, которая является аргументом функции.
Прототипы функций getchar(), putchar(),gets() и puts() находятся в библиотечном файле STDIO.H.
Функции printf() и scanf() осуществляют форматированный ввод и вывод на консоль. Форматированный ввод и вывод означает, что функции могут читать и выводить данные в разном формате, которым вы можете управлять.
Функция printf() имеет прототип в файле STDIO.H:
int printf(char* управляющая_строка,список параметров);
Управляющая строка содержит:
-символы, управляющие выводом,
-символы, которые непосредственно выводятся на экран,
- команды формата (спецификаторы формата), определяющие, как выводить аргументы. Команда формата начинается с символа %, за которым следует код формата. Основные команды формата следующие:
%с – символ,
%d – целое десятичное число,
%i – целое десятичное число,
%е – десятичное число в виде х.хх е+хх,
%Е – десятичное число в виде х.ххЕ+хх,
%f – десятичное число с плавающей запятой хх.хххх,
%о – восьмеричное число,
%s – строка символов,
%Х – шестнадцатеричное число 5А7F,
%% - символ %,
%p – указатель.
Кроме того, к командам формата могут быть применены модификаторы l и h , например:
%ld - печать long int,
%hu – печать short unsigned,
%Lf – печать long double.
В управляющей строке перед символами, управляющими выводом, должен находится символ “\”. На практике наиболее часто используемым символом, управляющими выводом, является символ n – переход на начало новой строки.
Между знаком % и форматом команды может стоять целое число. Оно указывает на наименьшее поле, отводимое для печати. Если строка или число больше этого поля, то строка или число печатается полностью, игнорируя ширину поля. Нуль, поставленный перед целым числом, указывает на необходимость заполнить неиспользованные места поля нулями. Вывод printf(«%05d», 15); даст результат 00015.
При выводе десятичное число с плавающей запятой для того, чтобы указать число десятичных знаков после целой части числа, сначала указывается общее число символов для вывода этого числа (включая десятичную точку), затем ставиться точка и целое число, указывающее на количество десятичных знаков. Например:
printf(“\n Float=%8.3f\n Integer=%3d\n”,a,k):
Выравнивание выдачи производится по правому краю поля. Если мы хотим выравнивать по левому знаку поля, то сразу за знаком % следует поставить знак минус.
В прототипе функции в списке параметров (переменных или констант) параметры следуют через запятую и подлежат выдаче в соответствующем формате. Порядок следования форматов находится в строгом соответствии с порядком следования параметров.
scanf()- основная функция ввода с клавиатуры. Она предназначена для ввода данных любого встроенного типа и автоматически преобразует введенное число в заданный формат. Функция scanf()- имеет прототип в файле STDIO.H:
int scanf(char* управляющая_строка, список адресов параметров);
Управляющая строка имеет то же назначение, что и для функции printf().При работе с функцией scanf() от пользователя требуется знание последовательности вводимых параметров и знание строгого соответствия формата для каждого вводимого параметра, что часто создает значительные неудобства. На практике для ввода данных, как правило, используют так называемый “безопасный ввод”, суть которого состоит в следующем. Сначала данные вводятся с клавиатуры в виде строки символов с помощью функции gets(), а затем выполняется преобразование строки символов в числовой тип данных. Функция atoi(s) преобразует строку s в целое число, функция atof(s) – в вещественное, а функция atol(s) – в длинное целое (тип long). Например:
char str;
int k;
...
puts(“Введите целое число”);
gets(str);
k=atoi(str);
Функции atoi(),atof(),atol() имеют прототипы в файле STDLIB.H:
Задание 1.
Какая информация появится на экране дисплея после выполнения данной программы:
#include <stdio.h>
enum color{black, white};
enum Figure{King, Qween, Rook, Bishop, Knight, Pawn};
struct Chess_Fig{color col;Figure fig;};
