Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача на строки

Автор: Capt 18.04.2006 22:19

Помогите реализовать задачку Найти максимальную цифру в строке.
Код программы моей выкладываю:

Код

program ex10;
var  i,k,n,max:integer;
     s:string;

begin
writeln ('Введите строку');
readln(s);

val(s,n,k);
for i:=1 to n do
max:=n[i];
for i:=2 to n do
if n[i]>max then max:=n[i]; write('Макс число''',max);
readln
end.

Автор: Ozzя 18.04.2006 22:43

program ex10;
var i,k,n,max:integer;
s:string;

begin
writeln ('Введите строку');
readln(s);

val(s[1],n,k);
max:=n;

for i:=2 to length(s) do
begin
val(s[i],n,k);
if n>max then
max:=n;
end;
writeln('Макс число''',max);
readln;
end.

Автор: APAL 19.04.2006 3:00

program ex10;
var ch:char;
s:string;
i:Byte;
begin
writeln ('Введите строку');
readln(s);
Ch:=#0;
For i:=1 to Length(St) do
If St[i]>Ch then Ch:=St[i];
writeln('Макс число '+Ch);
readln;
end.

Автор: volvo 19.04.2006 3:12

APAL, а то что коды букв больше кодов цифр - не смущает?
Попробуй прогнать свой пример на строке "123482a"

Тогда уже вот так:

If (s[i] in ['0'..'9']) and (S[i]>Ch) then Ch:=S[i];

Автор: APAL 19.04.2006 3:18

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