Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2012, 17:24   #1
MID_SAN
Новичок
Джуниор
 
Регистрация: 01.02.2012
Сообщений: 1
Восклицание Разработать алгоритм, отобразить его в виде блок-схемы и написать программу на языке Паскаль. Оформить отчет

Вводится число k, принимающее значение в диапазоне от 0 до 255. Используя логические (поразрядные) операции над числами, преобразовать это число, оставив i-й и j-й разряды, номера которых вводит пользователь, такими, какие они есть, а остальные разряды сбросить в нуль. Вывести исходное и преобразованное число.
Помогите пожалуйста вообще не пойму как сделать(((
MID_SAN вне форума Ответить с цитированием
Старый 02.02.2012, 10:24   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а в чём, собственно затруднение.
1) определитесь, откуда и как будут отсчитываться разряды числа. (я бы предложил использовать "классический" способ - разряды двоичного числа отсчитываются справа налево (от меньших к большим), начиная с нуля.

2) пишете программу.
вида:
ввести число K (var K : byte);
ввести i и j (обязательно проверяя, чтобы введённые значения попали в диапазон пронумерованных разрядов числа k (например, если нумерация от нуля, тогда эти числа должны быть от нуля до семи: (i>=0) and (i<=7) и тоже самое условие для j

3) сформировать маску. взять единичку Mask1 := 1; и двигать её влево столько раз, сколько нужно, чтобы получился номер разряда заданный в i. потом тоже самое сделать для j:
Код:
  Mask1 := 1;
  for m:=1 to i do Mask1 := Mask1 shl 1;
  Mask2 := 1;
  for m:=1 to j do Mask2 := Mask2 shl 1;
объединить маски, чтобы получить одну, обобщённую маску:
Код:
Mask := Mask1 or Mask2;
ну и последнее, наложить маску на исходное число с помощью операции "логическое И":
Код:
  knew := k and Mask;
вывести исходное и преобразованное число:
Код:
  WriteLn('k=',k,' Knew = ',knew);
с программой всё.

потом нарисовать блок-схему.

потом оформляйте отчёт.

теперь можно сдавать.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оформить отчет в виде реферата венерочка Помощь студентам 8 29.08.2010 15:20
1.изобразить в виде блок схемы алгоритмы 2. Задайте нормальный алгоритм Маркова, а 3 я сам решу! Bernuar Помощь студентам 0 31.03.2010 15:49
Разработать алгоритм и написать мини-программу на языке Бейсик... Evgen88 Помощь студентам 1 24.09.2009 10:30
Нужна помощь(Разработать алгоритм, нарисовать его блок-схему.) miron Помощь студентам 4 26.02.2008 12:08