- •Содержание
- •Введение
- •1. Теоретические сведения
- •1.1. Общие сведения
- •1.2. Основные понятия языка
- •1.3. Типы данных
- •1.4. Переменные и константы
- •1.5. Ввод и вывод информации
- •1.5.1. Форматированный ввод данных
- •1.5.2. Форматированный вывод данных
- •1.6. Операции и операторы
- •1.6.1. Операции языка Си
- •1.6.2. Операторы
- •1.6.2.1. Оператор присваивания
- •1.6.2.2. Условные операторы. Оператор безусловного перехода
- •1.6.2.3. Операторы цикла
- •2. Лабораторные работы
- •2.1. Лабораторная работа 1. Линейный вычислительный процесс
- •2.2. Лабораторная работа 2. Разветвляющийся вычислительный процесс
- •2.3. Лабораторная работа 3. Оператор переключатель switch
- •2.4. Лабораторная работа 4. Циклический вычислительный процесс
- •2.5. Лабораторная работа 5. Массивы
- •2.6. Лабораторная работа 6. Матрицы
- •2.7. Лабораторная работа 7. Подпрограммы
- •Заключение
- •Библиографический список
2. Лабораторные работы
2.1. Лабораторная работа 1. Линейный вычислительный процесс
Цель работы: знакомство с консольным режимом работы, организация ввода/вывода.
Задачи: построить алгоритм в виде блок-схемы, написать программу на алгоритмическом языке Си++ в консольном режиме, проанализировать полученный результат, составить отчет.
Использовать библиотечные функции stdio.h или iostream в зависимости от того, какие операторы ввода/вывода будут использоваться.
Пример 1. Вычислить медианы треугольника со сторонами a, b, c по формулам:
Выдать на печать информацию в виде:
а) отпечатать, отступив 10 позиций, наименования исходных данных:
Стороны треугольника
А В С
б) под соответствующими наименованиями напечатать значения этих переменных;
в) пропустить 2 строки;
г) отпечатать ответ в виде:
Медианы треугольника:
МА=…
МВ=…
МС=…
На рис. 5 представлен алгоритм решения задачи в виде блок-схемы.
Рис. 5. Алгоритм решения задачи в виде блок-схемы
Программа:
#include "stdafx.h"
#include "math.h"
#include "stdio.h"
#include "iostream"// подключение библиотечных функций
using namespace 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 представлен алгоритм решения задачи.
Рис. 7. Алгоритм решения задачи в виде блок-схемы
Программа:
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <stdio.h>
#include <cstdlib>
using namespace 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 строки;
г) в центре листа напечатать слова «Ответ задачи»;
д) под словами напечатать ответ в виде : сила тока = …….
