Ассемблер.Подпрограммы. Разработать подпрограмму, которая подсчитывает, сколько раз заданный символ встречается в строке. Разработать программу, которая вводит с клавиатуры строку и число N и выдаёт список символов, которые встреча-ются в строке не менее N раз.
//Первый ввод - число, второй - система счисления
//Pascal ABC.NET v3.0
var
a,i,b,r,n,j,bug:integer;
s,se,slo,slof:string;
procedure preob(var a,b,n:integer; var se:string);
begin
repeat
b:=a mod n;
a:=a div n;
str(b,se);
s+=se;
until (a<=n-1);
end;
begin
readln(slo);
readln(n);
for j:=1 to length(slo) do
begin;
a:=ord(slo[j]);
preob(a,b,n,se);
str(a,se);
s+=se;
for i:=1 to length(s) div 2 do
begin;
se:=s[i];
s[i]:=s[length(s)-i+1];
s[length(s)-i+1]:=se[1];
end;
write(s,'-');
slof:=slof+s;
delete(s,1,length(s));
end;
end.
//Слово Программа она кодирует как 11001111-11110000-11101110-11100011-11110000-11100000-11101100-11101100-11100000-
Объяснение:
Очень часто возникает необходимость ввести в компьютер несколько страниц текста из книги, статью из журнала или газеты и т. д. Конечно, можно затратить определённое время и набрать этот текст с клавиатуры. Но чем больше исходный текст, тем больше времени будет затрачено на его ввод в память компьютера.
Судите сами. Предположим, кто-то из ваших одноклассников, освоивших клавиатурный тренажёр, может вводить текстовую информацию со скоростью 150 символов в минуту. Выясним, сколько времени ему понадобится для того, чтобы ввести в память компьютера текст романа А. Дюма «Три мушкетёра». Одно из изданий этого романа выполнено на 590 страницах; каждая страница содержит 48 строк, в каждую строку входит в среднем 53 символа.
Вычислим общее количество символов в романе:
590 • 48 • 53 = 1 500 960 символов.
Вычислим время, необходимое для ввода этого массива символов в память компьютера: 1 500 960 : 150 ≈ 10 000 мин. А это приблизительно 167 часов.
При этом мы не обсуждаем во о времени на исправление возможных ошибок при таком ввода текста, не принимаем в расчёт усталость человека.
Для ввода текстов в память компьютера с бумажных носителей используют сканеры и программы распознавания символов. Одной из наиболее известных программ такого типа является ABBYY FineReader. Упрощённо работу с подобными программами можно представить так:
1. Бумажный носитель помещается под крышку сканера.
2. В программе отдаётся команда Сканировать и распознать. Сначала создаётся цифровая копия исходного документа в формате графического изображения. Затем программа анализирует структуру документа, выделяя на его страницах блоки текста, таблицы, картинки и т. п. Строки разбиваются на слова, а слова — на отдельные буквы. После этого программа сравнивает найденные символы с шаблонными изображениями букв и цифр, хранящимися в её памяти. Программа рассматривает различные варианты разделения строк на слова и слов на символы. В программу встроены словари, обеспечивающие более точный анализ и распознавание, а также проверку распознанного текста. Проанализировав огромное число возможных вариантов, программа принимает окончательное решение и выдает пользователю распознанный текст.
3. Распознанный текст переносится в окно текстового редактора (например, Microsoft Word).
Вместо сканера можно использовать цифровой фотоаппарат или камеру мобильного телефона. Например, при работе с книгами в библиотеке вы можете сфотографировать интересующие вас страницы. Скопировав снимки на компьютер, вы можете запустить ABBYY FineReader, распознать тексты и продолжить работу с ними в текстовом процессоре
Возможности современных компьютеров по хранению больших массивов информации и осуществлению в них быстрого поиска положены в основу разработки компьютерных словарей и программ-переводчиков. Компьютерные словари выполняют перевод отдельных слов и словосочетаний. Для перевода текстовых документов применяются программы-переводчики.
Подробнее - на -