Лабораторная РОбота № 3
-
Операторы Цикла
-
Приобретение навыков использования операторов цикла
-
Задание:
Составьте программу, которая решает поставленную в вашем варианте задачу. Программа должна:
представлять собой консольное приложение
отображать сведения о назначении и возможностях программы
отображать сведения об авторе программы
содержать ввод необходимых данных с клавиатуры
выводить результаты расчётов на экран
Вариант №5
Разработайте программу пересчёта целого числа в систему исчисления на основании числа K. Результат должен выводиться на экран в виде строки Любое целое число может выть представлено в виде: M = a0 K 0 + a1 K 1 + a2 K 2 + a3 K 3 +…..+ aN K N; где ai =0, 1…К-1
Код программы
#include "iostream.h"
#include "windows.h"
#include "math.h"
void main()
{
char S[200]=" Программа пересчитывает целое число в систему исчисления на основании числа K.\n"
" Автор студентка группы 5341м Фундовная Евгения. \n";
CharToOem(S,S);
cout <<S;
begin:
double K,n;
CharToOem(" Введите основание системы исчисления - K = ",S);
cout<<S;
cin>>K;
CharToOem(" Введите число для пересчета - n = ",S);
cout<<S;
cin>>n;
int p=logf(n)/logf(K); // номер старшего разряда
int c; // цифра разряда нового числа
CharToOem(" Результат n: ",S);
cout<<S<<n<<'('<<K<<')'<<"\t";
for(int m=n ;p>=0; p--) // вычисление максимального значения делителя
{
c=0;
for (; c<=K-1; )
if (m >= pow(K, p))
{
c++; m=m-pow(K, p);
}
else
{
cout<<c;break;
};
}
cout<<"\n";
CharToOem("Продолжить? (Y/N)\t",S);
cout <<S;
char ans;
cin >>ans;
// cout <<ans<<'\t'<<(int)ans<<'\n';
if (ans=='Y'||ans=='y'||ans==-83||ans==-115) goto begin;
}
Результат работы программы
Выводы
В результате выполнения работы была создана программа, которая решает поставленную задачу. Использовалась функция CharToOem, которая преобразует строку в набор символов ОЕМ. Также использовались операторы for и break.