sales5947
?>

Решите в паскале 1)дана непустая последовательность целых чисел, оканчивающаяся нулем. найти: а) сумму всех чисел последовательности, больших числа x; б) количество всех четных чисел последовательности. 2)дана последовательность ненулевых целых чисел, оканчивающая нулем. оп- ределить, сколько раз в этой последовательности меняется знак. (например, в последовательности 10, –4, 12, 56, –4 знак меняется 3 раза.)

Информатика

Ответы

АльбертовичБерезин58
Program n1; var a,k,sum,x: integer; begin write('введите число x: '); readln(x); sum: =0; k: =0; writeln('введите непустую последовательность целых чисел, которая оканчивается нулем: '); read(a); while a < > 0 do  begin    if a> x then sum: =sum+a;     if a mod 2 = 0 then k: =k+1;     read(a); end; writeln('сумма всех чисел последовательности, больших числа x: ',sum); writeln('количество всех четных чисел последовательности: ',k); end.program n2; var a,b,k: integer; beginwriteln('введите последовательность ненулевых целых чисел, которая оканчивается нулем: '); read(a); while a< > 0 dobegin    read(b);     if a*b< 0 then k: =k+1;     a: =b; end; writeln(k,' раз(а) в введенной последовательности меняется знак'); end.
ludmila-malev280

решал на паскале. 

первая: var i: integer; s: string; a: array[1..3] of integer; t.q,z: boolean; beginreadln(i); q: =false; t: =false; a[1]: =i mod 10; a[2]: =i div 10 mod 10; a[3]: =i div 10 div 10; for i: =1 to 3 do

beginif a[i]=4 then

q: =true;

if (a[i]=7) and (q=true) then t: =true;

if a[i]=7 then z: =true;

end;  

if t=true then writeln('vhodyat oba) else if (q=true) and (z=false) then writeln('vhodit 4') else if (q=false) and (z=true) then writeln('vhodut 7'); readln; end.

 

 

вторая: var a,b,c,min: integer; beginmin: =32000; readln(a,b,c); if a< min then min: =a; if b< min then min: =b; if c< min then min: =c; writeln ('minimalnoe - ',min); readln; end.

 

 

третья:

var a,b,c: integer; x,y,d: real; beginreadln(a,b,c); d: =b*b-(4*a*c); if d=0 thenbeginx: =(-b/2*a); writeln('one root: ',x: 0: 0); end; if d> 0 thenbeginx: =(-b+sqrt(d))/2*a; y: =(-b-sqrt(d))/2*a; if y> x thenwriteln('two roots: ',x: 0: 0,' ',y: 0: 0) else writeln('two roots: ',y: 0: 0,' ',x: 0: 0); end; if d< 0 then writeln('no roots'); readln; end.:

 

 

 

 

maksteks

прямой способ счета:

применяем алгоритм в первый раз

14414400

применяем алгоритм во второй раз

14414400144144000000

считаем количество нулей

8

 

логический:

в исходном числе 2 четные цифры (4 и 4), значит после выполнения алгоритма в первый раз в конце допишется 2 нуля. когда мы выполним алгоритм во второй раз, то количество четных чисел увеличится в 2 раза, т.к. мы дважды записывали исходное число. таким образом, ченых чисел станет 4, а следовательно и допишется в конце 4 нуля. плюс не забываем о тех двух нулях, которые получились после певого выполнения алгоритма. а так как мы дважды переписали это число, то количество нулей стало 4. складываем: 4 образовалось полсе записи дважды числа и 4 за счет дописывания по количеству четных чисел. итого: 8

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Решите в паскале 1)дана непустая последовательность целых чисел, оканчивающаяся нулем. найти: а) сумму всех чисел последовательности, больших числа x; б) количество всех четных чисел последовательности. 2)дана последовательность ненулевых целых чисел, оканчивающая нулем. оп- ределить, сколько раз в этой последовательности меняется знак. (например, в последовательности 10, –4, 12, 56, –4 знак меняется 3 раза.)
Ваше имя (никнейм)*
Email*
Комментарий*