Блок схема программы
Определение входных данных
строка для обработки
Определение выходных данных
строка для обработки,измене<wbr />нная строка или сообщение "Нет символов для замены"
код программы:
void main()
{
char mystr[256],z='*';
int i;
printf("Введите строку\n");
scanf("%s",mystr);
printf("Исходная строка:%s\n",mystr);
if(strchr(mystr,z)==<wbr />NULL){printf("Нет символов для замены\n");}
else{
for(i=strlen(mystr);<wbr />i>0;i--){
mystr[i]=(mystr[i]==<wbr />'*'?'7':mystr[i]);
}
printf("Измененная строка:%s",mystr);
}
}
пример выдачи:
**йцукен*гшщзх*фыва*<wbr />*
Исходная строка:йцукен*гшщзх*<wbr />фыва
Измененная строка:йцукен7гшщзх7<wbr />фыва
В двоичном коде бит может кодировать только два значения (допустим, "да" или "нет", или, по условию задачи - первые числа из требуемых рядов: 1 и 2 или 0 и 1). Два бита кодируют 4 значения, три бита - 8. И так далее. Общая формула выглядит так: N=2^m Где N - количество независимых кодируемых значений, m - количество разрядов двоичного кодирования.
Имеем в первом варианте 32 значения, во втором 33. Подставляем данные: 2^5=32, то есть 32 значения (от 1 до 32) можно закодировать с помощью 5 бит. Зато для 33 значений ёмкости пяти бит уже не хватит. Значит, ответ неверный. Проверяем: log2(33)=5,04439 (по таблице логарифмов с основанием 2), округляем вверх до целого, получаем 6.
на самом деле даже если не знать что такое шифр цезаря, то можно догадаться что в задаче на тему фиксиков и ответ будет на тему фиксиков.
так что в принципе единственный логичный ответ это а) фиксик.
ну и проверить можно узнав что такое шифр цезаря. В общем это такой метод кодирования, когда каждую букву исходного слова сдвигают в алфавите на определенное количество позиций и вместо нее записывают ту букву которая получилась. так что для проверки надо лишь проверить все варианты и посмотреть можно ли из них получить то что дано в условии задачи при смещении на одно и тоже количество позиций.
итак фиксик. от буквы ф до ё 18 символов, от и до ъ 18, от к до ь тоже... и т.д. в общем подходит.
ответ а) фиксик
Допустим, 1 игрок загадал 1
2 игрок называет 128, получает ответ "меньше". Это первый бит.
Он называет 64 (это второй бит), потом 32, потом 16, потом 8, потом 4, потом 2, потом 1.
Всего он получает 8 бит информации.
Насколько я помню, линейные алгоритмы состоят из достаточно простых, но в то же время базовых операторов. Такими операторами являются оператор присваивания значения переменным, создание этих переменных, резервирование под них места и команды ввода - вывода данных, внесенных в программу пользователем.
Если смотреть с точки зрения пользователя, то оператора два: ввод-вывод и присваивание значения.