Другие языки программирования и технологии
Помогите с паскалем пожалуйста!!!!
Мне нужно решить задачу в паскале, вот задание: Даны две строки. Выведите на экран все символы (без повторений), которые есть в первой или второй строке. Кто сможет помогите, за ранее благодарен!!!=)
Доброго времени суток.
Про множества слышали? Одной из их особенностей является то, что сколько в них не помещай одинаковых элементов, там будет только один. Отсюда и решение (М объявлено как множество символов) .
M := []; {пустое множество}
for i:=1 to Length(S1) do M := M + [S1[ i ]]; {символы 1 строки -> множество}
for i:=1 to Length(S2) do M := M + [S2[ i ]]; {символы 2 строки -> множество}
for ch:='a' to 'z' do if ch in M then WriteLn(ch:3); {вывод содержимого множества}
Будет работать для латинских символов нижнего регистра. Если надо как-то иначе, подправьте границы цикла вывода.
Вот и все.
Удачи!
2 Владислав Бирюков: В паскале символы строки индексируются с единицы.
Про множества слышали? Одной из их особенностей является то, что сколько в них не помещай одинаковых элементов, там будет только один. Отсюда и решение (М объявлено как множество символов) .
M := []; {пустое множество}
for i:=1 to Length(S1) do M := M + [S1[ i ]]; {символы 1 строки -> множество}
for i:=1 to Length(S2) do M := M + [S2[ i ]]; {символы 2 строки -> множество}
for ch:='a' to 'z' do if ch in M then WriteLn(ch:3); {вывод содержимого множества}
Будет работать для латинских символов нижнего регистра. Если надо как-то иначе, подправьте границы цикла вывода.
Вот и все.
Удачи!
2 Владислав Бирюков: В паскале символы строки индексируются с единицы.
for i:=0 to length(m1)-1 do
begin
bool:=false;
for j:=0 to length(m1)-1 do
if m1=m1[j] then
begin
bool:=true;
break;
end;
if bool then continue;
for j:=0 to length(m2)-1 do
if m1=m2[j] then
begin
bool:=true;
break;
end;
if bool then
continue
else
writeln(m1)
end;
for i:=0 to length(m2)-1 do
begin
bool:=false;
for j:=0 to length(m1)-1 do
if m2=m1[j] then
begin
bool:=true;
break;
end;
if bool then continue;
for j:=0 to length(m2)-1 do
if m2=m2[j] then
begin
bool:=true;
break;
end;
if bool then
continue
else
writeln(m2)
end;
begin
bool:=false;
for j:=0 to length(m1)-1 do
if m1=m1[j] then
begin
bool:=true;
break;
end;
if bool then continue;
for j:=0 to length(m2)-1 do
if m1=m2[j] then
begin
bool:=true;
break;
end;
if bool then
continue
else
writeln(m1)
end;
for i:=0 to length(m2)-1 do
begin
bool:=false;
for j:=0 to length(m1)-1 do
if m2=m1[j] then
begin
bool:=true;
break;
end;
if bool then continue;
for j:=0 to length(m2)-1 do
if m2=m2[j] then
begin
bool:=true;
break;
end;
if bool then
continue
else
writeln(m2)
end;
Кроме шуток.. .
Задача проста как день...
Задача проста как день...
Цикл, берешь первый символ и сравниваешь с другими в строках, если есть удаляешь из строк и записываешь в переменную и так пока строки не кончатся. В чем проблема? Нужна реализация? Может книжку почитать? Или в нете глянуть, готовых алгоритмов тонны.
Похожие вопросы
- Помогите с паскалем! Пожалуйста! Спасите!
- Помогите с паскалем пожалуйста
- Добрые люди помогите с Паскалем))) Пожалуйста)))
- Помогите с паскалем, пожалуйста.
- Помогите с паскалем пожалуйста!
- помогите доделать программу по паскалю пожалуйста
- Помогите решить задачу в паскале, пожалуйста! !
- Помогите с паскалем
- Турбо-паскаль. Пожалуйста, напишите программный код!...=)
- Переведите в Паскаль пожалуйста