17.12.2012, 17:43 | #1 (permalink) |
Новичок
Регистрация: 30.09.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите, пожалуйста, написать на языке Pascal, желательно попроще
Создать функция, удаляющую из заданной строки все последовательности символов, находящиеся между корректно записанными круглыми скобками, вместе с этими скобками. Скобки могут быть вложенными. Задание 2 Создать процедуру, формирующую вектор vector2n-1 из максимальных элементов диагоналей целочисленного квадратного массива matrix(nхn) , параллельных его побочной диагонали. |
17.12.2012, 17:43 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Проблему можно решить гораздо быстрее, если ознакомиться с аналогичными темами Помогите написать программы на языке Pascal Помогите, пожалуйста, написать программу на Turbo Pascal Помогите с задачами, пожалуйста. Нужно написать на языке С |
17.12.2012, 22:38 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Да... заковыристые такие задачки. Аж приятно.
Получите: Код:
Var S:String; Procedure Del_Brackets(S1:String; var S2:String); Var R:String; i1,i2,i:Byte; begin R:=S1; Repeat i:=0; repeat Inc(i); if R[i]='(' then i1:=i; until (R[i]=')') or (i=Length(R)); If R[i]=')' then begin i2:=i; Delete(R,i1,(i2-i1+1)); end; Until (i=Length(R)) and (R[i]<>')'); S2:=R; end; Begin Writeln('Enter the string:'); Readln(S); Del_Brackets(S,S); Writeln(S); Readln; End. Код:
Const N=10; Type Mtr=Array[1..N,1..N] of Integer; Vct=Array[1..2*N-1] of Integer; Var Matrix:Mtr; Vector:Vct; p,q:byte; Procedure Calc_Vect(M:Mtr; var V:Vct); var Max:Integer; i,j,k:byte; begin k:=0; for j:=1 to N do begin Max:=M[1,j]; for i:=1 to j do if M[i,j-i+1]>Max then Max:=M[i,j-i+1]; Inc(k); V[k]:=Max; end; for i:=2 to N do begin Max:=M[i,N]; for j:=N downto i do if M[N-j+i,j]>Max then Max:=M[N-j+i,j]; Inc(k); V[k]:=Max; end; end; Begin Randomize; For p:=1 to N do begin For q:=1 to N do begin Matrix[p,q]:=10-Random(20); Write(Matrix[p,q]:4); end; Writeln; end; Writeln; Calc_Vect(Matrix,Vector); For p:=1 to 2*N-1 do Write(Vector[p]:4); Readln; End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|