Помогите пожалуйста!) Напечатать программу в паскале...... Пожалуйста...Срочно...Завтра крайний срок сдачи...Помогите...
Дан массив строк без пробелов. Напечатать строки, вторая половина которых не содержит цифры.
Answers & Comments
ussrex
Program Strok; uses crt; const number=['0','1','2','3','4','5','6','7','8','9']; var A:array[1..10] of string; i,j,k:integer; s:string; begin {Ввод элементов массива} for i:=1 to 10 do begin write('Введите ',i,' элемент массива: '); readln(a[i]) end; {проверка условий} for i:=1 to 10 do {перебираем элементы массива} begin k:=0; {задаем триггер} s:=a[i]; for j:=length(s) div 2+1 to length(s) do if s[j] in number then k:=1; {Pascal позволяет обращаться со строковыми переменными, как с массивами символов, проверяем строку со второй половины на "вшивость", и, если встретилась цифра, вызываем срабатывание тригера} if k=0 then writeln(s) end; readln end.
1 votes Thanks 1
ProZaza
А почему в константе, 0,1,2,3,4,5,6,7,8,9 ???
ussrex
Это множество символов, означающих цифры. Если написать просто [0..9] то получим множество не символов, а чисел. Паскаль нас не поймет
ussrex
Пардоньте, я мог косанул слегка: константа должна быть задана такой строчкой: const number: set of '0'..'9' = ['0'..'9']. Исправьте у себя пожалуйста!
Answers & Comments
uses crt;
const number=['0','1','2','3','4','5','6','7','8','9'];
var A:array[1..10] of string;
i,j,k:integer;
s:string;
begin
{Ввод элементов массива}
for i:=1 to 10 do
begin
write('Введите ',i,' элемент массива: ');
readln(a[i])
end;
{проверка условий}
for i:=1 to 10 do {перебираем элементы массива}
begin
k:=0; {задаем триггер}
s:=a[i];
for j:=length(s) div 2+1 to length(s) do
if s[j] in number then k:=1; {Pascal позволяет обращаться со строковыми переменными, как с массивами символов, проверяем строку со второй половины на "вшивость", и, если встретилась цифра, вызываем срабатывание тригера}
if k=0 then writeln(s)
end;
readln end.