IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> 1 - файлы 2 - Сортировка массива, 2 задачи
FENIX
сообщение 15.12.2004 19:20
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 45
Пол: Мужской

Репутация: -  0  +


Помогите, плиз, решить следущее:

1) Сравнить два файла с точностью до слов (без учета неотображаемых символов и пробелов между словами). Совпадающие слова вывести в третий файл, несовпадающие слова в четвертый, а их количества на экран.

2) Упорядочить методом прямого включения по возрастанию только положительные элементы массива, оставив остальные эл-ты на своих местах. Напечатать индексы эл-ов, оставшихся на местах.

Вот мой исходник проги, но она работает не совсем правильно. Если запустить, то прога сортирует + эл-ты по блокам, а не весь массив (после запуска станет понятно, почему работает неправильно).
Как ее доделать (или переделать совсем), чтобы все было ОК?

Код
Program Lab;
Uses Crt;

Type TMas = array[1..30] of integer;

Var i,n : integer;
   A, B : TMas;

Procedure Sort(Var A : TMas);
Var i,j,x : integer;
Begin
  For i:=2 to n do
  begin
     x:=A[i];
     j:=i-1;
     If x > 0 then
        While (j>0) and (x<=A[j]) do
        begin
           A[j+1]:=A[j];
           Dec(j);
        end;
        A[j+1]:=x;
  end;
end;

BEGIN
ClrScr;
Write('Vvedite N=');
readln(n);
Writeln('Vvedite isxodnyi massiv:');
  For i:=1 to n do
  begin
     write('A[',i,']=');
     readln(A[i]);
  end;

Writeln;
Writeln('Otsortirovannyi massiv:');
Writeln;
For i := 1 to n do writeln('A[',i,']=',A[i]);
Writeln;
Writeln('Homepa elementov, ostavshixsya na svoix mestax:');
For i := 1 to n do
If A[i] < 0 then Writeln(i);
readln;
END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
mithquessir
сообщение 15.12.2004 22:10
Сообщение #2


Гость






FENIX
2.
Код

const
 n = 8;
 a:array[1..n] of integer = (-1,0,-2,4,3,1,5,-2);
var
 b:array[0..n] of integer;
 i,j,x,num:integer;
begin
 num := 0;
 for i := 1 to n do
   if a[i] >= 0 then
     begin
       inc(num);
       b[num] := a[i];
     end;
   for i := 2 to num do  {сортируем}
     begin
       x := b[i];
       b[0] := b[i];
       j := i;
       while x < b[j-1] do
         begin
           b[j] := b[j-1];
           dec(j);
         end;
       b[j] := x;
     end;
     for i := n downto 1 do
         if a[i] >= 0 then
           begin
             a[i] := b[num];
             dec(num);
           end;
 for i := 1 to n do
   WriteLn(a[i]);
 for i := 1 to n do {индексы отрицательных}
   if a[i] < 0 then
   WriteLn(i);
end.
 К началу страницы 
+ Ответить 
FENIX
сообщение 16.12.2004 10:32
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 45
Пол: Мужской

Репутация: -  0  +


Народ, помогите с 1ой прогой, очень прошу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 16.12.2004 12:48
Сообщение #4


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Сравнить два файла с точностью до слов (без учета неотображаемых символов и пробелов между словами). Совпадающие слова вывести в третий файл, несовпадающие слова в четвертый, а их количества на экран.

Если нужен вообще алгоритм, то я бы предложил следующее: прочитать слова из обоих файлов в 2 списка (ДСД) и затем сравнил бы списки слов, выполняя нужные действия...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
FENIX
сообщение 16.12.2004 18:06
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 45
Пол: Мужской

Репутация: -  0  +


Плиз, помогите с написанием кода проги.
Мыслей никаких по этому поводу что-то нету...
sad.gif

Сообщение отредактировано: FENIX - 18.12.2004 15:26
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 14:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"