Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

пр1 (1)

.docx
Скачиваний:
1
Добавлен:
06.05.2023
Размер:
180.98 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ ГАГАРИНА Ю.А.»

Институт Прикладных информационных технологий и коммуникаций

Специальность Информатика и вычислительная техника

Кафедра Информационно - коммуникационные системы и программная

инженерия

Практическая работа

по дисциплине: «Программирование»

на тему

«Линейные алгоритмы. Основные операций языка С++»

Оценка работы________

Дата защиты 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:

Вывод.

Освоил простейшие структуры программы, изучил стандартные операции ввода-вывода числовой информации, изучил основные операции и стандартные функций языка С++.

ЛИТЕРАТУРА.

  1. Степанов, А.М. Основы алгоритмизации и программирования на языке С: учеб. пособие для студ., обучающихся по направлению "Управление в технических системах" / А. М. Степанов, М. Ф. Степанов; Саратовский гос. техн. ун-т им. Гагарина Ю. А. - Саратов: СГТУ, 2016. - 88 с. : ил. ; 21 см. - Библиогр.: с. 69 (12 назв.). - ISBN 978-5-7433-3003-4 : 39.23 р. Экземпляры всего: 40

  2. Кирнос, В. Н. Информатика 2. Основы алгоритмизации и программирования на языке C++ [Текст]: Учебно-методическое пособие / Кирнос В. Н. - Томск: Эль Контент, Томский государственный университет систем управления и радиоэлектроники, 2013. - 160 с. Режим доступа: http://www.iprbookshop.ru/14011

  3. Шишкин, А. Д. Программирование на языке Си [Электронный ресурс]: учебное пособие / Шишкин А. Д. - Санкт-Петербург: Российский государственный гидрометеорологический университет, 2013. - 104 с. Режим доступа: http://www.iprbookshop.ru/17959

Соседние файлы в предмете Объектно ориентированное программирование