Datuve :: Forums :: Arhīvs :: TP 7.0, kā sakārtot masīvu ar cipariem (desc)?

Datuve

Mana Datuve

Reģistrācija | Noteikumi | Paroles atjaunošana



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 89

Reģistrētie lietotāji online: 0

Viesi online: 89

Datuve.lv video
Top.LV

TP 7.0, kā sakārtot masīvu ar cipariem (desc)?

Ievietoja: Tomy @ 2008.05.19 21:52  

Ir fails, kurā ir cipars. Vajag izveidot no šiem cipariem lielāko skaitli - tātad vnk sakārtojam skaitļus dilstošā secībā. Ielasam pa vienam skaitlim masīvā un pēc sorto'jam masīvu dilstošā secībā, pēc tam izecho'jam masīvu key'us pēc kārtās (concate, mošk?) un savienojam.

Problēma - kā sakārtot to masīvu? Pašam kkas jākruķī vai eksistē jau gatava f(x)?

Komentāri:

#1 Eric @ 2008.05.19 22:03

Tev pašam jāuzraksta funkcija, kas realizē kādu no kārtošanas algoritmiem..

http://en.wikipedia.org/wiki/Sorting_algorithm

#2 Tomy @ 2008.05.19 22:09

Ak šausma. Kapēc TP nav nekādu parocīgu f(x)? :/

#4 Tomy @ 2008.05.19 23:11

Ok ok, nestreso :) Es izpalīdzu paziņai :)

#5 KaNeiet @ 2008.05.19 23:12

Vispār jau es nedomāju mefisto rakstīto, bet savu :))
Pirmajos trīs komentāros ir arī kods, bet tie nezināmu iemeslu dēļ izgaisa.

#6 Tomy @ 2008.05.20 23:10

Ā, es brīdi padomāju, kapēc man nerāda tos pirmos trīs un pēc tam nolēmu, ka esmu saņēmsi kinda' ban, you know :D

Ja nu kādam interesē tad šeit ir tas ko izveidoju es :)

{ tagad tu man paraadaa alu >:] }
program skaitlji_desc;
uses crt;
var fails,fails2:text;
var cipars2,i,i2,k,skaitlis2:integer;
var cipars, skaitlis,new_str:string;

begin
    { lasam failu un dabuujam int }
    assign(fails, 'max.dat');
    reset(fails);
    while not eof(fails) do
          readln(fails,cipars);

    { paarveersham stringu uz integeru, lai dabuutu skaitlja garumu }
    val(cipars,cipars2,k);

    { sheit saakas cikls kursh izpildaas no 9 liidz 1, dilstoshi }
    for i := 9 downto 1 do
        begin
             { sheit saakas cikls kursh meklee attieciigo skaitli }
             for i2 := 1 to length(cipars) do
                 begin
                      { sheit dabuu vienu ciparu un saliidzina }
                      skaitlis := copy(cipars,i2,1);
                      val(skaitlis, skaitlis2, k);
                      if skaitlis2 = i then new_str := new_str+skaitlis;
                 end;

        end;
    assign(fails2, 'max.rez');
    rewrite(fails2);
    writeln(fails2, new_str);
    close(fails2);

    { shitie vnk izvada uz ekraana abus skaitljus }
    writeln('skaitlis_old: ', cipars);
    writeln('skaitlis_new: ',new_str);
    readln;
end.

#7 Palms @ 2008.05.21 01:04

Bubble sort, select sort, shell sort, quick sort  - izvēlies sev tīkamāko