Файл: Анализ применения условных операторов в разных языках программирования.docx
Добавлен: 07.11.2023
Просмотров: 49
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ ТАДЖИКИСТАНА
ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
КАФЕДРА ПРОГРАММИРОВАНИЯ И КОМПЬЮТЕРНОЙ ИНЖЕНЕРИИ
К У Р С О В А Я Р А Б О Т А
по дисциплине «Объектно – ориентированное программирование»
Тема: «Анализ применения условных операторов в разных языках программирования»
Выполнил(а): | ______________ | студент(ка) 2–го курса спец. 1-40010103 В Кадыров Абуали Абдугаффорович |
Руководитель: | ______________ | ст. преп. Шарипов Ш.А. |
Душанбе – 2023
ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ ТАДЖИКИСТАНА
ФАКУЛЬТЕТ ИФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
КАФЕДРА ПРОГРАММИРОВАНИЯ И КОМПЬЮТЕРНОЙ ИНЖЕНЕРИИ
«УТВЕРЖДАЮ»
Заведующий кафедрой
программирования
и компьютерной инженерии
_________ к.т.н., и.о. доц. Гуломсафдаров А.Г. «____» _________________________ 2023 г.
ЗАДАНИЕ
на курсовую работу
Ф.И.О. студента: Кадыров Абуали Абдугаффорович.
Специальность: 1–40010103 В «Компьютерные и банковские системы»
Тема работы:«Анализ применения условных операторов в разных языках программирования»
Утверждено на заседании кафедры: протокол № 7 от 23–го февраля 2023 г.
-
СОДЕРЖАНИЕ КУРСОВОЙ РАБОТЫ
№ п/п | Наименование разделов | Объем в % | Срок выполнения |
| Содержание | 3 | 01.03.2023 |
| Введение | 10 | 08.03.2023 |
| Глава 1: Исследование особенностей организации системы ветвлений в языке Программирования с++ | 15 | 13.03.2023 |
| Глава 2: Описания операторов | 20 | 10.04.2023 |
| Заключение | 10 | 11.04.2023 |
| Список литературы | 5 | 17.04.2023 |
| Оформление курсовой работы | 5 | 9.05.2023 |
-
ЛИТЕРАТУРА
-
1. Campbell Parallel Programming with Microsoft® Visual C++® / Campbell. – Москва: Гостехиздат, 2011. – 784 c. -
2. Альфред, В. Ахо Компиляторы. Принципы, технологии и инструментарий / Альфред В. Ахо и др. – Москва: Высшая школа, 2015. – 882 c. -
3. Балена, Франческо Современная практика программирования на Microsoft Visual Basic и Visual C# / Франческо Балена , Джузеппе Димауро. – М.: Русская Редакция, 2015. – 640 c.
-
ПРОЦЕНТОВКА
1. 13.03.2023 до 20.03.2023 2. 17.04.2023 до 24.04.2023
Курсовая работа принял(а) к выполнению: _____________ Кадыров А.А
(подпись)
Дата защиты курсовой работы «_______________________»
Руководитель: ____________
Шарипов Ш.А.
(подпись)
| СОДЕРЖАНИЕ | |
| ВВЕДЕНИЕ………………………………………………. | 4 |
1 | ИССЛЕДОВАНИЕ ОСОБЕННОСТЕЙ ОРГАНИЗАЦИИ СИСТЕМЫ ВЕТВЛЕНИЙ В ЯЗЫКЕ ПРОГРАММИРОВАНИЯ С++ ………… | 5 |
1.1 | Инструкция выбора if…elsе ………………………….. | 6 |
1.2 | Инструкция switch (структура множественного выбора)……………… | 8 |
2 | ОПИСАНИЯ ОПЕРАТОРОВ | 12 |
2.1 | Операторы условного перехода…………………… | 13 |
2.2 | Оператор переключатель switch……………… | 16 |
| ЗАКЛЮЧЕНИЕ…………………………………………. | 20 |
| СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ… | 21 |
| ПРИЛОЖЕНИЯ………………………………………… | 22 |
| | |
| | |
ВВЕДЕНИЕ
Одной из проблем, с которой сталкивается программист при написании параллельной программы, является семантический разрыв между параллельным алгоритмом в его математической форме и его реализацией на многопроцессорной вычислительной системе (МВС). Структурно-процедурная организация вычислений позволяет решать эту проблему. Для эффективной реализации на многопроцессорных системах вычислительных алгоритмов необходим язык программирования высокого уровня (ЯПВУ), обладающий следующими качествами.
Язык должен эффективно реализовываться на различных МВС;
Иметь средства для записи алгоритмов без изменения их начальной параллельной структуры;
Язык должен позволять программисту максимально просто описывать различные виды параллелизма, реализованные в МВС, в достаточно сжатом виде;
Cодержать мощные конструкции, как в традиционных ЯПВУ типа Фортрана, Си и т.п.
Для МВС со структурно-процедурной организацией вычислений (СПОВ) возможен качественно новый принцип описания задачи: задача делится на независимые, функционально законченные участки, реализуемые структурно (аппаратно) на модулях с ПЛИС-архитектурой; смена вычислительных структур происходит под управлением программы. Таким образом, в ходе выполнения программы может выполняться только одна вычислительная конструкция.
Значительную сложность в ЯПВУ многопроцессорных систем представляет проблема, связанная с программированием связей между компонентами системы. Поскольку МВС СПОВ имеет полнодоступную систему коммутации, можно переложить решение этой задачи на транслятор. Таким образом, программист будет пользоваться не только виртуальной памятью, но и виртуальной системой коммутации.
1.ИССЛЕДОВАНИЕ ОСОБЕННОСТЕЙ ОРГАНИЗАЦИИ СИСТЕМЫ ВЕТВЛЕНИЙ В ЯЗЫКЕ ПРОГРАММИРОВАНИЯ С++.
Анализ базового уровня данной системы.
В самом простом случае компьютерная программа выполняется по порядку, строка за строкой. Однако в подавляющем большинстве случаев на каком-то этапе выполнения потребуется изменить ход выполнения программы в зависимости от результатов, полученных в предыдущих выражениях. В таком случае необходимо проверить выполнение некоторых условий, и изменить ход выполнения программы в соответствии с ними. Для программирования ветвлений в языке C++ имеются инструкции if…else и switch, а также тернарная операция (?:)..
1.1 Инструкция выбора if…else
Выполняет указанное в ней действие, только если условие истинно и пропускает его в ином случае. Инструкция (структура) if…else позволяет определить различные действия, которые должны выполняться в случаях, если условие истинно или ложно. Допускается использование вложенных инструкций if. Формат инструкции if имеет вид
If (логическое выражение) выражение-1; else выражение-2;
Или
If (логическое выражение) выражение-1;
При этом выражение-1 и выражение-2 могут быть составными (т.е. представлять собой совокупность последовательно выполняемых выражений, заключенных в операторные скобки), или в более общем случае – структурированными. Отметим также, что вложенная структура if…else может работать гораздо быстрее, чем серия структур if с единственным выбором вследствие возможности быстрого выхода после удовлетворения одному из условий.
При построении логических выражений участвуют логические операторы, наиболее часто используются операторы (&&), (||), (!). Операторы (&&) и (||) вычисляют второй аргумент только в случае, если в этом есть необходимость. Так, например, в выражении
If (a>b && c>100) a=c;
Вначале проверяется первое условие a>b, а проверка условия c>100 будет осуществляться только в том случае, если первое условие истинно. В выражении
If (a>b || c!=0) a=c;
Второе условие будет проверяться только в случае, если первое условие ложно; если же первое условие истинно, то второе условие не проверяется, и результатом проверки сразу возвращается true. Такая реализация проверок носит название механизма быстрых вычислений.
При написании условий можно объявлять переменную прямо в условии. В этом случае область видимости такой переменной будет простираться от точки ее объявления до конца инструкции, контролируемой условием. Если в инструкции if есть ветвь else, область видимости такой переменной простирается на обе ветви. При этом объявление в условии должно объявлять и инициализировать единственную переменную или константу.
Такой подход к объявлению переменной приводит к более компактному коду программы. Еще одним преимуществом такого объявления (когда такое возможно) является то, что если объявить переменную до инструкции if, то время ее жизни будет простираться до конца блока, в котором она была объявлена, даже если она не будет использована после проверки условия.
Ниже в качестве примера приводится текст программы, выводящей на экран значение корня из указанного числа, если число является полным квадратом, и «No» в противном случае.
#include
#include
#include
Using namespace std;
Long f (long a)
{long s=pow(a,0.5);
If (s*s == a) return s; else return 0;}
Int main()
{ long ch;
Cout<<»ch= «; cin>>ch;
If (long sum = f(ch)) cout<<»Yes: «< else cout<<»No»;
Getch(); return 0;}
Ясно, что для решения такой простой задачи нет смысла писать отдельную функцию, -- в данном случае это сделано лишь для демонстрации возможности объявления переменной в условии.
Условная операция ?:
В С++ имеется еще условная операция (?:) – единственная тернарная операция в С++ с тремя операндами, которая близка к структуре if…else. Первый операнд является условием, второй – содержит значение условного выражения в случае, если условие истинно, а третий операнд равен значению условного выражения, если условие ложно. Например, оператор вывода
Cout << ( a >=10 ? «Да» : «Нет»);
Содержит условное выражение, равное строке «Да», если условие a>=10 истинно, и равно строке «Нет», если оно ложно. Т.к. условная операция имеет низкое старшинство, в приведенном выражении потребовались скобки. Значения условного выражения могут быть также некоторыми исполняемыми действиями.
Например, условное выражение
A >=10 ? cout << «Да \n» : cout << «Нет \n»;
Следует понимать так: «Если значение переменной a больше или равно 10, то выдать строку «Да», иначе строку «Нет»».
1.2 Инструкция switch (структура множественного выбора)
Иногда алгоритм решения какой-либо задачи содержит ряд альтернатив, причем некоторую переменную надо проверять отдельно для каждого постоянного целого значения, которое она может принимать. В зависимости от результатов этой проверки должны выполняться различные действия. Ветвление программирование switch
Инструкция switch состоит из ряда меток case и необязательной метки default. Структура инструкции имеет вид:
Switch (a) {
Case a1: выражение-1; break;
Case a2: выражение-2; break;
……………………………;
Case aN: выражение-N; break;
Default: выражение-0; break; }
Здесь a – выражение любого целого типа (в том числе и символьного), значение которого вычисляется; a1, a2, …, aN – константы, с которыми сравнивается значение выражения a; выражение-0 – выражение, которое выполняется, если значение выражения a не совпадает ни с одной из констант a1, a2, …, aN.
Инструкция break вызывает передачу программного управления на первое выражение после структуры switch. В случае если инструкцию break не указывать, то условия case в инструкции switch работают совместно: если везде в приведенной выше структуре switch не использовать break, тогда каждый раз, когда одно из условий caseудовлетворяется, будут выполняться выражения всех последующих меток case. Если ни одно из условий не выполнено, то выполняются выражения после метки default (если в структуре switch метка default помещена последней в списке, то инструкция break в ней не требуется).