пр1 (1)
.docxФедеральное государственное бюджетное образовательное учреждение
высшего образования
«САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ ГАГАРИНА Ю.А.»
Институт Прикладных информационных технологий и коммуникаций
Специальность Информатика и вычислительная техника
Кафедра Информационно - коммуникационные системы и программная
инженерия
Практическая работа
по дисциплине: «Программирование»
на тему
«Линейные алгоритмы. Основные операций языка С++»
|
Оценка работы________
Дата защиты 21.01.2022
Подпись ___________
Саратов – 2022
Цель: Освоение простейшей структуры программы, изучение стандартных операций ввода-вывода числовой информации, изучение основных операций и стандартных функций языка С++.
Вариант 2.
Задание 1.
Реализовать алгоритм и программу расчета промилле в крови человека. «Калькулятор для расчета промилле».
Исходные данные:
- масса тела;
- крепость жидкости;
- объем выпитой жидкости.
Исходные данные вводит пользователь. Организовать проверку по типу и диапазону значений. Вывести количество промилле в крови и возможность управлять автомобилем.
Пример расчета промилле.
Мужчина массой в 82 кг выпил 500 мл водки крепостью 40%, масса жидкости в организме будет составлять составляет 57,4 кг (для мужчин можно считать, что вода составляет 70%);
Содержание чистого этанола: 500 * 40 % = 200 мл, в граммах: 200*0,79 = 158 граммов (0,79 – это плотность не разведенного этанола). При этом содержание чистого теоретически 100% спирта составит: 158 гр. – 10% = 142,2 гр. Итого от выпитой дозы алкоголя концентрация этанола составит: 142,2/57,4=2,48 промилле.
Задание 2.
Идет k-я секунда суток, устанавливаемая по средствам ввода пользователем. Определить и вывести, сколько полных часов (h) и полных минут (m) прошло к этому моменту.
Описание алгоритма решения задания 1:
Запрашивается вес человека (m, кг), где 30 ≤ m ≤ 200, иначе запрос повторяется. Если введённый вес удовлетворяет условие, то запрашивается крепость алкоголя (krAlc, %), где 0,1 ≤ krAlc ≤ 99,9, иначе запрос повторится. Если введённая крепость алкоголя соответствует условию, то запрашивается объём употребленного человеком алкоголя (Vupotr, мл), где 1 ≤ Vupotr ≤ 3000, иначе операция запроса повторится. Если все значения параметров введены корректно и соответствуют условиям, происходит расчет промилле алкоголя в крови по формуле:
По итогу расчетов, в консоли выводится сообщение о количестве алкоголя в крови человека (не более 0,3 промилле) и допуске к управлению автомобилем.
Блок-схема задания 1.
Текст программы задания 1.
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <math.h>
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
char h;
do
{
int massa, Vupotr;
double promile, krAlc;
printf("Калькулятор расчёта промилле:\n\n");
do
{
cin.clear();
cin.seekg(0);
cout << "Введите массу тела, от 30 (кг) до 200 (кг): ";
cin >> massa;
} while ((massa < 30) || (massa > 200) || (!cin.good()));
do
{
cin.clear();
cin.seekg(0);
cout << "Введите крепкость напитка, от 0.1(%) до 99.9(%): ";
cin >> krAlc;
} while ((krAlc < 0.1) || (krAlc > 99.9) || (!cin.good()));
do
{
cin.clear();
cin.seekg(0);
cout << "Введите объём выпитой жидкости, от 1 (мл) до 3000 (мл): ";
cin >> Vupotr;
} while ((Vupotr < 1) || (Vupotr > 3000) || (!cin.good()));
promile = (Vupotr*krAlc / 100 * 0.79*0.9) / (massa*0.7);
if (promile > 0.3)
printf("Промиле: %.2f - запрещено управление автомобилем\n", promile);
else
printf("Промиле: %.2f - разрешено управление автомобилем\n", promile);
printf("\n\nПовтор - y\nВыход - любая клавиша\n");
h = _getch();
}while (h=='y');
return 0;
}
Пример работы программы.
Пример 1:
Пример 2:
Пример 3:
Описание алгоритма решения задания 2.
Запрашивается k-секунда (в пределах от 1 до 84600, количество секунд в одних сутках), происходит расчёт полных пройденных часов по формуле (1) и полных пройденных минут по формуле (2). Если введённое число k-секунд не удовлетворяет условие, запрос повторяется. После проведения расчётов происходит вывод целочисленных значение пройденных часов и минут в консоли.
Блок-схема задания 2.
Текст программы задания 2.
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"Russian");
char h;
do
{
int ksec, hour, min;
do
{
cin.clear();
cin.seekg(0);
cout << "Введите k-секунду [от 1 до 86400]: ";
cin >> ksec;
} while ((ksec < 1) || (ksec > 86400) || (!cin.good()));
hour = ksec / 3600;
min = (ksec - hour * 3600) / 60;
printf("Прошло %\d ч. и %\d мин.\n",hour,min);
printf("\n\nПовтор - Y\nВыход - Любая клавиша\n");
h = _getch();
} while (h=='y');
return 0;
}
Пример работы программы.
Пример 1:
Пример 2:
Пример 3:
Вывод.
Освоил простейшие структуры программы, изучил стандартные операции ввода-вывода числовой информации, изучил основные операции и стандартные функций языка С++.
ЛИТЕРАТУРА.
Степанов, А.М. Основы алгоритмизации и программирования на языке С: учеб. пособие для студ., обучающихся по направлению "Управление в технических системах" / А. М. Степанов, М. Ф. Степанов; Саратовский гос. техн. ун-т им. Гагарина Ю. А. - Саратов: СГТУ, 2016. - 88 с. : ил. ; 21 см. - Библиогр.: с. 69 (12 назв.). - ISBN 978-5-7433-3003-4 : 39.23 р. Экземпляры всего: 40
Кирнос, В. Н. Информатика 2. Основы алгоритмизации и программирования на языке C++ [Текст]: Учебно-методическое пособие / Кирнос В. Н. - Томск: Эль Контент, Томский государственный университет систем управления и радиоэлектроники, 2013. - 160 с. Режим доступа: http://www.iprbookshop.ru/14011
Шишкин, А. Д. Программирование на языке Си [Электронный ресурс]: учебное пособие / Шишкин А. Д. - Санкт-Петербург: Российский государственный гидрометеорологический университет, 2013. - 104 с. Режим доступа: http://www.iprbookshop.ru/17959