Вирішу ЄДІ »інформатика

На вхід про-грам-ме подається текст заклинання, со-сто-я-ще-го не більше ніж з 200 символів, за-кан-чи-ва-ю-щий-ся точ-кою (символ «точка» у вхід -них дан-них єдине). Воно було за-Шиф-ро-ва-но Гаррі Пот-ті-ром сле-ду-ю-щим чином. Сну-ча-ла Гаррі визна-де-лив ко-ли-че-ство букв в самому довжин-ном слові, обо-зна-чив по-лу-чен-ве число К (словом на-зи-ва-ет- ся НЕ-пре-рив-ва по-сле-до-ва-тель-ність ан-глій-ських букв, слова один від одного от-де-ля-ють-ся лю-б-ми дру-ги-ми символами , довжина слова без пе-ви-ша-ет 20 символів). Потім він за-ме-Ніл каж-дую ан-глій-ську букву в за-клі-на-ванні на букву, сто-я щую в ал-фа-ві-ті на До букв раніше (алфавіт вва-та- ет-ся циклічним, тобто перед бук-вої А стоїть буква Z), оста-вив дру гие сім-по-ли незмінними. Строч-ні букви при цьому осту-лисій малими, а про-піс-ні - прописними. Тре-бу-ет-ся на-пі-описати як можна більш еф-ФЕК-тив-ву програму, до то раю буде ви-по-дить на екран текст рас-Шиф-ро-ван-но-го заклинання . Наприклад, якщо за-Шиф-ро-ван-ний тексту був таким:

то ре-зуль-тат рас-Шиф розчинів-ки дол-дружин бути наступним:

i, k, max: integer;

На вхід про-грам-ме по-да-ет-ся текст заклинання, со-сто-я-ще-го не більше ніж з 200 символів, що закінчується точ-кою (символ «крапка» у вхід-них да-них єдиний ). Воно було за-Шиф-ро-ва-но юним віл-Шеб-ні-кому сле-ду- ю-щим чином. Сну-ча-ла віл-Шеб-ник визна-де-лив ко-ли-че-сть букв в самому ко-рот-ком слові, обо-зна-чив по-лу-чен-ве число К (словом на- зи-ва-ет-ся НЕ-пре-рив-ва по-сле-до-ва-тель-ність ла-тин-ських букв, слова один від одного від-де-ля-ють-ся лю-б-ми дру-ги-ми символами, довжина слова без пе-ви-ша-ет 20 символів). Потім він за-ме-Ніл каж-дую ла-тин-ську букву в за-клі-на-ванні на букву, сто-я-щую в ал-фа-ві-ті на До букв раніше (алфавіт вва-та- ет-ся циклічним, тобто перед бук-вої А стоїть буква Z) осту-вив дру гие сім-по-ли незмінними. Строч-ні букви при цьому осту-лисій малими, а про-піс-ні - прописними. Тре-бу-ет-ся на-пі-описати про-грам-му на мові Пас-каль або Бейсік, до то раю буде ви-по-дить на екран текст рас-Шиф-ро-ван-но-го заклинання. Наприклад, якщо за-Шиф-ро-ван-ний тексту був таким:

Zb Ra Са Dab Ra,

то ре-зуль-тат рас-Шиф розчинів-ки дол-дружин бути наступним:

Bd Тс Її Fed Тс.

Програма чи-та-ет вхід-ні дані, відразу під-вва-ти-вая мі-ні-маль-ву довжину зустрів ча-ю-чих-ся слів. За вто-рій про-хід ис-хід-них да-них про-через у-дит-ся за-ме-на букв ла-тин-ско-го ал-фа-ві-та і пе-чать рас Шиф-ро-ван-но-го повідомлення.

Приклад пра-Віль-ний і еф-ФЕК-тив-ної про-грам-ми на мові Паскаль:

i, k, min: integer;

if з in [ 'a'. 'Z', 'A'. 'Z']

if k 'z' then write (chr (ord (cnew) -26))

'A' .. 'Z': if cnew> 'Z' then write (chr (ord (cnew) -26))

Приклад пра-Віль-ної про-грам-ми на мові Бейсік:

DIM i, j, min, до, f, a (26) AS INTEGER

DIM s AS STRING

