Конспект лекций по программированию для начинающих. Гладков В.П. - 114 стр.

UptoLike

Составители: 

116
else write('Пройденное расстояние ',s,' меньше ',z)
end.
Пример 10.37. Найти максимальный элемент и его номер в
последовательности, заданной формулой общего члена a(i)=sin(i+n/i), где i
изменяется от 1 до n.
Решение. Первый элемент последовательности объявляем кандидатом на
максимум. Последовательно сравниваем все остальные элементы
последовательности с кандидатом на максимум. Если очередной элемент меньше
или равен кандидату, то переходим к следующему элементу. Если очередной
элемент больше кандидата, то заменяем им кандидата и продолжаем сравнения.
Повторять сравнения не нужно, т.к. все предшествующие элементы
были меньше
или равны предыдущему кандидату, а он оказался меньше нового кандидата.
Программа на алгоритмическом языке Паскаль:
program primer;
{ Найти максимальный элемент последовательности, заданной формулой
общего члена, и его номер }
var n :integer;{исходное данное - количество элементов в
последовательности}
i :integer;{номер элемента последовательности}
a :real; {элемент последовательности}
k :real; {максимальный элемент}
ki:integer;{номер максимального элемента}
begin
write('введите число
');
readln(n);
k:=sin(1+n/1);ki:=1; {начальное формирование кандидата и его номера }
i:=2;
while i<=n do
begin a:=sin(i+n/i);
if k<a { Если кандидат меньше очередного элемента, }
then begin k:=a;ki:=i end; { то запомнить его и его номер }
i:=i+1;
end;
write('max=',k:15:2,' номер max=',ki);
end.
Для n=9 получаем ответ: max= 0.94 номер max=6.
Упражнения:
1. Ежедневная выручка лавочника равна половине выручки предыдущего дня,
плюс четверть выручки второго предыдущего дня, плюс 0.15 выручки третьего
предыдущего дня. Определите, через сколько лет разбогатеет лавочник, если по его
понятиям богатство начинается с 1000 $, а выручка первых трех дней составила по
1 $ в день.
2. Прибыль купца за год, начиная с пятого, определяется
формулой
p =
3p 2p 20,
2p p
i
i-1 i-3
i-2 i-4
⋅−+
⋅−+
15,
если i - четное,
если i - нечетное.
                                         116

             else write('Пройденное расстояние ',s,' меньше ',z)
    end.
    Пример 10.37. Найти максимальный элемент и его номер в
последовательности, заданной формулой общего члена a(i)=sin(i+n/i), где i
изменяется от 1 до n.
    Решение. Первый элемент последовательности объявляем кандидатом на
максимум.            Последовательно       сравниваем      все     остальные  элементы
последовательности с кандидатом на максимум. Если очередной элемент меньше
или равен кандидату, то переходим к следующему элементу. Если очередной
элемент больше кандидата, то заменяем им кандидата и продолжаем сравнения.
Повторять сравнения не нужно, т.к. все предшествующие элементы были меньше
или равны предыдущему кандидату, а он оказался меньше нового кандидата.
    Программа на алгоритмическом языке Паскаль:
    program primer;
    { Найти максимальный элемент последовательности, заданной формулой
    общего члена, и его номер }
    var           n :integer;{исходное данное - количество элементов в
                                       последовательности}
                  i :integer;{номер элемента последовательности}
                  a :real; {элемент последовательности}
                  k :real; {максимальный элемент}
                  ki:integer;{номер максимального элемента}
    begin
       write('введите число ');
       readln(n);
       k:=sin(1+n/1);ki:=1; {начальное формирование кандидата и его номера }
       i:=2;
       while i<=n do
       begin a:=sin(i+n/i);
                  if k