Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Паскаль, строки (http://www.tehnari.ru/f41/t81980/)

hamchuk250894 11.12.2012 14:53

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

hamchuk250894 11.12.2012 14:54

строка может состоять из любых символов и чисел.

hamchuk250894 12.12.2012 13:16

Помогите пожалуйста, срочно надо.

hamchuk250894 12.12.2012 14:00

нужно чтобы программа определяла максимальное число не входящее в строку, в свою очередь строка может состоять из любых символов и чисел. Допустим если в строке максимальное число будет 92 то максимальное не входящее в строку будет 91. Помогите пожалуйста, до завтра очень надо сделать.

Vladimir_S 12.12.2012 14:27

Смотрю уже второй день, и не понимаю смысла задания. То есть нужно определить наибольшее число, меньшее максимального входящего в строку, но чтобы само оно в строку не входило. Так, что ли?

hamchuk250894 12.12.2012 14:35

да, именно так

Vladimir_S 12.12.2012 15:04

Цитата:

Сообщение от hamchuk250894 (Сообщение 832467)
да, именно так

Получите:
Код:

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.


hamchuk250894 12.12.2012 15:10

спасибо большое.

Vladimir_S 12.12.2012 15:15

Цитата:

Сообщение от hamchuk250894 (Сообщение 832481)
спасибо большое.

Да пожалуйста. Единственно, предупреждаю: я ограничился целыми положительными числами, потому как обрабатывать знаки да разделительные точки уж очень муторно.

hamchuk250894 12.12.2012 15:59

Хорошо, учту.


Часовой пояс GMT +4, время: 12:19.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.