Лекции по курсу «Программирование» Лекция 2. Основные операции языка

advertisement
Лекции по курсу
«Программирование»
Лекция 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);
};
© В.М. Гриняк, доц. каф. ИСКТ ВГУЭС
Download