Файл: Основы алгоритмизации и программирования (Особенности описания операторов управления в различных языках программирования:достоинства и недостатки).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 24.04.2023

Просмотров: 1994

Скачиваний: 30

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

Тема 1. Основные структуры алгоритмов: сравнительный анализ и примеры их использования.

1.1. Понятие алгоритма

1.2. Цели и задачи теории алгоритмов

1.3. Различные подходы к понятию "Алгоритм"

Тема 2. Особенности описания операторов управления в различных языках программирования:достоинства и недостатки.

2.1. Язык программирования

2.2. Язык программирования QBASIC

Тема 3. Основные правила работы с функциями: примеры и ограничения использования функций в различных языках программирования.

3.1. Структура программы на языке С++

3.2. Описание функции

3.3. Правила работы с функциями

Тема 4. Особенности и примеры использования массивов при разработке программ.

4.1. Массивы

4.2. Описание массива в Паскале

4.3. Ввод массива

4.4. Вывод массива

Тема 5. Классификация языков программирования. Критерии выбора среды и языка разработки программ.

5.1. Классификация языков программирования

5.2. Процедурные языки

5.3. Интерпретация и компиляция.

Тема 6. История и развитие методологии объектно-ориентированного программирования. Сферы применения.

6.1. Объектно-ориентированный язык

6.2. Серверные языки

6.3. Языки программирования.

6.4. Методологии программирования

Тема 7. Отладка и тестирование программ: основные подходы и ограничения.

7.1. Отладка

7.2. Тестирование программ

Тема 8. Методы сортировки данных: эволюция и сравнительный анализ. Примеры использования.

8.1. Алгоритм сортировки.

8.2. сортировки данных в массивах

Тема 9. Методы поиска данных: эволюция и сравнительный анализ. Примеры использования.

9.1. Поиск

Тема 10. Функциональное тестирование программного обеспечения на примере мобильных приложений.

10.1. Функциональное тестирование

10.2. Тестирование производительности;

10.3. Тестирование безопасности;

10.4. Тестирование удобства пользования (юзабилити-тестирование);

10.5. Тестирование совместимости;

10.6. Тестирование на восстановление.

Тема 11. Особенности алгоритмизации при разработке WEB-приложений.

11.1. Web-приложений в C#

11.2 . Задачи Web-приложений

Тема 12. Критерии выбора средств разработки WEB-приложений.

12.1. Критерии выбора

Тема 13. Критерии выбора средств разработки мобильных приложений.

13.1. Критерии выбора

Тема 14. Этапы разработки, тестирования и ввода в эксплуатацию мобильных приложений

14.1. Тестирование

14.2. Тестирование внешних сервисов

Тема 15. Тестирование производительности программ: подходы в зависимости от категорий приложений.

15.1.  Тестирование производительности в инженерии программного обеспечения

15.2. Требования к производительности

Тема 16. Варианты построения интерфейса программ: особенности и эволюция.

16.1. Эволюция дизайна интерфейсов операционных систем Windows

Тема 17. Способы организации данных: пользовательский тип данных – структура.

17.1. Тип данных

17.2. Логический тип данных

Тема 18. Рекурсивные и итерационные алгоритмы: особенности и примеры использования

18.1. Рекурсивные алгоритмы

18.2. Рекурсия и итерация

Тема 19. Классификация языков программирования высокого уровня.

19.1. Примеры языков высокого уровня

Тема 20. Сравнительный анализ операторов для различных языков программирования.

20.1. Сравнение языков программирования

Тема 21. Сравнительный анализ процедур для различных языков программирования.

21.1. Процедурные языки

Тема 22. Сравнительный анализ описания данных для различных языков программирования.

22.1. Анализ

Список литературы для написания курсовой работы по дисциплине

Целый и вещественный тип имеют подтипы. В таблице приведем подтипы целого типа:

Название

Кол-во памяти (байт)

Диапазон значений

Byte

1

0 … 255

ShortInt

1

-128… +127

Word

2

0 … 65535

Integer

2

-32768 … +32767

LongInt

4

-2147483648 … +2147483647

Над данными целого типа определены следующие арифметические операции

Знак операции

Назначение

Приоритет

+

Сложение

2

-

Вычитание

2

*

