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

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

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

 
 Ответить  Открыть новую тему 
> Очень простая задача с файлом, Сортировка даты
сообщение
Сообщение #1


Бывалый
***

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

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


Помогите пожалуйста!!! Задача очень простая, но я в ней запуталась. Есть файлб в нем в каждой строчке написана дата (дд/мм/гг). Строчек не больше 20. Нужно вывести даты на экран и сортировать их в порядке возрастания.
Ниже будет примерный код задачи, который я написала, но который не сортирует. Скажите, пожалуйста что где нужно добавить! Спасибо!

Код
program exam_my;
type
 str20=string[20];
  mas=array[1..20]of str20;
   var
    f:text;
    i:byte;
    flname:string[10];
    x:mas;
    y:string[20];
  procedure vivod(var f:text;x:mas);
  var
  i:integer;
   begin
    for i:=1 to 20 do
     writeln(x[i]);
   end;
    function minimum(const x:mas):integer;
     var
     i,min:integer;
      begin
       for i:=1 to 20 do
        for min:=1 to 20 do

        if x[i]<x[min] then
         minimum:=i

        else minimum:=min;
      end;
    procedure change(const x:mas);
     var
      i,min,z:integer;
       begin
        for i:=1 to 20 do
         for min:=1 to 20 do
          if x[i]<x[min] then
          begin
            z:=x[i];
            x[i]:=x[min];
            x[min]:=z;
          end;
       end;
    procedure sort(var x:mas);
     var
     i:integer;
      begin
       for i:=1 to 20 do
        minimum(x);
        change(x);
      end;
   begin
   writeln('ўўҐ¤ЁвҐ Ё¬п д ©« ');
   readln(flname);
   assign(f,flname);
    {$I-}
     reset(f);
    {$I+}
      if Ioresult=0 then
       begin
        for i:=1 to 20 do
       readln(f,y);
         sort(x);
         vivod(f,x);
       end
      else
       writeln('¤ ­­л© д ©« ­Ґ бгйҐбвўгҐв');
       readln;
   end.


Сообщение отредактировано: volvo -


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






setare
Попробуй вот так:
Код
program exam_my;
type
 str20=string[20];
 mas=array[1..20]of str20;
var
 f:text;
 i:byte;
 flname:string[10];
 x:mas;

procedure vivod(x: mas);
 var
   i:integer;
 begin
   for i:=1 to 20 do
     writeln(x[i]);
 end;

procedure sort(var x: mas);

 function checkdata(s: string): string;
   begin
     checkdata := copy(s, 7, 4) + copy(s, 4, 2) + copy(s, 1, 2)
   end;

 var
   i, j: integer;
   T: str20;

 begin
   For i := 1 To 20 Do
     For j := 20 DownTo i+1 Do
       If checkdata(x[j-1]) > checkdata(x[j]) Then
         Begin
           T := x[j-1]; x[j-1] := x[j]; x[j] := T
         End
 end;


begin
 writeln('ўўҐ¤ЁвҐ Ё¬п д ©« ');
 readln(flname);
 assign(f,flname);
{$I-}
 reset(f);
{$I+}
 if Ioresult=0 then
   begin
     i := 1;
     while not eof(f) do
       begin
         readln(f,x[i]);
         i := i + 1;
       end;
     sort(x);
     vivod(x);
     close(f)
   end
 else
   writeln('¤ ­­л© д ©« ­Ґ бгйҐбвўгҐв');
   readln;
end.

По-моему, должно работать...
(Присоединенный файл - с исходными данными - для теста)

Сообщение отредактировано: volvo -


Прикрепленные файлы
Прикрепленный файл  TDT.TXT ( 240 байт ) Кол-во скачиваний: 296
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

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

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


Спасибо большое, сейчас попробую!


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
***

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

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


Большое вам спасибо!!!!!! Я разобралась!!!!!!!!!!!!!Спасибооо!


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

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

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


Извините! Но можно вам задать ещё один вопрос. А почему ма складываем копируемые символы? Я никак не могу понять. И извините, если вам кажутся мои вопросы глуппыми, просто мне не у кого спрашивать и в учебниках это особо не объясняется, а также я паскалем занимаюсь только 3 месяца, до этого не слышала даже про этот язык прграммирования, поэтому приходится беспокоить вас. Заранее благодарю.


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


При складывании символов получается строка.

[OffTop]
setare, Ты он ли она?
Судя по сообщениям - "она"...
А судя по инфе в профиле - "он"...
[/OffTop]


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

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

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


Я она! :P


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

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

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


Ещё раз, извините!!! А как отсортировать массив в обратном порядке. Я пользовалась поиском и faq , но к сожалению не нашла. Там везде сортировка в прямом порядке, а как в обратном.


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






setare
В условии:
Код
If checkdata(x[j-1]) > checkdata(x[j]) Then

меняем знак с ">" на "<"
И все... ;)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


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

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

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


offtop
setare, я отредактировал ваш профиль - указал что вы "она" smile.gif
end.


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

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

 





- Текстовая версия 15.05.2024 5:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name