Читаем Песни о Паскале полностью

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

Г) Генерация пароля длиной не менее восьми символов. В пароль входят символы трёх сортов: цифры, маленькие и большие латинские буквы, например: «7UpJ7rsT», «PasCal701». Сделайте четыре варианта так, чтобы соблюдались следующие условия:

• символ каждого сорта входит в пароль не менее двух раз, некоторые символы могут повторяться;

• все символы пароля уникальны (примените множество);

• символы одного сорта не соседствуют, например: «Pa7sCaL5», уникальность символов не требуется;

• символы одного сорта не соседствуют и все символы уникальны.

Д) Напишите четыре булевы функции, проверяющие, является ли введенная пользователем строка правильно сформированным паролем согласно условиям предыдущей задачи.

Глава 39

Командная игра (массивы)



В чём сила компьютеров? В умении стремительно перемалывать огромные объёмы данных: сотни, тысячи, миллионы элементов! Под элементами данных мы разумеем числа, строки и тому подобное. Обратимся и мы к этой способности компьютера. Нет, с миллионом элементов погодим, начнем всего с нескольких: рассмотрим, к примеру, турнирную таблицу чемпионата.

Снежная лавина

Вот задача для болельщика: отсортировать команды в турнирной таблице чемпионата по убыванию набранных ими очков. Команд немного, всего 16. После каждого тура количество очков меняется, и таблица сортируется заново. Корпеть над этим вручную? – это не для нас! Итак, будущая программа должна принимать с клавиатуры очки, набранные командами, и распечатывать команды в порядке убывания этих чисел. При этом набранные очки мы будем вводить всегда в одном и том же порядке.

Сделаем это сначала для двух команд, пусть ими будут «Динамо» и «Спартак». Сортировка двух команд – что может быть проще?


{ ввод и сортировка двух команд (в программе 14 строк) }

var T1, T2 : integer;

begin

      Readln (T1, T2);       { Ввод очков для «Динамо» и «Спартак» }

      if T1>T2

      then begin

      Writeln('1.Динамо');

      Writeln('2.Спартак');

      end

      else begin

      Writeln('1.Спартак');

      Writeln('2.Динамо');

      end;

      Readln;

end.


Здесь для каждой из команд отведена переменная, хранящая набранные очки: T1 – для «Динамо» и T2 – для «Спартака». Вариантов расстановки всего два, поэтому и программа очень проста – всего 14 строк, не считая комментария.

Теперь добавим в чемпионат команду «Зенит». Вариантов расстановки стало втрое больше – шесть, и программа заметно усложнилась, вот она.


{ сортировка трех команд (в этой программе 45 строк) }

var T1, T2, T3 : integer;

begin

Readln (T1, T2, T3);       { «Динамо», «Спартак», «Зенит» }

if (T1>T2) and (T1>T3)

then begin

      Writeln('1.Динамо');

      if T2>T3

      then begin

      Writeln('2.Спартак');

      Writeln('3.Зенит');

      end

      else begin

      Writeln('2.Зенит');

      Writeln('3.Спартак');

      end

      end

else begin

      if (T2>T1) and (T2>T3)

      then begin

      Writeln('1.Спартак');

      if T1>T3

      then begin

      Writeln('2.Динамо');

      Writeln('3.Зенит');

      end

      else begin

      Writeln('2.Зенит');

      Writeln('3.Динамо');

      end

      end

      else begin

      Writeln('1.Зенит');

      if T1>T2

      then begin

      Writeln('2.Динамо');

      Writeln('3.Спартак');

      end

      else begin

      Writeln('2.Спартак');

      Writeln('3.Динамо');

      end

      end

      end;

Readln;

end.


Здесь уже 45 строк, что втрое больше, чем для двух команд. С добавлением последующих команд программа продолжит разбухать, как снежный ком. Для четырех команд она станет длиннее ещё в 4 раза (180 строк), для пяти – ещё в 5 раз (900 строк) и так далее. Дойдя до шестнадцати команд, мы насчитаем в программе триллионы строк. А ведь триллион – это «всего лишь» миллион миллионов! Скорей свернем с этой гибельной тропы, пока снежная лавина не накрыла нас с головой!

А где же волшебная палочка?

Перейти на страницу:

Похожие книги

Сломанная кукла (СИ)
Сломанная кукла (СИ)

- Не отдавай меня им. Пожалуйста! - умоляю шепотом. Взгляд у него... Волчий! На лице шрам, щетина. Он пугает меня. Но лучше пусть будет он, чем вернуться туда, откуда я с таким трудом убежала! Она - девочка в бегах, нуждающаяся в помощи. Он - бывший спецназовец с посттравматическим. Сможет ли она довериться? Поможет ли он или вернет в руки тех, от кого она бежала? Остросюжетка Героиня в беде, девочка тонкая, но упёртая и со стержнем. Поломанная, но новая конструкция вполне функциональна. Герой - брутальный, суровый, слегка отмороженный. Оба с нелегким прошлым. А еще у нас будет маньяк, гендерная интрига для героя, марш-бросок, мужской коллектив, волкособ с дурным характером, балет, секс и жестокие сцены. Коммы временно закрыты из-за спойлеров:)

Лилиана Лаврова , Янка Рам

Современные любовные романы / Самиздат, сетевая литература / Романы