- •Лабораторная работа № 3. Ввод и вывод информации
- •Лабораторная работа № 6. Отладка программ
- •Доп. Задания
- •Лабораторная работа № 7. Вычисление сумм, произведений, экстремумов
- •Лабораторная работа № 8. Решение инженерных задач на основе циклических программ
- •Лабораторная работа № 9. Одномерные массивы
- •Лабораторная работа № 10. Битовые операции
- •Лабораторная работа № 11. Указатели и ссылки
- •Лабораторная работа № 12. Обработка символьной информации
- •Лабораторная работа № 14. Динамические массивы и функции пользователя
Лабораторная работа № 1. Способы представления алгоритмов Условие задачи: Есть действительные числа x1, y1, x2. Вычислить max(x1, y1, x2).
Словесно-формульное описание алгоритма |
Блок-схема алгоритма |
|
x2 |
Условие задачи: Определить, имеется ли среди трёх чисел a, b и c хотя бы одна пара равных между собой чисел.
Словесно-формульное описание алгоритма |
Блок-схема алгоритма |
|
|
Лабораторная работа № 2. Основные элементы языка С++. MS Visual Studio 2015
Задание №2
Исходные
данные:
n=2;
b=
-0.12; x=
Вычислить:
z=1/(x-1)+sinx-
;
y=(
/2z
Программа:
#include <iostream>
void main()
{
double z, y, n = 2, b = -0.12, x = 1.3e-4;
z=1/(x-1)+sin(x)-sqrt(n);
y=(exp(-b)+1)/(2*z);
std::cout << "z=" << z;
std::cout << "y=" << y;
}
Ответ:
Задание №5
Исходные данные: b = 40, x = 1.1, a = 5e-6
Вычислить:
w=(a+b)tg x/(x+1) ; v=1/2*b-
Программа:
#include <iostream>
void main()
{
double w, v, b = 40, x = 1.1, a = 5e-6;
w=(a+b)*tan(x)/(x+1);
v=1/(2*b)-tan(w-a*b);
std::cout << "w=" << w;
std::cout << "v=" << v;
}
Ответ:
Лабораторная работа № 3. Ввод и вывод информации
Нарисовать шестиугольник по центру консольного окна, закрашенный введенным символом.
#include <iomanip>
#include <iostream>
void main()
{
setlocale(LC_CTYPE, "Russian");
using namespace std;
char c, probel; probel = ' ';
cout << "Введите символ "; cin >> c;
cout << setw(35) << setfill(probel) << probel;
cout << setw(10) << setfill(c) << c << endl;
cout << setw(34) << setfill(probel) << probel;
cout << setw(12) << setfill(c) << c << endl;
cout << setw(33) << setfill(probel) << probel;
cout << setw(14) << setfill(c) << c << endl;
cout << setw(34) << setfill(probel) << probel;
cout << setw(12) << setfill(c) << c << endl;
cout << setw(35) << setfill(probel) << probel;
cout << setw(10) << setfill(c) << c << endl;
}
Ответ:
2. Разделить число m на две части, разность которых равна 5.
#include <iostream>
int main()
{
float a, b, c;
std::cin >> a;
b=(a-5)/2;
c=b+5;
std::cout << b << std::endl;
std::cout << c << std::endl;
system("PAUSE");
return 0;
}
Ответ:
Лабораторная работа № 4. Разветвляющиеся программы
Задание: 4. Написать и выполнить программу по первой блок-схеме лабораторной работы № 1.
#include <iostream>
using namespace std;
int main()
{
double x1, y1, x2;
cin >> x1 >> y1 >> x2;
double max = x1;
if (y1 > max) {
max= y1;
}
if (x2 > max) {
max = x2;
}
cout << "max=" ;
cout << max << endl;
return 0;
}
Задание : Определить, имеется ли среди трёх чисел a, b и c хотя бы одна пара равных между собой чисел.
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
void main()
{ setlocale(LC_CTYPE, "Russian");
int a,b,c;
cout << "введите 3 числа" << endl;
cin >> a >> b >> c;
if(a == b || b == a || a == c || c == a || b == c || c == b) {
cout << "да" << endl;
}
else {
cout << "нет" << endl;
}
_getche();
}
Задание : 6. Написать программу, реализующую диалог на любую тему с использованием оператора switch.
int main()
{ setlocale(LC_CTYPE, "Russian");
int k;
puts("Вы голодны? (1-да, 2-нет)");
std::cin >> k;
switch (k)
{ case 1:
{ puts("Что закажете? (1- трюфеля, 2-свинина, 3- брокколи)");
std::cin >> k;
switch (k)
{
case 1: puts("А денег хватит"); break;
case 2: puts("Отличный выбор"); break;
case 3: puts("Не советовал бы"); break;
}
break;
}
case 2: puts("Дома пообедал"); break;
default: puts("Некорректный вариант"); break;
}
return 0;
}
7. Дополнительные задачи
1. Разработать консольную программу-калькулятор для целых чисел с операциями %, /, +, -, *.
#include <iostream>
using namespace std;
int main()
{
int a, b;
char op;
int res;
char answer = 'y';
while (answer == 'y')
{
setlocale(LC_CTYPE, "Russian");
cout <<"Введите значения: ";
cin >> a;
cin >> op;
cin >> b;
if( op == '+')
res = a+b;
else if (op == '-')
res = a-b;
else if (op == '*')
res = a*b;
else if (op == '/')
res = a/b;
else if (op == '%')
res = a%b;
else
{
cout << " Ошибка";
return 0;
}
cout <<"Результат =";
cout << res;
cout << endl;
cout << "Продолжить? [y/n]";
cin >> answer;
}
return 0;
}
Лабораторная работа № 5. Циклические программы
Блок-схема |
программа |
начало
Вывод
I,
z
y
= pow(i*b-(b*b)*a, sd);z =y*tan(n/4)-xp(1+b);
Ввод i
K=1,3
Sd=1/2,
a=2e-3, b=8.5, n=2
начало |
#include <iostream> void main() { setlocale(LC_CTYPE, "Russian"); float z, y, i, sd, a, b, n; sd = 1.0 / 2.0; a=2e-3; b=8.5; n=2;
for (int k = 1; k <= 3; n++) { printf("Введите i "); scanf_s("%f", &i); y = pow(i*b-(b*b)*a, sd); z = y*tan(n/4)-exp(1+b); printf("i = %5.2f\t", i); printf("z = %5.2f\n", z); } }
|
Блок-схема |
программа |
y
= pow(i*b-(b*b)*a, sd);z = y*tan(n/4)-exp(1+b);
нет
да
Вывод i,z
i
= i + 0.5
i<3.1
конец
начало
i=1, sd=1/2, a=2e-3,
b=8.5,n=2 |
#include <iostream> using namespace std; void main() { setlocale(LC_CTYPE, "Russian");
double i, a, b, z, y, sd, n; sd = 1.0 / 2.0; a=2e-3; b=8.5; n=2; i=1;
do {
y = pow(i*b-(b*b)*a, sd); z = y*tan(n/4)-exp(1+b); cout << "i=" << i << "\t"; cout << " z=" << z << endl; i = i + 0.5;
}while (i<3.1); }
|
Блок-схема |
программа |
да
нетт
j
= 1, k=2, a=2e-3, sd=1/2
Начало
Конец
b=b+0.5
Вывод
b,y,z
y
= pow(k*b-(b*b)*a, sd); z
= y*tan(n/4)-exp(1+b);
b <= 3
Ввод N
b = 2
i = 1, 4
да |
#include <iostream> using namespace std; void main() { float y, z, n, j = 1, k=2, a=2e-3, sd = 1.0 / 2.0; for (int i = 1; i<=4; i++) { float b = 2; cout << "N = "; cin >> n; while (b <= 3) { y = pow(k*b-(b*b)*a, sd); z = y*tan(n/4)-exp(1+b);
cout << "B = "<< b << "\tY = " << y<< "\tZ = "<<z<< endl; b += 0.5; } } }
|
