|
Решение типовых задач на строковые массивыРассмотрим простейшие типовые задачи на строковые массивы. 1) Поиск максимального и минимального элементов массива.
|
Программа (QBasic). |
Программа (Pascal). |
INPUT "Сколько слов"; n DIM mas(n) AS STRING FOR i = 1 TO n PRINT "Введите след. слово "; INPUT mas(i) NEXT i max$ = "": nm = 0 FOR i = 1 TO n IF LEN(mas(i)) > nm THEN max$ = mas(i) nm = LEN(mas(i)) END IF NEXT PRINT "Слово максимальной длины - "; max$, nm |
Var i,n,nm:integer; max: string; mas: array[1..100] of string; Begin Write ('Сколько слов?'); readln( n); FOR i := 1 TO n Do Begin Write ('Введите след. слово '); Readln (mas[i]); End; max:= ''; nm := 0; FOR i := 1 TO n do IF Length(mas[i]) > nm THEN Begin max := mas[i]; nm := Length(mas[i]); END; Writeln ('Слово максимальной длины - ', max) END. |
Программа (QBasic). |
Программа (Pascal). |
INPUT "Сколько слов"; n DIM mas(n) AS STRING FOR i = 1 TO n PRINT "Введите след. слово "; INPUT mas(i) NEXT i INPUT "Буква "; b$ k = 0 FOR i = 1 TO n IF LEFT$(mas(i), 1) = b$ THEN k = k + 1 NEXT PRINT "Слов на букву "; b$; k |
Var i,n,k:integer; b: string; mas:array[1..100] of string; Begin Write('Сколько слов'); Readln(n); FOR i := 1 TO n do begin Write ('Введите след. слово '); Readln (mas[i]) end; Write ('Введите букву '); Readln (b); k := 0; FOR i := 1 TO n do IF mas[i][1] = b THEN k := k + 1; Writeln ('Слов на букву ', b,' - ', k); End. |
Программа (QBasic). |
Программа (Pascal). |
INPUT "Сколько слов"; n DIM mas(n) AS STRING FOR i = 1 TO n PRINT "Введите след. слово "; INPUT mas(i) NEXT i
k = 0 FOR i = 1 TO n sl$ = "" FOR j = 1 TO LEN(mas(i)) b$ = MID$(mas(i), j, 1) sl$ = b$ + sl$ NEXT j IF sl$ = mas(i) THEN k = k + 1: PRINT mas(i) NEXT
PRINT "Слов-палиндромов "; k |
Var s:array[1..100] of String; s1,s2:String[1]; n,i,j,m,kp:Integer; pr:boolean; Begin Write('Enter number: '); ReadLn(n); For i:=1 To n Do begin Write('Word - '); Readln(s[i]); end; For i:=1 To n Do Begin pr:=false; m:=length(s[i]) div 2; For j:=1 to m do begin s1:=s[i][j]; s2:=s[i][Length(s[i])+1-j]; If s1<>s2 Then begin pr:=true;Break; End; End; If not(pr) then begin inc(kp); Writeln(s[i]); End; end; Writeln(kp,' words-palindromov'); END. |