Попробуем решить эту задачу:
Ну проще всего сделать так: Обозначим арбузы буквами АБВГ
1) Будем взвешивать потихонечку. А с Б взвесим. Если А тяжелее, то А взвесим С В, если опять тяжелее А, то А взвесим с В, если опять а тяжелее, то а на последнем месте и у нас уже было три взвешивания. Теперь берем арбуз б взвешиваем его с в, если б тяжелее, то он на предпоследнем месте, теперь остается взвесить в с г, если в тяжелее в, то он второй по счету, а г самый легкий. Получилось как раз пять взвешиваний, меньше не получается. Ну, а в зависимости от того какие ситуации получаются будем идти по разным путям.
А с Б взвесим. Если Б тяжелее, то Б взвесим С В, если опять тяжелее Б, то Б взвесим с В, если опять Б тяжелее, то Б на последнем месте и у нас уже было три взвешивания. Теперь берем арбуз А взвешиваем его с в, если А тяжелее, то он на предпоследнем месте, теперь остается взвесить В с Г, если в тяжелее В, то он второй по счету, а Г самый легкий. Получилось как раз пять взвешиваний, меньше не получается. Ну и так далее рассуждая всегда за пять взвешиваний можно определить самый легкий арбуз и так далее.
Алгоритм можно записать, прежде всего, в виде простого словесного описания. Но такое хорошо работает только в отношении достаточно простых и лаконичных алгоритмов. Более сложные записывают специфическими способами. Например, путём построчной записи.
Широко распространено среди специалистов и графическое записывание алгоритмов. Сюда относят блок-схемы, так называемые структурограммы, и третий частный вариант - последовательность рисунков (именно его можно встретить в различных руководствах, инструкциях, учебниках и методических пособиях).
Наконец, можно зафиксировать алгоритм письменно и с помощью языков программирования. К ним прибегают, когда алгоритм нужно сразу представить в форме, пригодной для исполнения компьютерами и другой электроникой, или "переложить" в эту форму.
Для получения рисунка надо заметить, что одна и та же часть рисунка повторяется 6 раз без всяких изменений, поэтому надо рисовать командами относительного перемещения пера - это команда сместить на вектор и после завершения элемента рисунка перо надо поставить в точку начала следующего рисунка
вот вся программа:
использовать Чертежник
алг
нач
нц 6 раз
опустить перо
сместиться на вектор (2,2)
поднять перо
сместиться на вектор (-1,0)
опустить перо
сместиться на вектор (0,-2)
поднять перо
сместиться на вектор (1,0)
опустить перо
сместиться на вектор (-2,2)
поднять перо
сместиться на вектор (0,-1)
опустить перо
сместиться на вектор (2,0)
поднять перо
сместиться на вектор(1,-1)
кц
кон
Блок схема программы
Определение входных данных
строка для обработки
Определение выходных данных
строка для обработки,измене<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
сместиться в точку(0, 0)
нц колич раз
опустить перо
сместиться на вектор(0,сторона)
сместиться на вектор(сторона,0)
сместиться на вектор(0,-сторона)
сместиться на вектор(-сторона,0)
поднять перо
сместиться на вектор(-1,-1)
сторона:=сторона+2<wbr />
кц
кон