13.12.2010, 22:44 | #1 (permalink) |
Member
Регистрация: 04.10.2010
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите пожалуйста в решении задач в Pascal
Задача-1. Дано слово, состоящее не более чем из 6 строчных букв русского алфавита. Получить все неповторяющиеся комбинации буквосочетаний той же длины из букв данного слова, отсортировать их в алфавитном порядке. Указать количество возможных комбинаций. Задача-3. В некотором тексте проверьте правильность расстановки круглых, квадратных и фигурных скобок. Задача-4. Один дотошный болельщик по время волейбольного матча заметил интересную закономерность: сначала K (K – любое натуральное) розыгрышей выиграла первая команда, потом K+1 розыгрыш достался второй команде, далее опять первая выиграла, но уже K+2 розыгрыш и т.д. Определить счет, с которым закончился матч, и счет по партиям. Упрощенные правила игры: матч состоит из партий, победа присуждается команде, первой выигравшей в трех партиях. Чтобы победить в партии, необходимо набрать 25 очков. Если счет равный (25:25), то партия продолжается до тех пор, пока разница в счете не станет равной 2. Не использованные розыгрыши в одной партии автоматически переходят в следующую. Например, если счет 17:19 и первая команда выигрывает 19 розыгрышей, то счет становится 25:19, а 12 очков переходят для первой команды в следующую партию. Задача-5. Дано выражение ax+b?0. Задать значения a и b (a, b отличны от нуля) и знак отношения. Получить ответ в виде числового промежутка или числа. |
13.12.2010, 22:44 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Проблема уже обсуждалась, рекомендую прочитать информацию по этим ссылкам Требуется срочная помощь в решении задач по электротехнике Нужна помощь в решении двух задач |
14.12.2010, 11:17 | #2 (permalink) | ||||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Цитата:
Код:
VAR f:TEXT; Q1o,Q1c,Q2o,Q2c,Q3o,Q3c:WORD; Ch:Char; Brack,Brack1:ARRAY[1..255] of Char; Nbr,Nbr1,i,j:BYTE; Incor:Boolean; BEGIN Assign(f,'D:\xxx'); ReSet(f); Nbr:=0; {full number of brackets} Q1o:=0; Q1c:=0; Q2o:=0; Q2c:=0; Q3o:=0; Q3c:=0; Repeat Read(f,Ch); if (Ch='(') or (Ch=')') or (Ch='[') or (Ch=']') or (Ch='{') or (Ch='}') then begin Inc(Nbr); Brack[Nbr]:=Ch; end; if Ch='(' then Inc(Q1o); if Ch=')' then Inc(Q1c); if Ch='[' then Inc(Q2o); if Ch=']' then Inc(Q2c); if Ch='{' then Inc(Q3o); if Ch='}' then Inc(Q3c); Until EoF(f); Close(f); Brack1:=Brack; Nbr1:=Nbr; If (Q1o<>Q1c) or (Q2o<>Q2c) or (Q3o<>Q3c) then begin WriteLn('Incorrect:'); if Q1o<>Q1c then WriteLn(Q1o,' "(" and ',Q1c,' ")"'); if Q2o<>Q2c then WriteLn(Q2o,' "[" and ',Q2c,' "]"'); if Q3o<>Q3c then WriteLn(Q3o,' "{" and ',Q3c,' "}"'); end else begin i:=0; Repeat Inc(i); Incor:=true; If ((Brack[i]='(') and (Brack[i+1]=')')) or ((Brack[i]='[') and (Brack[i+1]=']')) or ((Brack[i]='{') and (Brack[i+1]='}')) then begin Incor:=false; for j:=i+2 to Nbr do Brack[j-2]:=Brack[j]; Dec(Nbr,2); i:=0; end; Until (Nbr=0) or (i=Nbr-1); If Incor then begin WriteLn('Incorrect: the order of brackets is wrong:'); for i:=1 to Nbr1 do Write(Brack1[i]); WriteLn; end else Writeln('Correct'); end; ReadLn; END. Цитата:
Цитата:
|
||||
14.12.2010, 13:41 | #3 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Насчёт пятой задачи - а при чём тут, собственно, программирование на Pascal-е? Нужно вычислить на бумаге промежутки и выдать из в виде окончательного решения. Разве что можно рассмотреть вариант, когда пользователь вводит значения a, b и знак отношения, тогда задача может иметь подобное решение:
Код:
program ner; var a,b,x: real; s: char; p:integer; begin writeln('Enter the values of the constants a, b'); readln(a,b); if (a<>0) and (b<>0) then begin x:=-b/a; writeln('Enter symbol relationships'); readln(s); p:=ord(s); case p of 60: writeln('x less than ',x:1:4); 62: writeln('x is greater than ',x:1:4); 61: writeln('x is ',x:1:4) else writeln('This is not a sign relationship') end; end else writeln('constant need not be equal to 0'); readln end.
__________________
Убить всех человеков! |
14.12.2010, 14:37 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
На всякий случай - решение третьей задачки отредактировал с учетом проверки вложенности.
Позже, правда, сообразил - программа отрабатывает не все возможные ситуации. Она справляется с прямой однократной вложенностью: {...[..(.....)..]...} и даже с такой: {...[..(...)..(...)...]..} Но вот если, например, так: {...[...(..)...[...]..]..) или так: {...[..(...)...(...)..]..[..(..)....]..}, то увы... И как это универсально алгоритмизировать - не соображу. Уж извините - чем богаты... |
14.12.2010, 22:30 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ан нет - ведь добил-таки! Заело. Исправления в очередной раз внесены, и теперь эта сволочная программа отрабатывает любые ситуации. Вот!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
15.12.2010, 12:46 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|