WHILE NOT (MID $ (s, i, 1) = «.")

IF (c $> = "A") AND (c $ = "a") AND (c $ = "A") AND (c $ = "a") AND (з $ = "a") AND (MID $ (s, j, 1)

PRINT (CHRS (ASC (cnew $) - 26));

ELSE PRINT cnew $;

IF (MID $ (s, j, 1)> = "A") AND (MID $ (s, j, 1)

На вхід про- грам-ме подається текст заклинання, со-сто-я-ще-го не більше ніж з 200 символів, за-кан-чи-ва-ю-щий-ся точкою (символ «точка» у вхід-них даних єдиний). Воно було за-Шиф-ро-ва-но Гаррі Пот-ті-ром наступним чином. Сну-ча ла Гаррі визна-де-лив кількість букв в самому довжин-ном слові, обо-зна-чив отримане число К (словом на-зи-ва-ет-ся безперервна по-сле-до-ва-Тель ність англійських букв, слова один від одного від-де-ля-ють-ся будь-якими дру-ги-ми символами, довжина слова без пе-ви-ша-ет 20 символів). Потім він за-ме-Ніл кожну ан-глій-ську букву в за-клі-на-ванні на букву, сто-я-щую в ал-фа-ві-ті на До букв раніше (алфавіт вва-та-ет- ся циклічним, тобто перед бук-вої А стоїть буква Z), осту-вив інші сім-по-ли незмінними. Строч-ні букви при цьому осту-лисій малими, а про-піс-ні - прописними. Тре-бу-ет-ся написати якомога більше еф-ФЕК-тив-ву програму (вкажіть ис-поль-зу-е-мую версію мови програмування, наприклад, Borland Pascal 7.0), до то раю буде ви-під -діти на екран текст рас-Шиф-ро-ван-но-го заклинання. Наприклад, якщо за-Шиф-ро-ван-ний тексту був таким:

то ре-зуль-тат розшифровки дол-дружин бути наступним:

i, k, max: integer;

read (c); // зчитуємо по символу

s: = s + c; // додаємо до рядка

if k> max then max: = k;

until c = '.'; // зчитуємо до точки

for i: = l to length (s) do

'A' .. 'z': if cnew> 'z' then write (chr (ord (cnew) -26)) // якщо новий сім-віл вже не буква, то з нього ви-чтем 26 (колво букв в алфавіті) і як і лу-чим потрібний сімвол.т до ал-фа-віт у нас циклічний

else write (cnew); // інакше виводимо

'A' .. 'Z': if cnew> 'Z' then write (chr (ord (cnew) -26))

else write (s ([i]) // якщо не буква-виводимо як є

На вхід про-грам-ме по-да-ет-ся текст заклинання, со-сто-я-ще-го не більше ніж з 200 символів, за-кан-чи-ва-ю-щий-ся точ-кою ( символ «точка» у вхід-них да-них єдиний). Воно було за-Шиф-ро-ва-но юним віл-Шеб-ні-кому сле-ду- ю-щим чином. Сну-ча-ла віл-Шеб-ник визна-де-лив ко-ли-че-сть букв в самому ко-рот-ком слові, обо-зна-чив по-лу-чен-ве число К (словом на- зи-ва-ет-ся НЕ-пре-рив-ва по-сле-до-ва-тель-ність ла-тин-ських букв, слова один від одного від-де-ля-ють-ся лю-б-ми дру-ги-ми символами, довжина слова без пе-ви-ша-ет 20 символів). Потім він за-ме-Ніл каж-дую ла-тин-ську букву в за-клі-на-ванні на сле дую-щую за нею До -ю за рахунком в ал-фа-ві-ті (алфавіт вва -та-ет-ся циклічним, тобто за бук-вої Z сле-ду-ет буква А), осту-вив дру-Гії сім-під-ли Незмінними. Строч-ні букви при цьому осту-лисій малими, а про-піс-ні - прописними. Тре-бу-ет-ся на-пі-описати як можна більш еф-ФЕК-тив-ву про-грам-му (вкажіть ис-поль-зу-е-мую вер-сю мови програмування, наприклад, Borland Pascal 7.0) , до то раю буде ви-по-дить на екран тексту рас-Шиф рв ван-но-го заклинання.

Наприклад, якщо за-Шиф-ро-ван-ний тексту був таким:

Bd Тс Її Fed Тс,

то ре-зуль-тат рас-Шиф розчинів-ки дол-дружин бути наступним:

Zb Ra СC Dcb Ra.

Програма чи-та-ет вхід-ні дані, відразу під-вва-ти-вая мі-ні-маль-ву довжину зустрів ча-ю-чих-ся слів. За вто-рій про-хід ис-хід-них да-них про-через у-дит-ся за-ме-на букв ла-тин-ско-го ал-фа-ві-та і пе-чать рас Шиф-ро-ван-но-го повідомлення. Бали на-чис-ля-ють-ся толь-ко за програму, до то раю ре-ша-ет за-да-чу хоча б для част-но-го слу-чаю (наприклад, для строч-них ан -глій-ських букв і без цик-ли-чого ско го зсуву).

Приклад пра-Віль-ний і еф-ФЕК-тив-ної про-грам-ми на мові Паскаль:

i, k, min: integer;

На вхід програми подаються рядкові англійські букви. Введення цих букв закінчується крапкою (інші символи, відмінні від «.» І букв «a». «Z» у вхідних даних відсутні. Потрібно написати програму на одній з мов програмування, яка буде друкувати літери, що зустрічаються у вхідній послідовності, в порядку збільшення частоти їх зустрічальності. Кожна буква повинна бути роздрукована один раз. Точка заодно до уваги береться. Якщо якісь букви зустрічаються однакове число раз, то вони видаються в алфавітному порядку. Наприклад, бодай на вхід подаються такі символи:

В даному випадку програма повинна вивести:

a: array [0..25] of integer;

На вхід про-грам-ме по-да-ють-ся строч-ні ан-глій-ські літери. Введення цих сім-по-лов за-кан-чи-ва-ет-ся точ-кою (інші символи, від-лич-ні від «.» І букв "а" .. «z», у вхід-них да -них відсутні; в про-грам-ме на мові Бей-сик сім-по-ли можна вво-дить по од-но-му в рядку, поки не буде вве-де-на точка). Тре-бу-ет-ся на-пі-описати як можна більш еф-ФЕК-тив-ву про-грам-му (вкажіть ис-поль-зу-е-мую вер-сю мови програмування, наприклад, Borland Pascal 7.0) , до то раю буде пе-ча-тать літери, зустрів ча-ю щі е-ся у вхід-ної послідовності, в по-ряд-ке збіль-ли-че-ня ча-сто ^ -ти їх тієї, що зустрічається. Каж-дая буква долж-на бути рас-пе-ча-та-на один раз. Точка при цьому не враховується. Якщо якісь букви зустрів ча-ють-ся оди-на-ко-ше число раз, то вони вимушені звертатися-по-дять-ся в ал-фа-вит-ном порядку.

Наприклад, нехай на вхід по-да-ють-ся сле-ду-ю-щие символи:

В дан-ном слу-чаї про-грам-ма долж-на вивести

Програма чи-та-ет все вхід-ні сим-во-ли до точки один раз, під-вва-ти-вая в масиві, збе-ня-щем 26 цілих чисел, ко-ли-че-ство каж-дой з букв.

Самі вхід-ні сим-во-ли при цьому не запам'ятовуються. В до-пол-ні-тель-ний масив, з-сто-я-щий з 26 символів, за-но-сят-ся букви від «а» до «z». Потім елі-мен-ти пер-по-го мас-си-ва сор-ти-ру-ють-ся по які-уби-ва-нию будь-яким ал-го-рит-мом сортування, па-ра-лель-но пе-ре-ставши-ля-ють-ся й е-мен-ти вто-ро-го мас-си-ва (можливо ис-поль-зо-ва-ня од-но-го мас-си-ва записів, со-сто-я щих з двох полів). При цьому еле-мен-ти з рав-ним чис-лом вхожий де-ний сим-во-лов ме-ста-ми не змінюються. У сот-ром з від-сор-ти-ро-ван-них мас-сі-вов про-пус-ка-ють-ся елементи, ко-ли-че-ство до то яких дорівнює 0, осталь-ні еле-мен-ти пе-ча-та-ють-ся поспіль.

Бали на-чис-ля-ють-ся толь-ко за програму, до то раю ре-ша-ет за-да-чу хоча б для од-но-го част-но-го слу-чаю (наприклад, для рядків, со-сто-я щих не більш як з 255 символів).

Приклад пра-Віль-ний і еф-ФЕК-тив-ної про-грам-ми на мові Паскаль:

var а: array [0..25] of integer;

m: array [0..25] of 'a' .. 'z';

for i: = 0 to 25 do

На вхід про-грам-ми як та-ють-ся про-з-воль-ні алфавітно-цифрові символи. Введення цих сім-по-лов за-кан-чи-ва-ет-ся точкою. Тре-бу-ет-ся на-пі-описати програму, до то раю буде пе-ча-тать по-сле-до-ва-тель-ність строч-них ан-глій-ських букв ( 'a' ' b '.' z ') з вхід-ної по-сле-до-ва-тель але сті і ча-стота їх повторення. Пе-чати долж-на про-ис-хо-дить в ал-фа-вит-ном гаразд. Наприклад, нехай на вхід по-да-ють-ся сле-ду-ю-щие символи:

У цьому слу-чаї про-грам-ма долж-на вивести

var a: array [ 'a' .. 'z'] of integer;

if ch in [ 'a' .. 'z'] then a [ch]: = a [ch] +1;

for i: = 1 to 255 do

if (chr (i) in [ 'a' .. 'z']) and (a [chr (i)]> 0) then

чому в задаєте змінну ch, а в останньому умови пишете chr?

chr - функція мови Паскаль повертає символ за його кодом.

Таке рішення дуже погано читається, можна заплутатися при багаторазовому виконанні функції chr, все таки на іспитів не буде IDE і компілятора, лише ручка і листочок.

arr: array [ 'a' .. 'z'] of integer;

while (c <> '.') Do begin

if (c in [ 'a' .. 'z']) then

for c: = 'a' to 'z' do begin

if (arr [c] <> 0) then

Тут також немає циклу в 255 ітерацій, що не суттєвий виграш звичайно, але це число (255) теж може вилетіти із голови. І "x + = 1" можна замінити на "x: = x + 1", хоча писати ручкою всі ці символи не комільфо, легше запам'ятати "+ =, * =, - =" і т.д. в принципі і запам'ятовувати нічого.

Схожі статті