Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с текстом
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
MikrON
Приветствую вас программисты 20 века=)
у меня большая проблема... я не знаю как сделать нескольк программ=/
Если вы нелень помогите студенту первого курса...
задачи следующие
1. ЗАДАН ТЕКСТ. НАПЕЧАТАТЬ СЛОВА ЭТОГО ТЕКСТА В ПОРЯДКЕ УВЕЛИЧЕНИЯ КОЛИЧЕСТВА СИМВОЛОВ В СЛОВАХ.
2. ЗАДАН ТЕКСТ. НАПЕЧАТАТЬ ТЕ СЛОВА, ПЕРЕД КОТОРЫМИ НАХОДИТЬСЯ СЛОВА С МЕНЬШИМ КОЛИЧЕСТВОМ БУКВ.
3. 'МЯТРИЦЯ' ЗАДАНА МАТРИЦА ЦЕЛЫХ ЧИСЕЛ. ВЫПОЛНИТЬ СОРТИРОВКУ ЭЛЕМЕНТОВ ГОАВНОЙ ДИАГОНАЛИ МАТРИЦЫ ПО ВОЗРАСТАНИЮ.
Из всех 12 индивидульных задания я сдедал 9 сам
:P Эти для меня ад ПОМОГИТЕ... :p2:
Отблагодарю и надеюсь тоже чем нибудь помогу... :yessss:
xds
Задача 1:
Код

program Words1;

var
 s: String;
 Words: array[0..126] of Integer;
 Lens: array[0..126] of Integer;
 i, j, jm, n: Integer;
 f: Boolean;

procedure SwapInt(var a, b: Integer);
var
 t: Integer;
begin
 t := a;
 a := b;
 b := t;
end;

begin
 Write('s>');
 Readln(s);

 { Выделение слов }
 s := s + ' ';
 n := 0;
 f := False;
 for i := 1 to Length(s) do
   if (s[i] = ' ') or (s[i] = #9) then
     begin
       if f then
         begin
           Lens[n] := i - Words[n];
           Inc(n);
           f := False;
         end
     end
   else
     if not f then
       begin
         Words[n] := i;
         f := True;
       end;

 { Сортировка и вывод }
 for i := 0 to n - 1 do
   begin
     jm := i;
     for j := i + 1 to n - 1 do
       if Lens[j] < Lens[jm] then jm := j;
     SwapInt(Words[i], Words[jm]);
     SwapInt(Lens[i], Lens[jm]);
     Writeln(Copy(s, Words[i], Lens[i]));
   end;
end.
xds
Задача 2:
Код

program Words2;

var
 s: String;
 PrevWord, PrevLen,
 CurWord, CurLen: Integer;
 i: Integer;
 f: Boolean;

begin
 Write('s>');
 Readln(s);

 s := s + ' ';
 f := False;
 PrevLen := MaxInt;
 for i := 1 to Length(s) do
   if (s[i] = ' ') or (s[i] = #9) then
     begin
       if f then
         begin
           CurLen := i - CurWord;
           if PrevLen < CurLen then
             Writeln(Copy(s, CurWord, CurLen));
           PrevLen := CurLen;
           f := False;
         end
     end
   else
     if not f then
       begin
         PrevWord := CurWord;
         CurWord := i;
         f := True;
       end;
end.
xds
Задача 3:
Код

program DiagSort;

var
 a: array[1..100, 1..100] of Integer;
 n, i, j, jm, t: Integer;

procedure WriteMatrix;
var
 i, j: Integer;
begin
 for i := 1 to n do
   begin
     for j := 1 to n do
       Write(a[i, j]: 3);
     Writeln;
   end;
end;

begin
 Write('n>');
 Readln(n);

 { Генерация матрицы }
 Randomize;
 for i := 1 to n do
   for j := 1 to n do
     a[i, j] := -9 + Random(19);
 Writeln('Исходная матрица:');
 WriteMatrix;
 Writeln;

 { Сортировка главной диагонали }
 for i := 1 to n - 1 do
   begin
     jm := i;
     for j := i + 1 to n do
       if a[j, j] < a[jm, jm] then jm := j;
     t := a[i, i];
     a[i, i] := a[jm, jm];
     a[jm, jm] := t;
   end;

 { Вывод обработанной матрицы }
 Writeln('Матрица после сортировки главной диагонали:');
 WriteMatrix;
end.
MikrON
xds тебе конечно большое спасибо, но проблема нумер уан...
нельзя пользоваться процедурами...
проги даже с процедурами работают неправильно...
я же вроде попровил написать проги для 1 семестрами 1 курса=)
препод сказал что процедуры начнуться со второго семетра+)
если вам не лень помогите пжлста... :P
xds
а) я не обязан догадываться о Вашей учебной программе: утверждение "студент первого курса" не эквивалентно утверждению "человек, которому нельзя использовать процедуры в паскале";
б) приведите примеры неправильной работы программ.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.