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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2013, 00:50   #1
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
По умолчанию процедура Pause

Программа выдает ошибку:
Код:
var Man : string; i : integer;
    B : Boolean;
procedure Pause ( S: string);
begin
     for i:=1 to Length(Man) do
   if B = (Man[i]='А') or (Man[i]='а')or(Man[i]='б') or(Man[i]='Б')
   or(Man[i]='В')or(Man[i]='в')or(Man[i]='Г')or(Man[i]='г')or(Man[i]='Д')
   or(Man[i]='д')or(Man[i]='Е')or(Man[i]='е')or(Man[i]='Ё')or(Man[i]='ё')
   or(Man[i]='Ж')or(Man[i]='ж')or(Man[i]='З')or(Man[i]='з')or(Man[i]='И')
   or(Man[i]='и')or(Man[i]='Й')or(Man[i]='й')or(Man[i]='К')or(Man[i]='к')
   or(Man[i]='Л')or(Man[i]='л')or(Man[i]='М')or(Man[i]='м')or(Man[i]='Н')
   or(Man[i]='н')or(Man[i]='О')or(Man[i]='о')or(Man[i]='П')or(Man[i]='п')
   or(Man[i]='Р')or(Man[i]='р')or(Man[i]='С')or(Man[i]='с')or(Man[i]='Т')
   or(Man[i]='т')or(Man[i]='У')or(Man[i]='у')or(Man[i]='Ф')or(Man[i]='ф')
   or(Man[i]='Х')or(Man[i]='х')or(Man[i]='Ц')or(Man[i]='ц')or(Man[i]='Ч')
   or(Man[i]='ч')or(Man[i]='Ш')or(Man[i]='ш')or(Man[i]='Щ')or(Man[i]='щ')
   or(Man[i]='Ъ')or(Man[i]='ъ')or(Man[i]='Ы')or(Man[i]='ы')or(Man[i]='Ь')
   or(Man[i]='ь')or(Man[i]='Э')or(Man[i]='э')or(Man[i]='Ю')or(Man[i]='ю')
   or(Man[i]='Я')or(Man[i]='я')
     then S:='Намите Enter...' else S:='Press Enter...';
    Writeln(S);
    Readln;
end;
begin    {---главная программа---}
     Writeln('Как тебя зовут?'); Readln(Man);
     Writeln('Здравствуй, ', Man);
     Pause;
end.

Если убрать процедуру Pause , то работает.
var Man, S : string; i : integer;
    B : Boolean;
{procedure Pause (S: string);}
begin
   Writeln('Введите имя: '); Readln(Man);
   for i:=1 to Length(Man) do
   if (Man[i]='А') or (Man[i]='а')or(Man[i]='б') or(Man[i]='Б')or
   (Man[i]='В')or(Man[i]='в')or(Man[i]='Г')or(Man[i]='г')or(Man[i]='Д')
   or(Man[i]='д')or(Man[i]='Е')or(Man[i]='е')or(Man[i]='Ё')or(Man[i]='ё')
   or(Man[i]='Ж')or(Man[i]='ж')or(Man[i]='З')or(Man[i]='з')or(Man[i]='И')
   or(Man[i]='и')or(Man[i]='Й')or(Man[i]='й')or(Man[i]='К')or(Man[i]='к')
   or(Man[i]='Л')or(Man[i]='л')or(Man[i]='М')or(Man[i]='м')or(Man[i]='Н')
   or(Man[i]='н')or(Man[i]='О')or(Man[i]='о')or(Man[i]='П')or(Man[i]='п')
   or(Man[i]='Р')or(Man[i]='р')or(Man[i]='С')or(Man[i]='с')or(Man[i]='Т')
   or(Man[i]='т')or(Man[i]='У')or(Man[i]='у')or(Man[i]='Ф')or(Man[i]='ф')
   or(Man[i]='Х')or(Man[i]='х')or(Man[i]='Ц')or(Man[i]='ц')or(Man[i]='Ч')
   or(Man[i]='ч')or(Man[i]='Ш')or(Man[i]='ш')or(Man[i]='Щ')or(Man[i]='щ')
   or(Man[i]='Ъ')or(Man[i]='ъ')or(Man[i]='Ы')or(Man[i]='ы')or(Man[i]='Ь')
   or(Man[i]='ь')or(Man[i]='Э')or(Man[i]='э')or(Man[i]='Ю')or(Man[i]='ю')
   or(Man[i]='Я')or(Man[i]='я')
     then  S:='Намите Enter...' else S:='Press Enter...';

      Writeln(S);
      Readln;
end.

Последний раз редактировалось Stilet; 30.05.2013 в 22:14.
1Hitman1 вне форума Ответить с цитированием
Старый 30.05.2013, 01:05   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,578
По умолчанию

Изучите множества в Паскале.
Arigato вне форума Ответить с цитированием
Старый 30.05.2013, 18:59   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

1. Первая реакция у меня была такая же, как и у Arigato.

2. Вы определяете процедуру одноименную стандартной, но отличающуюся от нее тем, что она имеет входной параметр. Если Ваша процедура закомментирована, вызов происходит правильно, т.к. вызывается стандартная процедура, если же нет - то процедура ожидает на входе строку, которую Вы ей не передаете.
s-andriano вне форума Ответить с цитированием
Старый 31.05.2013, 01:22   #4
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
По умолчанию

