Задан список из десяти городов. Поменять местами название первого города и города,начинающегося с буквы К
В задаче дан список из 10 городов, в котором три города на букву «К», это город — «Краснодар», «Крымск» и «Керчь». Необходимо в списке поменять местами первый город на букву «К» — это Краснодар и заменить его на первый город в списке — это Анапа. При этом города Крымск и Керчь, которые в списке на букву «К» заменять н нужно.
Подробное решение на языке «Паскаль» для данного урока представлено ниже:
//Задан список из десяти городов. Поменять местами название первого города и первого города,начинающегося с буквы "К"
Program city;
const
n=10;
var a:array[1..n] of string[20];
i,p,imax,imin: integer;
k_city,one_city:string;
begin
for i:=1 to n do
begin
a[1]:='Анапа';
a[2]:='Москва';
a[3]:='Санкт-Петербург';
a[4]:='Вологда';
a[5]:='Ялта';
a[6]:='Краснодар';
a[7]:='Крымск';
a[8]:='Владивосток';
a[9]:='Керчь';
a[10]:='Геленджик';
end;
one_city:=a[1];//запоминаем название первого города
writeln('Список городов перед заменой:');
for i:=1 to n do
begin
writeln('Город №',i, '-',a[i]);
end;
imax := 1;//максимальному индексу присваиваем значение = 1
for i:=1 to n do
begin
for p:=1 to length(a[i]) do
if (a[i][p]='К') and (i > imax) then
imax := i; //ищем город на букву К с максимальным индексом
end;
imin := 1000;//минимальному индексу присваиваем значение = 1000
for i:=1 to n do
begin
for p:=1 to length(a[i]) do
if (a[i][p]='К') and (imin>imax) then
begin
imin := i; //записали индекс(номер) первого города на букву "К"
k_city:=a[i];//записали первый город на букву "К"
a[1]:=k_city;//первый город в списке(Анапа) заменили на первый город на букву "К"(Краснодар)
a[imin]:=one_city;//Вместо первого города Краснодар записали город Анапа
end;
end;
writeln('Список городов после замены:');
for i:=1 to n do
writeln('Город №',i, '-',a[i]);
end.
РЕШЕНИЕ
Введем обозначения некоторых переменных:
imin— индекс(номер) минимального элемента массива, т.е. первый город в списке на букву «К» (Краснодар)
imax — максимальный индекс(номер) элемента массива, т.е последний в списке город на букву «К» (Керчь)
k_city — название первого города на букву «К» (Краснодар)
one_city — название первого города в списке (Анапа)
Первый город на букву «К» в списке — это минимальное значение элемента массива. Сначала в цикле нужно найти максимальный индекс города на букву «К». Это город Керчь с индексом 9.
Далее в следующем цикле ищем индекс минимального элемента массива, который не больше максимального, т.е 9 и делаем замену городов.