Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Выполнить еще одну операцию (у/n)? n

Лабораторная работа №2

Циклы и ветвления.

1. Предположим, вы хотите создать таблицу умножения на заданное число.
Напишите программу, которая позволяет пользователю ввести это число,
а затем генерирует таблицу размером 20 строк на 10 столбцов. Первые
строки результата работы программы должны выглядеть примерно следующим образом:

Введите число: 7 7142128354249566370 77849198105112119126133140 147154161168175182189196203210

// displays multiples of a number

#include <iostream>

#include <iomanip> //for setw()

using namespace std;

 

int main()

{

unsigned long n; //number

 

cout << "\nEnter a number: ";

cin >> n; //get number

for(int j=1; j<=200; j++) //loop from 1 to 200

{

cout << setw(5) << j*n << " "; //print multiple of n

if( j%10 == 0 ) //every 10 numbers,

cout << endl; //start new line

}

return 0;

}

2. Напишите программу, предлагающую пользователю осуществить перевод температуры из шкалы Цельсия в шкалу Фаренгейта или наоборот, а затем осуществите преобразование. Используйте в программе переменные вещественного типа. Взаимодействие программы с пользователем может выглядеть следующим образом:

Начните 1 для перевода шкалы Цельсия в шкалу Фаренгейта.

Для перевода шкалы Фаренгейта в шкалу Цельсия: 1

Введите температуру по Фаренгейту: 70

Значение по Цельсию: 21.111111

// converts fahrenheit to centigrad, or

// centigrad to fahrenheit

#include <iostream>

using namespace std;

 

int main()

{

int response;

double temper;

 

cout << "\nType 1 to convert fahrenheit to celsius,"

<< "\n 2 to convert celsius to fahrenheit: ";

cin >> response;

if( response == 1 )

{

cout << "Enter temperature in fahrenheit: ";

cin >> temper;

cout << "In celsius that's " << 5.0/9.0*(temper-32.0);

}

else

{

cout << "Enter temperature in celsius: ";

cin >> temper;

cout << "In fahrenheit that's " << 9.0/5.0*temper + 32.0;

}

cout << endl;

return 0;

}

3. Операции ввода, такие, как cin, должны уметь преобразовывать последо
вательность символов в число. Напишите программу, которая позволяет
пользователю ввести шесть цифр, а затем выводит результат типа long на
экране. Каждая цифра должна считываться отдельно при помощи функ
ции getche(). Вычисление значения переменной производится путем умножения текущего ее значения на 10 и сложения с последней введенной цифрой (для того, чтобы из кода символа получить цифру, вычтите из него 48 или '0'). Примером результата работы программы может служить следующий:

Введите число: 123456

Вы ввел/ число 123456

// makes a number out of digits

#include <iostream>

using namespace std;

#include <conio.h> //for getche()

 

int main()

{

char ch;

unsigned long total = 0; //this holds the number

 

cout << "\nEnter a number: ";

while( (ch=getche()) != '\r' ) //quit on Enter

total = total*10 + ch-'0'; //add digit to total*10

cout << "\nNumber is: " << total << endl;

return 0;

}

4. Создайте эквивалент калькулятора, выполняющего четыре основных арифметических операции. Программа должна запрашивать ввод пользователем первого операнда, знака операции и второго операнда. Для хранения операндов следует использовать переменные вещественного типа. Выбрать операцию можно при помощи оператора switch. В конце программа должна отображать результат на экране. Результат работы программы с пользователем может выглядеть следующим образом:

Введите первый операнд, операцию и второй операнд: 10 / 3

Результат равен 3.333333

Выполнить еще одну операциию (у/n)? у

Введите первый операнд, операцию и второй операнд: 12 + 100

Результат равен 112

Выполнить еще одну операцию (у/n)? n

// models four-function calculator

#include <iostream>

using namespace std;

 

int main()

{

double n1, n2, ans;

char oper, ch;

 

do {

cout << "\nEnter first number, operator, second number: ";

cin >> n1 >> oper >> n2;

switch(oper)

{

case '+': ans = n1 + n2; break;

case '-': ans = n1 - n2; break;

case '*': ans = n1 * n2; break;

case '/': ans = n1 / n2; break;

default: ans = 0;

}

cout << "Answer = " << ans;

cout << "\nDo another (Enter 'y' or 'n')? ";

cin >> ch;

} while( ch != 'n' );

return 0;

}


 

5. При помощи цикла for изобразите на экране пирамиду из символов 'X'. Верхняя часть пирамиды должна выглядеть следующим образом:

х

ххх

ххххх

ххххххх

ххххххххх

Вся пирамида должна быть высотой не 5 линий, как изображено здесь, а 20 линий. Одним из способов ее построения может служить использование двух вложенных циклов, из которых внутренний будет заниматься печатанием символов 'X' и пробелов, а другой осуществлять переход на одну строку вниз.

 

