|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
2 задачки по строкам, условия внутри
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. |