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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2008, 10:48   #1
Мент
 
Регистрация: 02.06.2008
Сообщений: 3
По умолчанию Задачи на Паскале. Строковые процедуры и функции

Ребата, пожалуйста помогите решить задачки
ЛЮди очень надо помоги кто чем может!

1 Задача. Строковые процедуры и функции.

Строка Т состоит из слов, разделенных пробелами. Удалить слова, начинающиеся с заглавных букв.

2 Задача. Двумерные массивы.

Составить программу выполнения действий над матрицами, максималь-но используя возможности программирования, предусмотреть одновременный вывод на экран исходной матрицы и результата:

Матрица М состоит из 7 строк, 9 столбцов. Найти максимальный по абсолютной величине элемент и поменять его местами с первым элементом.

Последний раз редактировалось Мент; 26.06.2008 в 10:00.
Мент вне форума Ответить с цитированием
Старый 25.06.2008, 10:55   #2
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Во-первых, все ваши три темы вообще закрыть могут за такие названия! Во-вторых, как сами думаете решать?
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 25.06.2008, 12:22   #3
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Вот для начала задача № 1:
Код:
program pro26;
var
 zaglav: set of char;
 t: string;
 i, k: integer;
 b: boolean;
begin
 zaglav:= ['A'..'Z'];
 b:= false;
 i:= 1;
 writeln('Vvedite stroku: ');
 readln(t);
 repeat
  begin
   if (t[i] in zaglav) and (t[i-1] = ' ') then
    begin
     k:= i;
     repeat
      inc(k);
     until (t[k] = ' ') or (t[k] = '.') or (k = Length(t)+1);
     if (t[k] = '.') or (k = Length(t)+1) then
      b:= true;
     Delete(t,i-1,k-i+1);
     dec(i);
    end;
   inc(i);
  end;
 until (i = Length(t)+1) or b;
 writeln('Ispravlennaia stroka: ',t);
 readln;
end.
по второй хотелось бы ваши наработки сначала увидеть

Последний раз редактировалось -=<[Evklidd]>=-; 25.06.2008 в 15:34.
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 25.06.2008, 13:24   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

В приведенном коде не удаляется слово с заглавной буквы, если оно стоит первым, пробовал внести небольшие коррективы, не получилось.
Вот еще вариант решения, в нем правда остаются лишние пробелы, которые нужно дополнительно удалять (а можно не удалять, т.к. в условии сказано только про слова), но тем не менее код такой же длины.
Лучше решать с дополнительной строкой, но преподаватели этого не любят.
Код:
uses crt;
const zb=['A'..'Z','А'..'Я','Ё'];
var T:string;
    i:integer;
begin
clrscr;
write('T:');readln(T);
writeln;
i:=1;
while i<=length(T)-1do
   begin
     if ((T[i-1] =' ') and (T[i] in zb))or((i=1)and(T[i] in zb))
      then
       begin
        while(T[i]<>' ')and(i<=length(T)) do
        delete(T,i,1);
       end;
     inc(i);
   end;
{--------------------------------}
for i:=length(T)downto 1 do  {udalenie lishnih probelov mozno ubrat}
  begin
   while pos('__ ',T)>0 do  {'__ ' это два пробела}
   delete(T,pos('__ ',T),1);
   if T[1]=' 'then delete(T,1,1);
 end;
{---------------------------------}
write(T);
readln
end.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на строковые переменные Exact Паскаль, Turbo Pascal, PascalABC.NET 4 17.06.2010 14:15
Процедуры и функции V25 Паскаль, Turbo Pascal, PascalABC.NET 1 17.11.2008 20:02
Строковые процедуры Cannibal Паскаль, Turbo Pascal, PascalABC.NET 2 29.05.2008 12:42
Процедуры и функции 11111 Помощь студентам 10 26.11.2007 15:06
DLL + Процедуры(не функции) LEKA Общие вопросы Delphi 1 02.05.2007 20:37