М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Vsasilina
Vsasilina
19.12.2022 17:41 •  Информатика

Не понимаю как решать подобные ( логическое условие). для какого из чисел x логическое условие истинно? ((x< 25) → (x< 23)) /\ ((x< 22) →(x> 21)) 21 22 23 24

👇
Ответ:
izeddin2002
izeddin2002
19.12.2022
Сначала немного теории.
Тут у нас импликация(если..то...), комбинированная с конъюнкцией(и).
Таблица истинности импликации(стрелочки):
0 0 1
0 1 1
1 0 0
1 1 1
Общее правило: если a<=b, тогда правда
Таблица истинности конъюнкции(/\):
0 0 0
0 1 0
1 0 0
1 1 1
Общее правило: если есть одна ложь-всё ложь
Теперь о примере:
Просто подставляем вместо x варианты. Так как между двумя скобочками с Если... То... стоит И, нам нужен вариант, где оба Если... То... являются правдой.
Рассмотрим подробно 1 вариант:
21<25 - это правда
21<23 - это правда
Таким образом, в первых скобочках правда, это доказывает таблица истинности, приведённая выше.
21<22 - это правда
21>21 - это ложь
В этих скобочках-ложь.
А так как ложь и правда в И являются ложью, нам не подходит данный вариант
2 вариант-верный ответ, т.к.:
22<25 - это правда
22<23 - это правда
В первых скобочках правда
22<22 - это ложь
22>21 - это правда
И в этих скобках правда.
Как можно убедится, снова взглянув в таблицу истинности для конъюнкции, всё выражение является правдой.
3 и 4 посмотрите сами и убедитесь что это ложь.
4,4(73 оценок)
Ответ:
ilyazavrik
ilyazavrik
19.12.2022
Введем для удобства обозначения.
a=(x\ \textless \ 25); \ b=(x\ \textless \ 23); \ c=(x\ \textless \ 22); \ d=(x\ \textgreater \ 21);&#10;
Перепишем в этих обозначениях заданное выражение и упростим его.
(a\to b)\cdot(c\to d)=(\overline a+b)\cdot(\overline c+d)=\overline a(\overline c+d)+b(\overline c+d)
Вернемся к исходным обозначениям:
\overline{x\ \textless \ 25)} \ \left(\overline {(x\ \textless \ 22)}+(x\ \textgreater \ 21)\right)+(x\ \textless \ 23)\left(\overline{(x\ \textless \ 22)}+(x\ \textgreater \ 21)\right)= \\ (x \geq 25)((x \geq 22)+(x\ \textgreater \ 21))+(x\ \textless \ 23)((x \geq 22)+(x\ \textgreater \ 21))= \\ (x \geq 25)(x\ \textgreater \ 21)+(x\ \textless \ 23)(x\ \textgreater \ 21)=(x \geq 25)+(21\ \textless \ x\ \textless \ 23)
В целых числах это эквивалентно утверждению: х больше или равно 25 или х=22
Этому утверждению удовлетворяет только вариант ответа 22.
ответ: 22
4,4(26 оценок)
Открыть все ответы
Ответ:
daaanila2015
daaanila2015
19.12.2022

Как-то так:

#include <iostream>


using namespace std;


// В данном примере я использовал типы float, т. к. при попытке делить 3 на 2 мы получаем 1.5, но тип int обрезает все после .


int main()

{

   cout << "Task 30240725!" << endl; // just for fun


   int m[12] = {-1,-2,3,4,5,6,7,8,9,10,11,12}; // Инициализируем массив из 12 элементов, чтоб хоть части из них была отрицательная


   // среднее арифметическое состоит из сумма_числел / кол-во_чисел


   float min_sum = 0;          // сумма чисел

   float total_min_count = 0;  // кол-во чисел


   // Инициализиуем цикл от 0 (т. к. все массивы начинаются с 0) до 12 не включительно (т. к. всего элементов 12 начиная с 0. Значит 11)

   for (int i = 0; i < 12; i++) {


       // если текущий элемент массива m от индекса i меньше чем 0, значит это отрицательное число

       if (m[i] < 0) {


           min_sum += m[i];    // складываем, непосредственно, само число m[i]

           total_min_count++;  // увеличиваем кол-во чисел на 1. Можно написать строку вида total_min_count = total_min_count + 1; - суть не поменяется


       }

   }


   // Если в массиве не было отрицательных чисел, то делаем проверку. Если кол_во_чисел и сумма_чисел равны 0 значит в массиве не было отрицательных чисел.

   // а т. к. по умолчанию min_sum и total_min_count равны 0, то при попытке поделить их получим ошибку. Для этого обрабатываем это условие, чтоб не дать ее допустить.

   if (total_min_count == 0 && min_sum == 0) {

       // Выкидываем сообщение, мол, нету в массиве отрицательных чисел, работать не буду

       cout << "There are no negative numbers in the array" << endl;


       // делаем return, дабы программа не продолжила выполнение

       return 0;

   }


   // если же у нас есть и кол-во_чисел и общая_сумма, то спокойно делим одно на другое и сразу выводим в консоль результат.

   cout << "Average: " << min_sum / total_min_count << endl;


   // завершаем выполнение программы

   return 0;

}

4,8(70 оценок)
Ответ:
dilovardustiev1
dilovardustiev1
19.12.2022
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
  var s:=ReadInteger('n=').ToString.JoinIntoString('');
  Writeln('Цифр в числе- ',s.Length);
  Writeln('Сумма цифр- ',s.Select(d->Integer.Parse(d)).Sum);
  Writeln('Последняя цифра- ',s.Last);
  Writeln('Первая цифра- ',s.First);
  Writeln('Предпоследняя цифра- ',s[s.Length-1]);
  var m:=ReadInteger('m=');
  Write('Сумма ',m,' последних цифр числа- ');
  Writeln(s.Skip(s.Length-m).Select(d->Integer.Parse(d)).Sum);
  Write('Цифра 3 в запись числа ');
  if Pos('3',s)>0 then Writeln('входит')
  else Writeln('не входит');
  Writeln('Число в обратном порядке- ',s.Reverse.JoinIntoString(''));
  Writeln('Перестановка первой и последней цифр- ',
    s.Last+Copy(s,2,s.Length-2)+s.First);
end.

Тестовое решение:
n= 1063
Цифр в числе- 4
Сумма цифр- 10
Последняя цифра- 3
Первая цифра- 1
Предпоследняя цифра- 6
m= 2
Сумма 2 последних цифр числа- 9
Цифра 3 в запись числа входит
Число в обратном порядке- 3601
Перестановка первой и последней цифр- 3061
4,5(57 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