Пример 2.1 выполнения задания

Найти коэффициенты k0, k1, k2, k3 представления числа Х (0≤X≤80) в троичной системе счисления:

X = k 3⋅33+ k 2⋅32+ k 1⋅3+ k 0 (2.1)

используя операции получения частного целочисленного деления (/) и остатка

(%). Для контроля результатов выполнить вычисление Х непосредственно по формуле (2.1) для найденных коэффициентов, а также после преобразования выражения в форму-ле (2.1) по схеме Горнера. Вывести все результаты вычислений в наглядной форме с по-ясняющими текстами. Проверить работу программы на значениях

X=(0; 1; 2; 10; 27; 48; 80).

Программа

#include<stdafx.h>

int _tmain(int argc, _TCHAR* argv[])

{

unsigned int X, k0, k1, k2, k3, X1, X2;

//Ввод исходных данных printf("inputX: "); scanf("%u",&X);

«Практикум по программированию на языке C в среде VS C++»


//Вычисление коэффициентов разложения

k0=X%3; X=X/3; //k0:=остаток от деленияXна3;

k1=X%3; X=X/3; //k1:=остаток от деленияX/3на3;

k2=X%3; //k2:=остаток от деления X/9 на 3;

k3=X/3; //k3:=X/27;

//Вывод вычисленных коэффициентов разложения //числа Х по степеням 3 с поясняющими текстами printf("\nk3=%uk2=%uk1=%u

k0=%u",k3,k2,k1,k0);

// Проверки результатов вычислений

// 1.

//Вычисление непосредственно по формуле (2.1)

X1=k3*27+k2*9+k1*3+k0;

//и вывод результата printf("\nX1 = %u",X1);

// 2.

//Вычисление по формуле (2.1), //преобразованной по схеме Горнера

X2=((k3*3+k2)*3+k1)*3+k0;

//и вывод результата printf("\nX2 = %u\n",X2); return0;

}

Протокол ввода-вывода этой программы для числа 77 будет следующим: inputX: 77

k3=2 k2=2 k1=1 k0=2 X1 = 77

X2 = 77


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: