Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

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

Содержание:

Введение

Курсовая работа представляет собой написание программного кода на языке С++. В ней будут рассмотрены задания: Попадает ли точка в заштрихованную фигуру, поиски переменных, различных массивов и индексов, производится вычисления в уравнениях. Для выполнения этих задач использовалась программа VisualStudio 2015. Так же под каждым заданием будет добавлено изображение с выполнением проверки на правильность написания программы и выводом ответа.

1. Программирование линейных алгоритмов

Задание 1.

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

Словесный алгоритм:

  • Ввод исходных данные x, z, b.
  • Вычисление значения переменной h (выражение).
  • Вывод результата на экран.

Описание переменных

x,z,b – Исходные

h–Выражение

Листинг представлен на рисунке 1

#include <iostream>

using namespace std;

int main()

{

int x, z, b;

double h;

cout<<"Введите значение x=";

cin >> x;

cout<<"Введите значение z=";

cin >> z;

cout<<"Введите значение a=";

cin >> b;

h = (1 + pow(sin(x), 3.0)) / pow(z, 2.0) + pow(cos(x), 2.0) + (pow(log(x), 2.0) + b) / pow(x, 4.0);

cout<<"Ответ h="<< h <<endl;

system("pause");

return 0;

}

Рис.1. Листинг программы

Результат выполнения программы представлен на рисунке 2

Рис.2. Результат выполнения программы

Задание 2.

Решить задачу для индивидуального варианта.

Известна длина окружности. Найти площадь квадрата, периметр которого равен длине окружности.

Листинг представлен на рисунках 3

#include <iostream>

using namespace std;

int main()

{

float с, s;

cout<<"Введите значение с=";

cin >> C;

s = pow((C / 4), 2.0);

cout<<"Ответ s="<< s <<endl;

system("pause");

}

Рис.3. Листинг программы

Результат выполнения программы представлены на рисунке 4

Рис.4. Результат выполнения программы

2. Программирование разветвляющихся алгоритмов

Задание 3.

Даны два вещественных числа x и y. Определить, попадает ли точка с координатами x, y в заштрихованную область.

1

y

-1

1

x

-1

  • Вводим исходные данные x и y
  • Проверяем попадает ли точка в область ограниченную линиями

Если попадает, то проверяем попадает ли в область

y<=x+1, y>=x-1, y>=-x-1, y<=-x+1

  • Если точка попала в указанную область, то выводим на экран «Точка попадает»
  • В противном случае «точка не попадает»

Описание переменных

x, y – Координаты

Листинг представлен на рисунке 5

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

float x, y;

cout << "Введите значения x = " << endl;

cin >> x;

cout << "Введите значения y = " << endl;

cin >> y;

if (sqrt(pow(x, 2) + pow(y, 2)) <= 1)

if (y<= x+1 && y>=x-1 && y>= -x-1 && y<= -x+1)

cout << "Не попадает" "\n";

else

cout << "Попадает" "\n";

else

cout << "Не попадает" "\n";

system("pause");

}

Рис.5. Листинг программы

Результаты выполнения программы представлены на рисунке 6.

Рис.6. Результаты выполнения программы

Задание 4.

Разработать программу в соответствии с заданием.

Единицы длины пронумерованы следующим образом: 1 – дециметр, 2 – километр, 3 – метр, 4 – миллиметр, 5 – сантиметр. Дан номер единицы длины ( целое число в диапазоне 1-5) и длина отрезка в этих единицах (вещественное число). Найти длину отрезка в метрах.

Словесное описание алгоритма.

  • Выбираем номер единицы длины (n)
  • Ввод значения длины (l)
  • В зависимости от выбранной единицы длины будет производится перевод в метры. Результат выводим на экран.

Описание переменных

n – номер единицы длины

l – длина в заданных единицах

Листинг представлен на рисунке 7

#include <iostream>

using namespace std;

void main(void)

{

setlocale(LC_ALL, "Russian");

int n;

double l;

cout << "Введите номер единицы длины [от 1 до 5]: ";

cin >> n;

cout << "Введите длину: ";

cin >> l;

cout << "\n";

switch (n)

{

case 1: cout << l << " дм = " << l * 0.1 << " м\n\n";

break;

case 2: cout << l << " км = " << l * 1000 << " м\n\n";

break;

case 3: cout << l << " м - заданная длина уже в метрах\n\n";

break;

case 4: cout << l << " мм = " << l * 0.001 << " м\n\n";

break;

case 5: cout << l << " cм = " << l * 0.01 << " м\n\n";

break;

default: cout << "Неверно введён номер единицы длмны\n\n";

break;

}

system("pause");

}