6. Измените программу factor таким образом, чтобы она циклически запрашивала ввод пользователем числа и вычисляла его факториал, пока пользователь не введет 0. В этом случае программа должна завершиться. При необходимости вы можете использовать соответствующие операторы программы factor в цикле do или while.

// factor.cpp

// calculates factorials, demonstrates FOR loop

#include <iostream>

using namespace std;

 

int main()

{

unsigned int numb;

unsigned long fact=1; //long for larger numbers

 

cout << "Enter a number: ";

cin >> numb; //get number

 

for(int j=numb; j>0; j--) //multiply 1 by

fact *= j; //numb, numb-1, ..., 2, 1

cout << "Factorial is " << fact << endl;

return 0;

}

 

7. Напишите программу, рассчитывающую сумму денег, которые вы получите при вложении начальной суммы с фиксированной процентной ставкой дохода через определенное количество лет. Пользователь должен вводить с клавиатуры начальный вклад, число лет и процентную ставку. Примером результата работы программы может быть следующий:

Введите начальный вклад: 3000

Введите число лет: 10

Введите процентную ставку: 5.5

через 10 пет вы получите 5124.43 доллара.

В конце первого года вы получите 3 000 + (3 000*0.055) = 3165 долларов. В конце следующего года вы получите 3 165 + (3 165*0.055) = 3339.08 долларов. Подобные вычисления удобно производить с помощью цикла for.

8. Напишите программу, которая циклически будет запрашивать ввод поль
зователем двух денежных сумм, выраженных в фунтах, шиллингах и пен
сах (см. упражнения 10 и 12 предыдущего набора упражнений). Программа должна складывать введенные суммы и выводить на экран результат, также выраженный в фунтах, шиллингах и пенсах. После каждой итерации программа должна спрашивать пользователя, желает ли он продолжать работу программы.
При этом рекомендуется использовать цикл do. Естественной формой
взаимодействия программы с пользователем была бы следующая:

Введите первую сумму £5 10 6

Введите вторую сумму £3 2 6

Всего £8 13 0

Продолжить (у/n)?

Для того чтобы сложить две суммы, вам необходимо учесть заем одного шиллинга в том случае, если число пенсов окажется больше 11, и одного фунта, если число шиллингов окажется больше 19.

9. Представьте, что вы собираетесь пригласить к себе шестерых гостей, но за
вашим столом могут разместиться всего лишь 4 человека Сколькими
способами можно разместить четырех из шести гостей за обеленным сто
лом? Каждый из шести гостей может разместиться на первом стуле. Каж
дый из оставшихся пяти гостей может занять второй стул. На третьем
стуле может разместиться один их четырех гостей, и на четвертом — один
из трех оставшихся гостей. Двоим из гостей не достанется ни одного
места. Таким образом, число возможных рассадок гостей за столом равно
6*5*4*3 = 360. Напишите программу, которая будет производить аналогич
ные вычисления для любого числа гостей и любого числа мест за столом
(при этом предполагается, что число гостей не меньше числа мест). Про
грамма не должна быть сложной, и вычисление можно организовать с по
мощью простого цикла for.

 

10. Модифицируйте программу, описанную в упражнении 7, так, чтобы вместо вычисления текущей суммы на вашем счете она вычисляла, сколько лет потребуется для того, чтобы при заданной процентной ставке и величине начального вклада сумма на вашем счете достигла запрашиваемого вами значения. Для хранения найденного числа лет используйте переменную целого типа (можно отбросить дробную часть значения, полученного в результате расчета). Самостоятельно выберите тип цикла, подходящий для решения задачи.

11. Создайте калькулятор, выполняющий действия над денежными суммами, выраженными в фунтах, шиллингах и пенсах (см. упражнения 10 и 12 предыдущего набора заданий). Калькулятор должен складывать и вычитать вводимые значения, а также производить умножение денежной суммы на вещественное число (операция умножения двух денежных сумм не имеет смысла, поскольку квадратных денежных единиц не существует. Деление одной денежной суммы на другую мы тоже не будем рассматривать). Организация взаимодействия с калькулятором описана в упражнении 4 этого набора упражнений.

12. Создайте калькулятор, выполняющий четыре арифметических действия над дробями (см. упражнение 9 предыдущего набора и упражнение 4 этого набора). Формулы, демонстрирующие выполнение арифметических операций над дробями, приведены ниже.

Сложение: a/b + c/d = (a*d + b*c)/(b*d) Вычитание: a/b - c/d = (a*d - b*c)/(b*d) Умножение: a/b*c/d = (a*c)/(b*d)

Деление: a/b/c/d = (a*d)/(b*c)

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




©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.