Нужно срочно написать программу, до 7 часов утра в Paskale. Помогите пожалуйста. №1...

0 голосов
26 просмотров

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


Информатика (484 баллов) | 26 просмотров
0

Версия Паскаля?

0

DosBox 7.2

0

Первый номер уже не нужен, осталось только второй.

0

DOSBox - это не версия паскаля, а программная оболочка.

0

Borland Paskal Версия 7.0

0

В общем, язык изначально не указан, делаю в каком есть.

0

Вы сделаете в Borland Paskal Версия 7.0?

0

PasCal, буквы К там нет

0

Если нужен Борланд, там только uses Crt; надо добавить в заголовке

Дан 1 ответ
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    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.


(142k баллов)
0

Для второй программы вставить uses Crt; ClrScr; ReadKey в аналогичных местах

0

Inc(i)
until (i>n) or (not desc);
Вы можете объяснить для чего это нужно, пожалуйста?

0

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

0

Понял, не был знаком с такими операциями. Как ваше решение можно отметить как лучшее?

0

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

0

Спасибо ещё раз помощь, очень сильно выручили.

0

Пожалуйста.