Файл: Основные структуры алгоритмов: сравнительный анализ и примеры их использования(Программирование линейных алгоритмов).pdf
Добавлен: 13.03.2024
Просмотров: 14
Скачиваний: 0
Содержание:
Введение
В данное работе будет рассмотрено 6 заданий с различными видами уравнений, поисков переменных, поисков, входящих в фигуру точек, поиском различных массивов и индексов. Для выполнения всех этих задач использовалась программа Visual Studio 2015, а языком программирования служит С++. Так же в самой работе будут приведены скрины из данной программы с решением, для показания наглядного выполнения самих заданий, выполненных в ней.
Программирование линейных алгоритмов
Задание 1. Составить программу вычисления значения функции. Исходные значения ввести с клавиатуры.
Словесный алгоритм:
- Вводим исходные данные
- Вычисляем значение переменной h(выражение).
- Выводим результат
Описание переменных:
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. Определить сопротивление цепи, напряжение на каждом сопротивлении, полное напряжение участка цепи.
Словесный алгоритм:
- Вводим исходные данные сопротивление , и силу токаi.
- Вычисляем значения полного сопротивления 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
Словесный алгоритм
- Вводим координаты точки x, y
- Проверяем, попадает ли точка в область, , , .
- Если точка попадает в область, то выводиться сообщение: «Попадает».
- Если точка не попадает в область, то выводиться сообщение: «Не попадает».
Описание переменных:
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) и масса тела в этих единицах (вещественное число). Найти массу тела в килограммах.
Словесный алгоритм:
- Выбираем исходные единицы измерения массы.
- Вводим искомую массу.
- Производим перевод в нужные единицы измерения.
Описание переменных:
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.
Словесный алгоритм:
- Вводим исходные данные переменных xn, xk, zn, zk.
- Вычисляем значение переменной y(выражение).
- Выводятся все возможные переменные с заданным шагом.
Описание переменных:
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. Определить значение и индекс максимального элемента массива.
Словесный алгоритм:
- Заполняем массив данными.
- Проходим по всем элементам массива
- Находим индекс максимального значения.
Описание переменных:
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.