Дайте відповіді на запитання 1. Для розв'язування яких задач опрацювання табличної величини
можна використати наведені фрагменти?
a) s:= 0; for i:=1 to 10 do s := s + a[i];
б) k := 0; for i:=1 to 10 do If a[i] < 0 Thеn k:= k + 1;
в) k := 0; for i:=1 to 10 do If a[i] = x Thеn k:= k + 1;
2. З якою метою у наведеному фрагменті використано змінну f?
f:= false:
for i:=1 to 10 do
If a[i] = x
Then begin
f:= true; break;
end;
Який тип цієї змінної? Чи можна було б із цією самою метою ви-
користати змінну іншого типу? Відповідь поясніть.
Объяснение:
1.
// описание функции, ее можно менять
function func(in_x:real):real;
begin
func:=-2*in_x*in_x*in_x*in_x*in_x + 4;
end;
var
h:real;
x:real;
a, b:real;
count_otr:integer;
begin
writeln('Input a = ');
readln(a);
writeln('Input b = ');
readln(b);
writeln('Input h = ');
readln(h);
count_otr:=0;
x:=a;
while (x <= b) do begin
{writeln('x = ', x:3:3, ' f = ', func(x));}
if (func(x)<0) then count_otr:=count_otr + 1;
x:=x+h;
end;
writeln(count_otr);
readln;
end.
2.
function func(in_x:real):real;
begin
func:=-2*in_x*in_x*in_x*in_x*in_x + 4;
end;
var
h:real;
x:real;
a, b:real;
f_min, x_min:real;
begin
writeln('Input a = ');
readln(a);
writeln('Input b = ');
readln(b);
writeln('Input h = ');
readln(h);
x_min:=a;
f_min:=func(a);
x:=a+h;
while (x <= b) do begin
{writeln('x = ', x:3:3, ' f = ', func(x));}
if (func(x)<f_min) then x_min:=x;
x:=x+h;
end;
writeln('x min = ', x_min:3:3, ', f min = ', func(x_min):3:3);
readln;
end.
Поскольку вы не написали на каком языке должна быть программа, я напишу псевдокодом с комментариями.
var sum = getString("dividents.txt"); //изначально текстовый тип данных, первая строка в файле
var content; //переменная в которую будут помещаться строки файла поочерёдно
var count;//счётчик строк
var nowInv = [ ];//массив для разделения значений имени и процента инвестора
while(content = getString(''dividents.txt'')){//заполнение count
count++;
if(count >= 2){//если считывается после первой строки
nowInv = content.split("-");//разделение
writeln(nowInv[0], ": ", (int)sum/100*nowInv[1]);
}
}