Задана последовательность из n вещественных чисел. определить сумму и количество элементов последовательности, меньших заданного значения d. : средствами языка pascal напишите программу для решения поставленной .
Приступая к разработке каждой программы ПС, следует иметь в виду, что она, как правило, является большой системой, поэтому мы должны принять меры для ее упрощения. Для этого такую программу разрабатывают по частям, которые называются программными модулями [7.1, 7.2]. А сам такой метод разработки программ называют модульным программированием [7.3]. Программный модуль - это любой фрагмент описания процесса, оформляемый как самостоятельный программный продукт, пригодный для использования в описаниях процесса. Это означает, что каждый программный модуль программируется, компилируется и отлаживается отдельно от других модулей программы, и тем самым, физически разделен с другими модулями программы. Более того, каждый разработанный программный модуль может включаться в состав разных программ, если выполнены условия его использования, декларированные в документации по этому модулю. Таким образом, программный модуль может рассматриваться и как средство борьбы со сложностью программ, и как средство борьбы с дублированием в программировании (т.е. как средство накопления и многократного использования программистских знаний).Модульное программирование является воплощением в процессе разработки программ обоих общих методов борьбы со сложностью (см. лекцию 3, п. 3.5): и обеспечение независимости компонент системы, и использование иерархических структур. Для воплощения первого метода формулируются определенные требования, которым должен удовлетворять программный модуль, т.е. выявляются основные характеристики “хорошего” программного модуля. Для воплощения второго метода используют древовидные модульные структуры программ (включая деревья со сросшимися ветвями).
Наибольшее возможное значение выражения (F+O+X+E)*(F*R*D*D) = 236196. Прилагаю небольшой скрипт на Python. Простенькая задачка на корректную организацию перебора с использованием вложенных циклов:
max_num = 0 for f in xrange(10): for o in xrange(10): for x in xrange(10): for e in xrange(10): for r in xrange(10): for d in xrange(10): b = f*r*d*d if b == 0: continue num = (f + o + x + e) * b if num > max_num: max_num = num
print "Maximum value of (F+O+X+E)*(F*R*D*D) is: %i" % max_num
Решение можно получить гораздо проще, если догадаться, что наибольшее значение выражения достигается, когда сумма F+O+X+E и произведение F*R*D*D являются максимальными. Это одновременно происходит, когда все цифры равны 9: (9+9+9+9)*9*9*9*9 = 236196
Program zadacha;
Const n = 10;
Type mas=array[1..n] of integer;
Var s,i,k,d:integer;
m:mas;
Begin
s:=0;
k:=0;
readln(d);
For i:=1 to n do
read(m[i]);
For i:=1 to n do
if m[i]<d then begin
s:=s+m[i];
k:=k+1;
end;
writeln('Сумма чисел < d = ',s,' Колиество чисел < d = ',k);
end. (Это решение для случая если вы вводите сразу весь массив чисел)
Program zadacha;
Const n = 10;
Var s,i,k,d,m:integer;
Begin
s:=0;
k:=0;
readln(d);
for i:=1 to n do begin
readln(m);
if (m < d) then begin
s:=s+m14;
k:=k+1;
end;
end;
writeln('Сумма чисел < d = ',s,' Колиество чисел < d = ',k);
end. (А это решение для того случая когда вы вводите элементы по одному )