пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Билет №1(1,2)

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


10.06.2015; 19:51
хиты: 372
рейтинг:0
Точные науки
информатика
Языки программирования
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь