СИМВОЛЬНЫЕ МАССИВЫ
Задача 1:
Задача 2:
Задача 3:
Задача 4(самостоятельно)
Задача 5:
Задача 6:
Задача 7:
Задача 8:
117.50K
Категория: ПрограммированиеПрограммирование

Символьные массивы

1. СИМВОЛЬНЫЕ МАССИВЫ

2.

Кроме символьных величин в Паскале
могут использоваться символьные
массивы, элементами которых
являются группы символов.
Символьный массив отличается от
числового только значением входящих в
него элементов: числовой массив в
качестве элементов имеет числовые
выражения, символьный – строковые
(символьные).

3.

Примером одномерного массива служит
список класса, где фамилия и имя
ученика – элементы массива, а размер
массива – число учеников в классе.
Ввод и вывод элементов символьного
массива осуществляются аналогично
вводу и выводу элементов числового
массива.
После того, как данные введены в
массив, ими можно оперативно
распоряжаться. Доступен любой
элемент массива. Достаточно только
указать его индекс.

4. Задача 1:

Введите массив строк из N элементов,
напечатайте элементы массива в
прямом и обратном порядке.

5.

Program prim1;
uses crt;
const n=3;
var a: array[1..n] of string;
i: integer;
begin
clrscr;
for i:=1 to n do begin
write (i,’ ‘); readln (a[i])
end;
writeln;
for i:=1 to n do begin
write (a[i],’ ‘,a[n+1-i])
end;
readln
end.

6. Задача 2:

Расположить по алфавиту введенные
слова, записанные латинскими буквами.

7.

Program prim2;
uses crt;
const n=3;
var a: array[1..n] of string; r: string; i,j: integer;
begin
clrscr;
for i:=1 to n do begin
write (i,’ ‘); readln (a[i])
end;
for i:=1 to n-1 do begin
for j:=i+1 to n do
if a[i]>a[j] then begin
r:=a[i]; a[i]:=a[j]; a[j]:=r
end;
end;
for i:=1 to n do
writeln (a[i]);
readkey
end.

8. Задача 3:

Ввести массив слов A(N) и найти в нем
максимальную по длине строку.

9.

Program prim3;
uses crt;
const n=3;
var a: array[1..n] of string;
r: string; i,j: integer;
begin
clrscr;
for i:=1 to n do begin
write (i,’ ‘); readln (a[i]);
end;
max:=length(a[1]);
for i:=1 to n do begin
if max<=length(a[i]) then max:=length(a[i]);
r:=a[i]
end;
writeln (max, ‘ ‘,r)
readkey
end.

10. Задача 4(самостоятельно)

Ввести массив строк A(N) и упорядочить его
по возрастанию длин строк.
Решение: в программе примера 2 заменить строку 10 на:
if length (a[i])>length (a[j]) then
begin
r:=a[i]; a[i]:=a[j]; a[j]:=r
end;

11. Задача 5:

Перепишите фамилии учащихся в
случайном порядке.
Решение: Зададим массив B(N) фамилиями
учащихся. Затем найдем N целых чисел в
пределах от 1 до N и занесем их в массив A.
Далее распечатаем последовательно
элементы массива B(A(I)).

12.

Program prim5;
uses crt;
const n=3;
var a: array[1..n] of integer;
b: array[1..n] of string;
i,k,x: integer;
labal 50;
begin
clrscr;
randomize;
for i:=1 to n do begin
write (i,’ ‘); readln (b[i])
end;
writeln;
a[1]:=trunc(random(n))+1; k:=1;
50: x:=trunc(random(n))+1;
for i:=1 to k do
if x=a[i] then goto 50;
k:=k+1; a[k]:=x;
if k<n then goto 50;
for i:=1 to n do
writeln (i,’ ‘,b[a[i]]);
readkey
end.

13. Задача 6:

Дана строка, состоящая из нескольких слов,
между словами стоит один пробел, в конце
предложения – точка. Подсчитать количество
слов и вывести на экран только те из них,
которые начинаются с буквы «а» (слов не
больше 30).
Решение: разобьем предложение на
отдельные слова, и каждое будем хранить
как элемент массива.

14.

Program prim6;
uses crt;
const n=30;
var b: array[1..n] of string;
st: string[255]; k,i: integer;
begin
clrscr;
write (‘st=‘); readln (st);
k:=1;
{Пока не встретится пробел, формируем очередное слово k, прибавляя по
одной букве}
for i:=1 to length(st) do
if st[i]<>’ ‘ then b[k]:=b[k]+st[i] else
{Если это не последний символ, то увеличиваем счетчик слов и начинаем
формировать соответствующий элемент массива}
if i<>length(str) then begin
k:=k+1; b[k]:= ‘’
end;
writeln (‘k=‘,k);
{Просматриваем все слова, если первый символ очередного слова равен букве
«а», то выводим его}
for i:=1 to k do
if copy(b[i],1,1)=‘a’ then write (i,’-‘,b[i],’ ‘)
readln
end.

15. Задача 7:

Если длина строки нечетное число, то
удалить среднюю букву.
Решение: Пусть k – это длина строки,
если оно нечетное, то надо удалить
средний символ, а его номер равен kDiv2+1.

16.

Program prim7;
uses crt;
var k: integer; st: string;
begin
clrscr;
write (‘st=‘); readln (st);
k:=length(st);
if k mod 2=1 then delete (st, kdiv2+1,1);
writeln(st);
readln
end.

17. Задача 8:

Подсчитать сумму всех цифр данного
предложения.

18.

Program prim8;
uses crt;
var d,i,k,n: integer; st: string;
begin
clrscr;
write (‘st=‘); readln (st);
k:=length(st);
n:=0;
for i:=1 to k do begin
val(st[i],d,k);
if k=0 then n:=n+d
end;
writeln(‘n=‘,n);
readln
end.
English     Русский Правила