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

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

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

 
 Ответить  Открыть новую тему 
> Задача на строки
-Егор-
сообщение 8.05.2006 16:25
Сообщение #1


Гость






вот задача
uses crt;
var
s:string;
i,j,m:integer;
begin
clrscr;
write('Stoka->');
read(s);
for i:=1 to length(s) do
begin
m:=0;
for j:=i+1 to length(s) do
begin
if s[i]=s[j] then inc(m);
end;
if m=0 then write(s[j]);
end;
readkey
end.

работает чето неправильно, надо чтобы выводились символы которые встречаются только один раз

Тегами пользуемся !

Сообщение отредактировано: volvo - 2.11.2006 2:13
 К началу страницы 
+ Ответить 
strangerfx
сообщение 8.05.2006 17:24
Сообщение #2





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

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


Попробуй вот это решение:
Код

program strings;
uses crt;
var s:string;
    mas:array [1..20] of char;
    i,j,k,x,n:byte;
begin
  clrscr;
  writeln('Введите строку -> ');
  read(s); {Вводим строку}
  x:=length(s);
  for i:=1 to x do
    begin
      k:=0;
      for j:=1 to x do
        begin
          if s[i]=s[j]  {Проверяем элемент s[i] на повторы и если повторы были увеличиваем к}
            then inc(k);
        end;
          if k=1  {Если к=1 записываем элемент в массив}
            then
              begin
                inc(n);
                mas[n]:=s[i];
              end;
    end;
  writeln('Результат:');
  for i:=1 to n do
    write(mas[i]);
  writeln;
  writeln('Для продолжения работы нажмите Enter');
  readln;
  readln;
end.
.
Можно обойтись и без массива:
Код

program strings;
uses crt;
var s:string;
    mas:array [1..20] of char;
    i,j,k,x,n:byte;
begin
  clrscr;
  writeln('Введите строку -> ');
  read(s);
  x:=length(s);
  for i:=1 to x do
    begin
      k:=0;
      for j:=1 to x do
        begin
          if s[i]=s[j]
            then inc(k);
        end;
          if k=1
            then writeln(s[i]);
     end;
    writeln('Для продолжения работы нажмите Enter');
  readln;
  readln;
end.
.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.05.2006 17:52
Сообщение #3


Гость






Ну, и зачем вложенные циклы делать?
var
s: string;
i: integer;
begin
{ s := '1298968223456'; }
write('enter string: '); readln(s);
for i := 1 to length(s) do
if pos(s[i], copy(s, 1, i-1)) +
pos(s[i], copy(s, i+1, 255)) = 0 then write(s[i]);

end;
writeln;
end.
 К началу страницы 
+ Ответить 

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

 



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