Автор | Паскаль |
является ли скобочное выражение со скобками (), {}, [] правильным?
Вроде бы, простая задача. Ну, для кого-нибудь. ) Набросайте, кому не трудно. А я спасибо дам. |
Паскаль-это единица давления. |
для GINdog:
завтра могу. |
для AlabamaMen:
Завтра утром уже нужны. ( |
ну хоть кто-нибудь |
Ну ведь я знаю, сейчас с работы поприходили добрые дяти, которых хлебом не корми, а только дай мне помочь. ) |
полазь по форумам, поищи, в конце концов сам напиши. если знаешь язык, то не думаю что это так сложнл |
1 задача - стандартный метод "Поиск Пути"
2 задача - вложенный цикл с нарастающим шагом |
в конце концов сам напиши
Неее, конец ещё не настолько грозит. )
Язык я знаю на уровне простеньких циклов и массивов. А процедуры в дрожь вгоняют. |
апх |
хап |
ахп |
для GINdog:
И зачем же, спрашивается, платить деньги в заочную школу, если контрольные другие всё равно решать будут? ))) |
для Alexandr93:
Да там копейки. И в начале задания ещё ничего были, а потом как навалились. ) |
Пример: сколько операций умножения выполняют "правильные" функции про возведении числа в сотую степень?
Думаете, 100 раз число умножить на себя? Ан нет, правильный ответ - 8. И это, простите, не знание какого-либо языка, а просто правильно составленный алгоритм.
Интересно. Алгоритм в студию! |
для GINdog:
Ладно))) Добрый я человек))) Сам там учусь. Вот моё решение про скобки:
program n1;
uses Crt;
type
STAK=array [1..10000] of char;
var
s :ansistring;
ST :STAK;
tos :integer;
i :integer;
open_,close_ :set of char;
e :char;
res :boolean;
procedure Push(var b:char);
begin
inc(tos);
ST[tos]:=b;
end;
function Empty(var tos:integer):boolean;
begin
if tos=0
then
Empty:=true
else
Empty:=false;
end;
procedure Pop(var b:char);
begin
if not Empty(tos)
then
begin
b:=ST[tos];
dec(tos);
end
else
b:='0';
end;
begin
ClrScr;
ReadLn(s);
tos:=0;
open_:=['(','[','{'];
close_:=[')',']','}'];
res:=true;
for i:=1 to length(s) do
begin
if s[i] in open_
then
Push(s[i])
else
begin
if s[i] in close_
then
begin
Pop(e);
if (e='0')or((s[i]=')')and(e<>'('))or((s[i]='}')and(e<>'{'))or((s[i]=']')and(e<> '['))
then
begin
res:=false;
break;
end;
end;
end;
end;
if res=true
then
WriteLn('Yes')
else
WriteLn('No');
end.
Задачки 2,3,5 походу решаются одинаково, я пытаюсь решить их рекурсией - 2 недели бьюсь - ничего существенного выдавить из него не могу. Максимум правильно выдаёт если нет пути, иначе почему-то ходит только относительно оси 0Y |
для Alexandr93:
Спасибо огромнейшее. А что там с прожорливым мальчиком? Что-то про эти сорта ничего не понятно. |
для GINdog:
5 сек. Сейчас решаю. ПРосто хотел оставить напоследок, как одну из самых простых. Сначала хотел решить сложные. |
ansistringansistring
Это опечатка наверное? ) Вроде простого string там хватает. |
для GINdog:
Скобочное выражение длины N. 1<=N<=1000
string - это строка до 255 символов. |