Лекции по курсу «Программирование» Лекция 2. Основные операции языка С++. Консольный ввод и вывод. Массивы.Условные операторы, циклы. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Основные операции языка С++ Арифметические операции * умножение; / деление; + сложение; - вычитание; % взятие остатка от деления. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Основные операции языка С++ Особенности операции деления Важно! Если в операции деления оба операнда – целые числа, то и результат будет целым числом, равным частному от деления без остатка. Пример: double x, y; x = 1 / 2; // х получит значение 0 y = 1.0 / 2; // y получит значение 0.5 © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Основные операции языка С++ Операции приведения типа Пример принудительного приведения типа: double p1; double p2=3.84; p1=(int)(p2+0.5); // p1 получит значение 4.0 Пример автоматического приведения типа: int p1; double p2=3.84; p1=p2+0.5; // p1 получит значение 4 © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Основные операции языка С++ Операции приведения типа Важно! Если в арифметическом выражении участвуют знаковый и беззнаковый целочисленные типы, то автоматически знаковый операнд приводится к беззнаковому, результат тоже будет беззнаковым © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Основные операции языка С++ Операции инкремента и декремента Пример префиксной формы инкремента: int i, k; i=5; k=++i; // k получит значение 6 Пример постфиксной формы декремента: int i, k; i=5; k=i--; // k получит значение 5 © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Массивы Пример объявления массива и обращения к нему int d[10][10]; char s[80]; d[0][3] = 100; s[79] = 0; © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Консольный ввод и вывод в С++ Консольный вывод. Пример вызова функций printf( ) и sprintf( ) int i=0, j=1; char s[80]; printf(“first value is %d, second value is %d”, i, j); sprintf(s, “first value is %d, second value is %d”, i, j); Перечень наиболее употребительных спецификаторов %d – для всех целых типов %f, %e, %E – для типов float и double %Lf, %Le, %LE – для типа long double %c – для символов %s – для строк © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Консольный ввод и вывод в С++ Консольный ввод. Пример вызова функций gets( ), atoi( ), atof( ) int i; double x; char s[80]; gets(s); // Читает с консоли строку i=atoi(s); // Преобразует строку в целое число gets(); x=atof(s); //Преобразует строку в вещественное число © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Консольный ввод и вывод в С++ Консольный ввод. Пример ввода числа с консоли с помощью функции gets( ) int i; double x; char s[80]; printf(“Input number i \n”); // Приглашение пользователю gets(s); // Читает с консоли строку i=atoi(s); // Преобразует строку в целое число printf(“Input number x \n”); gets(); x=atof(s); //Преобразует строку в вещественное число © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Консольный ввод и вывод в С++ Представление строк в языке С++ Иллюстрация понятия нуль-терминальной строки char s[80]; s[0]=‘a’; s[1]=‘b’; s[2]=‘c’; s[3]=0; s[4]=‘e’; printf(“%s”, s); // на консоль выведется строка abc © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Управляющие конструкции языка С++ К управляющим конструкциям языка С++ относятся: Условный оператор if … else Оператор множественного выбора switch Оператор перехода goto Цикл с предусловием while Цикл с постусловием do … while Цикл повторений for Операторы прерывания циклов break и continue © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Условный оператор if … else … Пример условного оператора if (a>b) { max=a; } else { max=b; } © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Условный оператор if … else … Примеры формирования условных выражений if (x) – если x не равно 0 if (!x) – если х равно 0 if (c==a) – если с равно а if (b!=c) – если b не равно с if (a>=c && b<=c) – если b<=c<=a if (a!=b || a!=c) – если а не равно b или a не равно с © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Условный оператор if … else … РЕКОМЕНДАЦИЯ!!! Проверку на равенство константе лучше писать так, чтобы константа была на первом месте в выражении. Это предотвращает ошибочное использование операции = вместо == © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Оператор выбора switch Пример применения оператора множественного выбора switch switch (i) { case 0: printf(“i is false”); break; // если i=0 case 1: printf(“i is true”); break; // если i=1 default: printf(“i is true but not 1”); // если i не 0 и не 1 } Важно! Для выхода из тела цикла после выполнения секции case необходимо принудительно применить оператор break, в противном случае управление будет передано на следующую секцию case © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Оператор выбора goto Пример применения оператора goto loop1: ………….. ………….. goto loop1; Важно! Согласно современным представлениям технологии программирования употреблять оператор goto крайне нежелательно. © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Циклы Пример применения цикла с предусловием while int j=0; while (j<=5) { j=j+1; printf(“j=%d \n”, j); }; © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Циклы Пример применения цикла с постусловием do … while int j=0; do { j=j+1; printf(“j=%d \n”, j); } while (j<=5); © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Циклы Общая форма цикла повторений for for ([инициализация]; [условие]; [модификация]) { Тело цикла } Наиболее употребительная форма цикла повторений for for (i=0; i<n; i++) { Тело цикла } © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Циклы Оператор прерывания циклов break int j=0; while (j<=5) { if (j==3) { j=j+1; break; //по выполнении кода на консоль } // выведутся символы 1 и 2 printf(“j=%d \n”, j); }; © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС Циклы Оператор прерывания циклов continue int j=0; while (j<=5) { if (j==3) { j=j+1; continue; //по выполнении кода на консоль } // выведутся символы 1,2,4,5,6 printf(“j=%d \n”, j); }; © В.М. Гриняк, доц. каф. ИСКТ ВГУЭС