Delyaginmikhail
?>

Построить таблицы истинности для следующих выражений

Информатика

Ответы

fudan

во вложениях.....

У меня в таблица знака & нет, но он выполняет своё действие, у себя его в таблице ставьте!


Построить таблицы истинности для следующих выражений
Построить таблицы истинности для следующих выражений
Построить таблицы истинности для следующих выражений
ЮлияДаниил520

Мне понравилась задачка, как мне кажется, наиболее изящное решение через рекурсивную функцию

Пусть А(Размер) - массив, в котором хранится исходная цепочка. Тогда основная процедура будет иметь вид

//

Процедура Сформировать()
ТХТ=""+А(1);
Для ц=2 по Размер Цикл
      След=Следующий(А(ц-1)+А(ц));
      ТХТ=ТХТ+";"+След;
КонецЦикла;
Сообщить(ТХТ);
КонецПроцедуры

 

Вот и всё! Осталось написать процедуру-функцию Следующий

У меня она рекурсивная

//

Функция Следующий(тЧ)
Если тЧ<10 Тогда
    Возврат(тЧ);
Иначе 
    Д=Цел(тЧ/10);
     Е=тЧ-Д*10;
     Возврат(Следующий(Д+Е));
КонецЕсли;
КонецФункции

 

Вот теперь совсем всё.

При подстановке цепочки 1;7;5;2;6 программа выдала 1;8;3;7;8 то есть чаще встречается 8.

 

Замечание1 Можешь написать и не рекурсивную, это просто, НО рекурсия красивей(как мне кажется), да и просто делать дальнейшие модификации задачи(например для исходных многозначных чисел).

Замечание2 Я, по сути дела, "вручную" находил десятки и единицы, если в языке, которым ты владеешь, есть функции типа, "остаток от деления", можешь их использовать 

Замечание3 Программа абсолютно рабочая, чуть-чуть изменена для детского восприятия, написана на 1С77. Перевести на свой язык, думаю, сумеешь.

Успехов!

 

 

Кстати, вот что у меня получилось(не адаптированный текст), если исходная цепочка может содержать любые неотрицательные целые числа, а на выходе - сумма цифр первого, ну и Сумма цифр предыдущего с текущим. Как видишь, практически тот же текст, но более общий.

 

Функция Следующий(тЧ)
Если тЧ<10 Тогда
   Возврат(тЧ);
Иначе
   сТЧ=Строка(тЧ);
   чч=0;
   Для цц=1 по СтрДлина(сТЧ) Цикл
      чч=чч+Число(Сред(сТЧ,цц,1));
   КонецЦикла;

   Возврат(Следующий(чч));
КонецЕсли;
КонецФункции

//
Процедура Сформировать()
ТХТ=""+Следующий(Цепь.ПолучитьЗначение(1));
Для ц=2 по Цепь.РазмерСписка() Цикл
   След=Следующий(Цепь.ПолучитьЗначение(ц-1)+Цепь.ПолучитьЗначение(ц));
   ТХТ=ТХТ+";"+След;
КонецЦикла;
Сообщить(ТХТ);
КонецПроцедуры

 

 

manimen345

1 шаг. Из 10 литровой канистры наливаем полный 2-х литровый сосуд и полный 7-ми литровый. В 10-ти литровой канистре остается литр. Имеем 1 7 2 литров соответственно.

2 шаг. Выливаем из 2-х литрового сосуда бензин опять в 10-ти литрову канистру. Имеем 3 7 0 соответственно

3 шаг Отливаем из 7-ми литрового сосуда полный 2-х литровый сосуд. Имеем 3 5 2 соответственно.

4 шаг. Выливаем из 2-х литрового сосуда в 10-ти литровый. В итоге имеем 5 литров в 10-ти литровой канистре, 5 литров в 7-ми литровой канистре и пустую 2-х литровую канистру.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Построить таблицы истинности для следующих выражений
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Михайлович_гергиевич315
gurman171
jstepanova
михаил
info126
germanleon
NikonA83
Sinelnikov1650
Марина555
FATAHOVAMAINA
keti0290103
annashaykhattarova1
Иван1764
Berezovskaya
valeron7hair7