Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Pascal ABC Прямое обращение к памяти в Pascal Доброго времени суток. Помогите придумать и реализовать задание с использованием прямого обращения к памяти.Я с этим никогда не сталкивался, и вообще нет понятия как это делать, какие есть функции, какие операторы и т.д., я об этом не знаю. Сделать надо любое задание с использование прямого обращения к памяти, но не сильно сложное и заумное. Если будет маленькое объяснение, то вдвойне будет... https://www.cyberforum.ru/ pascalabc/ thread1945018.html Pascal ABC Нужно сократить программу вычисления определителя матрицы
Помогите сократить программу uses crt; const n=3; var A:array of integer; i,j,s:integer; begin for i:=1 to n do for j:=1 to n do A:= random(10);
Pascal ABC Матрица 1) Матрицу размером 5 х 10 заполните случайными двоичными цифрами (0 и 1). Определите номер с наибольшим количеством нулей. 2) В двоичной матрице расмером 10 х 10 (см. задание 1) найдите совпадающие строки . https://www.cyberforum.ru/ pascalabc/ thread1944992.html Pascal ABC В целочисленной матрице размером 10 х 10 найдите максимальное значение и индексы всех элементов, равных ему https://www.cyberforum.ru/ pascalabc/ thread1944991.html
В целочисленной матрице размером 10 х 10 найдите максимальное значение и индексы всех элементотв, равных ему.
Pascal ABC Выведите все числа, которые встречаются в этом массиве несколько раз
Дан массив, состоящий из 100 целых чисел. Выведите все числа, которые встречаются в этом массиве: а) несколько раз; б) только по одному разу;
Pascal ABC Вычислить произведение элементов массива, расположенных после максимального по модулю элемента 1.Вычислить произведение элементов массива, расположенных после максимального по модулю элемента 2. Упорядочить массив по возрастанию модулей элементов. (С использованием 5 подпрограмм) Помогите найти ошибку: const n = 10; https://www.cyberforum.ru/ pascalabc/ thread1944958.html
Pascal ABC Работаю с файлами в Pascal, блокнот перестаёт отвечать Работаю с файлами в pascal, переписываю исходный файл.pas в новый файл, при открытии нового файла блокнот не отвечает- не могу проверить на работоспособность программу https://www.cyberforum.ru/ pascalabc/ thread1944936.html Pascal ABC Путешествие Андрея
Андрей едет из пункта A в пункт B на автомобиле. Расстояние между этими пунктами равно N километров. Известно, что с полным баком автомобиль способен проехать k километров. Дана карта, на которой отмечены координаты бензоколонок, относительно пункта A. Определите минимальное число заправок, которые придется сделать Андрею чтобы успешно достичь пункта B. Известно, что при выезде из пункта A бак...
Pascal ABC Составить список групп, включающий номер группы, шифр специальности, количество студентов в группе Подсчитать общее количество студентов в группах. В задании не уточнено же какие группы, количество студентов и т.д. и т.п., значит наверное рандомно. Заранее спасибо. https://www.cyberforum.ru/ pascalabc/ thread1944634.html Pascal ABC Найти сумму элементов массива до Xmin Дан массив x1, …, x100. Найти сумму элементов от X1 до Xmin.  https://www.cyberforum.ru/ pascalabc/ thread1944598.html
Pascal ABC Вывести на экран самую старшую цифру
Из последовательности символов, содержащей цифры, выделить их в отдельную строку, вывести на экран самую старшую цифру. Pascal ABC
Pascal ABC Отсортировать массив Задать линейный массив из 100 элементов (ввод данных произвести с помощью генератора случайных чисел). Отсортировать массив (четные варианты - по возрастанию, нечетные - по убыванию) указанными ниже способами. Предусмотреть вывод исходного и отсортированного массивов. А)сортировка выбором, Б) пузырьковый метод, В) сортировка вставками. https://www.cyberforum.ru/ pascalabc/ thread1944324.html
Модератор
9871 / 5239 / 3306
Регистрация: 17.08.2012
Сообщений: 16,007
24.03.2017, 22:19 0

Замена букв аналогами - Pascal ABC - Ответ 10253988

24.03.2017, 22:19. Показов 7809. Ответов 18
Метки (Все метки)