Умножение

1

/

Деление

1

divmod

Целая часть от деления

1

mod

Остаток от деления

1

Результат выполнения этих операций над целыми операндами получается также целого типа (исключение составляет операция / – результат всегда вещественное число).

Над данными целого типа определены следующие операции отношения: =, <>, , <=, >=. Результат выполнения этих операций – логический тип.

Приоритет – это последовательность выполнения действий в строке операций. Если приоритет = 1, то эти действия выполняются в первую очередь, если приоритет = 2, то эти действия выполняются во вторую очередь. Для изменения приоритета используются круглые скобки.

Пример выполнения операций div и mod:

7 div 2 = 3

3 div 5 = 0

7 mod 2 = 1

3 mod 5=3

Список стандартных функции, дающие целый результат:

Функция

Тип аргумента

Назначение

Abs(x)

Х – целое

Абсолютная величина X

Sqr (x)

Х – целое

Возведение X в квадрат

Trunc (x)

Х – веществ

Выделение целой части числа X

Round (x)

Х – веществ

Округление X до целого числа

Succ (x)

Х – целое

Следующее за X число

Pred (x)

Х – целое

Предыдущее перед X число

Random (x)

Х – целое

Случайное число от 0 до х-1 .Если функция не содержит аргумента, то генерируется случайное число от 0 до 1.

Randomize

Оператор, позволяющий генерировать новую последовательность случайных чисел при новом запуске программы


Вещественные числа могут быть представлены в форме с фиксированной точкой и в форме с плавающей точкой:

С фиксированной точкой

С плавающей точкой

5600

-0.023

570

0.26

-0.003

Математическая.

запись

Запись на языке

Паскаль

0.56 * 104

-23 *10- 3

0.57 *103

26 * 10-2

-3 *10-3

0.56Е+04

23Е-03

0.57Е+03

26Е-02

-3Е-03

Над данными вещественного типа определены следующие арифметические операции:

Операции div и mod над вещественными величинами не допустимы!

Список стандартных функции, дающие вещественный результат:

Функция ln (x) и exp (x) используются для возведения в степень по правилу: xn=enln(x) . Например, выражение x 9 вычисляется по формуле exp(9*ln(x)).

17.2. Логический тип данных

Логический тип данных имеет всего два значения True (истина), False (ложь) и является упорядоченным типом True > False.

В программе логический тип переменной задается служебным словом Boolean.

Существуют следующие логические операции:

1. Операции сравнения:

> – больше;

< – меньше;

= – равно;

<> – не равно;

>= – больше либо равно;

<= – меньше либо равно

2. or (или) – логическое сложение (дизъюнкция).

В физическом смысле логическое сложение – это объединение двух областей.

Логическое сложение дает ложный результат только в том случае, когда оба операнда ложные.

3. and (и) – логическое умножение (конъюнкция).

В физическом смысле логическое умножение – это пересечение двух областей.

Логическое умножение дает истинный результат только в том случае, когда оба операнда истинны.

4. not (не) – логическое отрицание.

Логическое отрицание – это унарная операция, то есть операция, выполняемая над одним операндом.

Операция отрицания дает ложный результат, если операнд истинный, и, наоборот, истинный результат, если операнд ложный.


Тема 18. Рекурсивные и итерационные алгоритмы: особенности и примеры использования

18.1. Рекурсивные алгоритмы

Рекурсия – фундаментальное понятие в математике и компьютерных науках. В языках программирования рекурсивной программой называется программа, которая обращается сама к себе (подобно тому, как в математике рекурсивная функция определяется через понятия самой этой функции). Рекурсивная программа не может вызывать себя до бесконечности, следовательно, вторая важная особенность рекурсивной программы – наличие условия завершения, позволяющее программе прекратить вызывать себя.

Таким образом рекурсия в программировании может быть определена как сведение задачи к такой же задаче, но манипулирующей более простыми данными.

Как следствие, рекурсивная программа должна иметь как минимум два пути выполнения, один из которых предполагает рекурсивный вызов (случай «сложных» данных), а второй – без рекурсивного вызова (случай «простых» данных).

Примеры рекурсивных программ. В ряде случаев рекурсивную подпрограмму можно построить непосредственно из формального  математического описания задачи.