да множества еще не дошел.
Задача такая, вот программа:

var Man : string;
procedure Pause;
begin
Write(’Нажмите Enter…’);
Readln;
end;
begin
Writeln(’Как тебя зовут?’); Readln(Man);
Writeln(’Здравствуй, ’, Man);
Pause;
end.

это задание к первому сообщению. Напишите еще одну версию процедуры Pause, выводящую сообщение
либо на русском, либо на английском языке. Параметр этой процедуры должен
быть булевым и работать она должна так.

Pause(true); { печатается «Нажмите Enter…» }
Pause(false); { печатается «Press Enter…» }

Что можете сказать по поводу написания мной программы в 1 сообщении, какие там ошибки.
1Hitman1 вне форума Ответить с цитированием
Старый 31.05.2013, 08:07   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Перечитайте сообщение №3, ошибка там указана.
s-andriano вне форума Ответить с цитированием
Старый 31.05.2013, 14:35   #6
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
По умолчанию

спасибо буду разбираться
1Hitman1 вне форума Ответить с цитированием
Старый 31.05.2013, 15:04   #7
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Так же в задании сказано, что аргументом является переменная булевского типа. У Вас же она - строка.

Даже если Вы не знаете множеств, есть более красивое(ые) решение(я), особенно, если набраться наглости и заявить, что если 1-ая буква имени - буржуйская, то и всё имя будет являться буржуйским! (ессено это решения требует гарантии, что ввод будет корректным)

Код:

begin

         <..>; ReadLn (Man);
         UpCase (s[1]);
         if (s[1] >= 'A') and (s[1] <= 'Z') then
                   Pause (true)
         else
                   Pause (false)

end.
Poma][a вне форума Ответить с цитированием
Старый 02.06.2013, 00:26   #8
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
По умолчанию

Программа заработала
Добавил в процедуру Pause('')


var Man : string; i : integer;
B : Boolean;
procedure Pause ( S: string);
begin
for i:=1 to Length(Man) do
if B = (Man[i]='А') or (Man[i]='а')or(Man[i]='б') or(Man[i]='Б')
or(Man[i]='В')or(Man[i]='в')or(Man[i]='Г')or(Man[i]='г')or(Man[i]='Д')
or(Man[i]='д')or(Man[i]='Е')or(Man[i]='е')or(Man[i]='Ё')or(Man[i]='ё')
or(Man[i]='Ж')or(Man[i]='ж')or(Man[i]='З')or(Man[i]='з')or(Man[i]='И')
or(Man[i]='и')or(Man[i]='Й')or(Man[i]='й')or(Man[i]='К')or(Man[i]='к')
or(Man[i]='Л')or(Man[i]='л')or(Man[i]='М')or(Man[i]='м')or(Man[i]='Н')
or(Man[i]='н')or(Man[i]='О')or(Man[i]='о')or(Man[i]='П')or(Man[i]='п')
or(Man[i]='Р')or(Man[i]='р')or(Man[i]='С')or(Man[i]='с')or(Man[i]='Т')
or(Man[i]='т')or(Man[i]='У')or(Man[i]='у')or(Man[i]='Ф')or(Man[i]='ф')
or(Man[i]='Х')or(Man[i]='х')or(Man[i]='Ц')or(Man[i]='ц')or(Man[i]='Ч')
or(Man[i]='ч')or(Man[i]='Ш')or(Man[i]='ш')or(Man[i]='Щ')or(Man[i]='щ')
or(Man[i]='Ъ')or(Man[i]='ъ')or(Man[i]='Ы')or(Man[i]='ы')or(Man[i]='Ь')
or(Man[i]='ь')or(Man[i]='Э')or(Man[i]='э')or(Man[i]='Ю')or(Man[i]='ю')
or(Man[i]='Я')or(Man[i]='я')
then S:='Press Enter...' else S:='Нажмите Enter...';
Writeln(S);
Readln;
end;
begin {---главная программа---}
Writeln('Как тебя зовут?'); Readln(Man);
Writeln('Здравствуй, ', Man);
Pause('');
end.
1Hitman1 вне форума Ответить с цитированием
Старый 02.06.2013, 06:40   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Добавил в процедуру Pause('')
Так-с.. у Вас глобалные процедуры и функции.. это, наверное, не есть хорошо..
Но это не главная проблема!! Еще раз перечитайте задание и пост#7. Ваша программа работает, НО не так как это просилось в задании
Poma][a вне форума Ответить с цитированием
Старый 02.06.2013, 22:29   #10
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
По умолчанию

Сейчас разберусь. Вчера инет не работал, поэтому сам пытался додумать.
1Hitman1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ctrl + pause Shkoda Microsoft Office Excel 1 13.09.2011 15:18
Не получается построить прямую на DShow графах (IMediaControl.pause), и все это на TPanel nick17 Мультимедиа в Delphi 0 26.12.2010 19:47
Окно компилятора исчезает при system(pause) fs444 Общие вопросы C/C++ 2 01.09.2010 19:08
Ошибка сегментации при вызове system("PAUSE") Lavisa Общие вопросы C/C++ 9 01.08.2009 18:14
Ошибка сегментации при вызове system("PAUSE") Lavisa Помощь студентам 0 29.07.2009 17:43