Вы находитесь на странице: 1из 7

Алтай ский государственный университет

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

Кафедра информатики

Курс «Основы программирования»

Лукин Даниил Юрьевич


401б группа

Строки
Отчет о лабораторной работе №6

Барнаул 2020
Вариант 15
Задача 15

Дана строка, содержащая зашифрованный русский текст. Каждая буква


заменяется на следующую за ней в алфавите (буква я заменяется на а). Получить
расшифровку данного текста.

Исходный код
/********************************************
* Файл: Lab6_15.c *
* Лаб. работа: 5 *
* Задача: 15 *
* Автор: Лукин Даниил Юрьевич *
* Группа: 401б *
********************************************/

#include<stdio.h>
#include<locale.h>
#include <windows.h>
#include <stdlib.h>
int main()
{
char str[80];
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
printf("Введите текст\n");
gets_s(str,80);
int i = 0;
while (str[i] != '\0')
{
if (str[i] == ' ')

i++;
else
{
if ((str[i] == 223) || (str[i] == 255))
{
str[i] = str[i]-=31;
i++;
}
else
{
str[i] = str[i]++;
i++;
}
}

}
printf("Получилось: %s\n",str);
system("pause");
}
Тест 1
Тест 2
Тест 3
Вариант 13
Задача
3 Такси. Проезд в такси оплачивается по счетчику километража. Стоимость
преодоления одного километра — 12 руб. вне зависимости от количества пассажиров.
Дополнительно оплачивается провоз багаж по цене 50 руб. за одно место. Разработайте
программу, которая будет вычислять и печатать таблицу платежей для трех пассажиров,
одновременно севших в такси, на момент выхода каждого из них, если совместно
преодоленный километраж они оплачивают в равных долях, а за багаж каждый платит
самостоятельно. Пользователь программы указывает для каждого пассажира количество
мест багажа и показание счетчика километража на момент его выхода. В программе
должны быть реализованы, как минимум, следующие функции

 inputData для организации ввода исходных данных;

 calculateCharges для определения платы i-го пассажира;

 calculateTotals для определения суммарной платы, которую должен получить за


услуги таксист;

 printTable для печати отчётной таблицы. Отчетная таблица должна содержать


сведения о количестве мест провезенного багажа, преодоленном пассажиром расстоянии
и его плате. Таблица должна иметь следующий вид:

Исходный код
/********************************************
* Файл: Lab3_11.c *
* Лаб. работа: 3 *
* Задача: 15 *
* Автор: Лукин Даниил Юрьевич *
* Группа: 401б *
********************************************/

#include <math.h>
#include <stdio.h>
#include <locale.h>

void InputData(float* bag, float* km)


{
do
{
printf("Введите количество мест багажа и показание счётчика километража для
пассажира\n");
scanf_s("%f%f", bag, km);
if ((bag < 0) || (km < 0))
printf("Ошибка ввода. Повторите попытку.");
} while ((bag < 0) || (km < 0));
}
float calculateCharges(float a, float b)
{
return (a * 50) + (b * 12);
}
float calculateTotals(float a, float b, float c)
{
return a + b + c;
}
void printTable(int bag1, float km1, int bag2, float km2, int bag3, float km3, float
itog1, float itog2, float itog3, float itog)
{
int a = bag1 + bag2 + bag3;
printf("№ пассажира Багаж,шт Расстояние,км Плата,руб\n");
printf("%7.1d%8.1d%13.1f%15.1f \n", 1, bag1, km1, itog1);
printf("%7.1d%8.1d%13.1f%15.1f \n", 2, bag2, km2, itog2);
printf("%7.1d%8.1d%13.1f%15.1f \n", 3, bag3, km3, itog3);
printf("Итого %9.1d%13.1f%15.1f", a, km3, itog);
}
int main()
{
setlocale(LC_ALL, "rus");
float bag1, bag2, bag3;
float itog1, itog2, itog3, itog, km1, km2, km3;
InputData(&bag1, &km1);
do
{
InputData(&bag2, &km2);
if (km2 < km1)
printf("Ошибка ввода. Повторите попытку.\n");
} while (km2 < km1);

do
{
InputData(&bag3, &km3);
if (km3 < km2)
printf("Ошибка ввода. Повторите попытку.\n");
} while (km3 < km2);
itog1 = calculateCharges(bag1, km1);
itog2 = (calculateCharges(bag2, km2) - itog1);
itog3 = (calculateCharges(bag3, km3) - itog2);
itog = calculateTotals(itog1, itog2, itog3);
printTable(bag1, km1, bag2, km2, bag3, km3, itog1, itog2, itog3, itog);
getchar(); getchar();
}
Тесты
Тест 1

Тест 2

Тест 3