IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на строки
Vardes
сообщение 28.11.2005 11:28
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 131
Пол: Мужской

Репутация: -  0  +


Если задать текст таким образом:
Код

var
txt: array[1..3] of string;
i:byte;
begin
for i:= 1 to 3 do
readln(txt[i]);   {Ввод текста,состоящего из 3-х строк}


Каким же образом проверить каждый элемент на условие.Например,если один из элементов строки :='A', то этот элемент примет значение :='..--'.
Данная задача связана с азбукой МОРЗЕ.
И ещё есть вопрос
КАК элементу строки присвоить сразу несколько элементов из кодовой таблицы ASII.
Код

txt[i]:=chr(16);{Надо, чтоб он также принимал chr(17),получится как бы chr(16,17),но это неправильно.}

КАК это можно осуществить.

Сообщение отредактировано: Vardes - 28.11.2005 11:29
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 28.11.2005 12:16
Сообщение #2


Гость






Вот так:
type
set_digits = '0'..'9';
set_alpha = 'a' .. 'z';
const
digits = ['0'..'9'];
alpha = ['a'..'z'];

morze_num: array[set_digits] of string[5] =
('-----','.----','..---','...--','....-',
'.....','-....','--...','---..','----.');

{ Дополни весь алфавит }
morze_ch: array[set_alpha] of string[5] =
(
'.-', '-...', '', '', '',
'', '', '', '', '',
'', '', '', '', '',
'', '', '', '', '',
'', '', '', '', '',
''
);

var
txt: array[1 .. 3] of string;
i, j: integer;
s: string;

begin

for i := 1 to 3 do begin
s := txt[i];
txt[i] := '';
for j := 1 to length(s) do
if s[j] in digits then txt[i] := txt[i] + morze_num[ s[j] ]
else
if s[j] in alpha then txt[i] := txt[i] + morze_ch[ s[j] ]
else txt[i] := txt[i] + s[j];
end;

for i := 1 to 3 do
writeln(txt[i]);
end.

И, еще раз, следи за длиной строки !!! Очень может быть, что результат преобразования в код Морзе будет длиннее 255 символов...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.06.2025 16:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"