Вывести все числа из текста в порядке следования - Turbo Pascal

Узнай цену своей работы

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

Вот программа:
Помогите пожалуйста. Из данного текста я выделил числа, но как теперь их упорядочить по убыванию? Процедурой val.

Решение задачи: «Вывести все числа из текста в порядке следования»

textual
Листинг программы
procedure obrabotka(x:mas; p:string);
   var i,h:word; z:boolean;
  begin
  i:=1;
  s:=true;
  max:=-f;
  while s do begin
             z:=false;
  for i:=1 to j do begin
                           val(x[i],f,k);
                           if k=0 then
                                    if f>max then begin
                                                max:= f;
                                                maxi:= i;
                                                z:=true;
                                               end;
                              end;
                   if z=false then s:=false
                              else begin
                                    writeln(x[maxi]);
                                    x[maxi]:='';
                                   end;
             max:=-max;
             maxi:=0;
           end;
  end;

Объяснение кода листинга программы

  1. В процедуре obrabotka объявлены три переменные: i, h и z. Переменная i инициализируется значением 1, переменная h устанавливается в значение -f, а переменная z устанавливается в значение true.
  2. Затем начинается цикл while, который выполняется до тех пор, пока значение переменной s остается истинным. Внутри цикла устанавливается значение переменной z в false.
  3. Далее следует вложенный цикл for, который выполняется от 1 до j (предполагается, что j - это некоторая величина). Внутри цикла выполняется вызов функции val(x[i],f,k), где x[i] - это i-ый элемент массива x, f - это переменная, которая получает значение, соответствующее i-ому элементу массива x, а k - это переменная, которая получает значение, соответствующее i-ому элементу массива x, если этот элемент является числом.
  4. Если k равно нулю, то значение переменной f увеличивается на максимальное значение, которое было найдено до этого (это значение хранится в переменной max). Также устанавливается значение переменной maxi равным i. Значение переменной z устанавливается в true.
  5. После окончания вложенного цикла for, если значение переменной z остается false, то значение переменной s устанавливается в false. Иначе, выводится значение переменной maxi (то есть, выводится последний найденный максимум). Значение переменной maxi устанавливается в 0. Значение переменной max устанавливается в -max.

Оцени полезность:

12   голосов , оценка 4.333 из 5
Похожие ответы