Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 341
от 11.04.2007, 08:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 241, Экспертов: 68
В номере:Вопросов: 3, Ответов: 11


Вопрос № 81224: Уважаемые эксперты, не мог бы ты написать прогаммку на Pascal, которая распечатывает таблицу A(MxN) по спирали против часовой стрелки, начиная с правого верхнего угла. ..
Вопрос № 81227: Помогите пожалуйста. Дана строка символов S. Выяснить, верно ли, что в строке S имеются пять идущих подряд букв е. ..
Вопрос № 81228: Решите задачу. Дана строка символов S, в которой есть символ двоеточие. Получить все символы, расположенные между первым и вторым двоеточием. Если второго двоеточия нет, то получить все символы, расположенные после единственного имеющегося двоеточия....

Вопрос № 81.224
Уважаемые эксперты, не мог бы ты написать прогаммку на Pascal, которая распечатывает таблицу A(MxN) по спирали против часовой стрелки, начиная с правого верхнего угла.

Приложение:

Отправлен: 05.04.2007, 18:33
Вопрос задала: Просто Оля (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Verena
Здравствуйте, Просто Оля!

Лёгкое чувство дежа-вю, что этот вопрос я уже видела... Пользуйтесь поиском! Но поскольку код сохранился, повторюсь. На всякий случай проверила, работает для любых случаев, выводит все значения в столбец в порядке обхода спирали.

Приложение:

---------
Эта история - не для истории, понимаешь?

Ответ отправила: Verena (статус: 8-ой класс)
Ответ отправлен: 05.04.2007, 20:10


Вопрос № 81.227
Помогите пожалуйста. Дана строка символов S. Выяснить, верно ли, что в строке S имеются пять идущих подряд букв е.
Отправлен: 05.04.2007, 18:52
Вопрос задал: SashaFAN (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Menand
Здравствуйте, SashaFAN!


var
i,kol_vo :integer;
s:string;
flag:boolean;

begin
writeln('Vvedite stroku');
ReadLn(s);

for i:= 1 to length(s) do
begin
if s[i]='e' then inc(kol_vo) else kol_vo:=0;
if kol_vo=5 then flag:=true;
end;

if flag then writeln('Est') else writeln('Net');
Readln;

end.
i - счётчик, kol_vo временная переменная, flag - флаг :)

Перенесено из мини-форума по просьбе эксперта.
-~= Gh0stik =~-
Ответ отправил: Menand (статус: 7-ой класс)
Ответ отправлен: 05.04.2007, 19:06

Отвечает: Verena
Здравствуйте, SashaFAN!

Можно решить так:

buf:= '';
for i:=1 to 5 do buf:=buf+'e'; {для универсальности формируем строку из 5 букв е в цикле}
if pos (buf, s)<>0 then writeln ('Verno') else writeln ('Neverno'); {если позиция строки из 5 е в строке не равна нулю, то утверждение верно}
---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 8-ой класс)
Ответ отправлен: 05.04.2007, 19:41

Отвечает: Troyan
Здравствуйте, SashaFAN!
А вообще самый простой способ - использование функции Pos(SubStr, Str : String) : Integer;

Приложение:

---------
Цени законы своего сердца, иди на обгон! Будь человеком, не запачкай свою совесть!

Ответ отправил: Troyan (статус: 9-ый класс)
Ответ отправлен: 05.04.2007, 20:32

Отвечает: Южанин ДЮ
Здравствуйте, SashaFAN!
Следующая функция возвращает TRUE, если 5 букв e(латинские) найдены, иначе FALSE

Приложение:

Ответ отправил: Южанин ДЮ (статус: 1-ый класс)
Ответ отправлен: 07.04.2007, 14:07


Вопрос № 81.228
Решите задачу. Дана строка символов S, в которой есть символ двоеточие. Получить все символы, расположенные между первым и вторым двоеточием. Если второго двоеточия нет, то получить все символы, расположенные после единственного имеющегося двоеточия.
Отправлен: 05.04.2007, 18:53
Вопрос задал: SashaFAN (статус: 1-ый класс)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Menand
Здравствуйте, SashaFAN!

если учесть что 3,4 и т.д. двоеточий не бывает то:

flag:=false;
tmp_str:=""

for i:=1 to length(s) do
begin
if s[i]=":" then flag:=NOT flag;
if flag then tmp_str:=tmp_str+s[i]
end;
Ответ отправил: Menand (статус: 7-ой класс)
Ответ отправлен: 05.04.2007, 19:09

Отвечает: Verena
Здравствуйте, SashaFAN!

Предыдущее решение кажется мне не совсем корректным, поскольку в строке может встретиться ещё пара двоеточий (в задании указано: между первым и вторым). Можно так:

Var s, buf: string; k: integer;
begin
readln (s);
k:=0;
buf = '';
for i:=1 to length (s) do
begin
if (k=1) and (s[i]<>':') then buf:= buf+s[i];{если двоеточие было одно, запишем новый символ}
if s[i]=':' then inc (k); {если встретилось двоеточие, увеличим счётчик}
if k=2 then break; {если есть второе двоеточие - прерываем цикл}
end;
writeln (buf);
end.
---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 8-ой класс)
Ответ отправлен: 05.04.2007, 19:33

Отвечает: Устинов Сергей
Здравствуйте, SashaFAN!

Предлагаю другой вариант (см. в приложении) - здесь циклы не используются, и решение находится независимо от того, сколько двоеточий в тексте.

Удачи!

Приложение:

---------
Ждешь квалифицированного ответа? Задай правильно вопрос!

Ответ отправил: Устинов Сергей (статус: Практикант)
Ответ отправлен: 05.04.2007, 19:35

Отвечает: Зенченко Константин Николаевич
Здравствуйте, SashaFAN!

В приложении программа которая выводит на экран все символы начиная от перевого двоеточия и заканчивая вторым или концом строки.
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: 8-ой класс)
Ответ отправлен: 05.04.2007, 20:24

Отвечает: Gh0stik
Здравствуйте, SashaFAN!

Вот решил привести как говориться решение в две строки... Без использования циклов и операторов ветвления.

var s,v:string;
begin
readln(s);
v:=copy(s,pos(':',s)+1,length(s)-pos(':',s));
writeln(copy(v,1,ord(pos(':',v) <> 0)*(pos(':',v)-1) + ord(pos(':',v)=0)*length(v)));

readln;
end.

Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 06.04.2007, 21:15

Отвечает: Южанин ДЮ
Здравствуйте, SashaFAN!
Приложенная функция возвращает нужный фрагмент строки

Приложение:

Ответ отправил: Южанин ДЮ (статус: 1-ый класс)
Ответ отправлен: 07.04.2007, 14:46


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.47 от 06.04.2007
Яндекс Rambler's Top100

В избранное