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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2011, 19:31   #21
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

задание такое

Создать массив из 20 элементов, и заполнить случайными числами (RANDOM-генерация наверное). Значения элементов должны быть от 1 до 4, с одной цифрой после запятой. Упорядочить получившийся массив В ПОРЯДКЕ УБЫВАНИЯ СМОТРЯ ПО ДЕСЯТИЧНОЙ ЧАСТИ!!!

То есть, если у тебя будут числа предположим 2.7, 3.5, 1.2, 4.0, то они должны будут выстроены так: 2.7 --> 3.5 --> 1.2 --> 4.0. ТОесть ты смотришь в первую очередь на то, какая цифра после запятой, и по этим цифрам (в порядку убывания) формируешь новый массив

Учительница мне написала,что числа в массиве должны быть в правильном упорядочении и уменьшение должно быть не по той цифре,что дло запятой,а по той,что после.

вот мой код

Код:
program masivs;  {3.uzd}
uses crt;
const N=20;
type mas=array[1..N] of integer;
var r           :integer;        {r-slu4ajnoe 4islo ot 0 do 30}
    iterator    :integer;
    x           :mas;

procedure vivod(var x:mas; g:integer);
var i:integer;
begin
     i:=1;
     repeat
        write(i);
        write(': ');
        if (i div 10 = 0) then write(' ');
        write(x[i] div 10);
        write(',');
        writeln(x[i] mod 10);
        i:=i+1;
     until (i>n);
end;

procedure burbulis(var x:mas; g:integer);
var i,j:integer;

    procedure izmenit(var a,b:integer);
    var c:integer;
    begin
         c:=a;
         a:=b;
         b:=c
    end;

begin
     for i:=g-1 downto 1 do
         for j:=1 to i do
             if x[j]<x[j+1] then izmenit(x[j],x[j+1])
end;



begin
   clrscr;
   randomize;
   iterator:=1;
   repeat
     r:=Random(31);
     r:=r+10;
     x[iterator]:=r;
     iterator:=iterator+1;
   until (iterator>n);
   burbulis(x,N);
   izvade(x,N);
   readln;
end.
Novenkaja вне форума Ответить с цитированием
Старый 23.06.2011, 19:41   #22
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну во- первых если у тя нужно смотреть на цифры после запятой, то это дробные числа и работать надо с типом real хотя бы! вот! потом для сравнения те нужно взять цифру после запятой! и спользуй функцию Frac она тебе вернёт дробную часть! вот её и сравнивай ну и исходя из результата сортируй сами числа!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.06.2011, 19:44   #23
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

а это можно как то сразу в код вписать? мне надо чтобы кто помог доделать несколько заданий,то,что направлаете как деалть-это хоршо,но проще было бы если бы это сразу на коде показали)
Novenkaja вне форума Ответить с цитированием
Старый 23.06.2011, 20:08   #24
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
но проще было бы если бы это сразу на коде показали)
Мне то может и проще! А вот вам?
примерно так!
Код:
a: array[1..n] of real;
......................
......................
......................
randomize;
for i := 1 to n do 
begin
    a[i] := random(40)/10;
end;
....................
.....................
.....................
repeat
    flag = 0;
    for i := 1 to n-1 do
    begin
        if frac(a[i]) < frac(a[i+1]) then
        begin
            flag := 1;
            temp := a[i];
            a[i] := a[i+1];
            a[i+1] := temp;
        end;
    end;
until (flag = 0);
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.06.2011, 20:35   #25
Novenkaja
Форумчанин
 
Регистрация: 29.12.2010
Сообщений: 176
По умолчанию

спасибо за помощь
Novenkaja вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно доделать программу на паскале(двумерный массив) Venesia Помощь студентам 12 06.12.2010 19:28
Помогите доделать задание. fred9ra Общие вопросы C/C++ 1 11.01.2009 22:16
Помогите доделать задание в паскале! neomaximus Помощь студентам 4 23.06.2008 18:16
Помогите доделать задание в паскале neomaximus Помощь студентам 5 23.06.2008 14:35
Помогите доделать задание в паскале! neomaximus Помощь студентам 1 22.06.2008 09:45