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

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

Содержание:

Введение

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

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

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

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

  1. Вводим исходные данные
  2. Вычисляем значение переменной h(выражение).
  3. Выводим результат

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

x,y,z, - исходные данные

h – значение функции

Листинг программы изображен на рисунке 1

#include "iostream"

Using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

float x, y, z, h;

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

cin>> x;

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

cin>> y;

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

cin>>z;

h = ((sin(z) + cos(2 * x)) / ((2 * pow(x, 5)) + tan(x)) + pow(((3 * x) + (2 * y)), (1 / 3)));

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

system("pause");

}

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

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

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

Задание 2. Решить задачу для индивидуального варианта. Даны два сопротивления и, соединенные последовательно, сила тока в цепиI. Определить сопротивление цепи, напряжение на каждом сопротивлении, полное напряжение участка цепи.

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

  1. Вводим исходные данные сопротивление , и силу токаi.
  2. Вычисляем значения полного сопротивления r, напряжения , и полного напряжения u.

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

,,i - исходные данные

r, , u2, u – значения полного сопротивления, напряжение 1 и напряжение 2, полное напряжение.

Листинг программы изображен на рисунке 3

#include "iostream"

Using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

float r, r1, r2, i, u1, u2, u;

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

cin>> r1;

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

cin>> r2;

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

cin>> i;

r = r1 + r2;

cout<<"Сопротивление цепи r="<< r <<endl;

u1 = i*r1;

cout<<"Напряжение 1 u1="<< u1 <<endl;

u2 = i*r2;

cout<<"Напряжение 2 u2="<< u2 <<endl;

u = u1 + u2;

cout<<" Полное напряжение u="<< u <<endl;

system("pause");

}

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

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

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

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

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















 

1

-1

-1

y

1

x

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

  1. Вводим координаты точки x, y
  2. Проверяем, попадает ли точка в область, , , .
  3. Если точка попадает в область, то выводиться сообщение: «Попадает».
  4. Если точка не попадает в область, то выводиться сообщение: «Не попадает».

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

x,- координаты точки

Листинг программы изображен на рисунке 5

#include “iostream”

Using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

float x, y;

cout<<"Введитеx: ";

cin>>x;

cout<<"Введите y: ";

cin>> y;

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

{

cout<<"Попадет"<<endl;

}

else

cout<<"Не попадет"<<endl;

system("pause");

return 0;

}

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

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

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

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

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

  1. Выбираем исходные единицы измерения массы.
  2. Вводим искомую массу.
  3. Производим перевод в нужные единицы измерения.

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

edinica – исходные единицы измерения массы

massa – величина единицы измерения массы

Листинг изображен на рисунке 7

#include “iostream”

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int edinica;

float massa;

cout<<"Выберите значение массы: "<<endl;

cout<<"(1 - килограмм, 2 - миллиграмм, 3 - грамм, 4 - тонна, 5 - центнеры)"<<endl;

cin>>edinica;

cout<<"Введите массу: ";

cin>>massa;

switch (edinica)

{

case 1:

cout<<massa<<"килограмм = "<<massa<<" килограмм"<<endl; break;

case 2:

cout<<massa<<"миллиграмм = "<<massa / 1000000 <<" килограмм"<<endl; break;

case 3:

cout<<massa<<"грамм = "<<massa / 1000 <<" килограмм"<<endl; break;

case 4:

cout<<massa<<"тонна = "<<massa * 1000 <<" килограмм"<<endl; break;

case 5:

cout<<massa<<"центнеры = "<<massa * 100 <<" килограмм"<<endl; break;

default: cout<< ("Введите значение от 1 до 5!") <<endl;

}

system("pause");

}

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

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

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

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

Задание 5. Разработать программу вычисления значений функции . Интервал изменения переменных ввести с клавиатуры. Шаг изменения переменных: x=1, z=0.5.

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

  1. Вводим исходные данные переменных xn, xk, zn, zk.
  2. Вычисляем значение переменной y(выражение).
  3. Выводятся все возможные переменные с заданным шагом.

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

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

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

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

z, x-шаг изменения переменных

Листинг программы изображен на рисунке 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 = (x + pow(z, x)) / (1 + z);

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

z = z + 0.5;

} while (z <= zk);

}

system("pause");

}

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

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

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

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

Задание 6. Определить значение и индекс максимального элемента массива.

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

  1. Заполняем массив данными.
  2. Проходим по всем элементам массива
  3. Находим индекс максимального значения.

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

n – размерность массива

mas - исходные данные

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

max - индекс максимального элемента

Листинг программы изображен на рисунке 11

#include "iostream"

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

const int n = 5;

int mas[n], i, max;

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

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

{

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

cin>>mas[i];

}

cout<<"Введенный Ваш массив \n";

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

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

max = 0;

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

if (mas[i] > mas[max])

max = i;

cout<<"\n Индекс максимального элемента массива = "<<max;

cout<<"\n Максимальное значение массива = "<<mas[max];

system("pause");

}

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

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

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

Заключение

Из данной работы мы научились писать на базовом языке программирования С++, при этом применив его в разных уравнениях. И так же на базовом уровне научились работать с программой Visual Studio 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, Руководство пользователя по Visual Studio, https://msdn.microsoft.com/ru-ru/library/dd831853.aspx.