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


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

Задача 1:
- Введите массив строк из N элементов, напечатайте элементы массива в прямом и обратном порядке.
![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.](https://fsd.videouroki.net/html/2018/04/04/v_5ac488cf49b4d/img4.jpg)
- 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.

Задача 2:

- 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.

Задача 3 :
- Ввести массив слов A(N) и найти в нем максимальную по длине строку.
![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 r:=a[i] end; writeln (max, ‘ ‘,r) readkey end.](https://fsd.videouroki.net/html/2018/04/04/v_5ac488cf49b4d/img8.jpg)
- 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
r:=a[i]
end;
writeln (max, ‘ ‘,r)
readkey
end.

Задача 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;

Задача 5 :
- Перепишите фамилии учащихся в случайном порядке.
- Решение: Зададим массив B(N) фамилиями учащихся. Затем найдем N целых чисел в пределах от 1 до N и занесем их в массив A . Далее распечатаем последовательно элементы массива B(A(I)) .
![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 for i:=1 to n do writeln (i,’ ‘,b[a[i]]); readkey end.](https://fsd.videouroki.net/html/2018/04/04/v_5ac488cf49b4d/img11.jpg)
- 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
for i:=1 to n do
writeln (i,’ ‘,b[a[i]]);
readkey
end.

Задача 6 :
- Дана строка, состоящая из нескольких слов, между словами стоит один пробел, в конце предложения – точка. Подсчитать количество слов и вывести на экран только те из них, которые начинаются с буквы «а» (слов не больше 30).
- Решение: разобьем предложение на отдельные слова, и каждое будем хранить как элемент массива.
![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 ilength(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.](https://fsd.videouroki.net/html/2018/04/04/v_5ac488cf49b4d/img13.jpg)
- 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 ilength(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.

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

- 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.

Задача 8 :
![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.](https://fsd.videouroki.net/html/2018/04/04/v_5ac488cf49b4d/img17.jpg)
- 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.