Пустовалова 2 сем / Лабы / Otchet_Лабораторная работа
.docx1-ФИТ-6 Пахолко Алёна 14 вариант
Лабораторная работа № 1. Способы представления алгоритмов |
||
Пахолко Алёна Степановна 1 курс ПОИТ-6 14 вариант |
||
Задание |
Условие/Данные |
Решение |
1. В приложении Word разработать словесно-формульное описание и блок-схему алгоритма в соответствии с 14 вариантом для решения задачи из таблицы. Все блоки схемы должны иметь одинаковую ширину. В схеме использовать нумерацию блоков (в разрыве верхней линии слева) и соединители.
|
Существуют действительные числа y1, x2, y2. Вычислить min(y1+x2y2, y1+x2+y2, y2)+5. |
|
2. В соответствии со своим вариантом разработать словесно-формульное описание и блок-схему алгоритма для решения задачи из таблицы лабораторной работы № 4.
|
Для целого числа К от 1 до 9 напечатать фразу «мне К лет», учитывая при этом, что при некоторых значениях К слово «лет» надо заменить на слово «год» или «года». |
Лабораторная работа № 2. Основные элементы языка С++. MS Visual Studio 2015 |
||||
Пахолко Алёна Степановна 1 курс ПОИТ-6 14 вариант |
||||
Задание |
Условие/Данные |
Решение |
||
.1. В таблице ниже приведены условия задач. В соответствии с вариантом, номер которого определяет преподаватель, разработать программу для задачи. Опробовать работу программы и проанализировать результаты. Возможны ситуации, когда исходные данные заданы некорректно и при выполнении программы возникают ошибки (деление на ноль, корень из отрицательного числа и т. п.). В таком случае надо выполнить программу с другими исходными данными.
|
#include <iostream> #include <iomanip> #include <cmath> #include <conio.h> using namespace std;
int main() {
double a = 1.5, b = (-8.1), j = 4, t = 4e-8, s, w, v; s = sqrt(t*a / (t + 1)) + 4 * exp(2 * b); w = s*a / (1 + 0.1*a); v = s + j*sqrt(a*a + b*b); cout << " s=" << s; cout << " w=" << w; cout << " v=" << v; cout << " "; _getch(); return 0; }
|
|||
2. К номеру своего варианта прибавить 3 и написать программу для новых исходных данных (для вариантов с 14 по 16 перейти к вариантам с 1 по 3). Проверить выполнение программы.
|
#include <iostream> #include <cmath> #include <conio.h> using namespace std; int main() { double k = 4, x = 2e-4, a = 8.1, t, u; t = 2 * k / a + log(2 + x); u = sqrt(k - 1) / (t + 1); cout << " t=" << t; cout << " u=" << u; cout << " "; _getch(); return 0; }
|
Лабораторная работа № 3. Ввод и вывод информации |
|||
Пахолко Алёна Степановна 1 курс ПОИТ-6 14 вариант |
|||
Задание |
Условие/Данные |
Решение |
|
|
1. Нарисовать ромб ♦, закрашенный введенным символом. |
#include <iostream> #include <conio.h> #include <iomanip> using namespace std;
int main() { char c, probel; probel = ' '; cout << "Enter symbol" << endl; cin >> c; cout << setw(31) << setfill(probel) << probel; cout << setw(1) << setfill(c) << c << endl; cout << setw(30) << setfill(probel) << probel; cout << setw(3) << setfill(c) << c << endl; cout << setw(29) << setfill(probel) << probel; cout << setw(5) << setfill(c) << c << endl; cout << setw(28) << setfill(probel) << probel; cout << setw(7) << setfill(c) << c << endl; cout << setw(27) << setfill(probel) << probel; cout << setw(9) << setfill(c) << c << endl; cout << setw(26) << setfill(probel) << probel; cout << setw(11) << setfill(c) << c << endl; cout << setw(25) << setfill(probel) << probel; cout << setw(13) << setfill(c) << c << endl; cout << setw(24) << setfill(probel) << probel; cout << setw(15) << setfill(c) << c << endl;
cout << setw(25) << setfill(probel) << probel; cout << setw(13) << setfill(c) << c << endl; cout << setw(26) << setfill(probel) << probel; cout << setw(11) << setfill(c) << c << endl; cout << setw(27) << setfill(probel) << probel; cout << setw(9) << setfill(c) << c << endl; cout << setw(28) << setfill(probel) << probel; cout << setw(7) << setfill(c) << c << endl; cout << setw(29) << setfill(probel) << probel; cout << setw(5) << setfill(c) << c << endl; cout << setw(30) << setfill(probel) << probel; cout << setw(3) << setfill(c) << c << endl; cout << setw(31) << setfill(probel) << probel; cout << setw(1) << setfill(c) << c << endl; _getch(); return 0; } |
|
2. Автомобиль на каждом из пяти одинаковых по длине участках дороги шел с известной средней скоростью. Составьте алгоритм и программу для определения средней скорости на всем пути. |
#include <iostream> #include <conio.h> int main() {
using namespace std; float s, v1, v2, v3, v4, v5, V; cout << "Vvedite dlinu odnogo iz uchastkov puti:" << endl; cin >> s; cout << "Vvedite skorost' dlya kazhdogo uchastka puty:" << endl; cin >> v1; cin >> v2; cin >> v3; cin >> v4; cin >> v5; V = 5 / (1 / v1 + 1 / v2 + 1 / v3 + 1 / v4 + 1 / v5); cout << "Srednyaya skorost' na vsyom puty:" << V << endl; _getch(); return 0; }
|
||
Лабораторная работа № 4. Разветвляющиеся программы |
||
Пахолко Алёна Степановна 1 курс ПОИТ-6 14 вариант |
||
Задание |
Условие/Данные |
Решение |
1.Написать и выполнить программу по первой блок-схеме лабораторной работы № 1. |
Существуют действительные числа y1, x2, y2. Вычислить min(y1+x2y2, y1+x2+y2, y2)+5. |
#include <iostream> int main() { setlocale(LC_CTYPE, "Russian"); using namespace std; float y1, y2, x2, O; cout << "Введите у1 " << endl; cin >> y1; cout << "Введите у2 " << endl; cin >> y2; cout << "Введите х2 " << endl; cin >> x2; if (y1 <= y2){ if (x2 <= y1) O = x2 + 5; else O = y1 + 5; } else { if (x2 <= y2) O = x2 + 5; else O = y2 + 5; } cout << "Ответ: " << O << endl; return 0; }
|
2. В соответствии со своим вариантом написать программу по условию, приведенному в таблице ниже. |
Для целого числа К от 1 до 9 напечатать фразу «мне К лет», учитывая при этом, что при некоторых значениях К слово «лет» надо заменить на слово «год» или «года». |
#include <iostream> #include <conio.h> #include <cmath> using namespace std; int main() { double n, m1; m1: cout << "Vvedite svoi vozrast: "; cin >> n; if (n < 2) cout << "Mne " << n << " god."; else if (n < 5) cout << "Mne " << n << " goda."; else if (n < 10) cout << "Mne " << n << " let."; else { cout << "Proverte dannye! "; goto m1; } _getch(); } |
3. Написать программу, реализующую диалог на любую тему с использованием оператора switch. |
Использование оператора switch |
#include <iostream> #include <cmath> #include <conio.h> using namespace std; int main() { { setlocale(LC_CTYPE, "Russian"); int k; puts("Александра Дмитриевна? (1-да, 2-нет)"); 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; } _getch(); return 0; } |
4.Разработать консольную программу-калькулятор для целых чисел с операциями %, /, +, -, *. |
|
#include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); char zn; double a, b, c; int s; do { cout << "Введите выражение" << endl; cin >> a >> zn >> b; if (zn == '+'){ c = a + b; cout << c << endl; } if (zn == '-') { c = a - b; cout << c << endl; } if (zn == '*'){ c = a*b; cout << c << endl; } if (zn == '/'){ if (b == 0){ cout << "Проверьте выражение. Деление на ноль запрещено. " << endl;
} else{ c = a / b; cout << c << endl; } } if (zn == '%'){ c = a * 100 / b; cout << c << endl; } /*cout << c << endl;*/ cout << "1. Прододжить вычисления" << endl; cout << "2. Закончить вычисления " << endl; cin >> s; switch (s) { case 1:
break; case 2:
break; } } while (s != 2); return 0;
}
|
5.Возможно ли на прямоугольном участке застройки размером а на b метров разместить два дома размером в плане р на q и r на s метров? Дома можно располагать только параллельно сторонам участка. |
|
#include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); float a, b, x, y, c, d, S1, S2, S3, S; cout << "Введите длину участка." << endl; cin >> a; cout << "Введите ширину участка." << endl; cin >> b; cout << "Введите длину первого строения." << endl; cin >> x; cout << "Введите ширину первого строения" << endl; cin >> y; cout << "Введите длину второго строения" << endl; cin >> c; cout << "Введите ширину второго строения" << endl; cin >> d; S1 = a*b; S2 = x*y; S3 = c*d; S = S3 + S2; if (x <= a && c <= a &&y <= b && y <= b){ if (x <= b && c <= b && y <= a && d <= a){
if (S1 >= S) cout << "Можно разместить эти дома на участке." << endl; else cout << "Нельзя разместить эти дома" << endl; } else cout << "Нельзя разместить эти дома" << endl; } else cout << "Нельзя разместить эти дома" << endl; return(0); } |
|
||
6. Пройдет ли шар радиуса r через ромбообразное отверстие с диагоналями p и q? |
|
#include <cmath> #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); double r, d, D, R; do { cout << "Введите размер большой диагонали ромба." << endl; cin >> D; cout << "Введите размер малой диагонали ромба." << endl; cin >> d; if (D < d) { cout << "Большая диагональ меньше малой. Проверьте данные. " << endl; } } while (D < d); cout << "Введите радиус шара." << endl; cin >> r; R = (d*D) / (4 * (sqrt(pow(d / 2, 2) + (pow(D / 2, 2))))); if (R >= r) cout << "Пройдет." << endl; else cout << "Не пройдет." << endl; return 0;}
|
Лабораторная работа № 5. Циклические программы |
||||||
Пахолко Алёна Степановна 1 курс ПОИТ-6 14 вариант |
||||||
Задание |
Условие/Данные |
Решение |
||||
1.В таблице приведены формулы и три варианта исходных данных, по которым надо разработать три блок-схемы и три циклические программы с одними и теми же расчетными формулами. При наличии ошибок из-за некорректных исходных данных выполнить вычисления с другими числами.
|
|
#include <iostream> #include <cmath> #include <conio.h> void main() { using namespace std; setlocale(LC_CTYPE, "rus"); float b = 2, j = 6, a = 1.5e8, i, y, t; for (int n = 0; n < 4; n++) { cout << "Vvedite i: "; cin >> i; y = a / (b + exp(b)) / (1 + j*i); t = cos(y + 1) / sqrt(abs(-2 * j)); cout << "t= " << t << endl; } _getch(); }
|
||||
i = 3(0,1)2 |
#include <iomanip> #include <iostream> #include <conio.h> void main() { using namespace std; float b = 2, j = 6, a = 1.5e8, t, y, i = 3; do { y = a / (b + exp(b)) / (1 + j*i); t = cos(y + 1) / sqrt(abs(-2 * j)); cout << "t=" << t << endl; i -= 0.1; } while (i >= 2); _getch(); }
|
|||||
b = 2,4(0,2)3, a = {0,1; 1; 3} |
#include <iomanip> #include <conio.h> #include <iostream> void main() { using namespace std; float j = 6, i = 7, b=2.4, a, t, y; for (int n = 0; n < 3; n++) { cout << "Vvedite a: "; cin >> a; b = 2.4; do { y = a / (b + exp(b)) / (1 + j*i); t = cos(y + 1) / sqrt(abs(-2 * j)); cout << " t=" << t << endl; b += 0.2; } while (b <= 3); } _getch(); }
|
|||||
2. Торговая фирма в первый день работы реализовала товаров на P тыс. руб., а затем ежедневно увеличивала выручку на 3%. Какой будет выручка фирмы в тот день, когда она впервые превысит заданное значение Q? Сколько дней придется торговать фирме для достижения этого результата? |
|
#include <iostream> #include <cmath> #include <conio.h> int main() { using namespace std; double q,p,n; cout << "Vvedite P: "; cin >> p; cout << "Vvedite Q: "; cin >> q; n = 1; do { p = 1.03*p; n += 1; } while (p <= q); cout << "Nuzhno " << n << " dnei."; _getch(); } |
||||
3. О каждом учащемся класса известны его пол, год рождения, рост и вес. Определить, сколько в классе мальчиков и сколько девочек. Найти средний возраст мальчиков и девочек. Определить, верно ли, что самый высокий мальчик весит больше всех в классе, а самая маленькая девочка является самой юной среди девочек.
|
|
#include <iostream> #include <conio.h> #include <cmath> int main() { setlocale(LC_ALL, "rus"); using namespace std; double a[5], b[5], c[5], d[5], q, w, e, r, n, k, vm, vd, svd, svm, maxr, maxv, minr, minv; //////// for (int i = 0; i < 5; i++)//vvod dannyh// { cout << "Vvedite pol (1-m;2-d) №" << i << " : " << endl; cin >> q; a[i] = q; cout << "Vvedite vozrast №"<<i<<" : "<<endl; cin >> w; b[i] = w; cout << "Vvedite rost №" << i << " : " << endl; cin >> e; c[i] = e; cout << "Vvedite ves №" << i << " : " << endl; cin >> r; d[i] = r; } ///////// k = 0;//schet m i d// n = 0; for (int i = 0; i < 5; i++) { if (a[i] == 1) k += 1; else n += 1; } cout << k << " mal'chikov i " << n << " devochek"<<endl; //////// vm = 0;//svm i svd// vd = 0; for (int i = 0; i < 5; i++) { if (a[i] == 1) vm += b[i]; else vd += b[i]; } svd = vd / n; svm = vm / k; cout << "Sr. vozrast m: " << svm << endl; cout << "Sr. vozrast d: " << svd << endl; /////// maxr = 0;//max i min// maxv = 0; minr = 10000000000; minv = 10000000000; for (int i = 0; i < 5; i++) { if (a[i] == 1) { if (c[i]>maxr) maxr = c[i]; if (d[i] > maxv) maxv = d[i]; } else { if (c[i]<minr) minr = c[i]; if (d[i]<minv) minv = d[i]; } } for (int i = 0; i < 5; i++) { if ((c[i] == maxr) && (d[i] == maxv)) cout << "Mal'chik №" << i << endl; if ((c[i] == minr) && (d[i] == minv)) cout << "Devochka №" << i << endl; } /////// _getch(); return 0; } |
Лабораторная работа № 6. Отладка программ |
|||
Пахолко Алёна Степановна 1 курс ПОИТ-6 14 вариант |
|||
Задание |
Условие/Данные |
Решение |
|
1.В соответствии со своим вариантом написать программу и отладить ее для задачи, представленной в таблице ниже. Опробовать средства интерактивной отладки Шаг с обходом и Шаг с заходом. При наличии ошибок из-за некорректных исходных данных выполнить вычисления с другими числами. Вызвать окно Контрольное значение 1, поместить туда имена переменных и проконтролировать их значения в процессе выполнения программы. В отчете представить результаты в окне Отладчика (окно Видимые и окно Контрольное значение 1).
|
#include <iostream> #include <conio.h> #include <cmath> void main() { using namespace std; double s = 5.2, j = 10.4e4, v, x; for (int i = 1; i <= 4; i++) { cout << "Vvedite x: "; cin >> x; if (2 * s > x*j) { v = cos(j*x)*cos(j*x); cout << "v= " << v << endl; } else if (2 * s < x*j) { v = 2 * tan(j*x); cout << "v= " << v << endl; } else { v = 5 - exp(x / 2); cout << "v= " << v << endl; } } _getch(); }
|
||
|
|||
2. В соответствии со своим вариантом написать программу и отладить ее для задачи, представленной в таблице ниже. Опробовать средства планируемой отладки. В отчете представить результаты в окне Отладчика (окно Локальные и окно Контрольное значение 1). Создать исполняемый файл.
|
Используя перебор значений, вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр. |
#include<iostream> #include <conio.h> using namespace std; void main() { int g, k, x1, x2, x3; for (k = 100; k < 1000; k++) { g = k; x3 = g % 10; g = g / 10; x2 = g % 10; g = g / 10; x1 = g; if ((x1 != x2) && (x2 != x3) && (x3 != x1)) cout << "k=" << k << endl; } _getch(); }
|
|
|
Лабораторная работа № 7. Вычисление сумм, произведений, экстремумов |
||||||
Пахолко Алёна Степановна 1 курс ПОИТ-6 14 вариант |
||||||
Задание |
Условие/Данные |
Решение |
||||
1.В соответствии со своим вариантом разработать программу по условию, приведенному в таблице ниже. Произвести отладку программы |
|
#include <iostream> #include <cmath> #include <conio.h> using namespace std; void main() { double c=10.1, z, y[6], sum; sum = 0; for (int i = 1; i <= 6; i++) { cout << "Vvedite y[" << i << "]: "; cin >> y[i]; sum += y[i]; } if (sum > c) z = sin(c)*sin(c); else z = cos(c)*cos(c); cout << "z=" << z << endl; _getch(); } |
||||
2. Написать программы еще для нескольких (желательно для всех) условий из этой же таблицы. |
#include <iomanip> #include <iostream> #include <conio.h> using namespace std; void main() { int const n = 5; double sum = 0, d = 12.5e-4, a[n], h; for (int i = 1; i <= n; i++) { cout << "Vvedite a[" << i << "]:"; cin >> a[i]; sum += a[i] * a[i]; } h = d + sum; cout << "h=" << h; _getch(); } |
|||||
#include <iomanip> #include <iostream> #include <conio.h> using namespace std; void main() { int const m = 4; double c = -0.045, b[m], g, p=1; for (int i = 1; i <= m; i++) { cout << "Vvedite b[" << i << "]: "; cin >> b[i]; p = p*(b[i] + 1)*(b[i] + 1); } g = c*p; cout << "g=" << g; _getch(); } |
||||||
#include <iomanip> #include <iostream> #include <conio.h> using namespace std; void main() { int const m = 5; double sum = 0, z, x[m]; for (int i = 1; i <= m; i++) { cout << "Vvedite x[" << i << "]: "; cin >> x[i]; sum += (x[i] - 2)*(x[i] - 2); } z = 8 * x[3] + sum; cout << "z=" << z; _getch(); } |
||||||
#include <iomanip> #include <iostream> #include <conio.h> using namespace std; void main() { double g, sum = 0, f, k = 6, a[5]; for (int i = 1; i <= 5; i++) { cout << "Vvedite a[" << i << "]: "; cin >> a[i]; sum += (a[i] / i); } while (k <= 7.00001) { f = k; g = f / sum; cout << "g=" << g<<endl; k += 0.2; } _getch(); }
|
||||||
Лабораторная работа № 8. Решение инженерных задач на основе циклических программ |
||||
Пахолко Алёна Степановна 1 курс ПОИТ-6 14 вариант |
||||
Задание |
Условие/Данные |
Решение |
||
1. В соответствии со своим вариантом написать программы для вычисления определенного интеграла из таблицы, приведенной ниже, методом трапеций и методом парабол. Для всех вариантов принять n = 200. Сравнить результаты.
|
1.Метод трапеций Подынтегральная функция x4 + 4 Пределы интегрирования a = 1, b = 4 |
#include <iomanip> #include <iostream> #include <conio.h> using namespace std; void main() { double n=200, a=1,b=4,h,s,x ; h = (b - a) / n; x = a; s = 0; a1: s = s + h*((x*x*x*x + 4) + (((x + h)*(x + h)*(x + h)*(x + h) + 4))) / 2; x = x + h; if (x > (b - h)) cout << "s=" << s << endl; else goto a1; _getch(); }
|
||
1.2.Метод парабол Подынтегральная функция x4 + 4 Пределы интегрирования a = 1, b = 4 |
#include <iomanip> #include <iostream> #include <conio.h> using namespace std; void main() { double n = 200, a = 1, b = 4, h, x, s1, s2, i, z; h = (b - a) / (2 * n); x = a + 2 * h; s1 = 0; s2 = 0; i = 1; a1: s2 = s2 + (x*x*x*x + 4); x = x + h; s1 = s1 + (x*x*x*x + 4); x = x + h; i = i + 1; if (i < n) goto a1; else z = (h / 3)*((a*a*a*a + 4) + 4 * ((a + h)*(a + h)*(a + h)*(a + h) + 4) + 4 * s1 + 2 * s2 + (b*b*b*b + 4)); cout << "z=" << z << endl; _getch(); } |
|||
|
||||
2.В соответствии со своим вариантом отделить корни уравнения из таблицы, приведенной ниже. Если корней несколько, то для одного из отрезков, содержащих корень (т. е. при некоторых найденных значениях a и b), написать программы вычисления корня уравнения методом касательных и методом дихотомии. Точность вычислений принять равной e = 0,0001 для всех вариантов. Найти корень уравнения с помощью приложения Excel. Сравнить все результаты.
|
1.Метод дихотомии Функция x3 + 2x – 4 |
#include <iomanip> #include <iostream> #include <conio.h> using namespace std; void main() { double a,b,e=0.0001,x; cout << "Vvedite a:"; cin >> a; cout << "Vvedite b:"; cin >> b; a1: x = (a + b) / 2; if (((x*x*x + 2 * x - 4)*(a*a*a + 2 * a - 4)) <= 0) b = x; else a = x; if (abs(a - b) > 2 * e) goto a1; else cout << "x=" << x << endl; _getch(); }
|
||
2.Метод касательных Функция x3 + 2x – 4 |
#include <iomanip> #include <iostream> #include <conio.h> using namespace std; void main() { double a, b, e = 0.0001, x1, x; cout << "Vvedite a:"; cin >> a; cout << "Vvedite b:"; cin >> b; if ((pow(a, 3) + 2 * a - 4)*(6 * a) > 0) x1 = a; else x1 = b; a1: x = x1; x1 = x - ((pow(x, 3) + 2 * x - 4) / (3 * pow(x, 2) + 2)); if (abs(x1 - x) > e) goto a1; else cout << "x1=" << x << endl; _getch(); }
|
|||