Условный оператор
Использование условных операторов - простых или сложных логических выражений. Значение приоритета операций при вычислении значения формулы. Алгоритм выполнения операторов if, switch, break, do, for, while. Программа расчета площадей геометрических фигур.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 30.12.2010 |
Размер файла | 544,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Контрольная работа № 1
Условный оператор
Оборудование: персональный компьютер, компилятор языка С#.
Цель работы: Научиться использовать условные операторы при написании программ.
Условные операторы обеспечивают выполнение или невыполнение оператора или группы операторов в зависимости от заданных условий. В С# допускается использование нескольких условных операторов: if() и switch().
(1) Оператор условия if может иметь одну из следующих форм:
if (<условие>){ <оператор>; }(краткая форма)
или полную форму
if (<условие>) <оператор>; else <оператор-иначе>; (полная форма).
Условие - это логическое выражение простое или сложное. Простое условие задает некоторое отношение. Например, x<y+3 или char(a)<'r'. Сложное условие - это совокупность простых выражений, соединенных знаками логических операций not, and, or, хотя простые выражения, содержащиеся в сложном, должны быть заключены в круглые скобки:
not(sin(a)<3) or (j>9) and (x>9).
При вычислении значения логического выражения учитывается приоритет операций, который убывает в следующем порядке: 1). not, 2).and, 3).or.
Алгоритм выполнения оператора условия IF
1. Вычисляется значение условия.
2. Если условие истинно, то выполняется заданный <оператор>.
3. Если условие ложно, то
а) в случае краткой формы ничего не выполняется;
б) в случае полной формы выполняется <оператор - иначе>.
Если в качестве <оператора> или <оператора - иначе> необходимо использовать более одного оператора, то эта последовательность операторов должна быть заключена в операторные скобки { и }. Например,
if (x<5) and (y>8)
{ x=x+1; y=y+1;}
else
{ x=x-1; y=y+1; }.
В качестве <оператора> или <оператора - иначе> может быть любой оператор, в том числе и оператор IF. В этом случае говорят о вложенных операторах if. Например,
if (x<5) if (y>8) x=x+1; else y=y-1;.
Такой оператор можно рассматривать по-разному:
(а) if (x<5) <оператор>; else y=y-1;,
где <оператор> - это if (y>8) x=x+1;
или
(б) if (x<5) <оператор>;,
где <оператор> - это if (y>5) x=x+1; else y=y+1;.
C использует вариант (б), т.е. всегда относит слово ELSE к ближайшему к нему if.
Следующий фрагмент иллюстрирует вложенные операторы if:
char ZNAC;
int x,y,z;
:
if (ZNAC == '-') x = y - z;
else if (ZNAC == '+') x = y + z;
else if (ZNAC == '*') x = y * z;
else if (ZNAC == '/') x = y / z;
else ...
Из рассмотрения этого примера можно сделать вывод, что конструкции использующие вложенные операторы if, являются довольно громоздкими и не всегда достаточно надежными. В сложных случаях для большей наглядности можно использовать операторные скобки { }. Вложенные условные операторы используются тогда, когда нужно сделать выбор из более чем двух вариантов. В таких случаях может быть удобнее использовать другой вариант условного оператора - оператор switch ().
(2) Оператор switch() имеет вид:
switch ( выражение )
{ [объявление]
:
[ case константное-выражение1]: [ список-операторов1]
[ case константное-выражение2]: [ список-операторов2]
:
:
[ default: [ список операторов ]]
}
Выражение должно быть целочисленного (от -32768 до 32767), булевского, литерного или пользовательского типа. Список-значений - это список констант или диапазонов значений того же типа, что и выражение.
Все константные выражения в операторе switch должны быть уникальны. Кроме операторов, помеченных ключевым словом case, может быть, но обязательно один, фрагмент помеченный ключевым словом default.
Схема выполнения оператора switch следующая:
- вычисляется выражение в круглых скобках;
- вычисленные значения последовательно сравниваются с константными выражениями, следующими за ключевыми словами case;
- если одно из константных выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case;
- если ни одно из константных выражений не равно выражению, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после switch оператор.
Отметим интересную особенность использования оператора switch: конструкция со словом default может быть не последней в теле оператора switch. Ключевые слова case и default в теле оператора switch существенны только при начальной проверке, когда определяется начальная точка выполнения тела оператора switch. Все операторы, между начальным оператором и концом тела, выполняются вне зависимости от ключевых слов, если только какой-то из операторов не передаст управления из тела оператора switch. Таким образом, программист должен сам позаботится о выходе из case, если это необходимо. Чаще всего для этого используется оператор break. Для того, чтобы выполнить одни и те же действия для различных значений выражения, можно пометить один и тот же оператор несколькими ключевыми словами case.
Пример:
int i=2;
switch (i)
{
case 1: i += 2;
case 2: i =i * 3;
case 0: i /= 2;
case 4: i -= 5;
default: ;
}
Выполнение оператора switch начинается с оператора, помеченного case 2. Таким образом, переменная i получает значение, равное 6, далее выполняется оператор, помеченный ключевым словом case 0, а затем case 4, переменная i примет значение 3, а затем значение -2. Оператор, помеченный ключевым словом default, не изменяет значения переменной. Рассмотрим ранее приведенный пример, в котором иллюстрировалось использование вложенных операторов if, переписанной теперь с использованием оператора switch.
char ZNAC;
int x,y,z;
switch (ZNAC){
case '+': x = y + z; break;
case '-': x = y - z; break;
case '*': x = y * z; break;
case '/': x = u / z; break;
default : ;}
Использование оператора break позволяет в необходимый момент прервать последовательность выполняемых операторов в теле оператора switch, путем передачи управления оператору, следующему за switch.
Отметим, что в теле оператора switch можно использовать вложенные операторы switch, при этом в ключевых словах case можно использовать одинаковые константные выражения.
Пример:
:
switch (a)
{
case 1: b=c; break;
case 2:
switch (d)
{ case 0: f=s; break;
case 1: f=9; break;
case 2: f-=9; break;
}
case 3: b-=c; break;
:
}
Оператор break обеспечивает прекращение выполнения самого внутреннего из объединяющих его операторов switch, do, for, while. После выполнения оператора break управление передается оператору, следующему за прерванным.
Лабораторная работа 2 включает 3 задания.
Рассмотрим типовые примеры, включённые в работу.
1. Графически задана некоторая область на плоскости. Написать программу, которая по вводимым координатам точки определяет принадлежит ли точка области.
Для решения этой задачи нужно записать логическое условие, задающее множество точек, принадлежащих заданной области.
(x,y): -1<x< 1 && 0 < y< 1
Получаем программу:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Primer_1
{
class Program
{
static void Main(string[] args)
{
string x, y;
Console.WriteLine("Введите координаты");
x = Console.ReadLine();
y = Console.ReadLine();
double X, Y;
X = Convert.ToDouble(x);
Y = Convert.ToDouble(y);
if ((X > -1) && (X < 1) && (Y < 1) && (Y > 0))
Console.WriteLine("Точка с координатами {0} {1} в области", x, y);
else
Console.WriteLine("Point {0} {1} is not in the area", x, y);
Console.ReadLine();
}
}
}
2. Требуется написать программу, реализующую развилку:
Получаем следующий оператор условия:
if (X < 5.5) Y = X*X*X;
else
if (X < 27) Y = X * X;
else
Y = Math.Sin(X);
Для использования математических функций необходимо подключить класс Math, который хранится в пространстве имен System.
3. Найти min(x2,max(x,y,z),1).
Будем последовательно находить требуемые значения.
Рассмотрим код процедуры Main():
string x, y, z; //объявление трех переменных строкового типа
Console.WriteLine("enter x"); //вывод сообщения на экран
x = Console.ReadLine(); //считывание информации с экрана
Console.WriteLine("enter y"); //вывод сообщения на экран
y = Console.ReadLine(); //считывание информации с экрана
Console.WriteLine("enter z"); //вывод сообщения на экран
z = Console.ReadLine(); //считывание информации с экрана
double X, Y, Z, h = 0; //объявление переменных вещественного типа
X = Convert.ToDouble(x); //конвертирование переменных из строкового типа //в вещественный тип
Y = Convert.ToDouble(y); //конвертирование переменных из строкового типа //в вещественный тип
Z = Convert.ToDouble(z); //конвертирование переменных из строкового типа //в вещественный тип
if (X > Y) h = X; else h = Y; //вычисление максимального значения среди //значений переменных X и Y
if (Z > h) h = Z; //вычисление максимального значения среди Z и //полученного максимального значения
if (X * X < h) h = X * X; //вычисления минимального значения среди X * X //и полученного максимального значения
if (h > 1) h = 1; //вычисления минимального значения среди //единицы и полученного минимального значения
Console.WriteLine("h = {0}", h); //вывод результата на экран
Console.ReadLine(); //задержка завершения программы
Контрольная работа № 1
Вариант 1
1.Даны три числа. Найти произведение тех из них, которые по модулю меньше 1.
2. Принадлежит ли точка с координатами х,у заштрихованной области.
3.Вычислить значение функции у(х) и вывести его на экран
Вариант 2
1.Даны три числа а, b, c. Найти значение выражения max (a,b,1) - min (a, max (b,c)).
2. Принадлежит ли точка с координатами (х,у) заштрихованной области:
3.Дано действительное число а. Вычислить функцию f(a):
Вариант 3
1.Даны три числа x,y,z. Найти значение выражения (max (x,y,z)) - min (x,y).
2.Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить функцию у(х) и результат распечатать:
Вариант 4
1.Дано действительное число а. Для функции на рисунке вычислить f(a):
2.Принадлежит ли точка с координатами х,у заштрихованной области:
3.Вычислить функцию у(х) и результат распечатать:
Вариант 5
1.Дано действительное число h. Выяснить, имеет ли уравнение ах2 + bx + c = 0 действительные корни, если:
а =
b = 1-
с = ah2 sin bh + bh3 cos ah
Если действительные корни существуют, то найти их, в противном случае ответ: действительных корней нет.
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Даны действительные числа х и у. Определить U. "U" определяется следующим образом; пусть D - заштрихованная область
Вариант 6
1. Даны три числа a,b,c. Найти значение выражения (min (1,a,b,c))2 + max (b,c).
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить значение функции у(х) и результат распечатать:
Вариант 7
1. Даны три числа x,y,z. Найти значение выражения max (x,y, min (x,z)) + min (x,y,1).
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить значение функции у(х) и результат напечатать:
Вариант 8
1. Даны действительные числа х и у. Если х и у отрицательны, то каждое значение заменить его модулем, если отрицательно только одно из них, то оба значения увеличить на 0,5, если оба положительны и ни одно из них не принадлежит отрезку [0,5 , 2,0], то оба значения уменьшить в 10 раз, в остальных случаях х и у оставить без изменения.
2. Принадлежит ли точка с координатами х и у заштрихованной области:
3. Вычислить значение функции у(х) и результат распечатать:
Вариант 9
1. Даны три числа a,b,c. Найти значение выражения max (a2,b,c) + min (b,c)2.
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить значение функции у(х) и результат напечатать:
Вариант 10
1. Определить координаты точек пересечения параболы y = a2x + bx + c, и окружности x2 + y2 = R2 , если они есть.
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить функцию у(х) и результат распечатать:
Вариант 11
1.Даны три числа x,y,z. Найти значение выражения (max (x,y,z))3 - min (x,y).
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить функцию у(х) и результат распечатать:
Вариант 12
1. Даны действительные положительные числа x,y,z. Выяснить существует ли треугольник с длинами сторон x,y,z. Если он существует, то ответить является ли он остроугольным.
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить значение функции у(х) и результат напечатать:
Вариант 13
1.Даны три числа x,y,z. Найти значение выражения (max (x,y,z))3 - min (x,y).
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить значение функции у(х) и результат напечатать:
Вариант 14
1. Определить координаты точек пересечения окружности x2 + y2 = R2 с прямой Ах + Ву + С = 0, если такие есть.
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить значение функции у(х) и результат напечатать:
Вариант 15
1. Даны действительные числа ц, a, b, R, h и натуральное n. Составить программу вычисления площадей различных геометрических фигур.
оператор логический алгоритм оператор
2. Принадлежит ли точка с координатами х,у заштрихованной области:
3. Вычислить значение функции у(х) и результат напечатать:
Вопросы
Приведите структуру и алгоритм работы оператора IF.
Приведите структуру и алгоритм рабjты оператора CASE.
В каких случаях целесообразнее использовать оператор IF, а в каких оператор CASE.
Размещено на Allbest.ru
Подобные документы
Характеристики операторов языка Си. Операторы безусловного и условного перехода: if, if-else, if-else if. Оператор переключатель switch. Оператор цикла с предусловием while, постусловием do-while. Упрощение логических выражений, взаимозаменяемость циклов.
лабораторная работа [30,0 K], добавлен 06.07.2009Табличный вывод значений суммы ряда и номера последнего элемента суммы в зависимости от значений величин входных параметров с применением операторов ветвления и циклов. Блок-схема алгоритма решения. Время работы программы для расчета одного значения.
контрольная работа [762,9 K], добавлен 14.05.2013Изучение циклических операторов: оператора цикла, управляемого счетчиком, оператора цикла с предусловием и постусловием. Минимизированные функции, текст программы. Алгоритм работы приложения по нахождению функции с помощью операторов break и continue.
лабораторная работа [474,2 K], добавлен 23.11.2014Понятие логических выражений, их назначение в создании алгоритмов. Список операторов сравнения, используемых в табличном редакторе Excel. Синтаксис функции "если" и примеры ее использования. Логические операторы "и", "или", "не", "истина", "ложь".
презентация [108,9 K], добавлен 07.03.2013Понятие и характеристика операторов ввода и вывода информации, случаи их применяется в программах и основные виды: составной оператор Begin ... end, условный оператор If. Суть операторов безусловного перехода и циклических процессов, примеры применения.
реферат [27,9 K], добавлен 03.03.2010Конструкции языка программирования С++, составление простых программ, использyющих оператор if, оператор if else и оператор switch. Работа оператора switch. Создание программы, которая по дате определяет день недели , на который эта дата приходится.
лабораторная работа [3,1 M], добавлен 03.02.2008Представление выражения 2*а+b*с в виде дерева. Общие правила, связанные с определением приоритета операций. Три группы типов операторов. Приоритет аргумента. Множество предопределенных операторов. Одна из теорем де Моргана. Упражнения для повторения.
презентация [17,3 K], добавлен 17.10.2013Ознакомление с формой записи и работой операторов условного if (если) и безусловного а goto (идти к) переходов как способами организации ветвления в программе. Изучение оператора выбора альтернативы - switch (переключатель). Использование функции default.
лабораторная работа [72,0 K], добавлен 15.07.2010Понятие и назначение условных операторов, их функциональные особенности и характерные свойства. Разновидности и отличия циклов. Прерывание фрагмента программы с циклом с использованием оператора break. Компоненты для отображения и редактирования текста.
контрольная работа [13,2 K], добавлен 02.05.2012Применение циклической управляющией структуры для организации многократного выполнения некоторого оператора. Конструкция цикла: заголовок и тело, и алгоритм выполнения операторов while, do while и for. Отличия циклов с постусловием и предусловием.
контрольная работа [65,8 K], добавлен 30.12.2010