18.2. Рекурсия и итерация

Рекурсивную программу всегда можно преобразовать в нерекурсивную (итер ативную, использующую циклы), которая выполняет те же вычисления. И наоборот, используя рекурсию, любое вычисление, предполагающее использование циклов, можно реализовать, не прибегая к циклам.

К примеру, вычисление факториала и чисел Фибоначчи можно реализовать без рекурсии:

При выполнении рекурсивной подпрограммы сначала происходит «рекурсивное погружение», а затем «возврат вычисленных результатов». Например, вычисление 5! при помощи вызова Fact(5) будет происходить следующим образом:

Как видно на примере вычисления 5!, при «рекурсивном погружении» функция Fact вызывает точно такой же новый экземпляр самой себя. При этом сама функция как бы еще не завершилась, а новый ее экземпляр уже начинает работать. И только когда новый экземпляр завершит работу («вернет вычисленные результаты»), будет продолжена работа самой функции.


Тема 19. Классификация языков программирования высокого уровня.

19.1. Примеры языков высокого уровня

Fortran. Первый компилируемый язык созданный Джимом Бэкусом в 50-е годы. Для этого языка было создано огромное количество библиотек, начиная от статических комплексов и кончая пакетами управления спутниками, поэтому Fortran продолжает активно использоваться во многих организациях, а сейчас ведутся работы над очередным стандартом Фортрана F2k, который появился в 2000 году. Имеется стандартная версия Фортрана HPF (High Perfomance Fortran) для параллельных супер компьютеров со множеством процессоров.

Cobol. Это компилируемый язык для применения в экономической области и решения бизнес-задач, разработанный в начале 60-х г. Он отличается большой "многословностью" – его операторы выглядят как обычные английские фразы. В Коболе были реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях. На этом языке создано много различных приложений, которые активно эксплуатируются и сегодня. Достаточно сказать, что наибольшую зарплату в США получают программисты на Коболе.

Algol. Компилируемый язык, созданный в 1960 году. Он был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения. В 1968 году была создана версия Алгол68,по своим возможностям опережающая и сегодня многие языки программирования, однако из-за отсутствия достаточно эффективных компьютеров для нее не удалось своевременно создать хорошие компиляторы.

Pascal. Язык Паскаль, созданный в конце 70-х годов основоположником множества идей современного программирования Николаусом Виртом, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его при создании крупных проектов.

Basic. Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает первое место в мире. Он создавался в конце 60-х годов в качестве учебного пособия и очень прост в изучении.

C. Данный язык был создан в лаборатории Bell и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы, и в то же время не зависеть от конкретного вида процессора.


C++. Это объектно-ориентированное расширения языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко увеличить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость, в результате чего создание сложных и надежных программ потребовало от разработчиков высокого уровня профессиональной подготовки.

Java. Этот язык был создан компанией Sun в начале 60-х годов на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка – компиляция не в машинный код, а в платформо-независимый байт-код. Этот байт-код может выполнятся с помощью интерпритатора-виртуальной машины Javа-машины JVM (Java Virtyal Machine), версии которой созданы сегодня для любых платформ. Благодаря наличию Java-машин программы на Java можно переносить не только на уровне исходных текстов, но и на уровне обычного байткода, поэтому по популярности язык Ява сегодня занимает второе место в мире после Бейсика.

Рис.3. Классификация языков программирования

Тема 20. Сравнительный анализ операторов для различных языков программирования.

20.1. Сравнение языков программирования

Следует отличать язык программирования (Basic, Pascal) от его реализации, которая обычно представлена в составе среды программирования (Quick Basic, Virtual Pascal) − набора средств для редактирования исходных текстов, генерации исполняемого кода, отладки, управления проектами и т.д. Синтаксис и семантика языка программирования фиксируется в стандарте языка. Каждая среда программирования предоставляет свой интерпретатор или компилятор с этого языка, который зачастую допускает использование конструкций, не фиксированных в стандарте.

Существенна цель, для реализации которой выбирается язык – либо для обучения программированию, либо для решения конкретной прикладной задачи. В первом случае язык должен быть простым для понимания, строгим и по возможности лишенным "подводных камней". Во втором − пусть сложным, но эффективным и выразительным инструментом для профессионала.