Рис.7. Листинг программы

Результаты выполнения программы представлены на рисунке 8

C:\Users\Домашний\Desktop\zadanie4resnew.bmp

Рис.8. Результаты выполнения программы

3. Программирование программы цикличных структур

Задание 5.

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

  • Ввод исходных данные xn-(начальное), xk-(конечное), zn-(начальное), zk-(конечное).
  • Вычисление значения переменной y (выражение).
  • Результат выводим на экран.

Описание переменных

xn, zn – начальные значения переменных x и z.

xk, zk – конечные значения переменных x и z.

x – счетчик цикла

z – счетчик цикла

y –y значения функций

Листинг представлен на рисунке 9

#include"iostream"

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int xn, xk;

double zn, zk;

cout << "Введите значение xn: ";

cin >> xn;

cout << "Введите значение xk: ";

cin >> xk;

cout << "Введите значение zn: ";

cin >> zn;

cout << "Введите значение zk: ";

cin >> zk;

int x;

double z, y;

for (x = xn; x <= xk; x++)

{

z = zn;

do

{

y = pow(sin(x), 2.0) + cos(z);

cout << "x=" << x << " z=" << z << " y=" << y << "\n";

z = z + 0.5;

} while (z <= zk);

}

system("pause");

}

Рис.9. Листинг программы

Результаты выполнения программы представлены на рисунке 10

C:\Users\Домашний\Desktop\zadanie5resnew.bmp

Рис.10. Результаты выполнения программы

4. Работа с массивами

Задание 6.

Найти К-й отрицательный элемент массива.

Словесный алгоритм

  • Заполняем массив (mas)данными.
  • Вывод на экран массива.
  • Поиск К-го отрицательного числа массива.
  • Результат выводим на экран.

Описание переменных

mas – Массив

k – к –й отрицательный элемент массив

kt – счетчик отрицательных элементов массива

i – счетчик массива

in – номер к-ого отрицательного числа массива

n – разрядность

Листинг предоставлен на рисунке 11

#include <iostream>

using namespace std;

void main(void)

{

setlocale(LC_ALL, "Russian");

const int n = 5;

int mas[n], i, k, kt = 0, in = 1;

cout << "Введите элементы массива\n";

for (i = 0; i < n; i++)

{

cout << "mas(" << i << ") = ";

cin >> mas[i];

}

cout << "\n\n Ваш массив: \n";

for (i = 0; i < n; i++)

{

cout << "mas(" << i << ") = " << mas[i] << "\n";

}

cout << "\n\n Введите k = ";

cin >> k;

for (i = 0; i < n; i++)

if ((mas[i] < 0) && (kt < k))

{

in = i;

kt++;

}

cout << "\n";

if (k == kt)

cout << "mas(" << in << ") = " << mas[in] << " является "

<< k << "-м отрицательным элементом массива";

else

cout << k << "-го отрицательного элемента нет!\n";

system("pause");

}

Результат выполнения программы предоставлен на рисунке 11

C:\Users\Домашний\Desktop\Алгоритмизация\Zadanie6res.bmp

Рис.11. Результат выполнения программы.

Заключение

В данной работе мы научились основам языка программирования С++, а также на базовом уровне научились работать программой VisualStudio 2015. Все это было применено для решения заданий в данной работе.

Список использованных источников

1. Александреску, А. Язык программирования D / А. Александреску. — М.: Символ, 2013. — 536 c.

2. Александреску, А. Язык программирования D / А. Александреску. — СПб.: Символ-плюс, 2014. — 544 c.

3. Голицына, О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. — М.: Форум, НИЦ ИНФРА-М, 2013. — 400 c.

4. Страуступ, Б. Язык программирования С++. Специальное издание / Б. Страуступ. — М.: Бином, 2015. — 1136 c.

5. Ашарина, И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. — М.: Гор. линия-Телеком, 2012. — 208 c.

6. Microsoft, Руководство пользователя по VisualStudio, https://msdn.microsoft.com/ru-ru/library/dd831853.aspx.