![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
1. Дана строка, состоящая из слов, разделенных одним пробелом. Вывести строку, состоящую из этих же слов, расположенных в алфавитном порядке.
2. Дан текст (массив строк) в котором каждая строка содержит до 255 цифр. Составить программу, которая для каждой строки определяет, является ли число "палиндромом" (читается одинаково в одну и в другую сторону). Скоро конец семестра, а сдать нужно чем поскорее |
|
#2
|
|||
|
|||
|
1.
Код:
program split_and_sort;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows,
Classes,
StrUtils;
function ConvertAnsiToOEM(const S: String): String;
begin
SetLength(Result, Length(S));
CharToOEM(PChar(S), PChar(Result));
end;
var
Text: String;
i : Integer;
S : TStringList;
begin
Text := 'Дана строка состоящая из слов разделенных одним пробелом';
S := TStringList.Create;
try
S.Delimiter := #32;
S.DelimitedText := Text;
S.Sort;
for i := 0 to S.Count - 1 do
Writeln(ConvertAnsiToOEM(S[i]));
finally
FreeAndNil(S);
end;
Readln;
end.2. Код:
program Palindroms;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
STR_COUNT = 3;
ResStr: Array [False..True] of String = ('No ',
'Yes');
var
Data : Array [1..STR_COUNT] Of String;
i, j, k : Integer;
YesNo : Boolean;
begin
Data[1] := '689986';
Data[2] := '12344';
Data[3] := '23455432';
for i := Low(Data) to High(Data) do begin
j := 1;
k := Length(Data[i]);
YesNo := True;
while (j <= k) and YesNo do begin
YesNo := Data[i][j] = Data[i][k];
j := j + 1;
k := k - 1;
end;
Writeln(ResStr[YesNo], ' ', Data[i]);
end;
Readln;
end. |