• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль. Задание подразумевается для школьников

  • Автор темы Автор темы hedgehod
  • Дата начала Дата начала

hedgehod

Новые
Регистрация
5 Янв 2016
Сообщения
16
Реакции
1
Баллы
0
Паскаль. Задание подразумевается для школьников

Ребят, пожалуйста , подскажите идею, как это решить . Не пишите сразу код, пожалуйста.
Задача: Строки (цепочки символов латинских букв) создаются по следующему правилу: Первая строка состоит из одного символа — латинской буквы «А». Каждая из последующих цепочек создаётся такими действиями: в очередную цепочку сначала записывается буква, чей порядковый номер в алфавите соответствует номеру строки (на i-м шаге пишется i-я буква алфавита), к ней слева дважды приписывается следующая строка.
Вот первые 4 строки, созданные по этому правилу:
(1)А
(2) ААВ
(3) ААВААВС
(4) AABAABCAABAABCD
Запишите шесть символов подряд, стоящие в восьмой строке с 72-го по 77-е место (считая слова направо).
 
  • Like
Реакции: DiM
Ребят, пожалуйста , подскажите идею, как это решить . Не пишите сразу код, пожалуйста.
Ох, прям маслом по сердцу - вот все бы так! Вместо обычного "помогите", подразумевающего "вы напишите программу, я тупо скатаю и сдам".
Хотя, должен заметить, написать код гораздо проще и быстрее, чем объяснять. Но - просьба есть просьба. Ладно.

Для начала нам понадобится нечто, во что, если закинуть номер, то на выходе оно бы выдало заглавную букву английского алфавита, соответствующую этому номеру, т.е. 1-A, 2-B, 3-C и т.д. Можно, конечно, организовать массив из 26 элементов типа CHAR, заполнить его нужными буквами и к нему обращаться, но это некультурно. Лучше воспользоваться стандартной функцией CHR(n:byte):Char. В данном случае следует использовать функцию CHR(i+64) - она решает задачу.

Идём дальше. Вводим номер интересующей нас строки, обозначенный, например, М (в задаче М=8), и далее начинаем формировать нужную строку. Для этого нам понадобятся две строковые переменные (S1 и S2) и рекуррентный цикл. Задаем исходное значение S1:='A' и запускаем цикл по i (обычный, for..to) от 2 до М с телом
S2:=S1+S1+CHR(i+64);
S1:=S2;

Ура, нужная (в данном случае восьмая) строка получена! Это S1 или S2 - без разницы, при выходе из цикла они одинаковые. Остается вычленить из нее требуемые 6 символов. Проще всего решить эту проблему с помощью стандартной функции Copy(S:String; Index:Integer; Count:Byte):String. Вводим строковую переменную S3 и пишем:
S3:=Copy(S1,72,6);
Выводим S3 на экран. Пляшем качучу.

Удачи!
 
Огромное спасибо. Все работает, спасибо. Вы все так подробно описали мне и делать нечего было. )))
 
Ох, прям маслом по сердцу - вот все бы так! Вместо обычного "помогите", подразумевающего "вы напишите программу, я тупо скатаю и сдам".
Хотя, должен заметить, написать код гораздо проще и быстрее, чем объяснять. Но - просьба есть просьба. Ладно.
А я уже думал просто задание было,- написать объяснение, и код. И третьим постом потом будет:
-не могу разобраться, напишите код.
:))
 
Просто, я сделала вариант с массивом из символов, но не смогла чередовать строки. Вот и хотела просто идею, чтоб догадаться как дальше.
 
Назад
Сверху