Абсолютное значение которых меньше 1



  writeln (‘Poluchen massiv:’);

  k:=0;

  for i:=1 to N do

        if abs(A[i])<1 then

             begin k:=k+1;

                      B[k]:=A[i];

                      write (B[k]:4:1,’ ‘);

                      if k mod 10=0 then writeln;

              end;

 

С помощью процедуры вывода writeln (‘ Poluchen massiv :’) комментируем, что на экран далее будут выведены полученные элементы массива B.

Перед проверкой элементов массива A в переменную k , хранящую количество найденных элементов массива A, абсолютное значение которых меньше 1, помещаем значение 0.

Для формирования массива B из массива А используем цикл с параметром for i :=1 to N do. Внутри цикла проверяем все элементы массива А. Если абсолютное значение проверяемого элемента меньше 1, то значение переменной k увеличиваем на 1, а в элемент B [ k ] массива B помещаем значение найденного элемента A [ i ]. Найденный элемент массива  B [ k ] выводим на экран.

 

  4. Сортировка по возрастанию элементов массива В.

    Используем алгоритм сортировки обменом.

for i:=k downto 1 do

     for j:=1 to i-1 do begin

         if B[j]>B[j+1] then

             begin prom:=B[j];

                  B[j]:= B[j+1];

                  B[j+1]:=prom;

              end ;

          end ;

  writeln ;

 

Смысл данного типа сортировки заключается в сравнении значений двух соседних элементов массива между собой и если элемент с индексом j больше следующего элемента с индексом j +1, то значения меняются местами. Для перемены местами используется буферная переменная prom , в которой сначала сохраняется значение переменной B [ j ] . Затем элементу с номером j присваивается значение следующего элемента B [ j +1]. После этого следующему элементу массива B [ j +1] присваивается значение буферной переменной prom.

 

  5. Вывод отсортированных элементов массива В  

  writeln (‘Uporyadochenij po vozrastaniju massiv:’);

  for i:=1 to k do begin

                                write (B[i]:4:1,’ ‘);

                                if i mod 10=0 then writeln;

                            end ;

С помощью процедуры вывода writeln (‘ Uporyadochenij po vozrastaniju massiv :’)  мы комментируем, что сейчас на экран будут выведены отсортированные по возрастанию элементы массива B. При этом в каждой строке экрана выводится по 10 элементов массива.

 

В конце программы пишем команду readkey для того, чтобы осуществить задержку перед выходом из программы.


Листинг программы

Program  MASSIV;

uses crt;

const N=30;

var A,B: array[1..N] of real;

kol,i,j,k,nom: integer;

sum,prom: real;

 

begin

   clrscr;            

   randomize;

   writeln (‘Ishodnij massiv:’);

   for i:=1 to N do begin

                                A[i]:=round((random*10-5)*10)/10;

     write (A[i]:4:1,’   ‘);

                                 if i mod 10=0 then writeln;

                           end;

  writeln;

 kol:=0;

  sum:=0;

  i:=N;

  while (А[i]<>0) and (i>0) do

      begin

            if A[i]>0 then kol:=kol+1;      

            sum:=sum+A[i]; i:=i-1;  

      end;

  nom:=i;

  if nom=0 then

          begin writeln (‘Nomer elementa = 0: nulevih elementov net’);

      sum:=0;

      kol:=0

end

       else writeln (‘Nomer elementa = 0: ’,nom:2);

  writeln;

  writeln (‘Kol-vo polojitelnih elementov: ’,kol:2);

  writeln;

  writeln (‘Summa elementov: ’,sum:4:1);

  writeln;

  writeln (‘Poluchen massiv:’);

  k:=0;

  for i:=1 to N do

        if abs(A[i])<1 then  

             begin k:=k+1;

                      B[k]:=A[i];

                      write (B[k]:4:1,’   ‘);

                      if k mod 10=0 then writeln;

              end;

for i:=k downto 1 do

    for j:=1 to i-1 do begin

         if B[j]>B[j+1] then

             begin prom:=B[j];

                  B[j]:= B[j+1];

                  B[j+1]:=prom;

              end;

          end;

  writeln;

  writeln;

  writeln (‘Uporyadochenij po vozrastaniju massiv:’);

  for i:=1 to k do begin

                                write (B[i]:4:1,’   ‘);

                                if i mod 10=0 then writeln;

                            end;

   readkey;

end.


Тестирование программы

Приведены результаты выполнения программы на примере различных входных данных.

 

 

 


ЛИТЕРАТУРА

1. Потапова О.Н., Салихова Г.Л., Садриева Л.М., Миндиярова О.Г., Мохова О.М., Фахрутдинова Р.Р., Ханова И.А. Методические указания по выполнению курсовой работы по информатике для студентов очного и заочного отделения всех специальностей. – Альметьевск: тип. АГНИ, 2009г.

2. Иванов А.Ф., Потапова О.Н., Салихова Г. Л., «Информатика. Раздел: Word для начинающих. Лабораторный практикум (для студентов первого курса дневного отделения всех специальностей)». - Альметьевск: тип. АлНИ, 2003г.

3. Павловская Т.А. Программирование на языке высокого уровня. Практикум. – СПб.: Питер, 2006г.

4. Федоренко Ю. Алгоритмы и программы на Turbo Pascal. Учебный курс.- СПб: Питер, 2001г.

5. Гусева А.И. Учимся программировать: Pascal 7.0. Задачи и методы их решения.- М.: «Диалог-МИФИ», 2003г.

 

 


Дата добавления: 2022-07-02; просмотров: 20; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!