Лабораторная работа 1. Линейный вычислительный процесс
Цель работы:знакомствосконсольным режимом работы, организация ввода/вывода.
Задачи:построить алгоритм в виде блок-схемы, написать программу на алгоритмическом языке Си++ в консольном режиме, проанализировать полученный результат, составить отчет.
Использовать библиотечные функции stdio.hили iostream в зависимости от того, какие операторы ввода/вывода будут использоваться.
Пример 1.Вычислить медианы треугольника со сторонами a, b, c по формулам:
Выдать на печать информацию в виде:
а) отпечатать, отступив 10 позиций, наименования исходных данных:
Стороны треугольника
А В С
б) под соответствующими наименованиями напечатать значения этих переменных;
в) пропустить 2 строки;
г) отпечатать ответ в виде:
Медианы треугольника:
МА=…
МВ=…
МС=…
На рис. 5 представлен алгоритм решения задачи в виде блок-схемы.
начало |
Вводa, b, c |
ma=sqrt( mb=sqrt( mc=sqrt( |
Вывод a, b, c |
Вывод ma, mb, mc |
конец |
Рис. 5. Алгоритм решения задачи в виде блок-схемы
Программа:
#include"stdafx.h"
#include"math.h"
#include"stdio.h"
#include"iostream"// подключениебиблиотечныхфункций
usingnamespace System;
int main(array<System::String ^> ^args)
{setlocale(LC_ALL,"rus"); // подключениерусификатора
Float a,b,c;
printf("Стороны треугольника: \nA=");
scanf ("%f", &a);
printf("B=");
scanf ("%f", &b);
printf("C=");scanf ("%f", &c);
float ma=0.5*sqrt(2*b*b+2*c*c-a*a);
float mb=0.5*sqrt(2*a*a+2*c*c-b*b);
float mc=0.5*sqrt(2*a*a+2*b*b-c*c);
printf(" Сторонытреугольника\n \tA \tB \tC\n \t%.0f \t%.0f \t%.0f\n\n",a,b,c);
printf("Медианытреугольника\n------------------------\n MA=%.1f\n MB=%.1f\n MC=%.1f \n\n",ma,mb,mc);
system("pause");//задержкаэкрана
return 0;}
На рис. 6показано окно с результатом работы программы.
Рис. 6. Результат выполнения программы
Пример 2.Расстояние от точки с координатами (x0, y0, z0) до плоскости, заданной уравнением , определяется по формуле:
Найти расстояние данной точки до плоскостей, заданных уравнениями:
¾
¾
Выдать на печать информацию в виде:
а) отступить 7 позиций слева и напечатать заголовок «Исходные данные»;
б) пропустить строку;
в) на следующей строке напечатать значения исходных данных в виде:
X=… Y=… Z=…
D1=… D2=…
A=… B=… C=…
г) пропустить 2 строки и в центре напечатать ответ в виде:
Ответ
Расстояние до 1 плоскости = …
Расстояние до 2 плоскости = …
На рис. 7 представлен алгоритм решения задачи.
начало |
x, y, z, A, B, C, D1, D2 |
d1=(A*x+B*y+C*z+D1)/sqrt(A*A+B*B+C*C) |
Вывод x, y, z, D1, D2, A, B, C, d1,d2 a, b, c |
конец |
d2=(A*x+B*y+C*z+D2)/sqrt(A*A+B*B+C*C) |
Рис. 7. Алгоритм решения задачи в виде блок-схемы
Программа:
#include"stdafx.h"
#include<math.h>
#include<iostream>
#include<stdio.h>
#include<cstdlib>
usingnamespace std;
int main()
{float x,y,z,D1,D2,A,B,C;double d1,d2;
setlocale(LC_ALL, "Russian");
cout <<"Введитекоординатыточки (x,y,z)\n";
cout <<"x=";cin >> x;
cout <<"y=";cin >> y;
cout <<"z=";cin >> z;
cout <<"Введитекоэффициентыуравнения (A,B,C)\n";
cout <<"A=";cin >> A;
cout <<"B=";cin >> B;
cout <<"C=";cin >> C;
cout <<"Введитекоэффициенты D1, D2\n";
cout <<"D1=";cin >> D1;
cout <<"D2=";cin >> D2;
d1=(A*x+B*y+C*z+D1)/sqrt(pow(A,2)+pow(B,2)+pow(C,2));
cout <<" Исходные данные \n\n";
cout <<"x0="<< x <<" y0="<< y <<" z0="<< z;
cout <<"\nD1="<< D1 <<" D2="<< D2;
cout <<"\nA="<< A <<" B="<< B <<" C="<< C;
cout <<"\n______________________________________\n\n Ответ:\n";
cout <<"Расстояние до 1 плоскости = "<< d1<<"\n";
d2=(A*x+B*y+C*z+D2)/sqrt(pow(A,2)+pow(B,2)+pow(C,2));
cout <<"Расстояние до 2 плоскости = "<< d2<<"\n";
system("pause");return 0;}
Результат выполнения программы показан на рис. 8.
Рис. 8. Результат выполнения программы
Задания к лабораторной работе 1
Вариант 1
Решить систему уравнений:
, используя правило Крамера.
Выдать на печать информацию в виде:
а) в центре строки напечатать слова «Ответ задачи»;
б) под словами напечатать ответ в виде:
Х=…
У=…
в) последнюю строку подчеркнуть;
г) пропустить две строки;
д) напечатать значение исходных данных в виде:
Исходные данные:
А= … В=… α=…
Вариант 2
На плоскости задан треугольник с координатами своих вершин: А(ха, уа), В(хв, ув), С(хс, ус). Вычислить длину сторон данного треугольника. Выдать на печать информацию в виде:
а) отступив 10 пробелов слева, напечатать заголовок «Исходные данные»;
б) под заголовком напечатать значения исходных данных в виде:
Вершины треугольника
хa=… уa=…
хb=… уb=…
хc=… уc=…
в) последнюю запись подчеркнуть;
г) пропустить 3 строки;
д) в центре листа напечатать ответ в виде:
Длины сторон треугольника:
АВ=… ВС=… АС=…
Вариант 3
Вычислить высоты треугольника со сторонами x, y, z по формулам:
где
Выдать на печать информацию в виде:
а) отступить 5 позиций и напечатать слова «Высоты треугольника»;
б) под заголовком напечатать ответ в виде:
hx=…
hy=…
hz=…
в) последнюю строку подчеркнуть;
г) пропустить 3 строки;
д) напечатать значения исходных данных в виде:
Стороны треугольника:
x=… y=… z=…
е) последнюю строку подчеркнуть.
Вариант 4
По заданным радиусам оснований (R1 и R2), образующей (l) и высоте(h) вычислить площадь поверхности и объем усеченного конуса:
Выдать на печать информацию в виде:
а)в центре напечатать слова «Исходные Данные»;
б) R1=.. R2=.. l=.. h=..
в) подчеркнуть последнюю строку;
г) пропустить строку и напечатать значение промежуточных результатов и в виде:
Промежуточные результаты:
=.. =..
д) пропустить строку;
е) напечатать ответ в виде:
Ответ: S=..V=..
Вариант 5
Вычислить координаты точки, делящий отрезокА в отношении n1,n2 по формулам:
где
Выдать на печать информацию в виде:
а) в центре листа напечатать ответ в виде «Координаты точки: х=…; y=…»;
б) пропустить 2 строки;
в) напечатать заголовок «Исходные данные»;
г) под заголовком напечатать значения исходных данных в виде:
XA=… XB=… YA=… YB=…
n1=… n2=…
д) последнюю строку подчеркнуть.
Вариант 6
Найти объем и площадь поверхности цилиндрического кольца высоты H с внешним радиусом R1 и внутренним R2.
Выдать на печать информацию в виде:
а) отступить 12 позиций слева и напечатать слова «Ответ задачи»;
б) подчеркнуть эти слова;
в) пропустить 2 строки и под словами напечатать ответ в виде:
V=…
S=…
г) пропустить 2 строки и, отступив 5 позиций, напечатать значения исходных данных в виде:
Исходные данные: H=…
R1=…
R2=…
д) пропустить строку и в центре листа напечатать слова «Задача решена».
Вариант 7
По заданным двум углам треугольника и стороне между ними ВС найти третий угол, две стороны и площадь треугольника:
;
Выдать на печать информацию в виде:
а) отступить 10 позиций слева и напечатать слова «Исходные данные»;
б) под словами напечатать значения исходных данных в виде:
угол В=… угол С=…
сторона ВС=…
в) подчеркнуть напечатанное;
г) пропустить 2 строки и напечатать в центре листа ответ в виде:
Ответ: Угол А=…
Сторона АС=…
Сторона АВ=…
Площадь треугольника=
Вариант 8
По заданному радиусу R найти объём шара V и площадь сферы S:
Найти объем шара сегмента высоты h:
Выдать на печать информацию в виде:
а) в центре листа напечатать заголовок «Исходные данные»;
б) подчеркнуть напечатанные слова;
в) пропустить строку и под заголовком напечатать значение исходных данных в виде:
R :
h :
г) пропустить 2 строки;
д) отступить 10 позиций, напечатать ответ в виде:
Ответ: V = … ;
S = … ;VC = …
Вариант 9
Найти объём, площадь поверхности прямоугольного параллелепипеда с измерениями a,b,c и площади каждой грани.
Выдать на печать информацию в виде:
а) отступить 15 позиций и напечатать слова «Измерения параллелепипеда»;
б) под словами напечатать значения A, B, C в виде:
A=…
B=…
C=…
в) пропустить 2 строки и в центре листа напечатать ответ в виде:
Ответ задачи
Объём =…
Площадь поверхности =…
Площадь граней =…
SAB=…
SBC=…
SAC=…
г) последнюю запись подчеркнуть.
Вариант 10
Вычислить силу тока в цепи, состоящей из последовательности соединенных сопротивления R, индуктивности L и емкости C при напряжении в цепи E и частоте F.
Выдать информацию на печать в виде:
a) отступить слева 7 позиций, напечатать значения исходных данных в следующем виде:
Исходные данные
R=… L=…….
C=… E=……. F=……;
б) подчеркнуть последнюю строку;
в) пропустить 2 строки;
г) в центре листа напечатать слова «Ответ задачи»;
д) под словами напечатать ответ в виде :сила тока = …….