- •1. Считая, что кубический фут равен 7,481 галлона, написать программу, запрашивающую у пользователя число галлонов и выводящую на экран эквивалентный объем в кубических футах.
- •2. Напишите программу, выводящую следующую таблицу:
- •Int main()
- •3. Напишите программу, генерирующую следующий вывод:
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main( )
- •Int main()
- •Int main()
- •2 Для перевода шкалы Фаренгейта в шкалу Цельсия: 1
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
- •Int main()
Int main()
{
// Вендовая консоль плохо дружит с юникодом, а
// не в юникоде выводить и русские символы, и знаки фунта
// очень проблематично. Поэтому используется '#, который,
// кстати, является тоже официальным символом.
locale::global(locale("rus"));
int a;
int b;
int c;
while(true)
{
cout << "Введите количество фунтов: ";
cin >> a;
cout << "Заедите количество шиллингов: ";
cin >> b;
cout << "Введите количество пенсов: ";
cin >> c;
if (a > 0 && b > 0 && c > 0)
break;
cout << "Что-то введено неправильно.\n\n";
}
double sum = a + b/20.0 + c/(20.0 * 12.0);
int pounds = static_cast<int>(sum);
int penny = static_cast<int>((sum - pounds) * 100 + 0.5);
cout << "Десятичных футов #" << pounds << "." << penny << "\n";
return 0;
}
№1.11
По умолчанию форматирование вывода производится по правому краю поля. Можно изменить форматирование текста на левостороннее путем использования манипулятора setiosflags(ios::left) (не беспокойтесь о смысле новой формы записи, встретившейся в манипуляторе). Используйте этот манипулятор вместе с setw() для того, чтобы произвести следующий вывод:
Фамилия Имя Адрес Город
Петров Василий Кленовая 16 Санкт-Петербург
Иванов Сергей Осиновая 3 Находка
Сидоров Иван Березовая 21 Калининград
#include "stdio.h"
#include <iostream>
#include <iomanip>
using namespace std;
Int main( )
{
locale::global(locale("rus"));
const int COLUMNS = 4;
const char* headers[COLUMNS] = {"Фамилия", "Имя", "Адрес", "Город"};
const char* rows[][COLUMNS] =
{
{"Петров", "Василий", "Кленовая 16", "Санкт-Петербург"},
{"Иванов", "Сергей", "Осиновая 3", "Находка"},
{"Сидоров", "Иван", "Березовая 21", "Калининград"},
{0, 0, 0, 0}
};
const int COLUMN_SIZE = 15;
cout << setiosflags(ios::left);
for (int i = 0; i < COLUMNS; i++)
cout << setw(COLUMN_SIZE) << headers[i];
cout << "\n\n";
for (int i = 0; rows[i][0] != 0; i++)
{
for (int c = 0; c < COLUMNS; c++)
cout << setw(COLUMN_SIZE) << rows[i][c];
cout << "\n";
}
cout << "\n\n\n";
return 0;
}
№1.12
Напишите программу, выполняющую действия, обратные тем, которые описаны в упражнении 10, то есть запрашивающую у пользователя сум му, указанную в десятичных фунтах, и переводящую ее в старую систему
фунтов, шиллингов и пенсов. Пример взаимодействия программы с пользователем может выглядеть так:
Введите число десятичных фунтов: 3.51
Эквивалентная сумма в старой форме записи: £3.10.2
Обратите внимание на то, что если вам придется присваивать вещественное значение (например, 12,34) переменной целого типа, то его дробная часть (0,34) будет потеряна, а целая переменная получит значение 12. Чтобы избежать предупреждения со стороны компилятора, используйте явное преобразование типов. Можно использовать операторы, подобные приведенным ниже:
float decpounds: // сумма в десятичных фунтах
int pounds: // сумма в старых фунтах
float decfrac: // десятичная дробная часть
pounds = static_cast<int>(decpounds): //отбрасывание
//дробной части decfrac = decpounds - pounds; //прибавление дробной части
Чтобы получить число шиллингов, следует умножить на 20 значение переменной decfrac. Аналогичным образом можно получить число пенсов.
#include "stdio.h"
#include <iostream>
using namespace std;