Ответ

Дмитрий97_09, если Вы используете юникод (как я понял, в кодовых страницах совсем не разбираетесь, ведь так?) то такое возможно. Используйте упрощённый вариант:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const rus = 'АаВЕеКМНОоРрСсТХх';
      lat = 'AaBEeKMHOoPpCcTXx';
var f, g: file of char;
    ch: char;
    p: integer;
begin
  assign(f, 'f.txt');
  reset(f);
  assign(g, 'g.txt');
  rewrite(g);
  while not eof(f) do
    begin
      read(f, ch);
      p := pos(ch, rus);
      if p > 0 then ch := lat[p];
      write(g, ch)
    end;
  close(f);
  close(g)
end.
Вам нужно разобраться, в первую очередь, с которой кодировкой Вы работаете. Вот пример для кодировки CP866, показывающий коды букв строки до и после преобразования:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure writeln_bin(c: char);
var i, b, m: byte;
begin
  write(c, ' ');
  m := 128;
  b := byte(c);
  for i := 7 downto 0 do
    begin
      if m and b > 0 then write('1') else write('0');
      m := m shr 1
    end;
  writeln
end;
 
const rus = 'АаВЕеКМНОоРрСсТХх';
      lat = 'AaBEeKMHOoPpCcTXx';
var s: string;
    i: integer;
begin
  s := 'АВЕ МАРИЯ';
  writeln(sizeof(char));
  writeln;
  for i := 1 to length(s) do writeln_bin(s[i]);
  writeln;
  for i := 1 to length(s) do if pos(s[i], rus) > 0 then s[i] := lat[pos(s[i], rus)];
  for i := 1 to length(s) do writeln_bin(s[i]);
  readln
end.
Протокол работы программы:
Код
1

А 10000000
В 10000010
Е 10000101
  00100000
М 10001100
А 10000000
Р 10010000
И 10001000
Я 10011111

A 01000001
B 01000010
E 01000101
  00100000
M 01001101
A 01000001
P 01010000
И 10001000
Я 10011111
Первая строка (как видите, там 1) - это размер символа в байтах. У изначальной строки старший бит у русских букв равен 1, у преобразованной - нулю. Что не так? Попробуйте запустить это на Вашем паскале, и, если у Вас будет в первой строке 2, а в остальных строках - чушь собачья, значит, у Вас используется unicode, и о старшем бите символа Вам точно нужно забыть.

Вернуться к обсуждению:
Замена букв аналогами Pascal ABC
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2017, 22:19
Готовые ответы и решения:

Дан текст. Замена латинских букв на "!", замена гласных русских букв на "-", подсчёт цифр в тексте
Условие. Написать программу на языке Паскаль (можно и в среде Delphi 7.0), реализующую решение...

Замена букв в предложении. Не работает замена кириллицы
Суть программы заменить все определенные буквы в предложении на другую. Собственно, вот код....

Замена букв в строке на сочетание букв
Здравствуйте. Дана задача: дана строка которая содержит определенный текст который вводится с...

Arduino - управление tda7313 и аналогами по I2S
Уже долгий час пытаюсь подружить Ардуинку с TDA7313 по шине I2C через библиотеку Wire. Сначала я...

18
24.03.2017, 22:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2017, 22:19
Помогаю со студенческими работами здесь

Какими аналогами 1С-Предприятие (1С-Бухгалтерия) пользуются буржуи?
Какими аналогами 1С-Предприятие (1С-Бухгалтерия) пользуются буржуи? Немцы, англичане, австралийцы,...

Замена букв
Подскажите, пожалуйста!) Как в слове "Велосипедист" все буквы "Е" заменить на буквы "Ы"?

Замена букв на +
Дана строка символов состоящая из произвольного текста на английском языке, слова разделены...

Замена букв
Прочитать с клавиатуры строку символов. Сделать его копию, заменив одновременно буквы "R", "S", "T"...

Замена букв
Почему программа не во всех словах заменяет буквы? В моем примере все норм заменяет. А вот,...

Замена букв a b c на 3 4 5
Заменить abc на 3 4 5 подсчитать колличество замен и вывести их на экран. Добавлено через 1 час...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru