В массив A[N] включены натуральные числа. Найти сумму элементов массива, кратных заданному K. - Turbo Pascal

Формулировка задачи:

В массив A[N] включены натуральные числа. Найти сумму элементов массива, кратных заданному K.


textual

Код к задаче: «В массив A[N] включены натуральные числа. Найти сумму элементов массива, кратных заданному K. - Turbo Pascal»

Program LilitK;
uses    Crt;
label
        VV1, VV2, VV3;
type
        Massiv = array [1..100] of word;
var
        a             : Massiv;
        i, m, xc, t,
        w, nach, k, n : word;
        ch            : char;
        chis          : byte;
        Sum           : longint;
 
procedure  OutMass(a  : massiv);
begin
        window(1,w+5,80,24);
        clrscr;chis:=0;Sum:=0;
        writeln('Исходный массив (количество чисел ',n:3,'): ');writeln;
        for i:=1 to n do
          begin
            if a[i] mod k = 0 then begin textcolor(14);inc(chis);Sum:=Sum+a[i];end
                              else textcolor(7);
            write(a[i]:7,' ');
          end;writeln;textcolor(7);
        if n mod 10 <> 0 then writeln;
        If chis>0 then
           begin
             write('Кратные числу ');textcolor(10);write(k);textcolor(7);
             write(' выделены желтым цветом, таких чисел: ');textcolor(12);
             writeln(chis);textcolor(7);
             write('Их сумма равна ');textcolor(14);
             writeln(Sum);textcolor(7);
           end
                  else
           writeln('Кратных числу',k:5,' в исходном массиве НЕТ');
end;
 
BEGIN
        clrscr;n:=0;k:=0;w:=4;t:=0;
        window(1,1,80,w);textcolor(15);textbackground(2);clrscr;
        writeln('                 З а д а н и е');textcolor(14);
        writeln('   В массив A[N] включены натуральные числа.');
        write  ('   Найти сумму элементов массива, кратных заданному K.');
        textcolor(7);textbackground(0);
VV1:
        window(1,w+2,80,w+3);gotoxy(1,1);
        write  ('Введите количество чисел массива (от 1 до 100)  ');
        textcolor(15);write('<ESC> - выход');textcolor(15);write(' = ');
        m:=0;t:=n;n:=0;xc:=wherex;ClrEol;textcolor(7);
        repeat
         ch:=readkey;
         case ch of
              #0      : begin ch:=readkey;continue;end;
              #27     : goto VV3;
              #9      : begin
                         if t>0 then
                          begin
                            n:=t;gotoxy(xc,wherey);ClrEol;write(n);goto VV2;
                          end;
                        end;
              #8      : begin
                         if (m>0) then
                          begin
                            n:=n div 10;dec(m);
                            gotoxy(wherex-1,wherey);write(#255);
                            gotoxy(wherex-1,wherey);
                          end
                                  else
                            continue;
                        end;
              '0'..'9': begin
                         if not((n=0)and(ch='0')) then
                          if (n*10+ord(ch)-48) <= 100 then
                           begin
                             inc(m);n:=n*10+ord(ch)-48;
                             textcolor(7);ClrEol;write(ch);
                           end;
                        end;
         end;
        until (ch=#13)and(n>0);
 
        for i:=1 to n do
          begin
            a[i]:=random(1000)+1;
          end;
        if k>0 then
           begin OutMass(a);goto VV1;end;
VV2:
        window(1,w+2,80,w+3);gotoxy(1,2);
        write('Введите число проверки кратности (от 1 до 1000) ');
        textcolor(15);write('<ESC> - выход');textcolor(7);write(' = ');
        m:=0;t:=k;k:=0;xc:=wherex;ClrEol;textcolor(7);
        repeat
         ch:=readkey;
         case ch of
              #0      : begin ch:=readkey;continue;end;
              #27     : goto VV3;
              #9      : begin
                         if t>0 then
                          begin
                            k:=t;gotoxy(xc,wherey);ClrEol;write(k);goto VV1;
                          end;
                        end;
              #8      : begin
                         if (m>0) then
                          begin
                            k:=k div 10;dec(m);
                            gotoxy(wherex-1,wherey);write(#255);
                            gotoxy(wherex-1,wherey);
                          end
                                  else
                            continue;
                        end;
              '0'..'9': begin
                         if not((k=0)and(ch='0')) then
                          if (k*10+ord(ch)-48) <= 1000 then
                           begin
                             inc(m);k:=k*10+ord(ch)-48;
                             textcolor(7);ClrEol;write(ch);
                           end;
                        end;
         end;
        until (ch=#13)and(k>0);
        OutMass(a);
        if nach=0 then
           begin
             nach:=1;window(1,25,80,25);textcolor(13);
             write  ('<Tab> - переход между вводом размерности и кратности   ');
             write  ('<ESC> - выход');
             textcolor(7);
           end;
        goto VV2;
VV3:
        window(1,25,80,25);ClrEol;textcolor(11);
        write('  Программа закончила свою работу, нажмите любую клавишу ...');
        Repeat Until KeyPressed;
END.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

11   голосов, оценка 3.727 из 5

Источник
Похожие ответы