Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Оператор условной передачи управления ifСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Для выбора одной из ветвей вычислений применяется оператор условного перехода: if ( выражение ) оператор 1; else оператор 2; вычисляется выражение, и если его значение не равно 0 (истинно), то выполняется оператор 1, иначе – оператор 2, например: if(x>y) max = x; else max = y; Если операторы 1, 2 содержат более одного оператора, то они заключаются в фигурные скобки { }, т.е. применяется блок. Конструкция else … может отсутствовать и такую форму называют сокращенной, тогда в случае ложности условия управление передается на следующий за if оператор. Если операторы 1, 2 в свою очередь являются операторами if, то такой оператор называют вложенным, при этом ключевое слово else принадлежит ближайшему предшествующему if. Например, найти наибольшее значение из трех чисел x, y, z: if (x>y) if (x>z) max=x; else max=z; else if(y>z) max=y; else max=z; Операции сравнения: < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), != (не равно), = = (равно). Пары символов разделять нельзя. Операции сравнения бинарные, их общий вид: Операнд 1 знак операции Операнд 2 Операндами операций сравнения могут быть данные любых базовых типов, значения которых перед сравнением преобразуются к одному типу. Логические операции используются в качестве условий при составлении более сложных выражений. Приведем их перечень в порядке убывания приоритета: ! (отрицание или логическое НЕ – унарная операция), && (конъюнкция или логическое И), || (дизъюнкция или логическое ИЛИ). Например: (0<x)&&(x<=100) ((!x)&&(y>0)||((z==1)&&(k>0)) Выражения вычисляются слева направо, причем их вычисление прекращается, как только результат становится известен. Тернарная (условная) операция?: Ее общая форма: Операнд 1? Операнд 2: Операнд 3 Если значение операнда 1 истинно (не равно 0), то результатом операции является операнд 2, иначе – операнд 3. Например, найти наибольшее из двух чисел: max = a>b? a: b; Оператор выбора switch Общая форма оператора выбора (переключателя): switch (выражение) { case const_1: операторы; break; … case const_N: операторы; break; default: операторы; } Вычисляется выражение и проверяется, совпадает ли его результат со значением одной из констант. При совпадении выполняются операторы этого case. Значениями const _1,…, const _ N могут быть только целые или символьные константы. Конструкция default выполняется, если результат выражения не совпал ни с одной из констант, и может отсутствовать. Оператор break выполняет досрочный выход из switch (после выполнения ветви case все остальные будут опущены). Если оператор break в case не записан, то будут выполняться операторы следующих ветвей case до появления оператора break, либо до завершения оператора switch. Например: switсh(i) { case 1: f=pow(x,2); break; case 2: f=fabs(x); break; case 3: f=sqrt(x); break; default: printf(“Ошибка!”); exit(1); } f=f+5;
2.2. Пример выполнения задания Ввести значения исходных данных x, y и z. Вычислить значение функции
Предусмотреть вывод сообщения, по какой ветви выполнялись вычисления. Текст программы может иметь седующий вид (в комментариях указаны действия по вводу-выводу в потоках, набираемые вместо записанных): #include <conio.h> // #include <iostream.h> #include <stdio.h> #include <math.h> void main() { double x, y, z, u; puts("Input x, y, z"); // cout << "Input x, y, z" << endl; scanf("%lf%lf%lf",&x, &y, &z); // cin >> x >> y >> z; if (x*y > z){ u = x*sin(y); puts(" x*y > z"); // cout << " x*y > z" << endl; } else { u = y*cos(x); puts(" x*y <= z"); // cout << " x*y <= z" << endl; } printf("\n\t Rezult U = %8.6lf", u); // cout << "\n\t Rezult U = " << u; puts("\nPress any key... "); // cout <<"\nPress any key... " << endl; getch(); }
Результаты выполнения программы для различных исходных данных, вводимых в одной строке, разделяя их пробелами, могут иметь следующий вид: 1 вариант введенные значения соответсвуют первому условию: 2 вариант введенные значения соответсвуют второму условию:
2.3. Индивидуальные задания Составить программу для вычисления значения rez в зависимости от поставленного условия. Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен. Обратите внимание, что возможен случай, при котором исходные данные не будут подходить ни для одного из предложенных условий. 1. rez = 2. rez = 3. rez = 4. rez = 5. rez = 6. rez = 7. rez = 8. rez = 9. rez = 10. rez = . 11. rez = 12. rez = 13. rez = 14. rez = 15. rez = 16. rez = Задание №3. Реализация циклических алгоритмов Цель работы: изучить циклические операторы while, do - while, for, научиться реализовывать циклические алгоритмы. Составить и отладить программу.
Теоретические сведения Под циклом понимается многократное выполнение одних и тех же операторов при различных значениях промежуточных данных. Число повторений может быть задано в явной или неявной формах. Для организации повторений в языке C++ используются три различных оператора цикла. 1. Оператор цикла с предусловием while ( выражение ) код цикла организует повторение операторов кода цикла до тех пор, пока выражение истинно (не равно 0), если выражение = 0 (ложно) при первом входе, то код цикла не выполнится ни разу. Если код цикла состоит более чем из одного оператора, то организуется блок. 2. Оператор цикла с постусловием do код цикла while ( выражение ); организует повторение кода цикла до тех пор, пока выполнится выражение истинно, после чего управление передается следующему за циклом оператору. Данный оператор гарантирует выполнение кода цикла хотя бы один раз. 3. Оператор с предусловием и коррекцией for ( выражение 1; выражение 2; выражение 3) код цикла где выражение 1 – начальное значение параметра цикла; выражение 2 – проверка условия на продолжение цикла; выражение 3 – изменение (коррекция) параметра цикла. Вначале вычисляется выражение 1, затем проверяется выражение 2, если оно – истинно, то выполняется код цикла, затем производится коррекция в выражении 3, и так до тех пор, пока выражение 2 не примет значение «ложь». Досрочный выход из операторов цикла выполняет оператор break, а оператор continue выполняет передачу управления в головной оператор цикла.
3.2. Пример выполнения задания Написать и отладить программу вывода всех значений функции S (x) для аргумента х, изменяющегося в интервале от а до b c шагом h и заданном n. . Текст программы предложенного задания может иметь следующий вид (в комментариях указаны действия по вводу-выводу в потоках, набираемые вместо записанных): #include <stdio.h> // include <iostream.h> #include <conio.h> void main() { double a, b, x, h, r, s; int n, zn = -1, k; puts("Input a,b,h,n"); // cout << "Input a,b,h,n" << endl; scanf("%lf%lf%lf%d", &a, &b, &h, &n); // cin >> a >> b >> h >> n; for(x = a; x<=b; x+=h) { r = s = 1; for(k = 1; k<=n; k++) { r=zn*r*x/k; s+=r; } printf("\n x= %8.2lf sum= %8.5lf", x,s); // cout << "\n x= " << x << " sum= " << s; } puts("\nPress any key... "); // cout << "\nPress any key... " << endl; getch(); } Результат программы с введенными в одной строке значениями a =0.1, b =1.0, h =0.2 и n =10, будет иметь следующий вид: 3.3. Индивидуальные задания Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y (x), суммы S (x) и | Y (x)– S (x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S (x) является рядом разложения функции Y (x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки. Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания. 1. , . 2. . 3. . 4. . 5. . 6. . 7. , . 8. , . 9. , . 10. , . 11. , . 12. , . 13. , . 14. , . 15. , . 16. .
Задание №4. Обработка одномерных массивов Цель работы: изучить составной тип данных – массив. Написать и отладить программу с использованием одномерных массивов.
Теоретические сведения Массив – конечная последовательность данных одного типа. Массив – объект сложного типа, каждый элемент которого определяется именем (ID) и целочисленным значением индекса (номера), по которому к элементу массива производится доступ. Рассмотрим одномерные массивы. Внимание! Индексы массивов в языке С/С++ начинаются с 0. В программе одномерный массив декларируется следующим образом: тип ID массива [ размер ]; где размер – указывает количество элементов в массиве. Размер массива может задаваться константой или константным выражением. Для использования массивов переменного размера существует отдельный механизм – динамическое выделение памяти. Примеры декларации массивов: int a [5]; double b [4] = {1.5, 2.5, 3.75}; в целочисленном массиве а первый элемент а [0], второй – а [1], …, пятый – а [4]. Для массива b, состоящего из действительных чисел, выполнена инициализация, причем элементы массива получат следующие значения: b [0]=1.5, b [1]=2.5, b [2]=3.75, b [3]=0. В языке С/С++ не проверяется выход индекса за пределы массива. Корректность использования индексов элементов массива должен контролировать программист. Примеры описания массивов: const Nmax=10; – задание максимального значения; typedef double mas1[Nmax*2]; – описание типа одномерного массива; mas1 a; – декларация массива а типа mas1; int ss [10]; – массив из десяти целых чисел. Элементы массивов могут использоваться в выражениях так же, как и обычные переменные, например: f = 2* a [3] + a [ Ss [ i ] + 1]*3; a [ n ] = 1 + sqrt(fabs(a [ n –1]));
4.2. Пример выполнения задания В статическом массиве А размером N (не более 20), состоящем из целых чисел найти количество четных чисел и их сумму. Размер массива и его элементы вводятся с клавиатуры. Текст программы с использованием ввода-вывода в потоках может иметь следующий вид: #include <iostream.h> #include <conio.h> void main() { int a[20], n, i, kol = 0, s = 0; cout << "\t Input N (<=20) "; cin >> n; cout <<"\n\t Massiv A" << endl; for(i = 0; i < n; i++) { cout << "\t a[ " << i+1 << " ] = "; cin >> a[i]; } for(i=0; i<n;i++) if(a[i] % 2 == 0){ kol++; s += a[i]; } cout << "\n Kol-vo = " << kol << "\t Summa = " << s << endl; cout << "\n Press any key... " << endl; getch(); }
Результат выполнения программы может иметь следующий вид: 4.3. Индивидуальные задания В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить: 1. Произведение элементов массива, расположенных между максимальным и минимальным элементами. 2. Сумму элементов массива, расположенных между первым и последним нулевыми элементами. 3. Сумму элементов массива, расположенных до последнего положительного элемента. 4. Сумму элементов массива, расположенных между первым и последним положительными элементами. 5. Произведение элементов массива, расположенных между первым и вторым нулевыми элементами. 6. Сумму элементов массива, расположенных между первым и вторым отрицательными элементами. 7. Сумму элементов массива, расположенных до минимального элемента. 8. Сумму целых частей элементов массива, расположенных после последнего отрицательного элемента. 9. Сумму элементов массива, расположенных после последнего элемента, равного нулю. 10. Сумму модулей элементов массива, расположенных после минимального по модулю элемента. 11. Сумму элементов массива, расположенных после минимального элемента. 12. Сумму элементов массива, расположенных после первого положительного элемента. 13. Сумму модулей элементов массива, расположенных после первого отрицательного элемента. 14. Сумму модулей элементов массива, расположенных после первого элемента, равного нулю. 15. Сумму положительных элементов массива, расположенных до максимального элемента. 16. Произведение элементов массива, расположенных между первым и последним отрицательными элементами.
Задание №5. Обработка двухмерных динамических массивов. Функции пользователя Цель работы: изучить понятие «указатель», правила создания и приемы обработки динамических массивов на примере двухмерного массива. Познакомиться с механизмом составления и организации взаимодействия пользовательских функций, составить и отладить программу. Теоретические сведения
|
||||
Последнее изменение этой страницы: 2017-02-08; просмотров: 574; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.252.243 (0.008 с.) |