Предмет: Информатика, автор: Matematik28

Нужно срочно написать программу, до 7 часов утра в Paskale. Помогите пожалуйста.
№1 Написать программу, которая с помощью функции удаляет из строки последнее слово.
№2 Написать программу, которая с помощью функции выводит сообщение true, если цифры в строке расположены по убыванию и false в противоположном случае.
Если есть вопросы, напишите в коментариях.

Ответы

Автор ответа: Аноним
0
//PascalABC.Net
function DelWord(s:string):string;
var
  i,n:integer;
begin
  n:=length(s);
  i:=n;
  repeat
    if i>=1 then Dec(i);
  until s[i]=' ';
  Delete(s,i+1,n-i);
  DelWord:=s
end;

var
  st:string;
begin
  Write('Введите строку: '); Readln(st);
  Writeln('Результат: ',DelWord(st))
end.

Тестовое решение:
Введите строку: А роза упала на лапу Азора
Результат: А роза упала на лапу

//PascalABC.Net
function DescDigits(s:string):boolean;
var
  desc:boolean;
  i,n:integer;
  c1,c2:char;
begin
  n:=length(s);
  desc:=true;
  c1:='A'; { главное, чтобы символ был "старше" любой цифры }
  i:=1;
  repeat
    c2:=s[i];
    if c2 in ['0'..'9'] then
      if c2<c1 then c1:=c2 else desc:=false;
    Inc(i)
  until (i>n) or (not desc);
  DescDigits:=desc
end;

var
  s:string;
begin
  Write('Введите строку: '); Readln(s);
  if DescDigits(s) then Writeln('true') else Writeln('false')
end.

Тестовое решение:
Введите строку: Пример строки с цифрами 98 по убыванию 7 6,5, так4тоже1можно!
true

Вариант первой программы для Borland Pascal 7.01
uses Crt;
function DelWord(s:string):string;
var
  i,n:integer;
begin
  n:=length(s);
  i:=n;
  repeat
    if i>=1 then Dec(i);
  until s[i]=' ';
  Delete(s,i+1,n-i);
  DelWord:=s
end;

var
  st:string;
begin
  ClrScr; 
  Write('Введите строку: '); Readln(st);
  Writeln('Результат: ',DelWord(st));
  ReadKey
end.


Автор ответа: Аноним
0
В смысле - для чего? это цикл пробега по строке до тех пор, пока либо не будет нарушена последовательность убывания цифр, либо строка не закончится.
Автор ответа: Matematik28
0
Понял, не был знаком с такими операциями. Как ваше решение можно отметить как лучшее?
Автор ответа: Аноним
0
Вы должны дождаться второго и выбрать лучшее из двух. Если его так и не будет, через несколько часов появится возможность отметить лучшее и для одного решения.
Автор ответа: Matematik28
0
Спасибо ещё раз помощь, очень сильно выручили.
Автор ответа: Аноним
0
Пожалуйста.
Похожие вопросы
Предмет: Алгебра, автор: Аноним
Предмет: Геометрия, автор: pavlonia616