Насколько я помню, линейные алгоритмы состоят из достаточно простых, но в то же время базовых операторов. Такими операторами являются оператор присваивания значения переменным, создание этих переменных, резервирование под них места и команды ввода - вывода данных, внесенных в программу пользователем.
Если смотреть с точки зрения пользователя, то оператора два: ввод-вывод и присваивание значения.
Входные данные значение угла альфа в переменную alfa
Выходные данные значение z1 и z2
Начало;
запрос Значения угла альфа;
вычисление функции z1=1-1/4*sin(alfa)^2<wbr />;
вычисление функции z2=cos(alfa)^2+sin(a<wbr />lfa)^2;
вывод значения функции z1;
вывод значения функции z2;
Конец;
БЛОК-СХЕМА
Пример :входные данные угол=0.261799388
Пример выдачи результатов:
0.261799388
Z1=1.803525404
Z2=0.9375
входные данные угол=0.523598776
Пример выдачи результатов:
0.523598776
Z1= 1.3125
Z2= 0.8125
Линейный алгоритм - это алгоритм, в котором действия, или блоки, выполняются линейно, друг за другом. Нет ветвлений, нет циклов. Порядок выполнения блоков не меняется. Каждое действие в линейном алгоритме выполняется один раз.
Кроме линейного, еще бывают циклический и ветвящийся алгоритмы. А в реальных сложных и не очень программах эти алгоритмы сочетаются.
Блок схема программы
Определение входных данных
строка для обработки
Определение выходных данных
строка для обработки,измене<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) Будем взвешивать потихонечку. А с Б взвесим. Если А тяжелее, то А взвесим С В, если опять тяжелее А, то А взвесим с В, если опять а тяжелее, то а на последнем месте и у нас уже было три взвешивания. Теперь берем арбуз б взвешиваем его с в, если б тяжелее, то он на предпоследнем месте, теперь остается взвесить в с г, если в тяжелее в, то он второй по счету, а г самый легкий. Получилось как раз пять взвешиваний, меньше не получается. Ну, а в зависимости от того какие ситуации получаются будем идти по разным путям.
А с Б взвесим. Если Б тяжелее, то Б взвесим С В, если опять тяжелее Б, то Б взвесим с В, если опять Б тяжелее, то Б на последнем месте и у нас уже было три взвешивания. Теперь берем арбуз А взвешиваем его с в, если А тяжелее, то он на предпоследнем месте, теперь остается взвесить В с Г, если в тяжелее В, то он второй по счету, а Г самый легкий. Получилось как раз пять взвешиваний, меньше не получается. Ну и так далее рассуждая всегда за пять взвешиваний можно определить самый легкий арбуз и так далее.