- •Лабораторная работа №1 Линейные и разветвленные программы
- •Примеры использования арифметических операций
- •Примеры использования операций инкремента и декремента
- •Примеры использования операций отношения
- •Примеры использования поразрядных логических операций: Поразрядное логическое умножение:
- •Логический сдвиг:
- •Поразрядное логическое сложение:
- •Сложение по модулю 2 (исключающее или):
- •Примеры более сложного использования поразрядных логических операций:
- •Примеры записи логических выражений:
- •Алгебраические выражения
- •Пример вычисления значения выражения
- •Примеры использования преобразования типов
- •2. Особенности преобразования типов int и double:
- •6. Приведение типа в случае использования указателей:
- •7. Преобразование старшего типа к младшему удобно использовать для выделения отдельных частей переменной или константы:
- •9. Проанализируйте преобразование типов в операторах присваивания:
- •Особенности представления чисел по двоичному основанию
- •Особенности выполнения арифметических операций над вещественными числами
- •Операции умножения и деления
- •Ошибки округления
- •Переполнение (ошибка переполнения)
- •Потеря порядка (ошибка исчезновения порядка)
- •Катастрофическая потеря порядка (ошибка потери порядка)
- •Операции сложения и вычитания
- •Переполнение (ошибка переполнения)
- •Потеря значащих цифр
- •Особенности выполнения операций отношения (сравнения)
- •Правила работы с данными вещественных типов
- •Замечания по программированию алгебраических выражений
- •Условный оператор
- •Оператор switch Пример 1. Печать событий в зависимости от года
- •Пример 2. Распознавание вводимых символов
- •Пример 3. Печать сообщений о работе программы
- •Пример 4. Селектор перечислимого типа
Оператор switch Пример 1. Печать событий в зависимости от года
int year; { cin >> year; switch (year) { case -500: case -400: cout << “древнегреческий абак”;break; case 480: case 490: case 500: cout << “первые записи в 10c/c”; break; case 1642: cout << “машина Б.Паскаля”; break; default: cout << “все остальное”; } }
Пример 2. Распознавание вводимых символов
char symbol; cin >> symbol; switch (symbol) {case ‘0’: case ‘1’: case ‘2’: case ‘3’: cout << “Это цифра”;break; case ‘a’: case ‘b’: case ‘c’: cout << “Это строчная буква”; break; case ‘A’: case ‘B’: case ‘C’: cout << “Это прописная буква”;break; case \xa: case \xd: case \x1a: cout << “Это управляющий символ”; break; default: cout << ”Это другой символ”; };
Пример 3. Печать сообщений о работе программы
char err;
cin >> err; switch (err) { case 0: cout << ”Нормальное завершение программы”;break; case 2: case 4: case 6: cout << ”Ошибка при работе с файлом”;break; case 7: case 9: cout << ”Ошибка с кодом” << err; break; default: cout << ”Код ошибки =” << err; }
Пример 4. Селектор перечислимого типа
Обратите внимание на обеспечение вывода значения переменной перечислимого типа:
enum Season {Winter, Spring, Summer, Autumn};
Season p1; int i; cin >> i; switch (i ) {case 0: p1= Winter; break; case 1: p1= Spring; break; case 2: p1= Summer; break; case 3: p1= Autumn; break; } …………. switch ( p1) {case Winter: cout << ”Winter”; break; case Spring: cout << “Spring”; break; case Summer: cout << “Summer”; break; case Autumn: cout << “Autumn”; break; }
Пример 5. Селектор логического типа
Пример 5.1. Поиск максимального из двух чисел с использованием оператора выбора
//program max2_2; #include <iostream.h>
#include <conio.h>
int main () {double X,Y, Max; cout << "Input X <> Y: "; cin >> X>> Y; switch ( X > Y) { case 1: Max = X; break; case 0: Max = Y; break; } cout << "Max= " << Max <<endl; _getch();
return 0;
}
Пример 5.2. Вычисление максимального из значений двух выражений
//program max2_3; // max (x+y+z, xyz)
#include <iostream.h>
#include <conio.h>
int main () {double X,Y, Z, Max, a, b; cout << "Input X, Y, Z: "; cin >> X>> Y >> Z; a= X+Y+Z; b= X*Y*Z; switch ( a > b) { case 1: Max = a; break; case 0: Max = b; break; } cout << "Max= " << Max <<endl; _getch();
return 0;
}
Пример 5.3. Поиск максимального из трех чисел (еще один вариант, остальные – в лекции №7):
//program max3_5; #include <iostream.h>
#include <conio.h>
int main () {double X,Y, Z, Max; cout << "Input X, Y, Z: "; cin >> X>> Y >> Z; switch (X > Y) { case 1: Max = X; break; case 0: Max = Y; break; } switch (Max > Z) { case 1: Max = Z; break; case 0: break; } cout << "Max= " << Max <<endl; _getch();
return 0;
}
Пример 6. Определение нажатой управляющей клавиши:
//proba6
#include <stdio.h> #include <conio.h> int main() { int key; printf ("\n najmite ctrelku::\n "); key = getch(); key = getch(); switch (key) { case 77: printf ("strelka vpravo\n "); break; case 75: printf ("strelka vlevo\n "); break; case 72: printf ("strelka vverx\n "); break; case 80: printf ("strelka vniz\n "); break; default: printf ("ne strelka\n "); break; }
_getch();
return 0;
}
Лаб.раб.1. Линейные и разветвленные
программы (физ.эл.)