Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2009, 12:24   #1
tyt1991
 
Регистрация: 16.04.2009
Сообщений: 7
По умолчанию Помогите пожалуйста решить еще одни задачки по Паскалю!)

1.Подсчитать во ввденном тексте количество открывающихся и закрывающихся скобок. Вывести сообщение о нехватке той или иной скобки сообщения и порядок если их поровну.
2. Записать все слова текста в одномерный строковый массив. Найти и вывести семмитричные слова
И
1.Сформировать множество A,B и С, базовый тип которых 1..25, по заданному числу элементов для каждого множества. Определить является ли одно из них подмножеством другого множества и найти число элементов принадлежащих разности этих множеств. в каком из множеств больше элементов, и вывести на печать те элементы базового интервала, которые не входят в него!
2. Сформировать множество М из букв, встречающихся менее чем в половине слов текста F1. Формирование множеств произвести через random. Вывести на печать оба множества до изменения и после!
Особенно напрягают очень задачи про множества!(((
tyt1991 вне форума Ответить с цитированием
Старый 28.04.2009, 12:28   #2
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Сам что небудь сделал?
Gorychev вне форума Ответить с цитированием
Старый 28.04.2009, 12:41   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
1.Подсчитать во ввденном тексте количество открывающихся и закрывающихся скобок. Вывести сообщение о нехватке той или иной скобки сообщения и порядок если их поровну.
Навскидку допустим так:
Код:
var a,b,i:integer; s:string;
begin a:=0;b:=0;
 s:='(2+6)/(85+65)';
 i:=1; while (i<=length(s)) do begin
   if s[i]='(' then inc(a);
   if s[i]=')' then inc(b);
 end;
if a>b then {Открывающих больше}
if a<b then {Закрывающих больше}
if a=b then {Поровну}
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.04.2009, 12:51   #4
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Цитата:
Навскидку допустим так:
Можно сократить одну переменную (b). Вместо:

Код:
 if s[i]=')' then inc(b);
записать
Код:
 if s[i]=')' then dec(а);
отгда, если а=0 - поровну, а>0 - открывающих больше, а<0 - закрывающих больше
Gorychev вне форума Ответить с цитированием
Старый 28.04.2009, 12:52   #5
tyt1991
 
Регистрация: 16.04.2009
Сообщений: 7
По умолчанию

Ой, блин, сппасибо, вроде легко!) нет, ни че не сделала!) меня пугает множество...((((
tyt1991 вне форума Ответить с цитированием
Старый 28.04.2009, 19:56   #6
Gongled
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 78
По умолчанию

Мой вариант для второго задания (симметричные слова, они же палиндромы).
Код:
program pr2;
uses CRT;
const
n = 100;

var
input : text;
cw : integer;
c : char;
a : array[1..n] of string;

{Процедура проверки слова}
procedure check_word(str : string);
var
key : boolean;
j : integer;
begin
key := true;
     for j:=1 to (length(str) div 2) do
     if str[j] <> str[length(str)-j+1] then
     begin
          key := false;
          break;
     end;

     if key then writeln(str,' - Симметрично')
     else writeln(str+'!',' - Не симметрично');
end;

begin
clrscr;

assign(input,'C:\list.txt');
reset(input);

{Записываем слова в массив}
repeat
      inc(cw);
      repeat
           read(input,c);
           a[cw] := a[cw] + c;
      until (c = ' ') or eof(input);
      if c = ' ' then delete(a[cw],length(a[cw]),1);
      
      check_word(a[cw]);
      
until eof(input);

close(input);
end.
Пишу глупости.

Последний раз редактировалось Gongled; 28.04.2009 в 21:30. Причина: Подправил входную строку + объединил в один цикл
Gongled вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите,пожалуйста,решить задачки по паскалю!И составить блок схемы! ...Оленька... Фриланс 7 19.12.2008 19:18
Помогите плиз задачки по Турбо Паскалю решить! glan Паскаль, Turbo Pascal, PascalABC.NET 13 26.06.2008 17:39
Пожалуйста помогите решить задачи по Паскалю Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 3 17.05.2008 22:41