Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2009, 14:06   #1
Hom9IchOK
 
Регистрация: 18.11.2009
Сообщений: 3
Вопрос Работа со строкой + repeat...until

Задание: Используя repeat...until , напиcать прогу, которая вводит любые символы, комментирует только цифры. Закрытие проги-нажатие буквы z.
Проблема: После первого ввода не дает больше не переходит на ввод и уходит в бесконечный цикл. В чем проблема?

Заранее спасибо.

Код:
Код:
uses crt;
const
    n=9;
    s1: array [1..n] of string = ('1','2','3','4','5','6','7','8','9');
var s,sv:string;
    i:integer;
label 1;
begin
 i:=0;
 repeat
1:  clrscr;
    gotoxy(5,3);
    write('Vvedite simvol:');
    read(s);
    if (s='')or(s=' ') then
    begin
     writeln('Povtorite vvod');
     readkey;
     goto 1;
    end;
    for i:=1 to n do
      begin
       if s=s1[i] then
        begin
          s:='{'+s+'}';
        end;
      end;
    gotoxy(5,4);
    write(s);
    i:=i+1;
    readkey;
 writeln(i);
 until s='z';
 readkey;
end.

Последний раз редактировалось Stilet; 18.11.2009 в 15:26.
Hom9IchOK вне форума Ответить с цитированием
Старый 18.11.2009, 15:08   #2
bullvinkle
Временно — юрист.
Форумчанин
 
Аватар для bullvinkle
 
Регистрация: 31.03.2008
Сообщений: 204
По умолчанию

Код:
uses crt;
const
n=9;
s1: array [0..n] of string = ('0','1','2','3','4','5','6','7','8','9 ');
var s,sv:string;
i: integer;
begin
s := "q";
repeat
Writeln ('Enter the symbol');
Readln(s);
for i = 0 to n do begin
if s = s1[i] then s :=  '{'+s+'}';
end;
Writeln('New string 's,);
until (s='z');
end.
Вроде должно быть так. Писал прямо тут, т.к. нет у меня паскаля на компе, так что могут быть ошибки.
bullvinkle вне форума Ответить с цитированием
Старый 18.11.2009, 15:31   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты пошагово пройдись, и посмотри на каком операторе она глючит.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2009, 15:36   #4
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию вот так вот примерно

Цитата:
Сообщение от Hom9IchOK Посмотреть сообщение
Задание: Используя repeat...until , напиcать прогу, которая вводит любые символы, комментирует только цифры. Закрытие проги-нажатие буквы z.
Проблема: После первого ввода не дает больше не переходит на ввод и уходит в бесконечный цикл. В чем проблема?

Заранее спасибо.

Код:
Код:
uses crt;
const
    n=10;
    s1: array [1..n] of char = ('0','1','2','3','4','5','6','7','8','9');
var s,sv:char;
    i,j:integer;
begin
j:=0;
 repeat
    clrscr;
    gotoxy(5,3);
    write('Vvedite simvol:');
    read(s);
    if (s='')or(s=' ') then
    begin
     writeln('Povtorite vvod');
     readkey;
     continue
    end;
    for i:=1 to n do
       if s=s1[i] then
        begin
          s:='{'+s+'}';
          gotoxy(5,4);
          write(s); 
          s:=''
        end;
    j:=j+1;
    readkey;
 writeln(j);
 until s='z';
 readkey;
end.
вот так вот примерно
fikret123 вне форума Ответить с цитированием
Старый 18.11.2009, 15:40   #5
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

ошибся, s: string оставь
fikret123 вне форума Ответить с цитированием
Старый 18.11.2009, 19:31   #6
Hom9IchOK
 
Регистрация: 18.11.2009
Сообщений: 3
По умолчанию

ВСЕМ СПАСИБО!
Итоговый вариант:

uses crt;
const
n=9;
s1: array [1..n] of string = ('1','2','3','4','5','6','7','8','9 ');
var s,sv:string;
i:integer;
label 1;
begin
i:=0;
repeat
clrscr;
1: gotoxy(5,3);
write('Vvedite simvol:');
readln(s);
if (s='')or(s=' ') then
begin
gotoxy(5,2);
writeln('Povtorite vvod');
readkey;
goto 1;
end;
for i:=1 to n do
begin
if s=s1[i] then
begin
s:='{'+s+'}';
end;
end;
gotoxy(5,4);
writeln('Vu vveli simvol: ',s);
i:=i+1;
readkey;
writeln('Kolichestvo simvolov',i);
until s='z';
readkey;
end.

Последний раз редактировалось Hom9IchOK; 18.11.2009 в 19:51.
Hom9IchOK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа со строкой. D_E_N Общие вопросы Delphi 4 25.10.2009 16:19
Работа со строкой в С помогите плиз :-) Daedra Помощь студентам 2 25.12.2008 15:48
Работа с конкретной строкой в DBGrid alikon1 БД в Delphi 1 10.12.2007 09:07
Работа с командной строкой lyryks Помощь студентам 2 16.11.2007 13:06
Работа в Делфи с командной строкой Noor Общие вопросы Delphi 6 30.12.2006 12:49