• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль, строки

hamchuk250894

Новые
Регистрация
9 Дек 2012
Сообщения
45
Реакции
0
Баллы
0
Паскаль, строки

Помогите пожалуйста написать код к такой программе. Нужно определить максимальное число, не входящее в строку. В данном случае это число будет 91.
 

Вложения

  • ABCD0001.webp
    ABCD0001.webp
    22.3 KB · Просмотры: 106
строка может состоять из любых символов и чисел.
 
Помогите пожалуйста, срочно надо.
 
нужно чтобы программа определяла максимальное число не входящее в строку, в свою очередь строка может состоять из любых символов и чисел. Допустим если в строке максимальное число будет 92 то максимальное не входящее в строку будет 91. Помогите пожалуйста, до завтра очень надо сделать.
 
Смотрю уже второй день, и не понимаю смысла задания. То есть нужно определить наибольшее число, меньшее максимального входящего в строку, но чтобы само оно в строку не входило. Так, что ли?
 
Получите:
Код:
Var
 S,S1:String;
 A:Array [1..255] of Word;
 i,j,N:Byte;
 Code:Integer;
 Max,SubMax:Word;
 b:boolean;

Begin
 Writeln('Enter the string:');
 Readln(S);
 N:=0;
 i:=0;
 Repeat
  repeat
   Inc(i);
  until ((Ord(S[i])>47) and (Ord(S[i])<58)) or (i>=Length(S));
  If i<Length(S) then
   begin
    Inc(N);
    S1:='';
    S1:=S1+S[i];
    repeat
     Inc(i);
     if (Ord(S[i])>47) and (Ord(S[i])<58) then S1:=S1+S[i];
    until (Ord(S[i])<48) or (Ord(S[i])>57) or (i>=Length(S));
    Val(S1,A[N],Code);
   end;
 Until i>=Length(S);
 Max:=A[1];
 For i:=2 to N do
  If A[i]>Max then Max:=A[i];
 Repeat
  b:=true;
  Dec(Max);
  for j:=1 to N do
   if Max=A[j] then b:=false;
 Until b;
 Writeln('Result: ',Max);
 Readln;
End.
 
спасибо большое.
Да пожалуйста. Единственно, предупреждаю: я ограничился целыми положительными числами, потому как обрабатывать знаки да разделительные точки уж очень муторно.
 
Владимир, программка немного неверно работает. Допустим я ввожу строку: 10с11а12g и он мне ответ выдает 11, а должно быть 9. И даже допустим введем строку: 10с11f он ответ выдает 10. Если не сложно исправьте пожалуйста.
 
Владимир, программка немного неверно работает. Допустим я ввожу строку: 10с11а12g и он мне ответ выдает 11, а должно быть 9. И даже допустим введем строку: 10с11f он ответ выдает 10. Если не сложно исправьте пожалуйста.
Виноват. Даже не понимаю, как ошибка проскочила: ведь тестировал же... Значит, так:
Пятую строку снизу

if Max=A then b:=false;

исправьте на

if Max=A[j] then b:=false;
 
А что если нужно определить не число, а цифру?
 
А что если нужно определить не число, а цифру?
Подробнее, пожалуйста. Количество цифр в числах в программе не регламентируется, числа могут быть и однозначные, если Вы об этом.
 
наибольшее число, не входящее в строку от 0 до 9
 
наибольшее число, не входящее в строку от 0 до 9
Код:
Var
 S:String;
 A:Array [1..255] of Byte;
 i,j,N:Byte;
 Code:Integer;
 Max:Byte;
 b:boolean;

Begin
 Writeln('Enter the string:');
 Readln(S);
 N:=0;
 i:=0;
 Repeat
  repeat
   Inc(i);
  until ((Ord(S[i])>47) and (Ord(S[i])<58)) or (i>=Length(S));
  If i<=Length(S) then
   begin
    Inc(N);
    Val(S[i],A[N],Code);
   end;
 Until i>=Length(S);
 Max:=A[1];
 For i:=2 to N do
  If A[i]>Max then Max:=A[i];
 Repeat
  b:=true;
  Dec(Max);
  for j:=1 to N do
   if Max=A[j] then b:=false;
 Until b or (Max=0);
 If b then
  Writeln('Result: ',Max)
 else
  Writeln('No such figure');
 Readln;
End.
 
Оуу Владимир, спасибо!! не ожидал такого быстрого ответа
 
Назад
Сверху