Вопрос № 81224: Уважаемые эксперты, не мог бы ты написать прогаммку на Pascal, которая распечатывает таблицу A(MxN) по спирали против часовой стрелки, начиная с правого верхнего угла.
..Вопрос № 81227: Помогите пожалуйста. Дана строка символов S. Выяснить, верно ли, что в строке S имеются пять идущих подряд букв е.
..Вопрос № 81228: Решите задачу. Дана строка символов S, в которой есть символ двоеточие. Получить все символы, расположенные между первым и вторым двоеточием. Если второго двоеточия нет, то получить все символы, расположенные после единственного имеющегося двоеточия....
Вопрос № 81.224
Уважаемые эксперты, не мог бы ты написать прогаммку на Pascal, которая распечатывает таблицу A(MxN) по спирали против часовой стрелки, начиная с правого верхнего угла.
Лёгкое чувство дежа-вю, что этот вопрос я уже видела... Пользуйтесь поиском! Но поскольку код сохранился, повторюсь. На всякий случай проверила, работает для любых случаев, выводит все значения в столбец в порядке обхода спирали.
Приложение:
--------- Эта история - не для истории, понимаешь?
Ответ отправила: 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!
Предлагаю другой вариант (см. в приложении) - здесь циклы не используются, и решение находится независимо от того, сколько двоеточий в тексте.
Вот решил привести как говориться решение в две строки... Без использования циклов и операторов ветвления.
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