1. Реализовать программу, позволяющую переводить число из десятичной в двоичную систему счисления.
#include
#include
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
float a1, ad, b = 0;
int k = 1, c, a;
cout << "Введите десятичное число: ";
cin >> a1;
a = (int)(a1);
ad = a1 - a;
cout << "Введите СС:";
cin >> c;
while (a) //пока а!=0
{
b += a % c * k; //двоичное число = остаток от деления десятичного
//числа на c (это, думаю, понятно) * k (разряд) +то, что было в b
a /= c; //само деление а на 2
k *= 10; //увеличение разряда
}
k = 10;
while ((ad)|| (k<10000)) //пока а!=0
{
b += trunc(ad * c) / k; //двоичное число = остаток от деления десятичного
//числа на 2 (это, думаю, понятно) * k (разряд) +то, что было в b
ad *= c; //само деление а на 2
ad -= (int)(ad);
k *= 10; //увеличение разряда
}
cout << "Число: " << b << endl;
system("pause");
}
2.На основе исходного файла создать массив удвоенных нечетных чисел. Упорядочить его по возрастанию элементов. Входящий файл input.txt, вывод осуществляется в файл output.txt.
program myprog
integer, allocatable :: a(:)
integer buff
OPEN(10,FILE='input.txt')
OPEN(15,FILE='output.txt')
do while(.NOT.EOF.(10))
read(10,*) j
if (mod(j,2)==1)
k=k+1
end if
end do
allocate (a(k))
k=1
close(10)
OPEN(10,FILE='input.txt')
do while(.NOT.EOF.(10))
read(10,*) j
if (mod(j,2)==1)
a(k)=j*2
end if
end do
do i=1,k
l=minloc(a(i:k))
buff=a(i)
a(i)=a(l)
a(l)=buff
end do
write(15,*) (a(i),i=1,k)
close(10)
close(15)
end